- Move most user facing interfaces to flywheel.api package
- Refactor InstanceData to have no package private classes
- Remove 'I' prefix from many interfaces
- ILightUpdateListener -> LightListener
- IMultiProgram -> ContextAwareProgram
- IFlatLight -> FlatLit
- All materials use the same vertex format: UNLIT_MODEL
- An Engine is a MaterialManager and a RenderDispatcher
- Refactor InstanceManager's ctor to use the MaterialManager interface instead of the concrete type
- MaterialManagerImpl -> InstancingEngine
- Add skeleton for BatchingEngine
- Hack in InstanceWorld to switch between the 2
- Rename/move existing MaterialManager impl to new package
- Port to 1.18
- ChunkUtil discontinued
- SmartTileEntities write to metadata
- Features generate from -64 up
- World Wrappers weren't convoluted enough
- Haunted bell considers >0 safe
- Missing GuiUtils methods continued in RemovedGuiUtils
- Double chests no longer split when moved on a contraption
- Changed the way contraption storage interacts with known multi-block item storage (band-aid solution)
- Changed a few blocks' sound types
- Fixed in-world icons not rendering
- Added Ponder Scenes for the Item Vault
- Added crafting recipe for Item Vaults
- Changed crafting recipe for Fluid Tanks
- Fixed ponder tracking items in inactive inventory screens
- Removed unreachable Advancements
- Fixed TileEntities in Ponder not receiving blockstate changes
- Fixed Ponder selection rendering offset
- Re-introduced the depth-sorting hack for PonderUI
- Editing mode is now a Config Option
- Fixed Non-Container Screens no longer closing on "E"
- Added tooltip for Experience Nuggets
- Fixed Schematic Prompt no longer starting auto-focused on the text field
- Pulse Extenders now actually extend the pulse, rather than emitting for a fixed time
- Updated Ponder Scenes for the repeaters
- Picking encased kinetic blocks no longer returns a creative-only item
- Added a Ponder Scene with encased cogwheels
- Implemented change of top & bottom texture for copper roof blocks
- Mechanical Belts no longer have a Stress Impact
- Stairs and Slabs variants of blocks no longer use plural in their name
- "Polished" stone type variant now uses the prefix Polished Cut
- "Bricks" stone type variant now uses the prefix Cut
- Added more recipes for stone types and copper blocks for convenience
- Reverted re-texture of crushed copper ore
- Added waxed copper recipes for deploying
- Match Create's copper block variants with vanilla's copper block
variants
- Add CopperBlockSet and CopperRegistries
- Remove copper plating block and OxidizableBlock
- Add remaps for copper ore and copper block and organize RemapHelper
- Fix belt funnel model names
- Bump required Forge version to 37.1.0
- Organize imports
- Added crushing recipes for raw ore blocks
- Layered mineral deposits are slightly more likely to spawn
- Zinc ore is slightly less likely to spawn
- Added layered deposits with Scorchia
- Fixed tuff pillars texture size
- Modified recipe for the Wand of Symmetry
- Added the Experience Nugget
- Item Vaults are now Immune to regular explosion damage
- Encased Shafts and Cogwheels no longer appear on creative tabs
- Fixed gantry carriage model uvs
- Fixed Palette blocks & Item Vault not easily mineable using a pickaxe
- Fixed ponder crash when a non-ticking tile is shown
- Fixed cube particle interpolation and quads
- Fixed sawblades rendering with wrong rotations
- Items shown on JEI's Washing tab are now centred
- Introduced a new set of Ore Processing recipes
- Moved Portable Storage Interface to andesite tier
- Removed the Adjustable Crate
- Creative Crates can no longer span multiple blocks
- "Chromatic" items no longer appear on creative tabs
- Ejectors now emit comparator signals relative to their max accepted stack size
- Fixed combined slots in the toolbox menu not acting correctly
- Fixed background of the advancement tab
- Removed Gabbro, Dolomite, Weathered Limestone
- Added Crimsite, Asurine, Veridium, Ochrum
- Added and Removed palette blocks for Andesite, Diorite, Granite, Tuff, Deepslate, Dripstone, Calcite, Limestone, Scoria and Dark Scoria
- Custom stone types now generate as layers instead of ores
(Work in Progress)
- Fix rotation indicator particles
- Fix sail dyeing
- Turn BreakProgressHook into DestroyProgressRenderingHandler interface
- Refactor overlay rendering to properly use API
- Change SpriteShiftEntry to use StitchedSprites
- Use OnDatapackSyncEvent instead of mixin
- Organize foundation.ponder package
- Remove usage of deprecated:
- Durability bar methods
- Constants class
- Fixed fluid networks losing fluids when extracted amount is lower than a pumps transfer speed
- Fixed JEI plugin claiming that some occultism's ritual recipes work in a compacter
- Fixed press/deployer/spout failing to process a belt item when another item is processed simultaneously further down the belt
- Add ToolBoxInstance
- Move from MatrixTransformStack to TransformStack.cast where possible
- SuperByteBuffer implements transform traits on its own
- Bump flywheel build
- Better visibility for low/half amounts of fluids in basins
- Fixed Mechanical Press head getting stuck in extended position when off-screened or when its basin changes
- Added processingTime support to mixing recipes (defaults to 100)
- Fixed Basin recipes with fluid output not starting when targeted output inventory supports items only
- Fixed item extraction from create creating stacks of unstackable items when source inventory allows stacking them (Storage Drawers)
- Fixed Deployers not having a valid item capability when asked before their first tick
- Fixed Mechanical Crafting recipes able to be automated via packing
- Add CustomUseEffectsItem interface implemented on items to control use
effects behavior
- Replace SandPaperEffectsHandler and SandPaperSoundMixin
- Fix broken polishing particles when no items in other hand (polishing
last item)
- Fixed Chutes spilling items when inserting into disconnected storage interfaces
- Blaze Burners can now be picked up using the Wrench
- Additional safety checks from random crash reports
- Fixed piston/pulleys moving before their attached entity is loaded
- Recipes with an id suffixed "_manual_only" are now ignored in auto-shaped, auto-shapeless and auto-cutting processing features
- Fixed pipes spawning particles at connections between chunks
- Fixed pipes not initialising target fluid holders properly when the source is loaded in first
- Fixed encased fluid pipes not updating flows when neighbouring blocks change
- Fixed fluid pipes not updating flows when adjacent block changes from fluid to block
- Fixed Crafters voiding any inserted items after being moved on a contraption
- Fixed Crafters crashing the game after being placed by a Schematicannon
- A couple of two-ingredient recipes have been made shapeless
- Improved piston/pulley contraption collision with blocks in the world
- Fixed pistons/pulley contraptions merging into world blocks when disassembling shortly after loaded in
- Added jei support for toolbox colouring recipes
- Disabled item shadows on belts
- Toolbox radial can now be navigated using hotbar shortcuts
- Toolbox radial now steps back when right-clicked
- Toolbox radial now immediately opens the multi-toolbox view when right-clicking the central "unequip" button
- Fixed hidden slots visible in toolbox screen in some gui scales
- Toolbox sorting in the radial menu is now deterministic
- Fixed Toolboxes not always updating their inventory state to clients
- Shulker boxes can no longer be placed inside toolboxes
- Fixed potion fluids not displaying their full name in jei
- Fixed JEI showing all potion recipes when looking up a specific one
- Replace AngleHelper.horizontalAngle with horizontalAngleNew (return 0
instead of -90 for vertical directions)
- Fix FluidRenderer not calculating correct UVs for integer positions
- Fix FluidRenderer rendering streams and flowing texture incorrectly
- Slightly improve performance of outlines
- Rename PartialBufferer to CachedBufferer
- Move specific code out of SuperByteBufferCache into CachedBufferer and
BakedModelRenderHelper
- Move Compartment inside SuperByteBufferCache
- Rename some methods and fields
- Add sanding sounds
- Allow sandpaper to polish vanilla copper
- Spawn particles when polishing Create copper blocks
- Make Create copper blocks inherit properties from copper block instead
of iron block
- Fix empty blaze burner not lighting with flint and steel
- Use vanilla's widget lists instead of custom ones
- Use press callback instead of overriding mouseClicked
- Switch old container classes to extend ContainerBase or
GhostItemContainer
- Organize foundation.gui package
- Remove deprecated methods in Color
- Various other changes
- Removed the pulse repeater
- Removed the adjustable repeater
- Adjustable Pulse Repeater -> Pulse Repeater
- Added the Pulse Extender
- Latches now play a sound when flipped manually
- ponder todo
- Fixed super glue not spawning particles on break
- Fixed logspam when goggle overlays are shown
- Fixed blocks launched by a schematicannon spiraling through the air
- Fixed javadoc errors
- Replace all GUI y-flip scalings to not scale normals
- Rotate CustomLightingSettings along XN instead of XP
- Apply custom lighting to all fluids in JEI scenes
- Fix fluid rendering: fix normals, normal scaling, and color
- Make new config fields final
- Do not add item cooldown if cooldown is less than or equal to 0
- Tweak rotation math for depots and billboard potato projectiles
It is currently impossible to for example make a block that both generates stress and that behaves as a gearshift in that it rotates differently on either side. This simple check should allow that to be possible in a much easier and more intuitive manner.
- Refactor custom rendered items; The renderer now creates the model
instead of the other way around
- Only tick wrench cog rotation and linked controller renderer if client
is not paused
- Move all model swapping code from CreateClient to ModelSwapper
- Register client resource reload listener before initial resource
reload
- Use TextureStitchEvent.Post event instead of resource reload listener
for filling sprites of SpriteShiftEntries
- Reuse Random instance in PartialItemModelRenderer
- Make all config fields final
- Merge package foundation.renderState into foundation.render
- Move BreakProgressHook from package foundation to foundation.block
- Rename ResourceReloadHandler to ClientResourceReloadListener
- Rename ProperDirectionalBlock to WrenchableDirectionalBlock
- Connected Mechanical Crafters now strictly distribute added items from top to bottom, left to right
- Fixed smart pipe ponder scene no longer showing milk in the basin
- Added timed invalidation to refresh fluid handler references observed by pipe ends
- Added item description for the toolbox
- Fixed Smart Pipes not able to be picked up with Wrench
- Fluid Pipes no longer have to be straight in order to be 'wrenched' into a strictly straight windowed pipe
- Stockpile Switches can now be used with Fluid Tanks
- Content Observers can now be used with Fluid Containers and Fluid Pipes
- Fixed Pumps not updating pressure when reversed
- Fixed pumps and valves not registering their stress impact properly after changing state
- Fixed belts not applying stress when created in certain orientations
- Fixed belt items flickering due to previous changes
- Remove NbtPacket and add safe packets for configuring symmetry wand
and worldshaper separately
- Expand internal functionality of AllTags and use optional tags in most
cases
- Datagen tags forge:stone, forge:wg_stone, and forge:buckets/honey
- Fix attribute filter screen being shifted by one pixel
- Add translations for "fluid_container" and "renamed" item attributes
- Remove Create namespace restriction in CTSpriteShifter
- Add method to register ponder chapter lang
- Clean up palette block code; Closes#386
- Clean up tag code
- Use Create.asResource in as many places as possible
- Organize imports
- Allow defining custom potato cannon projectile types through JSON in
datapacks
- Separate PotatoCannonProjectileTypes into PotatoCannonProjectileType,
PotatoProjectileTypeManager, and BuiltinPotatoProjectileTypes
- Allow setting a custom render mode when building a projectile type
- Prevent the potato cannon itself from being used as ammo
- Toolboxes keep nbt on pickup
- Toolbox radial menu supports mouse wheel
- Added Dispose-all buttons
- Synced slots detach when moving stacks back into the toolbox
- Fixed missing data on client on login
- LightVolumes now can act as a light cache with configurable size
- More GridAlignedBB changes
- Remove ILightUpdateListeners
- Simplify pulley rendering using LightVolume
- Better system for moving objects that want to receive light updates
- LightProvider interface to better abstract light lookups
- All light listeners use GridAlignedBBs
- More utility in GridAlignedBB
- Crafters no longer display item sprites vertically flipped
- Crafters now arrange overlapping items less randomly
- Chromatic Compound can now absorb light emitting blocks from belts & depots
- Mechanical Harvesters can now be used to gather Leaves
- Mechanical Harvesters can now be used to gather Weeping and Twisting Vines
- Fixed JEI integration of Basin recipes with multiple and/or stochastic outputs
- Fixed idle blaze burners sending packets every tick
- Fixed placement indicator rendering behind the crosshair
- Added an Event allowing additional tileentitybehaviour objects to be attached to STEs from outside
- added an event to add custom deploying recipes for addons(that partly need more data and therefore can't use the existing deploying recipe json format)
- made deploying recipe scanning cancelable by event
- added a safety check to tile entity behaviours to prevent concurrent modification exceptions when loading old worlds (0.2 time, dev 0.3)
- MateralManager, MaterialGroup, and InstanceMaterial are all interfaces
- Separate (T)EI facing API from implementation
- Comment out debug log in ModelPool
- Renamed SpawnerMovementSetting to ContraptionMovementSetting and moved it to its own class
- Added a contraption movement setting registry
- Made checks previously checking only spawner movement setting and the block being a spawner to check using ContraptionMovementSetting.get(block)
- Call ContraptionRenderDispatcher#invalidate, at some point during a tick, and the structure will be reset.
- Move contraption compartment to SBBContraptionManager
- Contraption compartment uses custom pair with better hash function instead of apache commons pair
- Call ContraptionRenderDispatcher#invalidate, at some point during a tick, and the structure will be reset.
- Move contraption compartment to SBBContraptionManager
- Contraption compartment uses custom pair with better hash function instead of apache commons pair
- New Loader class in charge of loading and compiling everything
- ShaderSources now only loads sources
- ShaderSources is immutable now
- Resolver singleton in charge of managing name resolutions
- ProgramSpecs go through Resolver
- WorldShaderPipeline no longer needs reference to ShaderSources
- Reorganize everything
- Isolate SourceFile related things
- Should consider decoupling ShaderLoader from resource loading
- Document a lot of newer things
- Index functions
- Awkward WorldContext builder
- Template responsible for providing shader inputs
- Template is now an abstract class
- Template provides GLSL version
- ProgramSpecs now only accept one file
- Redo shader loading
- Now loads an immutable SourceFile containing some metadata
- Replace legacy compilation pipeline with improved new one using new api
- Builtins are defined in one file, now "header"
- New ErrorReporter/ErrorBuilder methods
- Fancier shader loading errors
- Remove utility methods from PonderRegistry and only leave the one
essential method
- Move utility registration methods to PonderRegistrationHelper
- Move entry builder methods to entry class, PonderStoryBoardEntry
- Move listed tags list to tag registry
- Make ponder chapters namespaced
- Add localization and language datagen support for ponder chapters
- Fixed Chutes pulling from inventories causing major framerate drops
- Fixed Chutes sending update packets when idling
- Added a max range for filter slot rendering of blocks
- Synced TEs are no longer able to cause side-effects by calling sendData on the Render Thread
+ FurnaceEngineModifiers which hold a Block -> float map of modifiers
~ Changed FurnaceEngineTileEntity to use the FurnaceEngineModifiers map instead of hardcoded modifier fro the Blast Furnace.
This will allow addon modders to change the speed modifier of a Furnace block.
- More conventional naming for fields of ContraptionMatrices
- Encapsulate fields in ContraptionMatrices
- Move creation to RenderLayerEvent
- De-clutter RenderedContraption#beginFrame
- Bump flywheel version
- Fixed ammo-specific fire damage not dropping cooked drops from killed entities
- Fixed Schematicannons not visually aiming toward current block trajectory
- Fixed placed Schematics using smaller boundaries than the original
- Added the option to enable/disable placing air blocks with instant creative schematic printing
- Added safety check for Missing/Migrated filter attributes #2065
- Added safety check for Crushing wheels near unloaded blocks
- Added safety check for instant printing an invalid Schematic
+ Added create:sandpaper to AllRecipeTypes and datagen.
~ Changed hardcoded list of sandpaper items to Tag.
This would enable me to include the Diamond Grit Sandpaper from CC&A in the deployer recipe. Node: There might be more applications for this tag.
- Make PonderRegistry use a ThreadLocal current namespace
- Add synchronized blocks to some methods that modify maps or lists
- Move some non-thread safe method calls to the event.enqueueWork
lambdas
- Buffered models directly consume IModels
- Document IModel more
- Move contraption world render spoofing to flywheel
- Miscellaneous new RenderMaths
- Added WorldModel, renders many blocks given a world instance
- Fix broken transparency on contraptions when using Flywheel
- Different subclasses for flywheel rendering and sbb rendering
- Select which to use on renderer reload, gather context, and when create buffers are invalidated
- ContraptionRenderDispatcher's meat was moved to WorldContraptions
- Rename ContraptionWorldHolder to ContraptionRenderInfo
- One ContraptionMatrices per contraption per frame
- Cull contraptions
- Bump flywheel version
- SBB contraption rendering is done through Flywheel's RenderLayerEvent
- Fix instanced tile rendering on contraptions and in ponder worlds
- Bump flywheel version
- Some package-info.javas
- Make stress value getters fallback to default value map if provider is
absent
- Rename StressConfigDefaults to BlockStressDefaults and move to block
package
- Rename StressConfigValues to BlockStressValues and move to block
package
- Add StressConfigValues to allow registering stress value providers and
getting values by namespace
- Use correct namespace inside StressConfigDefaults builder transformers
- Expose StressConfigDefaults maps
- Add methods to manually register default stress values
- Only add stress configs for defaults that have the create namespace
- Clean up ItemDescription#getKineticStats
- Press/Spout placement offset no longer activates when clicking the side of a block
- Press/Spout placement offset no longer activates on invalid belt slopes
- Block-items without innate fluid handling no longer require sneaking to be placed next to item drains
- The Goggle overlay can now be activated by external add-ons
- The Goggle overlay default colour now has less opacity
- The Goggle overlay now fades in over a couple ticks
- Update more usage of glActiveTexture to the enum wrapper
- Fix superglue rendering in the solid layer
- Fix issue caused by states with different textures on contraptions
- Bump flywheel version
- Add backtank layer to all player models
- Only add backtank layer if entity renderer returns BipedModel
- Make copper armor considered to be worn only when in the correct armor
slot
- add config options that allow some more customization of the overlay renderer (addresses #2020)
- overlay position has been reset to its default position, because the config path changed
- allow integer config values to be entered and displayed as hex or binary (inside the config gui only)
- how integer values are displayed can be changed with a special comment
- minor changes to theme, that allow keys to refer to one another
- Fixed crash when simultaneously converting and destroying a Peculiar Bell (#2008)
- Fixed Stockpile Switch not updating its signal when the inventory it's watching is moved (#1980)
- Fixed Potato Cannon projectiles being able to move players in creative mode (#1950)
- Fixed Lectern Controller not rendering buttons when being used by a different player
- Stop providing a buffered model supplier
- Instead, provide an IModel supplier
- IModel exposes basic properties of models
- IModel exposes a method to copy the model to a VecBuffer
- Move material stuff to its own package
- The various render functions in the material tree now bind to specific render layers
- Instancers can choose which layer to use
- The layers are SOLID, CUTOUT, and TRANSPARENT
- More layers are likely unnecessary, but we'll see
- Deprecate functions in MaterialManager in favor of more builderesque ones using MaterialGroups
- Catching up with Flywheel
- Remove MatrixStacker in favor of Flywheel's TransformStack (thread safety too)
- Rename AnimatedKinetics#defaultBlockElement to
AnimatedKinetics#blockElement
- Add static alternative to AnimatedKinetics#blockElement meant to be
used outside of subclasses