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 0000000..2e084d9 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/blank.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/checkerboard.png b/src/main/resources/assets/effortlessbuilding/textures/special/checkerboard.png new file mode 100644 index 0000000..36b5c17 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/checkerboard.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/cutout_checkerboard.png b/src/main/resources/assets/effortlessbuilding/textures/special/cutout_checkerboard.png new file mode 100644 index 0000000..7479d32 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/cutout_checkerboard.png differ 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 0000000..f5a28c1 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/glue.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/highlighted_checkerboard.png b/src/main/resources/assets/effortlessbuilding/textures/special/highlighted_checkerboard.png new file mode 100644 index 0000000..e74e272 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/highlighted_checkerboard.png differ 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 0000000..177a344 Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/selection.png differ diff --git a/src/main/resources/assets/effortlessbuilding/textures/special/thin_checkerboard.png b/src/main/resources/assets/effortlessbuilding/textures/special/thin_checkerboard.png new file mode 100644 index 0000000..2bdb33c Binary files /dev/null and b/src/main/resources/assets/effortlessbuilding/textures/special/thin_checkerboard.png differ