Commit graph

120 commits

Author SHA1 Message Date
Jozufozu
452866498c Merge branch '1.20.1/dev' into 1.21.1/dev
# Conflicts:
#	buildSrc/src/main/kotlin/dev/engine_room/gradle/subproject/SubprojectExtension.kt
#	neoforge/build.gradle.kts
#	vanillinNeoForge/build.gradle.kts
2025-03-01 22:07:00 -08:00
Jozufozu
73341320ac What is your build?
- Add build numbers in mod version strings
- Remove default process resources from SubprojectExtension
2025-03-01 16:44:57 -08:00
PepperCode1
8315a3f98e Merge remote-tracking branch 'refs/remotes/origin/1.20.1/dev' into 1.21.1/dev 2025-02-27 20:32:10 -08:00
PepperCode1
8c8f6bce56 Level drain
- Remove BakedModelBufferer.ThreadLocalObjects.level from Forge and Fabric versions
2025-02-27 19:57:17 -08:00
PepperCode1
50e0cb32a4 No longer multi
- Rename MultiBlockModelBuilder to BlockModelBuilder
2025-02-27 19:42:47 -08:00
PepperCode1
1336fdb081 Model assembly line
- Remove BlockModelBuilder and its subclasses
- Remove BakedModelBuilder.blockState
- Add BakedModelBuilder.pos
- While buffering from BakedModelBuilder, use state and pos to get random seed
- Make model builder method parameters nullable to allow resetting to defaults
- On Forge, change default model data and lookup to try to get model data from block entity from level
- Rename VirtualEmptyBlockGetter -> EmptyVirtualBlockGetter
- Remove EmptyVirtualBlockGetter.INSTANCE and EmptyVirtualBlockGetter.is()
- Convert OriginBlockAndTintGetter to SinglePosVirtualBlockGetter with control over which BlockPos is used
- Have FabricSinglePosVirtualBlockGetter.getBlockEntityRenderData check block entity's render data if no render data was set
2025-02-27 12:38:38 -08:00
Jozufozu
7adc132a0a Merge branch '1.20.1/dev' into 1.21.1/dev
# Conflicts:
#	common/src/api/java/dev/engine_room/flywheel/api/Flywheel.java
#	common/src/main/java/dev/engine_room/flywheel/impl/event/RenderContextImpl.java
#	common/src/main/java/dev/engine_room/flywheel/impl/mixin/LevelRendererMixin.java
#	fabric/src/lib/java/dev/engine_room/flywheel/lib/model/baked/MeshEmitter.java
#	fabric/src/main/java/dev/engine_room/flywheel/impl/FabricFlwConfig.java
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlywheelForge.java
#	neoforge/src/main/java/dev/engine_room/flywheel/impl/NeoForgeFlwConfig.java
2025-02-26 22:16:19 -08:00
Jozufozu
cbc524ca7a Merge remote-tracking branch 'Engine-Room/1.20.1/oit' into 1.20.1/dev
# Conflicts:
#	common/src/backend/java/dev/engine_room/flywheel/backend/compile/IndirectPrograms.java
#	fabric/src/backend/java/dev/engine_room/flywheel/backend/compile/FlwProgramsReloader.java
2025-02-26 21:58:35 -08:00
PepperCode1
71a5eba3b3 The choice is ours
- Allow "DEFAULT" to be used in place of a backend ID in commands and configs to dynamically and non-persistently select the best backend
2025-02-23 17:56:48 -08:00
PepperCode1
8aa610648a Registration not necessary
Do not register custom argument type infos to BuiltInRegistries.COMMAND_ARGUMENT_TYPE as it is a synced registry and Flywheel is client-side only. Doing so can cause errors when joining a dedicated server.
2025-02-23 16:30:34 -08:00
PepperCode1
d2a8d075a7 Assorted adjustments
- Add EmptyModel
- Move Flywheel.rl to ResourceUtil
- Move RenderContext from api to api.backend
- Improve LineModelBuilder
  - Fix exception when calling build twice in a row
  - Expose ensureCapacity
  - Return existing EmptyModel.INSTANCE when applicable
  - Try to shrink memory before finalizing model
