JozsefA
78fbb52ddc
Merge remote-tracking branch 'origin/mc1.15/dev' into mc1.16/dev
...
# Conflicts:
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/ContraptionCollider.java
# src/main/java/com/simibubi/create/content/curiosities/TreeFertilizerItem.java
2021-03-31 21:17:01 -07:00
JozsefA
c21a8bcbde
Fix startup crash on some AMD drivers.
...
- The fix comes from Grondag's work on canvas.
- Original commit: 820bf75409
2021-03-31 20:53:02 -07:00
JozsefA
6ef88c3bd8
Fix some issues with instance rate limiting
2021-03-31 16:25:59 -07:00
JozsefA
b9f6a3b94e
Instanced bearings
2021-03-31 16:19:58 -07:00
JozsefA
c905aa5e2e
Merge branch 'mc1.15/dev' into mc1.16/dev
...
# Conflicts:
# src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java
# src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixerInstance.java
# src/main/java/com/simibubi/create/content/contraptions/components/press/PressInstance.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/StickerInstance.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionKineticRenderer.java
# src/main/java/com/simibubi/create/content/contraptions/relays/gauge/GaugeInstance.java
# src/main/java/com/simibubi/create/content/logistics/block/FlapData.java
# src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInstance.java
2021-03-30 14:58:08 -07:00
JozsefA
a2b9dfc28a
Change the locks
...
- 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
2021-03-30 14:14:58 -07:00
simibubi
37c3625d4a
Merge branch 'mc1.15/dev' into mc1.16/dev
2021-03-30 18:34:40 +02:00
JozsefA
ff4a9e5c78
Fix arms glitching out on contraptions.
...
- Also provide a hook for subclasses of InstancedTileRenderer to control when specific instances tick.
2021-03-29 15:06:09 -07:00
caa3c57b71
Merge & Port
2021-03-28 10:58:25 +02:00
JozsefA
4e7777a130
Fix more instancing nonsense.
...
OrientedData was still applying the origin position shift, so some
things (mechanical presses) wouldn't appear in the right spot.
2021-03-27 16:35:47 -07:00
9bc25db615
Keep everything up to date
2021-03-27 08:32:23 +01:00
JozsefA
0b25f662dc
Frame rate and tick rate limiting with distance.
...
- Significant performance improvement when dealing with massive amounts of dynamic instances, otherwise marginal.
2021-03-26 16:47:37 -07:00
35c62360be
Merge & Port
2021-03-26 16:03:09 +01:00
JozsefA
2e5d7a734f
Fix ConcurrentModificationException preparing frame for rendering.
2021-03-25 15:10:40 -07:00
JozsefA
affb8abfbd
Potentially fix weird crash.
2021-03-25 14:48:42 -07:00
JozsefA
a56514c308
Some housekeeping and documentation.
2021-03-25 14:29:52 -07:00
JozsefA
b18993ed26
Little things.
...
- 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.
2021-03-24 15:48:15 -07:00
cbbf502003
port recent changes
2021-03-24 14:54:24 +01:00
JozsefA
1233ecfe80
Fix belt lighting issues, again.
2021-03-23 14:13:32 -07:00
JozsefA
5eae3a53fc
Keeps getting hotter.
...
- Belts now use the new system.
- Remove ILightListener.java.
- Listeners can choose to remove themselves.
- Rename some static GridAlignedBB methods.
2021-03-23 02:12:09 -07:00
JozsefA
20189a86fc
Spicy light update listening api.
...
- Round 1, no profiling done yet, not everything uses it.
- WeakHashSet could be useful elsewhere, too.
2021-03-23 00:08:31 -07:00
JozsefA
1310b88828
Lieutenant Scatterbrain II.
...
- 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.
2021-03-22 20:20:52 -07:00
JozsefA
6a0ad77fe7
Refactor away TileEntityInstance#init
...
- Move it to the constructor.
- An instance is now discarded and recreated if TileEntityInstance#shouldReset return true.
- Mark a bunch of stuff final.
2021-03-20 22:33:24 -07:00
JozsefA
f6cfd377a7
Ticking things.
...
- Differentiate tickable and dynamic instances.
- Instanced repeaters.
2021-03-20 16:30:09 -07:00
JozsefA
3d0898c59b
Smooth harvesters, step sounds v1.
2021-03-20 13:16:20 -07:00
zelophed
d03ea3488a
Merge branch 'mc1.15/dev' into mc1.16/dev
...
# Conflicts:
# src/generated/resources/.cache/cache
# src/generated/resources/assets/create/blockstates/andesite_funnel.json
# src/generated/resources/assets/create/blockstates/brass_funnel.json
# src/generated/resources/assets/create/lang/unfinished/de_de.json
# src/generated/resources/assets/create/lang/unfinished/es_es.json
# src/generated/resources/assets/create/lang/unfinished/fr_fr.json
# src/generated/resources/assets/create/lang/unfinished/it_it.json
# src/generated/resources/assets/create/lang/unfinished/ja_jp.json
# src/generated/resources/assets/create/lang/unfinished/ko_kr.json
# src/generated/resources/assets/create/lang/unfinished/nl_nl.json
# src/generated/resources/assets/create/lang/unfinished/pt_br.json
# src/main/java/com/simibubi/create/AllBlocks.java
# src/main/java/com/simibubi/create/compat/jei/category/CreateRecipeCategory.java
# src/main/java/com/simibubi/create/content/contraptions/components/actors/ContraptionActorData.java
# src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterRenderer.java
# src/main/java/com/simibubi/create/content/contraptions/components/actors/HarvesterTileEntity.java
# src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerRenderer.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AbstractContraptionEntity.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/AssemblyException.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/IDisplayAssemblyExceptions.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementBehaviour.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntity.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/chassis/LinearChassisBlock.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/gantry/GantryCarriageBlock.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/CartAssemblerBlock.java
# src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/render/ContraptionRenderDispatcher.java
# src/main/java/com/simibubi/create/content/contraptions/fluids/actors/SpoutTileEntity.java
# src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java
# src/main/java/com/simibubi/create/content/contraptions/goggles/IHaveGoggleInformation.java
# src/main/java/com/simibubi/create/content/contraptions/particle/RotationIndicatorParticle.java
# src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltMovementHandler.java
# src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java
# src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java
# src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelMovementBehaviour.java
# src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java
# src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java
# src/main/java/com/simibubi/create/content/logistics/item/filter/AbstractFilterScreen.java
# src/main/java/com/simibubi/create/content/logistics/item/filter/AttributeFilterScreen.java
# src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java
# src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java
# src/main/java/com/simibubi/create/content/schematics/block/SchematicannonRenderer.java
# src/main/java/com/simibubi/create/events/ClientEvents.java
# src/main/java/com/simibubi/create/foundation/block/connected/ConnectedTextureBehaviour.java
# src/main/java/com/simibubi/create/foundation/collision/CollisionDebugger.java
# src/main/java/com/simibubi/create/foundation/collision/OBBCollider.java
# src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java
# src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java
# src/main/java/com/simibubi/create/foundation/gui/AbstractSimiScreen.java
# src/main/java/com/simibubi/create/foundation/gui/AllGuiTextures.java
# src/main/java/com/simibubi/create/foundation/gui/AllIcons.java
# src/main/java/com/simibubi/create/foundation/gui/widgets/SelectionScrollInput.java
# src/main/java/com/simibubi/create/foundation/item/TooltipHelper.java
# src/main/java/com/simibubi/create/foundation/mixin/LightUpdateMixin.java
# src/main/java/com/simibubi/create/foundation/mixin/RenderHooksMixin.java
# src/main/java/com/simibubi/create/foundation/render/KineticRenderer.java
# src/main/java/com/simibubi/create/foundation/render/SuperByteBuffer.java
# src/main/java/com/simibubi/create/foundation/render/backend/Backend.java
# src/main/java/com/simibubi/create/foundation/render/backend/instancing/InstancedTileRenderer.java
# src/main/java/com/simibubi/create/foundation/utility/BlockHelper.java
# src/main/java/com/simibubi/create/foundation/utility/ColorHelper.java
# src/main/java/com/simibubi/create/foundation/utility/Lang.java
# src/main/java/com/simibubi/create/foundation/utility/MatrixStacker.java
# src/main/java/com/simibubi/create/foundation/utility/TreeCutter.java
# src/main/java/com/simibubi/create/foundation/utility/VecHelper.java
# src/main/java/com/simibubi/create/foundation/utility/placement/IPlacementHelper.java
# src/main/java/com/simibubi/create/foundation/utility/placement/util/PoleHelper.java
2021-03-20 12:58:02 +01:00
JozsefA
b7ec884b9c
Includes, quaternions, and frames.
...
- 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
2021-03-18 14:36:37 -07:00
JozsefA
e1c16d869d
Some semblance of immersive portals compat.
...
- Each world gets its own KineticRenderer now.
2021-03-15 15:58:41 -07:00
JozsefA
52eed2bab3
Instanced Gauges and Valves, DRY lighting.
2021-03-15 14:20:13 -07:00
JozsefA
b71c831a07
Lieutenant Scatterbrain.
...
- User no longer has to manually add instances, new hook instead.
- Use registrate for InstanceFactories.
- Instanced levers.
- Instanced hand cranks.
- Reorganize PhysicalFloat and LerpedFloat.
2021-03-13 20:45:24 -08:00
JozsefA
f9eb4dd2e7
Pondering back and forth.
...
- Only about gantries so far.
- Reduce Backend log spam.
2021-03-11 15:59:26 -08:00
JozsefA
c54d80a161
Better bounding boxes for bearings.
...
- Fix bug causing entities to slip off the far corners of bearing contraptions.
- This was already implemented for BearingLighter.java, now it's promoted to Contraption.java.
- Promote anonymous WrappedWorld in Contraption.java to inner class.
2021-03-10 17:08:20 -08:00
JozsefA
b7f0fe9b10
Oops engine stuff is okay again.
2021-03-10 16:09:17 -08:00
JozsefA
2ddf57cd76
Instanced mixers and presses.
2021-03-09 15:46:15 -08:00
JozsefA
95eabe9cf9
Instanced arms.
2021-03-09 14:22:20 -08:00
JozsefA
33d718d653
Check if worlds support the flywheel backend.
2021-03-08 15:24:58 -08:00
JozsefA
e943705fb7
Merge remote-tracking branch 'upstream/mc1.15/dev' into mc1.15/dev
...
# Conflicts:
# src/main/java/com/simibubi/create/AllTileEntities.java
# src/main/resources/META-INF/accesstransformer.cfg
2021-03-08 11:06:35 -08:00
simibubi
1a315a11cf
Merge branch 'mc1.15/ponder-ui' into mc1.15/dev
2021-03-08 17:29:06 +01:00
JozsefA
b31f4d09bd
Housekeeping.
2021-03-08 02:27:56 -08:00
JozsefA
8ce0f47f01
No more 7 circles of callbacks.
...
- Instead of using consumers to edit instance data, just give the user a pointer to the data.
- Easier to use, more predictable access.
2021-03-08 02:02:47 -08:00
JozsefA
d0e5be24d7
Transformed models.
2021-03-08 00:36:23 -08:00
JozsefA
bb3fed2a3b
Towards better normals.
...
- Easier SuperByteBuffer transform settings.
- Some cleanup here and there.
2021-03-06 21:46:17 -08:00
JozsefA
25fdf08e11
Fog modes for new rendering.
...
- For each fog mode, compile a different version of each shader.
- Could maybe do some fancier preprocessing to make writing shaders easier?
2021-03-04 23:43:28 -08:00
JozsefA
fe492c5d75
Better instance deletions.
...
- Defer element removal until just before the model is drawn.
- Use a modified version of ArrayList#removeIf to delete the instances and adjust the keys.
2021-03-03 17:14:19 -08:00
JozsefA
9d77f85b94
Fix crash on world reload.
2021-03-03 13:10:44 -08:00
JozsefA
b1dc36d358
Trying to tick everything is slow.
...
- Keep track of tickable instances separately.
2021-03-03 02:37:04 -08:00
simibubi
c1c6e5e046
Controlled attachment
...
- Added the Sticker, a redstone-driven block attachment component
- Fixed lighting of TileEntities lowered by a pulley
2021-03-03 05:21:58 +01:00
JozsefA
5499fdbad0
The flappening.
...
Tunnel and funnel flaps are now rendered with the new engine.
2021-03-02 15:54:31 -08:00
JozsefA
55f1b538b5
Only contraptions use EBOs now.
...
Tight light bounds for bearing contraptions.
2021-02-27 21:35:45 -08:00
JozsefA
884f19d518
Fix issue when rendering very large contraptions.
2021-02-27 18:29:35 -08:00