- 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
- 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
- Removed the Blockzapper
- Removed the Deforester
- Handheld Worldshaper -> Creative Worldshaper
- Worldshapers now have a "surface" and "cluster" brush type
- Worldshapers now follow the creative colour palette
- Some UI touch-ups for tools
ISimpleReloadListener is a reload listener functional interface meant to
be used when preparation is not needed. All current reload listeners
have been moved to this interface, which allows them to be lambdas and
not have to create a new Object for every reload.
- Increased minimum sound threshold for ambient noise
- Sounds for contraption (dis-)assembly
- Sounds for more wrench interactions
- Hand crank clicks less furiously
- Block breakers now make block breaking noises
- Crafting noises
In the linearizeDepth function in area_effect.frag, I was multiplying by 2, but the scaling of the world was off. The number I found that works best is e - 0.99, and I have no idea why.
- Contraptions with exceeding spawn packet sizes no longer get sent to the client
- Minecart Contraptions with exceeding nbt packet sizes can no longer be picked up
- Renamed "Metal Blocks" to "Blocks of Metal"
- Fixed basins not continuing their processing when items are extracted by funnel #1416
- Basins now accept full stacks for items thrown into the top manually
- Fixed Smart Chutes not dropping filter items
- Fixed Smart Chutes not updating attached diagonal chutes properly when removed
- Fixed Server-side crash when coupling two minecarts from a glitched self-colliding pile
- Millstone now accepts items from belts/ejectors directly
- Fixed Redstone-triggered components losing tile data after moved by a Contraption
- Super glue between non-solids can now be removed while the glue item is equipped
- Fixed Deployers not able to interact with glued blocks
- Fixed incorrect lang mapping of UI button descriptions
- Placement assist block preview now lights properly, doesn't z-fight and fades in gradually
- Pickaxe and Axe are now effective on piston extension poles
- Fixed block breaking animations inside the ponder UI
- Fixed Ponder Scenes rendering on top of the progress bar
- Fixed Mechanical Press not retracting when items were removed early
- Fixed Windmill Bearings allowing to be moved while assembled
- Mechanical Pistons now silence the "missing poles" error after poles were added
- Fixed entities attempting to path-find through Creates' non-solids #1390
- Fixed Redstone Links occasionally wiping their frequency when moved in a Contraption
- Fixed Flywheels doubling their SU capacity after every chunk reload
- Fixed display of numeric formats using non-breaking space #1374
- Signs can now be moved on a contraption #1315
- Fixed Typo in german localization #1363
- Fixed Windmill Bearings keeping su information after relocation #1364
- Fixed Symmetry Wand using up too many items #1342
- Fixed Nixies rendering inconsistently
- Fixed belts not showing items under certain conditions
- Fixed vertical/sideways belts accepting items from other belts
- Spouts can now interact with belts/depots with a mounted funnel
- Copy the projection matrix when vanilla would be uploading it to GL.
- This should account for just about everything.
Unrelated to the fix:
- Shader programs now have more flexibility in specialization.
- Accomplished with IMultiProgram.
- Remove unnecessary SHADER_DEBUG_OUTPUT boolean.
-Moved deforester not loosing durability from leaves to DeforesterItem instead of Tree mining
- added destroyBlocks method in TreeCutter$Tree for less doubled code
- Mechanical Saws currently break the tree with an empty "hand" as they did before
- Silktouch and Fortune enchants are now being applied from deforesters
- Fixed Spawners losing nbt data when moved
- Nixie tubes now update their texts starting from the clicked block, rather than the leftmost one in the chain
- Fixed inconsistency between block and item model of the furnace engine
- Fixed a couple overlooked ponder lang issues
- Fixed weighted ejector not accepting arbitrary gold plates in its recipe
- Fix crash opening ponder from screens with an opened recipe book