2025-02-23 16:12:50 -08:00
Jozufozu
8407d206ba Texture this
- Add blue noise texture
2025-02-21 22:27:05 -08:00
Jozufozu
cfc210c9af Merge branch '1.20.1/dev' into 1.21.1/dev
# Conflicts:
#	gradle.properties
2025-01-26 17:28:50 -08:00
Jozufozu
4ca5e202a2 Is this thing on?
- Fix new fabric instances defaulting to flywheel:off
2025-01-25 10:37:46 -06:00
Jozufozu
6fc8d8dcdb Merge branch '1.20.1/dev' into 1.21.1/dev
# Conflicts:
#	neoforge/build.gradle.kts
#	vanillinNeoForge/build.gradle.kts
2025-01-21 17:26:30 -06:00
Jozufozu
10d3923bf5 Tragedy of the commons
- Publish common vanillin artifacts
- Extend JarTaskSet publish to accept an action
2025-01-18 15:00:33 -06:00
Jozufozu
99d976fb59 Uncharted: At wit's end
- Need to publish un-remapped sources for forge/mojmap based projects
2025-01-18 14:36:56 -06:00
IThundxr
09088569be
misc fixes 2025-01-17 19:50:29 -05:00
IThundxr
402cc4d2e3
Merge remote-tracking branch 'upstream/1.20.1/dev' into feat/multi-loader-1.21 2025-01-17 19:46:01 -05:00
Jozufozu
045b065166 I do declare
- Move source set bundling/common source set sharing logic into
  transitiveSourceSets and make it more flexible
- Remove commonProject field from platform extension
2025-01-12 19:03:32 -08:00
Jozufozu
0dc8f97b73 String theory
- Assume group/version are behind properties in subproject.init
- Force each subproject to manually specify their base archive name
- Don't generate mod/api artifact ids, just write them out by hand
- Remove DependentProject
2025-01-12 16:08:38 -08:00
Jozufozu
b6124be28a Scratch that
- Loom gets angry when a mod* dependency doesn't immediately exist so
  use a regular runtime dependency with the devlibs jar
- Strangely, the include dependency is just fine with the remap jar
- Move outgoing remapJar/jar configuration generation to JarTaskSet
- Don't actually need evaluationDependsOn
- Fix test mod id
2025-01-12 15:34:33 -08:00
Jozufozu
b541c19785 See yourself out
- Replace outgoing jars by directly consuming classes/resources from
  common
- Add vanillin logo
- Move subproject plugin logic to an extension so it can be configured
- Rename "mod_" properties to "flywheel_"
2025-01-12 14:04:21 -08:00
Jozufozu
6bea04ffee No need to get spicy
- Move common vanillin stuffs to a "vanillin" sourceset
- Add vanillinForge and vanillinFabric subprojects
- Mostly do gradling from scratch
- Export remap jars from platform projects to `include` in vanillin
  projects
2025-01-12 13:02:50 -08:00
IThundxr
849a095e12
Merge remote-tracking branch 'upstream/1.20.1/dev' into feat/multi-loader-1.21
# Conflicts:
#	neoforge/src/main/java/dev/engine_room/flywheel/impl/FlwCommands.java
#	neoforge/src/main/java/dev/engine_room/flywheel/impl/NeoForgeFlwConfig.java
2025-01-05 14:48:01 -05:00
Jozufozu
a89756a709 Nobody Else Shall Wonder
- Allow materials to specify the cardinal lighting mode
- Hard-code the cardinal lighting mode to be one of 3
  - Off
  - Chunk
  - Entity (default)
- This gives artists some control over how they want their models to
  appear in-game. Kryppers in particular noticed lighting discrepancies
  between a flywheel model and a block model
