- 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.
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.
- 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
- Put a lot of the reusable code in a sort of standard library
- Need to evaluate just how much should be lumped in there
- Still need to allow for users to create alternate contexts for the builtins
- Normal world and contraptions are still hardcoded contexts
- 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
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 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
- 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.
Added missing blocks and GUI stuff and fixed typos.
Now only
- Most advancements
- A lot of block summaries/tooltips
- All of the pondering
- All attributes
are missing
- 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
- InstanceKey is no more.
- InstanceData and co. keep track of removals and updates.
- InstancedModel's buffer management is much more sane now.
- Re-add mixin to #tickBlockEntities and ensure compat with Performant.
- Move ...backend.instancing.impl to backend.core
- Ejectors now occasionally track launched items, scanning for any obstacles in their trajectory
- Fixed rendered items passing an Ejectors' target on clients ticking faster than their server
- Removed outdated warnings for 'transposer funnels'
- Fixed Schematicannon clearing blocks outside of a Schematics' bounding box
- Safety check for onBlockPlacedBy with null player
- Deployers with a positioned Schematic as their filter will place blocks accordingly, taking items from the contraption inventory
- Quark magnets don't crash (already fixed).
- Fix quark magnet leaving behind ghost instances.
- Fix crash with belt lighting after being placed by contraptions.
- Simplify tile add/remove mixins and avoid conflict with Performant.
- Avoid FloatBuffer detour when uploading matrix uniforms.
- InstancedTileRenderer no longer has to clean up.
- Properly let go of tickable instances.
- Swich to tabs. (not everything is tabs yet)
- Refactor light and color attributes to their own Enum.
- Quaternion/pivot/position attribute shader.
- Always update an instance when the WorldRenderer checks if it should rerender a block.
- Simplify some names.
- Remove generics in InstanceData classes.
- Deployer Tiles now use the oriented material.
- Press heads now correctly orient themselves.
- ModelData buffers things faster and is simpler.
- Ponder scenes for depot, chute and smart chute
- Fixed saws and drains ejecting items when mounted funnel is backstuffed
- Fixed extracting funnels allowing items to be inserted by arms and belt input
- Vanilla items in ponder tags are marked purple instead of red
- Vertical funnels now block chutes
- Large cogs can no longer be placed right next to crafters or millstones
- Mechanical Arms now stall targeted belt items
- Ponder Scenes have misplaced icons
- placement helper arrows don't render
- Particles in ponders *should* work
-> added WrappedClientWorld to make that work
- fixed ponder crashingon 1.16
- moved gui stuff to matrix stacks
- remove BlockHalper#hasBlockStateProperty, as BlockState#contains is a thing
- ran runData
- Shaders can now reference other files with #flwinclude <"...">.
- Shaders are now located in assets/flywheel/shaders.
- Include paths are namespaced (a la ResourceLocation) and relative to the flywheel shaders root folder.
- Optimized glsl rotations using quaternions (when applicable) and vectorized matrix construction.
- Vectorize diffuse lighting calculations.
- Micro optimization in SmartTileEntity.java
- Promoted actor instance creation to the ActorInstance class.
- Drills and Harvesters' rotational speed is based on their movement speed with Flywheel on.
- Deployers now use Flywheel.
- Fix funnels not rendering filter slot items
- Ponder scenes for the Deployer, Harvester and Plough
- Fixed uvs on Deployer model
- Ploughs can now harvest snow layers
- Fixed TEs not ticking properly when wrap-around-skipping to a keyframe
- Added a block restoration instruction
- Scenes for the Saw
- runData catching up
- User no longer has to manually add instances, new hook instead.
- Use registrate for InstanceFactories.
- Instanced levers.
- Instanced hand cranks.
- Reorganize PhysicalFloat and LerpedFloat.
- Scenes for chassis, super glue, stickers and redstone contact
- Added a warning when players try to use experimental rendering while shaders are active
- Added user view mode for editors to hide coordinates
- Ponder now pauses the game in SP
- Ponder elements now use a separate timer and separate partial ticks
- Fixed virtual funnels not flapping
- Fixed ponder buttons having hover highlights when not clickable
- Fixed ponder button mouse hitbox
- Addressed strange render state bleed with identify mode highlighting
- Fixed Minecart Contraptions started on a powered rail facing in unwanted directions
- Fixed powered rail Cart Assemblers not respecting the solid block rule of powered rails
- Fixed Minecart contraption items not facing away from the player when placed
- Polished every last bit of the belt uvs
- Removed processing recipes from recipe book
- Reorganized items in creative tab
- Tweaked a few model transforms
- Fixed belt uvs
- ponder birbs can now face the cursor
- fix interpolation on ponder birbs
- Fixed log spam when assembling certain blocks (Points of interest) in a contraption
- Fixed content observers not triggering for in-line belt funnels
- Replaced ponderworld particle AT with reflection
- Symmetry Wand now checks for placement permissions
- Lang now uses Locale.ROOT
- Fixed crash using ponder without advanced tooltips enabled
- Added and assigned more ponder tags
- Ponder Scenes for cog, large cog, gearbox, clutch, gearshift, and casings
- Fixed TE model data not queried on schematics and ponder scenes
- added tags and chapters to the ponder registry
- slightly changed how scenes are registered
- added a back stack to the screen opener and some animations to go along with it
- added a interface for icons drawn into screens
- Removed code duplicates
- Made fluid information more generic and concise
- Made fluid information easier to port
- Fixed potion fluid not overriding its translation key
- (I'm sorry, Steven)
- Added Ponder entries for gantry shafts and carriages
- Added ability to mark lang key prefixes as ignored, leaving out 'dev-only' lang entries from the localization templates
- Gantry Pinion -> Gantry Carriage
- Scenes can now be "re-assembled" by their storyboard while Ponder is opened using shift+refresh
- removed the requirement of editor provided lang keys for text windows
- couple fixes, changes to instructions
- Finished ponder entries about funnels
- Smart TEs can now enter "virtual mode" to run both client and server code (support for it needs individual adjustment)
- Removed obsolete quads from the andesite funnels' model
- Not enough ponder instructions
- Fixed upright belt items in ponder UI
- Support for generic entities inside ponder scenes
- Instructions for manipulating/creating entities
- Client-side belts are now slightly smarter inside a ponder world
- Some doc for the doc
- Organized util and scene builder methods into nested classes
- Selection rework, allows for addition and substraction
- World sections now merge into a global world section after fading in
- Support for managing reference to elements created by previous instructions
- more util
- Support for animating world sections to roughly simulate a contraption
- Less paperwork for making new scenes
- Support for outliner chaseAABB
- Support for outlining selections
- Added more descriptive names for sequencer instructions
- 'Await' instruction now requires a rising flank to trigger
- Fixed invalid json of german localization
- Ingored crushing wheel controllers facing in blockstate datagen