From c2d413fad0e6b8e9d29c8a93ea40a779aa966c14 Mon Sep 17 00:00:00 2001 From: Christian Knaapen Date: Sun, 15 Jan 2023 23:16:22 +0100 Subject: [PATCH] Added missing resources. Modified mods.toml. Fixed crash and double rendering of modifiers. --- build.gradle | 12 +++++- .../EffortlessBuilding.java | 2 +- .../render/RenderHandler.java | 11 +----- src/main/resources/META-INF/mods.toml | 13 +++++-- .../shaders/core/glowing_shader.fsh | 24 ++++++++++++ .../shaders/core/glowing_shader.json | 31 +++++++++++++++ .../shaders/core/glowing_shader.vsh | 36 ++++++++++++++++++ .../textures/special/blank.png | Bin 0 -> 99 bytes .../textures/special/checkerboard.png | Bin 0 -> 120 bytes .../textures/special/cutout_checkerboard.png | Bin 0 -> 121 bytes .../textures/special/glue.png | Bin 0 -> 223 bytes .../special/highlighted_checkerboard.png | Bin 0 -> 120 bytes .../textures/special/selection.png | Bin 0 -> 147 bytes .../textures/special/thin_checkerboard.png | Bin 0 -> 121 bytes 14 files changed, 114 insertions(+), 15 deletions(-) create mode 100644 src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.fsh create mode 100644 src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.json create mode 100644 src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.vsh create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/blank.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/checkerboard.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/cutout_checkerboard.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/glue.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/highlighted_checkerboard.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/selection.png create mode 100644 src/main/resources/assets/effortlessbuilding/textures/special/thin_checkerboard.png diff --git a/build.gradle b/build.gradle index ce6f92c..043d4d5 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { id 'net.minecraftforge.gradle' version '5.1.+' } -version = '1.19-2.38' +version = '1.19-2.40' group = 'nl.requios.effortlessbuilding' archivesBaseName = 'effortlessbuilding' @@ -36,7 +36,11 @@ minecraft { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', 'effortlessbuilding' - + + // Flywheel + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { effortlessbuilding { source sourceSets.main @@ -53,6 +57,10 @@ minecraft { property 'forge.enabledGameTestNamespaces', 'effortlessbuilding' + // Flywheel + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { effortlessbuilding { source sourceSets.main diff --git a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java index 3dd7e3f..7d3db47 100644 --- a/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java +++ b/src/main/java/nl/requios/effortlessbuilding/EffortlessBuilding.java @@ -63,7 +63,7 @@ public class EffortlessBuilding { modEventBus.addListener(EffortlessBuilding::setup); - DistExecutor.safeRunWhenOn(Dist.CLIENT, () -> () -> EffortlessBuildingClient.onConstructorClient(modEventBus, forgeEventBus)); + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> EffortlessBuildingClient.onConstructorClient(modEventBus, forgeEventBus)); ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus()); CONTAINERS.register(FMLJavaModLoadingContext.get().getModEventBus()); diff --git a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java index ec8d990..d557a00 100644 --- a/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java +++ b/src/main/java/nl/requios/effortlessbuilding/render/RenderHandler.java @@ -1,6 +1,5 @@ package nl.requios.effortlessbuilding.render; -import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; @@ -20,20 +19,14 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RenderLevelLastEvent; import net.minecraftforge.client.event.RenderLevelStageEvent; import net.minecraftforge.client.model.data.ModelData; -import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; import nl.requios.effortlessbuilding.EffortlessBuilding; -import nl.requios.effortlessbuilding.EffortlessBuildingClient; import nl.requios.effortlessbuilding.buildmode.ModeSettingsManager; import nl.requios.effortlessbuilding.buildmodifier.ModifierSettingsManager; -import nl.requios.effortlessbuilding.create.CreateClient; -import nl.requios.effortlessbuilding.create.foundation.render.SuperRenderTypeBuffer; -import nl.requios.effortlessbuilding.create.foundation.utility.AnimationTickHolder; - -import static net.minecraftforge.client.event.RenderLevelStageEvent.Stage.AFTER_PARTICLES; /*** * Main render class for Effortless Building @@ -42,7 +35,7 @@ import static net.minecraftforge.client.event.RenderLevelStageEvent.Stage.AFTER_ public class RenderHandler { @SubscribeEvent - public static void onRender(RenderLevelStageEvent event) { + public static void onRender(RenderLevelLastEvent event) { Vec3 cameraPos = Minecraft.getInstance().gameRenderer.getMainCamera().getPosition(); // float pt = AnimationTickHolder.getPartialTicks(); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 37db863..d7d8f41 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -20,13 +20,20 @@ Makes building easier by providing tools like mirrors, arrays, build modes and a [[dependencies.effortlessbuilding]] modId="forge" mandatory=true - versionRange="[41,)" + versionRange="[43.0.0,)" ordering="NONE" side="BOTH" [[dependencies.effortlessbuilding]] modId="minecraft" mandatory=true - versionRange="[1.18.1,1.20)" + versionRange="[1.19.1,1.20)" ordering="NONE" - side="BOTH" \ No newline at end of file + side="BOTH" + +[[dependencies.effortlessbuilding]] + modId="flywheel" + mandatory=true + versionRange="[0.6.8,0.6.9)" + ordering="AFTER" + side="CLIENT" \ No newline at end of file diff --git a/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.fsh b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.fsh new file mode 100644 index 0000000..ff27aab --- /dev/null +++ b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.fsh @@ -0,0 +1,24 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; +uniform vec4 FogColor; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 lightMapColor; +in vec2 texCoord0; +in vec4 normal; + +out vec4 fragColor; + +void main() { + vec4 color = texture(Sampler0, texCoord0) * vertexColor * ColorModulator; + color *= lightMapColor; + fragColor = linear_fog(color, vertexDistance, FogStart, FogEnd, FogColor); +} diff --git a/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.json b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.json new file mode 100644 index 0000000..52cfb6d --- /dev/null +++ b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.json @@ -0,0 +1,31 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "effortlessbuilding:glowing_shader", + "fragment": "effortlessbuilding:glowing_shader", + "attributes": [ + "Position", + "Color", + "UV0", + "UV1", + "UV2", + "Normal" + ], + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler2" } + ], + "uniforms": [ + { "name": "ModelViewMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ProjMat", "type": "matrix4x4", "count": 16, "values": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "IViewRotMat", "type": "matrix3x3", "count": 9, "values": [ 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] }, + { "name": "FogColor", "type": "float", "count": 4, "values": [ 0.0, 0.0, 0.0, 0.0 ] }, + { "name": "FogShape", "type": "int", "count": 1, "values": [ 0 ] } + ] +} diff --git a/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.vsh b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.vsh new file mode 100644 index 0000000..b47f08e --- /dev/null +++ b/src/main/resources/assets/effortlessbuilding/shaders/core/glowing_shader.vsh @@ -0,0 +1,36 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in vec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; +uniform mat3 IViewRotMat; +uniform int FogShape; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 lightMapColor; +out vec2 texCoord0; +out vec2 texCoord1; +out vec4 normal; + +void main() { + gl_Position = ProjMat * ModelViewMat * vec4(Position, 1.0); + + vertexDistance = fog_distance(ModelViewMat, IViewRotMat * Position, FogShape); + vertexColor = Color; + lightMapColor = texelFetch(Sampler2, UV2 / 16, 0); + texCoord0 = UV0; + texCoord1 = UV1; + normal = ProjMat * ModelViewMat * vec4(Normal, 0.0); +} diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/blank.png b/src/main/resources/assets/effortlessbuilding/textures/special/blank.png new file mode 100644 index 0000000000000000000000000000000000000000..2e084d97d231ce0b73c9fdfbf8e6c811997b0f48 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!D3?x-;bCrM;OS+@4BLl<6e(pbstUx|zopr0JkI^tN;K2 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/glue.png b/src/main/resources/assets/effortlessbuilding/textures/special/glue.png new file mode 100644 index 0000000000000000000000000000000000000000..f5a28c191b1d21e61d08e004adad49bd6b669f7a GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHVEbxddW?^9T5Zxc-NOfB%3?k=3#XfKsd_L4Lsuj521? zQhrJ&fdU?$E{-7;jI0M8MVk#695(ugGtOq_6FtDlSS#><*0d*Uq!xAE_^b9%CZlmR zQ>gInRkx#`uFN{RZrO#8sy4b(57w%^(OU89aA>muzvx3DHio+W{2zBd(O(9XV(@hJ Kb6Mw<&;$VN$0Pax literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/selection.png b/src/main/resources/assets/effortlessbuilding/textures/special/selection.png new file mode 100644 index 0000000000000000000000000000000000000000..177a3445d07b3c0ee994f0b5e093e7d257c909f3 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9Ea{HEjtmSN`?>!lvI6-$0X`wF zK>Gjx|DQg6diCnnImPfgAfK@$$S;_|;n|HeAV<~H#WAGfR`QMmC5@el+yX`~m=u|} n10l0;zywCc7YrgQVX_P>