- Remove "useLightDirections" config, command, and uniform
- Remove "diffuse" flag from Material
2025-01-05 11:19:06 -08:00
IThundxr
14a6447806
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21
# Conflicts:
#	common/src/lib/java/dev/engine_room/flywheel/lib/internal/FlwLibXplat.java
#	common/src/lib/java/dev/engine_room/flywheel/lib/model/ModelUtil.java
#	common/src/lib/java/dev/engine_room/flywheel/lib/model/Models.java
#	fabric/src/lib/java/dev/engine_room/flywheel/lib/model/baked/FabricBakedModelBuilder.java
#	fabric/src/lib/java/dev/engine_room/flywheel/lib/model/baked/FabricBlockModelBuilder.java
#	fabric/src/lib/java/dev/engine_room/flywheel/lib/model/baked/FabricMultiBlockModelBuilder.java
#	fabric/src/main/java/dev/engine_room/flywheel/impl/FlwLibXplatImpl.java
#	forge/src/lib/java/dev/engine_room/flywheel/lib/model/baked/ForgeBakedModelBuilder.java
#	forge/src/lib/java/dev/engine_room/flywheel/lib/model/baked/ForgeBlockModelBuilder.java
#	forge/src/lib/java/dev/engine_room/flywheel/lib/model/baked/ForgeMultiBlockModelBuilder.java
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlywheelForge.java
#	neoforge/src/lib/java/dev/engine_room/flywheel/lib/model/baked/BakedModelBufferer.java
#	neoforge/src/main/java/dev/engine_room/flywheel/impl/FlwLibXplatImpl.java
2024-12-27 11:24:29 -05:00
Jozufozu
e57702f742 Chronically inline
- Replace ModelUtil.VANILLA_RENDERER with the actual vanilla renderer
- Inline it and remove the static field
- Remove the BlockRenderDispatcher parameter from all BakedModelBufferer
  functions
- Remove FlwLibLink#createVanillaBlockRenderDispatcher
2024-12-24 20:37:42 -08:00
Jozufozu
ddcc96e52a Cover me!
- Switch ResourceReloadCache to RendererReloadCache
2024-12-24 16:44:29 -08:00
IThundxr
9f37effbb1
Update fabric.mod.json 2024-12-13 06:38:38 -05:00
PepperCode1
2697fc11d3 Inline platform-specific model builders 2024-12-08 12:15:52 -08:00
IThundxr
db9e1b753a
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21 2024-12-08 10:55:55 -05:00
Jozufozu
0c195fef9f Manual light updates
- Update the BakedModelBufferers to default to zero sky light
2024-12-02 17:45:19 -08:00
IThundxr
eb1c56e9ac
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21 2024-11-16 13:44:29 -05:00
Jozufozu
3811da166c Wait a minute
- Add debug flag to disable frame/tick plan execution
- Should help debugging cases where a visual constructor produces a
  visual in an invalid state like the weeping shulker bug
2024-11-15 18:18:44 -08:00
IThundxr
89d87555e6
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21 2024-11-13 16:30:36 -05:00
PepperCode1
ac544245b3 Deferred default
- BackendManager.defaultBackend now dynamically computes the result every time it is invoked
- Forge backend config value now uses a supplier to provide the default backend
- Fix Fabric backend config being saved to "flw_backends" but loaded from "flw_backend"
2024-11-12 22:52:38 -08:00
IThundxr
c95bd4c722
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21
# Conflicts:
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlwCommands.java
2024-11-12 20:00:34 -05:00
IThundxr
fd786b0ad7
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21
# Conflicts:
#	.github/workflows/build.yml
#	forge/src/main/resources/META-INF/neoforge.mods.toml
2024-11-12 19:53:13 -05:00
Jozufozu
cfcb4246af Effective debugging
- Add light storage debug view courtesy of effect visuals
- Yellow boxes are filled in sections
- Red/green/blue bars represent the LUT
- Cyan boxes are the "wasted space" in the LUT. Freely representable
  sections that are simply not filled in
