- Added JEI integration to Sequenced Assembly
- Bit of Refactoring
- The amount of steps before the transformation occurs are no longer random
- Intermediate item now shows assembly progress in its tooltip
- Added the Clockwork Element
- Added the Sequenced Assembly recipe type (needs JEI)
- Added cascaded datagen for assembly sequence and each of its available processing types
- Temporary test recipe
- Added support for Sequenced Assembly to Press, Deployer, Spout and Saw
- Removed Integrated Circuits
- Removed Lapis sheets
- Added proper rendering, tooltips, sounds, and particle effects to the bells
- Added a crafting recipe for the Peculiar Bell
- Added a conversion method for obtaining Cursed Bells
- Fixed the soul indicators showing up in non-full blocks
- Create ILightingSettings and CustomLightingSettings to better manage
custom lighting
- Allow item GuiGameElements to have custom lighting
- Add defaultBlockElement methods to automatically apply default custom
lighting to JEI scenes
- Add blaze head bobbing to JEI scenes
- Shift elements on JEI washing scene
- Use an empty screen instead of creating a new one in IScreenRenderable
- Cart Assemblers now have a specific direction
- Assembled cart contraptions assemble and disassemble according to the assemblers direction
- Cart contraptions no longer turn exponentially
- Cart contraption now turn more sluggishly the larger they are
- Some changes to the cart assembler model
- Introduced proper first-person rendering of Potato Cannons, inherited from blockzappers
- Introduced proper dual wield handling for Potato Cannons
- Potato cannons are no longer stackable
- Added a couple more attributes to ammo types
- potatoes and carrots now plant a crop when hitting farmland
- Added a couple particle effects
- Fwoomp sound now slightly randomizes its pitch
- Add chocolate melting, honey liquification, and honey compacting
recipes
- Create honey tag field and use Forge's milk tag field
- Make fluid fields final
- Closes#1845
- Change positions of more GUI elements
- Fix mistakes from last cleanup
- Add window offset to AbstractSimiScreen
- Implement container usability check properly and add
IInteractionChecker
- Render schematic and quill in schematic prompt screen
- Rename curiosities2.png to curiosities_2.png
- Various other tweaks, fixes, and improvements
- Resolves#1847
- Added the Potato Cannon
- Extendogrips now have durability, which is not consumed while wearing a copper backtank (same applies for potato cannon)
- Added a few projectile types for testing
- Add many checks when reading NBT to prevent crashes
- Store rendered strings and only update when necessary
- Reorganize some code and rename some members
- Implemented ponder scenes for Fluid Pipes and Copper Casing
- Adjusted Fluid transfer, containment and rendering behaviours to function in 'virtual' environments
- Added scene for deployer's new item processing
- Fixed particles rendering faced away from the camera
- Fixed airflow particles not getting lit properly
- Fixed lack of culling in Gui ItemStack elements
- Prepared texts for all fluid-related storyboards
- Fixed ponder progress bar not displaying
- Added tooltips for newly added tools and equipment
- Fixed depth issues in Ponder UI
- Fixed lack of backface culling in ponder
- Added placeholder storyboards for missing ponder scenes
- Fixed menu screen cogs rendering behind the background
- Fixed menu screen not pausing the game
- Blueprint crafting overlay now attempts to show a list of items matching an ingredient filter in the respective slot
- Fixed JEI prematurely transferring the blueprint recipe when viewed
- Changed blueprint entity and item rendering to be more Optifine friendly (?)
- Punching blueprints now clears the slot before breaking it
- Fix a dist issue with KTEs
- Added recipe for blueprint
- Deactivate controller if in spectator mode
- Prevent packet handling if in spectator mode, except for resets
- Deactivate controller if a screen is opened
- Resolves#1774
Allows Basins to interact with downward facing Funnels located at an offset below and to the side. Previously would show a connection between basin and funnel but would not interact with them.
- Change positions of GUI elements to improve the overall experience
- Fix window and extra areas to be perfectly aligned with drawn textures
- Add SlotMovers to new screens
- Fix schematicannon progress bar; Resolves#1674
- Fix black background in curiosities2.png
- Move all title creation to getDisplayName
- Other minor tweaks
- Config UI automatically skips to the layer of config where multiple options are available
- Removed range tooltips
- Config entries in UI list are now sorted by name, with config groups at priority
- Changed the layout of save/discard/leave prompts
- Leaving with unsaved changes now gives you the option to save
- Config tooltips now use standard Create tooltip splitting
- Fix saw and portable storage/fluid interface diffuse lighting
- Remove "disableDiffuseTransform" option from SuperByteBuffer
- Switch argument order in RenderedContraption constructor to be consistent with superclass (ContraptionWorldHolder)
- Fix Extendo Grip not applying extended reach when equipped on rejoin
- Fix mechanical crafters duping + dropping their items when added to minecart contraption
- Fix Wand of Symmetry duping rails under placed cart assemblers
- Lecterns now keep NBT when moved by contraption
- Super glue entities hanging on positions above build limit now get removed
- Fix harvester replanting sweet berry bushes in wrong state
- Cuckoo clock and clockwork bearing now go crazy in unnatural dimensions
- Create DyedBlockList for storing and accessing a set of dyed blocks
- Switch usage of BlockEntry<?>[] to DyedBlockList in AllBlocks
- These changes also finally fix the compilation error related to generic arrays
- Use Registrate's block and item color registration instead of running
the events manually
- Move utility color handler methods to foundation.utility
- Move all item rendering classes to foundation.item.render
- Move IBlockVertexColor from foundation.block to
foundation.block.render
- Remove unnecessary raw cast in CreateRegistrate
- Separate model-level instance management from object-level instance management
- Separate material management from rendering
- A few things here and there related to entity instancing
- Add a rudimentary command to spawn superglue
- Fixed diving helmet activating when wielder is only partially submerged in water
- Fixed diving helmet activating for players in creative mode
- Added sounds for the Mechanical Saw
- Added clicking sounds for the Linked Controller
- Gantry contraptions now make contraption noises
- Soundscapes now lower their volume based on the distance between listener and center of noise
- Make regular palette stone blocks drop their cobblestone variant instead of themselves (unless silk touch is used)
- Add smelting recipes for cobblestone palette blocks
- Rename PaletteBlockPatterns to PaletteBlockPattern
- Move PatternNameType to PaletteBlockPattern
- Rename some fields
- Fix#1661: blasting-only recipes would not be shown under the bulk blasting category
- Add ability to remove matching recipes by type while using the category builder
- Fix fan catalyst items being italicized
- Add and tweak some visibility modifiers
- make it easier for addon devs to hook into create's config ui
- change the config command to allow for:
- opening any mod's registered config
- changing single values at a time
- possibly solve incompatibility with CalemiUtils mod and placement helpers
- Use static RecipeWrapper for finding recipes instead of making a new TileEntity every time
- Move InWorldProcessing from logistics to contraptions/processing
- Fix#799 by disallowing blasting processing on fireproof items
- BufferedModel is no longer abstract.
- InstancedModel no longer inherits from BufferedModel, it accepts one as input.
- Replace usage of IndexedModel with BufferedModel
Registering block movement checks works by using one of the six static register methods on an instance of an implementation of one of the six corresponding interfaces. Each one takes some arguments and returns a CheckResult, which defines whether to return from the global check or fall through to the next registered check or fallback check.
- Rename BlockMovementTraits to BlockMovementChecks
- Rename some check methods to be consistent
- Pass World instead of IBlockReader to isBlockAttachedTowards
- Make the bottom half of doors attach up and down
- Remove door check from Contrapion#moveBlock as it is unnecessary
- Refactor AllContainerTypes to use Registrate
- Replace RegistryEntry in AllEntityTypes and AllFluids with EntityEntry and FluidEntry, respectively
- Make AllEntityTypes use Registrate to register entity renderers instead of a separate method
- Refactor AllColorHandlers
- Fix error when a POI block is moved by a contraption
- Rename some static final fields to be upper snake case
- Make static fields in Create and CreateClient final
- Add I prefix to Coordinate interface
- Fix typo (BracketedTileEntityBehaviour#isBacketPresent)
- Make mixins go in alphabetical order
- Make pack.mcmeta use 2 spaces for indents
- Program specs are now loaded from json instead of being defined in code and registered manually.
- Within the json spec, a program can define a list of states.
- A state consists of:
- A "when" clause.
- A list of strings to be #defined.
- A list of extensions to apply at program link time.
- Each frame, the first state whose "when" clause returns true will be used.
- A when clause consists of:
- A state provider defined by a resource location.
- A value to match.
- When the value returned by the provider matches the value defined in the when clause, the when clause is considered to be 'true'.
- There is syntactic sugar for when a provider returns a boolean value.
- This system is in its infancy, and there is plenty of room for improvement.
- All material shaders now use the template system.
- Because of the template system, we can know what attributes a material has, along with how they're formatted.
- All of the *Attribute enums are effectively inlined, as the context they used to provide is no longer needed.
- Create ContraptionMatrices class for better management of matrices during the contraption rendering process
- Fix diffuse lighting when rendering contraptions without Flywheel
- Clean up TileEntityRenderHelper
- Add disableDiffuseTransform to SuperByteBuffer and fix light calculation logic
- Instead, BufferBuilderReader can decode parts of a BufferBuilder.
- BufferedModel and its subclasses are now created directly with a ByteBuffer.
- ContraptionModel renamed to IndexedModel.
- InstancedModel and IndexedModel both now take model formats as arguments.
- All of this allows for better abstraction, composition, and control of models rendered with Flywheel.
- Instead, MaterialSpecs store the information
- RenderMaterials are now generic on InstanceData instead of InstancedModel
- RenderMaterials are directly constructed with and store a MaterialSpec
- Pass contraption world to movement behavior rendering
- Add hybrid lighting option to SuperByteBuffer (takes max of world light and vertex light)
- Create ContraptionWorldHolder for caching contraption worlds for contraptions that are not rendered with Flywheel
- Refactor some parts of contraption rendering
Also
- Partially fix incorrect vertex lighting (make sure to not sure Forge's lighting calculator)
- Reorder some lighting to make it more efficient
- Cleanup some things
- Lots of refactoring in the shader loading code.
- Abstract all the different shader source transformations into ProcessingStage.
- An ordered list of ProcessingStages is called a ShaderTransformer.
- When you acquire sources, a Shader now keeps track of the source location, shader type, and source code all together.
- Nothing is properly hooked up yet.
- A single shader file will be able to be compiled with different opengl targets.
- I plan on using this to implement meshlet rendering as an alternate backend-backend that will be used when available.
- It could also be used to enable compatibility with opengl 3.0 or potentially even 2.0.
- Recipes for the diving gear
- Idle Windmill Bearings now attach their structure when moved as part of another contraption
- Fixed pumps not updating transfer speed when directly between containers
- Fixed Multiblock Fluid tanks showing inconsistent information on their goggle overlay
- Creative Fluid tanks no longer show a goggle overlay
- Fixed Funnels and other interfaces not updating properly when affected chunks are unloaded and reloaded
- Fixed tooltips rendering behind item icon in the filter screens
- Added the Deploying recipe type
- Deployers can now polish items on belts or depots
- Deployers now make a little polishing sound when using sandpaper
- Move CreateClient.kineticRenderer to Backend
- InstancedTileRenderers keep track of their own queuedUpdates
- Sort of a listener system for some render events
- Diving helmets now display a timer near the hotbar when underwater
- Copper backtanks now play an effect when accumulated air is maxed
- Copper backtank blocks can now be waterlogged
- Copper backtank cogs now animate
- Fixed subtitle of equip sounds