2024-11-12 13:33:30 -08:00
PepperCode1
69f4899ac6 VertexConsumer-related clean up
- Clean up VertexWriter to closer match BufferBuilder
- Clean up MeshEmitter on Fabric/NeoForge and remove BufferBuilderAccessor
- Remove model data and model data lookup parameters in NeoForge model builders; use IBlockGetterExtension#getModelData instead
- Fix artifact Minecraft version
2024-11-04 13:16:08 -08:00
IThundxr
461578ec0e
Automated testing (#269)
* Automated testing

* Testing testing

- Use 2 spaces for indents yaml
- Move setupTestMod to PlatformExtension
- Allow specifying the sourceSet for the testMod artifact
- Rename things to camelCase
- Use rootCompile from transitiveSourceSets for the testMod source sets
- Use a blanket remapTestModJar task in the gh actions build

* Fail slowly

- We want to know the results of both tests regardless

* Add workflow dispatch

* Shoes should be steel toed, dangerous stuff

* Update build.yml

* fix modid

* Update FlywheelTestModClient.java

* add debug logging

* fix syntax issues

* fix issues

* Update build.yml

* Add debug logging

* more logging

* get testmod from correct dir

* switch to env var

* Why wait?

- Immediately audit on client tick

* DidObfuscate

- Fix RenderSystemMixin on fabric
- setShaderFogShape's arguments need to be remapped, but the name of the
  function should not be. Fortunately mixin allows matching by function
  name alone

* Clever commit title

- Change the Fabric mod ID to match Forge
- Move "Flywheel Test Mod" to static
- Cleanup start/stop messages
- Use the client start event on Fabric

---------

Co-authored-by: Jozufozu <jozsefaug@gmail.com>
2024-11-03 17:57:47 -08:00
IThundxr
ad2f3c860b
Stubborn stubs
- Remove Stub SourceSet
2024-11-03 15:02:26 -05:00
IThundxr
d881ba5302
Twas a snowy night full of scripting the builds
- Post merge fixes
- Remove stubs
2024-11-01 22:08:09 -04:00
IThundxr
ad938399b4
post merge fixes 2024-10-29 17:48:20 -04:00
IThundxr
07e66bb299
Merge remote-tracking branch 'upstream/1.20/dev' into feat/multi-loader-1.21
# Conflicts:
#	common/src/lib/java/dev/engine_room/flywheel/lib/util/ShadersModHandler.java
#	common/src/main/java/dev/engine_room/flywheel/impl/FlwImplXplat.java
#	common/src/main/java/dev/engine_room/flywheel/impl/compat/SodiumCompat.java
#	common/src/main/java/dev/engine_room/flywheel/impl/mixin/BlockEntityTypeMixin.java
#	fabric/build.gradle.kts
#	fabric/src/main/java/dev/engine_room/flywheel/impl/FlwImplXplatImpl.java
#	fabric/src/main/java/dev/engine_room/flywheel/impl/FlwLibXplatImpl.java
#	fabric/src/main/java/dev/engine_room/flywheel/impl/mixin/sodium/ChunkBuilderMeshingTaskMixin.java
#	fabric/src/main/java/dev/engine_room/flywheel/impl/mixin/sodium/SodiumMixinPlugin.java
#	fabric/src/main/resources/fabric.mod.json
#	forge/build.gradle.kts
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlwImplXplatImpl.java
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlwLibXplatImpl.java
#	forge/src/main/java/dev/engine_room/flywheel/impl/FlywheelForge.java
#	forge/src/main/resources/META-INF/neoforge.mods.toml
#	gradle.properties
#	gradle/wrapper/gradle-wrapper.properties
2024-10-29 17:38:23 -04:00
IThundxr
3d2fdb7e83
Backport changes from 1.21.1 (#265)
* Backport changes from 1.21.1

* fix

* Fix building

* fix compile error

* fix

* fix build for real

* address reviews

* Fix sodium compat

* address requested changes

* mark rubidium as incompatible

* add missed call

* Should have worn steel toe boots

- Add "stub" sourceset to each subproject
- Directly pass vararg sourcesets to methods in PlatformExtension to
  avoid automatically shipping jars with the api stubs
- We may have to include stubs in setupLoomMod, but I don't think so
- A lot of this can be stripped back out if we don't need stub sources
  for the forge/fabric subprojects

* Guarded stubs

- Add Sodium 0.6 and Iris API stubs to stubs source set and remove Gradle dependencies on local Sodium jar, Iris, and Oculus
- Ensure usage of APIs that may not exist at runtime is in private classes and access is always guarded
- Change ShadersModHandler
  - Rename to ShadersModHelper
  - Convert methods to check for Iris' and Optifine's presence into static final fields
  - Move implementation to impl source set in form of IrisCompat and OptifineCompat classes
- Rename CompatMods to CompatMod and add public field to access mod ID
- Set BlockEntityType's Sodium predicate to null after it is removed
- Update repository links
- Remove local libs repository

---------

Co-authored-by: Jozufozu <jozsefaug@gmail.com>
Co-authored-by: PepperCode1 <44146161+PepperCode1@users.noreply.github.com>
2024-10-18 20:29:43 -07:00
IThundxr
c705fdfc6f
address requested changes 2024-10-14 18:06:34 -04:00
IThundxr
fa57f34c47
formatting changes 2024-10-14 17:53:30 -04:00
IThundxr
008b09891a
fix meshemitter 2024-10-14 17:44:55 -04:00