From 39d466dc26e487430ca609b010e839babc46e428 Mon Sep 17 00:00:00 2001 From: alpha Date: Sun, 30 Jun 2024 15:50:47 -0500 Subject: [PATCH 01/10] feat: Bubble rim lighting based off of https://github.com/chrischristakis/Winston-Shield --- gradle.properties | 2 +- .../render/BakedModelRocketPartRenderer.java | 4 +- .../galacticraft/mod/GalacticraftClient.java | 3 ++ .../mod/client/model/GCModelLoader.java | 4 +- .../{GCSheets.java => GCRenderTypes.java} | 38 ++++++++++++++---- .../mod/client/model/types/ObjModel.java | 4 +- .../render/entity/BubbleEntityRenderer.java | 9 +---- .../client/render/entity/BuggyRenderer.java | 4 +- .../shaders/core/rendertype_bubble.fsh | 40 +++++++++++++++++++ .../shaders/core/rendertype_bubble.json | 32 +++++++++++++++ .../shaders/core/rendertype_bubble.vsh | 40 +++++++++++++++++++ 11 files changed, 156 insertions(+), 24 deletions(-) rename src/main/java/dev/galacticraft/mod/client/model/{GCSheets.java => GCRenderTypes.java} (70%) create mode 100644 src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.fsh create mode 100644 src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.json create mode 100644 src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.vsh diff --git a/gradle.properties b/gradle.properties index c9b2bb6fc..2a5087fe4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ mod.group=dev.galacticraft mod.name=Galacticraft # Dependencies -fabric.version=0.96.11+1.20.4 +fabric.version=0.97.1+1.20.4 cloth.config.version=13.0.121 modmenu.version=9.0.0 rei.version=14.0.688 diff --git a/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java b/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java index 3767dee25..1fa6a69a1 100644 --- a/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java +++ b/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java @@ -30,7 +30,7 @@ import dev.galacticraft.api.entity.rocket.render.RocketPartRenderer; import dev.galacticraft.api.rocket.entity.Rocket; import dev.galacticraft.mod.client.model.GCBakedModel; -import dev.galacticraft.mod.client.model.GCSheets; +import dev.galacticraft.mod.client.model.GCRenderTypes; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; @@ -97,7 +97,7 @@ public void render(ClientLevel world, PoseStack matrices, Rocket rocket, MultiBu // VertexConsumer vertexConsumer = vertices.getBuffer(layer.get()); // RenderSystem.setShader(GameRenderer::getPositionColorTexShader); - VertexConsumer consumer = vertices.getBuffer(GCSheets.obj(GCSheets.OBJ_ATLAS)); + VertexConsumer consumer = vertices.getBuffer(GCRenderTypes.obj(GCRenderTypes.OBJ_ATLAS)); this.model.get().render(matrices, null, consumer, light, overlay); // Minecraft.getInstance().getBlockRenderer().getModelRenderer().renderModel(entry, vertexConsumer, null, this.model.get(), 1, 1, 1, light, overlay); } diff --git a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java index 169783ca9..8e0082a32 100644 --- a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java +++ b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java @@ -27,6 +27,7 @@ import dev.galacticraft.mod.client.GCKeyBinds; import dev.galacticraft.mod.client.gui.screen.ingame.*; import dev.galacticraft.mod.client.model.GCModelLoader; +import dev.galacticraft.mod.client.model.GCRenderTypes; import dev.galacticraft.mod.client.model.OxygenSealerSpriteProvider; import dev.galacticraft.mod.client.model.SolarPanelSpriteProvider; import dev.galacticraft.mod.client.model.types.ObjModel; @@ -183,6 +184,8 @@ public void onInitializeClient() { ModelLoadingPlugin.register(GCModelLoader.INSTANCE); + GCRenderTypes.init(); + Constant.LOGGER.info("Client initialization complete. (Took {}ms.)", System.currentTimeMillis() - startInitTime); } diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java b/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java index c7457fb94..8246868d8 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java @@ -126,7 +126,7 @@ public ResourceLocation getFabricId() { public CompletableFuture reload(PreparationBarrier synchronizer, ResourceManager resourceManager, ProfilerFiller preparationsProfiler, ProfilerFiller reloadProfiler, Executor backgroundExecutor, Executor gameExecutor) { preparationsProfiler.startTick(); Map atlasMap = new HashMap<>(); - atlasMap.put(GCSheets.OBJ_ATLAS, Constant.id("obj")); + atlasMap.put(GCRenderTypes.OBJ_ATLAS, Constant.id("obj")); TextureManager textureManager = Minecraft.getInstance().getTextureManager(); RocketAtlasCallback.EVENT.invoker().collectAtlases(atlasMap, textureManager); this.atlases = new AtlasSet(atlasMap, textureManager); @@ -267,7 +267,7 @@ public AtlasSet getAtlases() { } public TextureAtlasSprite getDefaultSprite() { - return this.atlases.getAtlas(GCSheets.OBJ_ATLAS).getSprite(WHITE_SPRITE); + return this.atlases.getAtlas(GCRenderTypes.OBJ_ATLAS).getSprite(WHITE_SPRITE); } public record ReloadState( diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCSheets.java b/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java similarity index 70% rename from src/main/java/dev/galacticraft/mod/client/model/GCSheets.java rename to src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java index d0924d155..c5a8ad876 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCSheets.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java @@ -25,16 +25,32 @@ import com.mojang.blaze3d.vertex.DefaultVertexFormat; import com.mojang.blaze3d.vertex.VertexFormat; import dev.galacticraft.mod.Constant; +import net.fabricmc.fabric.api.client.rendering.v1.CoreShaderRegistrationCallback; import net.minecraft.Util; +import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.RenderStateShard; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; import java.util.function.BiFunction; -public class GCSheets { +public class GCRenderTypes { public static final ResourceLocation OBJ_ATLAS = Constant.id("textures/atlas/obj.png"); + @Nullable + private static ShaderInstance rendertypeBubbleShader; + + public static final RenderStateShard.ShaderStateShard BUBBLE_SHADER = new RenderStateShard.ShaderStateShard( + GCRenderTypes::getRendertypeBubbleShader + ); + + @Nullable + public static ShaderInstance getRendertypeBubbleShader() { + return rendertypeBubbleShader; + } + public static final BiFunction OBJ = Util.memoize( (texture, composite) -> { return RenderType.create("rocket", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.TRIANGLES, RenderType.TRANSIENT_BUFFER_SIZE, true, false, RenderType.CompositeState.builder() @@ -48,17 +64,17 @@ public class GCSheets { } ); - private static final BiFunction ENTITY_TRANSLUCENT_EMISSIVE = Util.memoize( + private static final BiFunction BUBBLE = Util.memoize( ((texture, composite) -> { RenderType.CompositeState compositeState = RenderType.CompositeState.builder() - .setShaderState(RenderType.RENDERTYPE_ENTITY_TRANSLUCENT_EMISSIVE_SHADER) + .setShaderState(BUBBLE_SHADER) .setTextureState(new RenderStateShard.TextureStateShard(texture, false, false)) .setTransparencyState(RenderType.TRANSLUCENT_TRANSPARENCY) .setCullState(RenderType.NO_CULL) .setWriteMaskState(RenderType.COLOR_WRITE) .setOverlayState(RenderType.OVERLAY) .createCompositeState(composite); - return RenderType.create("entity_translucent_emissive", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.TRIANGLES, RenderType.TRANSIENT_BUFFER_SIZE, true, true, compositeState); + return RenderType.create("entity_bubble", DefaultVertexFormat.NEW_ENTITY, VertexFormat.Mode.TRIANGLES, RenderType.TRANSIENT_BUFFER_SIZE, true, true, compositeState); }) ); @@ -70,11 +86,17 @@ public static RenderType obj(ResourceLocation texture, boolean outline) { return OBJ.apply(texture, outline); } - public static RenderType entityTranslucentEmissive(ResourceLocation texture, boolean outline) { - return ENTITY_TRANSLUCENT_EMISSIVE.apply(texture, outline); + public static RenderType bubble(ResourceLocation texture, boolean outline) { + return BUBBLE.apply(texture, outline); + } + + public static RenderType bubble(ResourceLocation texture) { + return bubble(texture, true); } - public static RenderType entityTranslucentEmissive(ResourceLocation texture) { - return entityTranslucentEmissive(texture, true); + public static void init() { + CoreShaderRegistrationCallback.EVENT.register(context -> { + context.register(Constant.id("rendertype_bubble"), DefaultVertexFormat.NEW_ENTITY, shader -> rendertypeBubbleShader = shader); + }); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java b/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java index ae54c7a88..957ed65f2 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java @@ -32,7 +32,7 @@ import dev.galacticraft.mod.client.model.BakedObjModel; import dev.galacticraft.mod.client.model.GCBakedModel; import dev.galacticraft.mod.client.model.GCModel; -import dev.galacticraft.mod.client.model.GCSheets; +import dev.galacticraft.mod.client.model.GCRenderTypes; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.Material; import net.minecraft.resources.ResourceLocation; @@ -70,7 +70,7 @@ public GCBakedModel bake(ResourceManager resourceManager, Function bakedMaterials = new ArrayList<>(); for (Mtl material : materials) { if (material.getMapKdOptions() != null && material.getMapKdOptions().getFileName() != null) - bakedMaterials.add(new BakedMaterial(material, spriteGetter.apply(new Material(atlas.orElse(GCSheets.OBJ_ATLAS), new ResourceLocation(material.getMapKdOptions().getFileName()))))); + bakedMaterials.add(new BakedMaterial(material, spriteGetter.apply(new Material(atlas.orElse(GCRenderTypes.OBJ_ATLAS), new ResourceLocation(material.getMapKdOptions().getFileName()))))); } return new BakedObjModel(obj, bakedMaterials); diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/BubbleEntityRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/entity/BubbleEntityRenderer.java index 1c3aeacd3..edaca412d 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/BubbleEntityRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/BubbleEntityRenderer.java @@ -27,22 +27,17 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.client.model.GCBakedModel; import dev.galacticraft.mod.client.model.GCModelLoader; -import dev.galacticraft.mod.client.model.GCSheets; +import dev.galacticraft.mod.client.model.GCRenderTypes; import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; import dev.galacticraft.mod.content.entity.BubbleEntity; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.culling.Frustum; import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.client.resources.model.BakedModel; -import net.minecraft.core.Direction; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.block.entity.BlockEntity; @@ -80,7 +75,7 @@ public void render(BubbleEntity entity, float yaw, float tickDelta, PoseStack ma matrices.pushPose(); matrices.translate(0.5F, 1.0F, 0.5F); matrices.scale((float) size, (float) size, (float) size); - VertexConsumer consumer = vertexConsumers.getBuffer(GCSheets.entityTranslucentEmissive(GCSheets.OBJ_ATLAS)); + VertexConsumer consumer = vertexConsumers.getBuffer(GCRenderTypes.bubble(GCRenderTypes.OBJ_ATLAS)); // for (BakedQuad quad : bubbleModel.getQuads(null, null, entity.level().random)) { // consumer.putBulkData(matrices.last(), quad, 1, 1, 1, Integer.MAX_VALUE, OverlayTexture.NO_OVERLAY); // } diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/BuggyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/entity/BuggyRenderer.java index 3314919b0..05bebf4ca 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/BuggyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/BuggyRenderer.java @@ -29,7 +29,7 @@ import dev.galacticraft.mod.client.model.GCBakedModel; import dev.galacticraft.mod.client.model.GCModelLoader; import dev.galacticraft.mod.client.model.GCModelState; -import dev.galacticraft.mod.client.model.GCSheets; +import dev.galacticraft.mod.client.model.GCRenderTypes; import dev.galacticraft.mod.content.entity.Buggy; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.entity.EntityRenderer; @@ -61,7 +61,7 @@ public void render(Buggy buggy, float yaw, float tickDelta, PoseStack matrices, if (this.buggyModel == null) this.buggyModel = GCModelLoader.INSTANCE.getModel(MODEL); float pitch = Mth.lerp(tickDelta, buggy.xRotO, buggy.getXRot()); - VertexConsumer consumer = vertexConsumers.getBuffer(GCSheets.obj(GCSheets.OBJ_ATLAS)); + VertexConsumer consumer = vertexConsumers.getBuffer(GCRenderTypes.obj(GCRenderTypes.OBJ_ATLAS)); matrices.pushPose(); matrices.scale(1.0F, 1.0F, 1.0F); matrices.mulPose(Axis.YP.rotationDegrees(180.0F - yaw)); diff --git a/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.fsh b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.fsh new file mode 100644 index 000000000..69861f0b7 --- /dev/null +++ b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.fsh @@ -0,0 +1,40 @@ +#version 150 + +#moj_import + +uniform sampler2D Sampler0; + +uniform vec2 ScreenSize; +uniform vec4 ColorModulator; +uniform float FogStart; +uniform float FogEnd; + +in float vertexDistance; +in vec4 vertexColor; +in vec4 overlayColor; +in vec2 texCoord0; +in vec4 normal; +in vec3 normal2; +in vec3 viewDir; + +out vec4 fragColor; + +void main() { + // - Rim lighting - + vec3 viewAngle = normalize(-viewDir); + + // The more orthogonal the camera is to the fragment, the stronger the rim light. + // abs() so that the back faces get treated the same as the front, giving a rim effect. + float rimStrength = 1 - abs(dot(viewAngle, normal2)); // The more orthogonal, the stronger + + float rimFactor = pow(rimStrength, 6); // higher power = sharper rim light + vec4 rim = vec4(rimFactor); + + vec4 color = texture(Sampler0, texCoord0); + if (color.a < 0.1) { + discard; + } + color *= vertexColor * ColorModulator; + color.rgb = mix(overlayColor.rgb, color.rgb, overlayColor.a); + fragColor = color + rim * linear_fog_fade(vertexDistance, FogStart, FogEnd); +} diff --git a/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.json b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.json new file mode 100644 index 000000000..3ec0af925 --- /dev/null +++ b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.json @@ -0,0 +1,32 @@ +{ + "blend": { + "func": "add", + "srcrgb": "srcalpha", + "dstrgb": "1-srcalpha" + }, + "vertex": "galacticraft:rendertype_bubble", + "fragment": "galacticraft:rendertype_bubble", + "attributes": [ + "Position", + "Color", + "UV0", + "UV1", + "UV2", + "Normal" + ], + "samplers": [ + { "name": "Sampler0" }, + { "name": "Sampler1" }, + { "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": "ScreenSize", "type": "float", "count": 2, "values": [ 1.0, 1.0 ] }, + { "name": "ColorModulator", "type": "float", "count": 4, "values": [ 1.0, 1.0, 1.0, 1.0 ] }, + { "name": "Light0_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "Light1_Direction", "type": "float", "count": 3, "values": [0.0, 0.0, 0.0] }, + { "name": "FogStart", "type": "float", "count": 1, "values": [ 0.0 ] }, + { "name": "FogEnd", "type": "float", "count": 1, "values": [ 1.0 ] } + ] +} diff --git a/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.vsh b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.vsh new file mode 100644 index 000000000..4c923f2ab --- /dev/null +++ b/src/main/resources/assets/galacticraft/shaders/core/rendertype_bubble.vsh @@ -0,0 +1,40 @@ +#version 150 + +#moj_import + +in vec3 Position; +in vec4 Color; +in vec2 UV0; +in ivec2 UV1; +in ivec2 UV2; +in vec3 Normal; + +uniform sampler2D Sampler1; +uniform sampler2D Sampler2; + +uniform mat4 ModelViewMat; +uniform mat4 ProjMat; + +uniform vec3 Light0_Direction; +uniform vec3 Light1_Direction; + +out float vertexDistance; +out vec4 vertexColor; +out vec4 overlayColor; +out vec2 texCoord0; +out vec4 normal; +out vec3 normal2; +out vec3 viewDir; + +void main() { + vec4 viewSpace = ModelViewMat * vec4(Position, 1.0); + viewDir = vec3(viewSpace); + normal2 = Normal; + gl_Position = ProjMat * viewSpace; + + vertexDistance = length((ModelViewMat * vec4(Position, 1.0)).xyz); + vertexColor = minecraft_mix_light(Light0_Direction, Light1_Direction, Normal, Color); + overlayColor = texelFetch(Sampler1, UV1, 0); + texCoord0 = UV0; + normal = ProjMat * ModelViewMat * vec4(Normal, 0.0); +} From 305d77bbf703ec4a144ffe05fbf0abc449365baf Mon Sep 17 00:00:00 2001 From: Addison Hanrattie <40609224+supersimple33@users.noreply.github.com> Date: Sun, 30 Jun 2024 17:57:37 -0400 Subject: [PATCH 02/10] fix: Correcting the ways pipes connect (#332) * Fixing the ways pipes connect * Only flag update if needed --- .../mod/api/pipe/impl/PipeNetworkImpl.java | 2 +- .../mod/api/wire/impl/WireNetworkImpl.java | 1 + .../aluminumwire/tier1/AluminumWireBlock.java | 4 +-- .../fluidpipe/GlassFluidPipeBlock.java | 34 +++++++++++++------ .../special/fluidpipe/PipeBlockEntity.java | 11 ++++-- 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/src/main/java/dev/galacticraft/mod/api/pipe/impl/PipeNetworkImpl.java b/src/main/java/dev/galacticraft/mod/api/pipe/impl/PipeNetworkImpl.java index 79a27927e..3b72481ba 100644 --- a/src/main/java/dev/galacticraft/mod/api/pipe/impl/PipeNetworkImpl.java +++ b/src/main/java/dev/galacticraft/mod/api/pipe/impl/PipeNetworkImpl.java @@ -60,7 +60,7 @@ public class PipeNetworkImpl extends SnapshotParticipant { long insert = (long) (requested * ratio); if (insert > 0) { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/aluminumwire/tier1/AluminumWireBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/aluminumwire/tier1/AluminumWireBlock.java index 792aab182..8dbf04fb6 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/aluminumwire/tier1/AluminumWireBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/aluminumwire/tier1/AluminumWireBlock.java @@ -97,8 +97,8 @@ public void onPlace(BlockState blockState, Level level, BlockPos blockPos, Block } if (changed) { wire.setChanged(); + level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); } - level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); } } @@ -112,9 +112,9 @@ public void neighborChanged(BlockState blockState, Level level, BlockPos blockPo if (direction != null) { if (!level.isClientSide && wire.getConnections()[direction.ordinal()] != (wire.getConnections()[direction.ordinal()] = wire.canConnect(direction) && EnergyStorage.SIDED.find(level, neighborPos, direction.getOpposite()) != null)) { level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); + wire.setChanged(); } } - wire.setChanged(); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java index 0d7b42822..c826c6ad3 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java @@ -29,6 +29,7 @@ import dev.galacticraft.mod.content.block.entity.networked.GlassFluidPipeBlockEntity; import dev.galacticraft.mod.content.item.StandardWrenchItem; import dev.galacticraft.mod.util.ConnectingBlockUtil; +import dev.galacticraft.mod.util.DirectionUtil; import dev.galacticraft.mod.util.FluidUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -80,11 +81,16 @@ public void setPlacedBy(Level level, BlockPos blockPos, BlockState blockState, @ livingEntity.setItemInHand(interactionHand, copy); } } + + // Regular Stuff + var changed = false; for (var direction : Constant.Misc.DIRECTIONS) { - var otherBlockEntity = level.getBlockEntity(blockPos.relative(direction)); - glassPipe.getConnections()[direction.ordinal()] = (otherBlockEntity instanceof Pipe pipe && pipe.canConnect(direction.getOpposite())) || FluidUtil.canAccessFluid(level, blockPos.relative(direction), direction); + changed |= glassPipe.getConnections()[direction.ordinal()] = glassPipe.canConnect(direction) && FluidUtil.canAccessFluid(level, blockPos.relative(direction), direction); + } + if (changed) { + glassPipe.setChanged(); + level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); } - level.updateNeighborsAt(blockPos, blockState.getBlock()); } } @@ -125,14 +131,20 @@ public InteractionResult use(BlockState blockState, Level level, BlockPos blockP @Override public void neighborChanged(BlockState blockState, Level level, BlockPos blockPos, Block block, BlockPos fromPos, boolean notify) { super.neighborChanged(blockState, level, blockPos, block, fromPos, notify); - var neighborState = level.getBlockState(fromPos); - var delta = fromPos.subtract(blockPos); - var direction = Direction.fromDelta(delta.getX(), delta.getY(), delta.getZ()); - - if (direction != null && level.getBlockEntity(blockPos) instanceof GlassFluidPipeBlockEntity glassPipe) { - var otherBlockEntity = level.getBlockEntity(fromPos); - glassPipe.getConnections()[direction.ordinal()] = !neighborState.isAir() && ((otherBlockEntity instanceof Pipe pipe && pipe.canConnect(direction.getOpposite())) || FluidUtil.canAccessFluid(level, fromPos, direction)); - level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); + + if (level.getBlockEntity(blockPos) instanceof PipeBlockEntity glassPipe) { + var direction = DirectionUtil.fromNormal(fromPos.getX() - blockPos.getX(), fromPos.getY() - blockPos.getY(), fromPos.getZ() - blockPos.getZ()); + + if (direction != null) { + if (!level.isClientSide + && glassPipe.getConnections()[direction.ordinal()] + != (glassPipe.getConnections()[direction.ordinal()] + = glassPipe.canConnect(direction) && FluidUtil.canAccessFluid(level, fromPos, direction)) + ) { + level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); + glassPipe.setChanged(); + } + } } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java index d44c9d398..b1a882f57 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java @@ -25,6 +25,7 @@ import dev.galacticraft.mod.api.pipe.Pipe; import dev.galacticraft.mod.api.pipe.PipeNetwork; import dev.galacticraft.mod.api.pipe.impl.PipeNetworkImpl; +import dev.galacticraft.mod.util.FluidUtil; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.fabricmc.fabric.api.transfer.v1.storage.Storage; import net.fabricmc.fabric.api.transfer.v1.storage.StoragePreconditions; @@ -36,11 +37,11 @@ import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.item.DyeColor; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; -import team.reborn.energy.api.EnergyStorage; import java.util.Collections; import java.util.Iterator; @@ -103,7 +104,7 @@ public boolean[] getConnections() { @Override public void updateConnection(BlockState state, BlockPos pos, BlockPos neighborPos, Direction direction) { - boolean connected = this.canConnect(direction) && EnergyStorage.SIDED.find(this.level, neighborPos, direction.getOpposite()) != null; + boolean connected = this.canConnect(direction) && FluidUtil.canAccessFluid(this.level, neighborPos, direction); if (this.connections[direction.get3DDataValue()] != connected) { this.connections[direction.get3DDataValue()] = connected; this.level.sendBlockUpdated(pos, state, state, 0); @@ -138,7 +139,7 @@ public boolean supportsExtraction() { @Override public boolean supportsInsertion() { - return true; + return this.maxTransferRate > 0; } @Override @@ -161,6 +162,10 @@ public void load(CompoundTag nbt) { super.load(nbt); this.readColorNbt(nbt); this.readConnectionNbt(nbt); + + if (this.level != null && this.level.isClientSide) { + this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_IMMEDIATE); + } } @Override From 4979d91a7167c1c8384b3f5e85f4ff28f7cc7481 Mon Sep 17 00:00:00 2001 From: JustAPotota <43710172+JustAPotota@users.noreply.github.com> Date: Wed, 10 Jul 2024 20:44:54 -0500 Subject: [PATCH 03/10] feat: full moon rock block set (#338) * feat: full moon rock block set * feat: moon rock recipes + stonecutting for decoration blocks * chore: unused import --- .../blockstates/chiseled_moon_rock_brick.json | 7 + .../blockstates/cracked_moon_rock_brick.json | 7 + .../cracked_moon_rock_brick_slab.json | 13 ++ .../cracked_moon_rock_brick_stairs.json | 209 ++++++++++++++++++ .../cracked_moon_rock_brick_wall.json | 90 ++++++++ .../blockstates/moon_rock_brick.json | 7 + .../blockstates/moon_rock_brick_slab.json | 13 ++ .../blockstates/moon_rock_brick_stairs.json | 209 ++++++++++++++++++ .../blockstates/moon_rock_brick_wall.json | 90 ++++++++ .../blockstates/moon_rock_pillar.json | 16 ++ .../blockstates/polished_moon_rock.json | 7 + .../blockstates/polished_moon_rock_slab.json | 13 ++ .../polished_moon_rock_stairs.json | 209 ++++++++++++++++++ .../blockstates/polished_moon_rock_wall.json | 90 ++++++++ .../assets/galacticraft/lang/en_us.json | 15 ++ .../block/chiseled_moon_rock_brick.json | 6 + .../models/block/cracked_moon_rock_brick.json | 6 + .../block/cracked_moon_rock_brick_slab.json | 8 + .../cracked_moon_rock_brick_slab_top.json | 8 + .../block/cracked_moon_rock_brick_stairs.json | 8 + .../cracked_moon_rock_brick_stairs_inner.json | 8 + .../cracked_moon_rock_brick_stairs_outer.json | 8 + ...racked_moon_rock_brick_wall_inventory.json | 6 + .../cracked_moon_rock_brick_wall_post.json | 6 + .../cracked_moon_rock_brick_wall_side.json | 6 + ...racked_moon_rock_brick_wall_side_tall.json | 6 + .../models/block/moon_rock_brick.json | 6 + .../models/block/moon_rock_brick_slab.json | 8 + .../block/moon_rock_brick_slab_top.json | 8 + .../models/block/moon_rock_brick_stairs.json | 8 + .../block/moon_rock_brick_stairs_inner.json | 8 + .../block/moon_rock_brick_stairs_outer.json | 8 + .../block/moon_rock_brick_wall_inventory.json | 6 + .../block/moon_rock_brick_wall_post.json | 6 + .../block/moon_rock_brick_wall_side.json | 6 + .../block/moon_rock_brick_wall_side_tall.json | 6 + .../models/block/moon_rock_pillar.json | 7 + .../models/block/polished_moon_rock.json | 6 + .../models/block/polished_moon_rock_slab.json | 8 + .../block/polished_moon_rock_slab_top.json | 8 + .../block/polished_moon_rock_stairs.json | 8 + .../polished_moon_rock_stairs_inner.json | 8 + .../polished_moon_rock_stairs_outer.json | 8 + .../polished_moon_rock_wall_inventory.json | 6 + .../block/polished_moon_rock_wall_post.json | 6 + .../block/polished_moon_rock_wall_side.json | 6 + .../polished_moon_rock_wall_side_tall.json | 6 + .../models/item/chiseled_moon_rock_brick.json | 3 + .../models/item/cracked_moon_rock_brick.json | 3 + .../item/cracked_moon_rock_brick_slab.json | 3 + .../item/cracked_moon_rock_brick_stairs.json | 3 + .../item/cracked_moon_rock_brick_wall.json | 3 + .../models/item/moon_rock_brick.json | 3 + .../models/item/moon_rock_brick_slab.json | 3 + .../models/item/moon_rock_brick_stairs.json | 3 + .../models/item/moon_rock_brick_wall.json | 3 + .../models/item/moon_rock_pillar.json | 3 + .../models/item/polished_moon_rock.json | 3 + .../models/item/polished_moon_rock_slab.json | 3 + .../item/polished_moon_rock_stairs.json | 3 + .../models/item/polished_moon_rock_wall.json | 3 + ...from_aluminum_decoration_stonecutting.json | 34 +++ ...from_aluminum_decoration_stonecutting.json | 34 +++ ...from_aluminum_decoration_stonecutting.json | 34 +++ ...b_from_bronze_decoration_stonecutting.json | 34 +++ ...s_from_bronze_decoration_stonecutting.json | 34 +++ ...l_from_bronze_decoration_stonecutting.json | 34 +++ .../chiseled_moon_rock_brick.json | 34 +++ ...ick_from_moon_rock_brick_stonecutting.json | 34 +++ ...ock_brick_from_moon_rock_stonecutting.json | 34 +++ ...b_from_cobbled_lunaslate_stonecutting.json | 34 +++ ...s_from_cobbled_lunaslate_stonecutting.json | 34 +++ ...l_from_cobbled_lunaslate_stonecutting.json | 34 +++ ...b_from_copper_decoration_stonecutting.json | 34 +++ ...s_from_copper_decoration_stonecutting.json | 34 +++ ...l_from_copper_decoration_stonecutting.json | 34 +++ ...racked_moon_basalt_brick_stonecutting.json | 34 +++ ...racked_moon_basalt_brick_stonecutting.json | 34 +++ ...racked_moon_basalt_brick_stonecutting.json | 34 +++ .../cracked_moon_rock_brick.json | 34 +++ .../cracked_moon_rock_brick_slab.json | 34 +++ ..._cracked_moon_rock_brick_stonecutting.json | 34 +++ .../cracked_moon_rock_brick_stairs.json | 34 +++ ..._cracked_moon_rock_brick_stonecutting.json | 34 +++ .../cracked_moon_rock_brick_wall.json | 34 +++ ..._cracked_moon_rock_brick_stonecutting.json | 34 +++ ...lab_from_dark_decoration_stonecutting.json | 34 +++ ...irs_from_dark_decoration_stonecutting.json | 34 +++ ...all_from_dark_decoration_stonecutting.json | 34 +++ ...iled_aluminum_decoration_stonecutting.json | 34 +++ ...iled_aluminum_decoration_stonecutting.json | 34 +++ ...iled_aluminum_decoration_stonecutting.json | 34 +++ ...tailed_bronze_decoration_stonecutting.json | 34 +++ ...tailed_bronze_decoration_stonecutting.json | 34 +++ ...tailed_bronze_decoration_stonecutting.json | 34 +++ ...tailed_copper_decoration_stonecutting.json | 34 +++ ...tailed_copper_decoration_stonecutting.json | 34 +++ ...tailed_copper_decoration_stonecutting.json | 34 +++ ...detailed_dark_decoration_stonecutting.json | 34 +++ ...detailed_dark_decoration_stonecutting.json | 34 +++ ...detailed_dark_decoration_stonecutting.json | 34 +++ ...detailed_iron_decoration_stonecutting.json | 34 +++ ...detailed_iron_decoration_stonecutting.json | 34 +++ ...detailed_iron_decoration_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...etailed_steel_decoration_stonecutting.json | 34 +++ ...etailed_steel_decoration_stonecutting.json | 34 +++ ...etailed_steel_decoration_stonecutting.json | 34 +++ ..._detailed_tin_decoration_stonecutting.json | 34 +++ ..._detailed_tin_decoration_stonecutting.json | 34 +++ ..._detailed_tin_decoration_stonecutting.json | 34 +++ ...iled_titanium_decoration_stonecutting.json | 34 +++ ...iled_titanium_decoration_stonecutting.json | 34 +++ ...iled_titanium_decoration_stonecutting.json | 34 +++ ...lab_from_iron_decoration_stonecutting.json | 34 +++ ...irs_from_iron_decoration_stonecutting.json | 34 +++ ...all_from_iron_decoration_stonecutting.json | 34 +++ ...late_slab_from_lunaslate_stonecutting.json | 34 +++ ...te_stairs_from_lunaslate_stonecutting.json | 34 +++ ...late_wall_from_lunaslate_stonecutting.json | 34 +++ ...ab_from_mars_cobblestone_stonecutting.json | 34 +++ ...rs_from_mars_cobblestone_stonecutting.json | 34 +++ ...ll_from_mars_cobblestone_stonecutting.json | 34 +++ ...one_slab_from_mars_stone_stonecutting.json | 34 +++ ...e_stairs_from_mars_stone_stonecutting.json | 34 +++ ...one_wall_from_mars_stone_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...meteoric_iron_decoration_stonecutting.json | 34 +++ ...b_from_moon_basalt_brick_stonecutting.json | 34 +++ ...s_from_moon_basalt_brick_stonecutting.json | 34 +++ ...l_from_moon_basalt_brick_stonecutting.json | 34 +++ ...lt_slab_from_moon_basalt_stonecutting.json | 34 +++ ..._stairs_from_moon_basalt_stonecutting.json | 34 +++ ...lt_wall_from_moon_basalt_stonecutting.json | 34 +++ .../recipes/building_blocks/moon_rock.json | 34 +++ .../building_blocks/moon_rock_brick.json | 34 +++ ...ock_brick_from_moon_rock_stonecutting.json | 34 +++ .../building_blocks/moon_rock_brick_slab.json | 34 +++ ...lab_from_moon_rock_brick_stonecutting.json | 34 +++ .../moon_rock_brick_stairs.json | 34 +++ ...irs_from_moon_rock_brick_stonecutting.json | 34 +++ .../building_blocks/moon_rock_brick_wall.json | 34 +++ ...all_from_moon_rock_brick_stonecutting.json | 34 +++ .../building_blocks/moon_rock_pillar.json | 34 +++ .../building_blocks/moon_rock_slab.json | 34 +++ ...rock_slab_from_moon_rock_stonecutting.json | 34 +++ .../building_blocks/moon_rock_stairs.json | 34 +++ ...ck_stairs_from_moon_rock_stonecutting.json | 34 +++ .../building_blocks/moon_rock_wall.json | 34 +++ ...rock_wall_from_moon_rock_stonecutting.json | 34 +++ .../building_blocks/polished_moon_rock.json | 34 +++ ...ock_from_moon_rock_brick_stonecutting.json | 34 +++ .../polished_moon_rock_slab.json | 34 +++ ..._from_polished_moon_rock_stonecutting.json | 34 +++ .../polished_moon_rock_stairs.json | 34 +++ ..._from_polished_moon_rock_stonecutting.json | 34 +++ .../polished_moon_rock_wall.json | 34 +++ ..._from_polished_moon_rock_stonecutting.json | 34 +++ ...ab_from_steel_decoration_stonecutting.json | 34 +++ ...rs_from_steel_decoration_stonecutting.json | 34 +++ ...ll_from_steel_decoration_stonecutting.json | 34 +++ ...slab_from_tin_decoration_stonecutting.json | 34 +++ ...airs_from_tin_decoration_stonecutting.json | 34 +++ ...wall_from_tin_decoration_stonecutting.json | 34 +++ ...from_titanium_decoration_stonecutting.json | 34 +++ ...from_titanium_decoration_stonecutting.json | 34 +++ ...from_titanium_decoration_stonecutting.json | 34 +++ .../blocks/chiseled_moon_rock_brick.json | 20 ++ .../blocks/cracked_moon_rock_brick.json | 20 ++ .../blocks/cracked_moon_rock_brick_slab.json | 20 ++ .../cracked_moon_rock_brick_stairs.json | 20 ++ .../blocks/cracked_moon_rock_brick_wall.json | 20 ++ .../loot_tables/blocks/moon_rock_brick.json | 20 ++ .../blocks/moon_rock_brick_slab.json | 20 ++ .../blocks/moon_rock_brick_stairs.json | 20 ++ .../blocks/moon_rock_brick_wall.json | 20 ++ .../loot_tables/blocks/moon_rock_pillar.json | 20 ++ .../blocks/polished_moon_rock.json | 20 ++ .../blocks/polished_moon_rock_slab.json | 20 ++ .../blocks/polished_moon_rock_stairs.json | 20 ++ .../blocks/polished_moon_rock_wall.json | 20 ++ .../recipes/aluminum_decoration.json | 1 + ...from_aluminum_decoration_stonecutting.json | 8 + ...from_aluminum_decoration_stonecutting.json | 8 + ...from_aluminum_decoration_stonecutting.json | 8 + .../recipes/bronze_decoration.json | 1 + ...b_from_bronze_decoration_stonecutting.json | 8 + ...s_from_bronze_decoration_stonecutting.json | 8 + ...l_from_bronze_decoration_stonecutting.json | 8 + .../recipes/chiseled_moon_rock_brick.json | 16 ++ ...ick_from_moon_rock_brick_stonecutting.json | 8 + ...ock_brick_from_moon_rock_stonecutting.json | 8 + ...b_from_cobbled_lunaslate_stonecutting.json | 8 + ...s_from_cobbled_lunaslate_stonecutting.json | 8 + ...l_from_cobbled_lunaslate_stonecutting.json | 8 + .../recipes/copper_decoration.json | 1 + ...b_from_copper_decoration_stonecutting.json | 8 + ...s_from_copper_decoration_stonecutting.json | 8 + ...l_from_copper_decoration_stonecutting.json | 8 + ...racked_moon_basalt_brick_stonecutting.json | 8 + ...racked_moon_basalt_brick_stonecutting.json | 8 + ...racked_moon_basalt_brick_stonecutting.json | 8 + .../recipes/cracked_moon_rock_brick.json | 10 + .../recipes/cracked_moon_rock_brick_slab.json | 16 ++ ..._cracked_moon_rock_brick_stonecutting.json | 8 + .../cracked_moon_rock_brick_stairs.json | 18 ++ ..._cracked_moon_rock_brick_stonecutting.json | 8 + .../recipes/cracked_moon_rock_brick_wall.json | 17 ++ ..._cracked_moon_rock_brick_stonecutting.json | 8 + ...lab_from_dark_decoration_stonecutting.json | 8 + ...irs_from_dark_decoration_stonecutting.json | 8 + ...all_from_dark_decoration_stonecutting.json | 8 + .../recipes/detailed_aluminum_decoration.json | 1 + ...iled_aluminum_decoration_stonecutting.json | 8 + ...iled_aluminum_decoration_stonecutting.json | 8 + ...iled_aluminum_decoration_stonecutting.json | 8 + .../recipes/detailed_bronze_decoration.json | 1 + ...tailed_bronze_decoration_stonecutting.json | 8 + ...tailed_bronze_decoration_stonecutting.json | 8 + ...tailed_bronze_decoration_stonecutting.json | 8 + .../recipes/detailed_copper_decoration.json | 1 + ...tailed_copper_decoration_stonecutting.json | 8 + ...tailed_copper_decoration_stonecutting.json | 8 + ...tailed_copper_decoration_stonecutting.json | 8 + ...detailed_dark_decoration_stonecutting.json | 8 + ...detailed_dark_decoration_stonecutting.json | 8 + ...detailed_dark_decoration_stonecutting.json | 8 + .../recipes/detailed_iron_decoration.json | 1 + ...detailed_iron_decoration_stonecutting.json | 8 + ...detailed_iron_decoration_stonecutting.json | 8 + ...detailed_iron_decoration_stonecutting.json | 8 + .../detailed_meteoric_iron_decoration.json | 1 + ...meteoric_iron_decoration_stonecutting.json | 8 + ...meteoric_iron_decoration_stonecutting.json | 8 + ...meteoric_iron_decoration_stonecutting.json | 8 + .../recipes/detailed_steel_decoration.json | 1 + ...etailed_steel_decoration_stonecutting.json | 8 + ...etailed_steel_decoration_stonecutting.json | 8 + ...etailed_steel_decoration_stonecutting.json | 8 + .../recipes/detailed_tin_decoration.json | 1 + ..._detailed_tin_decoration_stonecutting.json | 8 + ..._detailed_tin_decoration_stonecutting.json | 8 + ..._detailed_tin_decoration_stonecutting.json | 8 + .../recipes/detailed_titanium_decoration.json | 1 + ...iled_titanium_decoration_stonecutting.json | 8 + ...iled_titanium_decoration_stonecutting.json | 8 + ...iled_titanium_decoration_stonecutting.json | 8 + .../galacticraft/recipes/iron_decoration.json | 1 + ...lab_from_iron_decoration_stonecutting.json | 8 + ...irs_from_iron_decoration_stonecutting.json | 8 + ...all_from_iron_decoration_stonecutting.json | 8 + ...late_slab_from_lunaslate_stonecutting.json | 8 + ...te_stairs_from_lunaslate_stonecutting.json | 8 + ...late_wall_from_lunaslate_stonecutting.json | 8 + ...ab_from_mars_cobblestone_stonecutting.json | 8 + ...rs_from_mars_cobblestone_stonecutting.json | 8 + ...ll_from_mars_cobblestone_stonecutting.json | 8 + ...one_slab_from_mars_stone_stonecutting.json | 8 + ...e_stairs_from_mars_stone_stonecutting.json | 8 + ...one_wall_from_mars_stone_stonecutting.json | 8 + .../recipes/meteoric_iron_decoration.json | 1 + ...meteoric_iron_decoration_stonecutting.json | 8 + ...meteoric_iron_decoration_stonecutting.json | 8 + ...meteoric_iron_decoration_stonecutting.json | 8 + ...b_from_moon_basalt_brick_stonecutting.json | 8 + ...s_from_moon_basalt_brick_stonecutting.json | 8 + ...l_from_moon_basalt_brick_stonecutting.json | 8 + ...lt_slab_from_moon_basalt_stonecutting.json | 8 + ..._stairs_from_moon_basalt_stonecutting.json | 8 + ...lt_wall_from_moon_basalt_stonecutting.json | 8 + .../data/galacticraft/recipes/moon_rock.json | 10 + .../galacticraft/recipes/moon_rock_brick.json | 17 ++ ...ock_brick_from_moon_rock_stonecutting.json | 8 + .../recipes/moon_rock_brick_slab.json | 16 ++ ...lab_from_moon_rock_brick_stonecutting.json | 8 + .../recipes/moon_rock_brick_stairs.json | 18 ++ ...irs_from_moon_rock_brick_stonecutting.json | 8 + .../recipes/moon_rock_brick_wall.json | 17 ++ ...all_from_moon_rock_brick_stonecutting.json | 8 + .../recipes/moon_rock_pillar.json | 17 ++ .../galacticraft/recipes/moon_rock_slab.json | 16 ++ ...rock_slab_from_moon_rock_stonecutting.json | 8 + .../recipes/moon_rock_stairs.json | 18 ++ ...ck_stairs_from_moon_rock_stonecutting.json | 8 + .../galacticraft/recipes/moon_rock_wall.json | 17 ++ ...rock_wall_from_moon_rock_stonecutting.json | 8 + .../recipes/polished_moon_rock.json | 17 ++ ...ock_from_moon_rock_brick_stonecutting.json | 8 + .../recipes/polished_moon_rock_slab.json | 16 ++ ..._from_polished_moon_rock_stonecutting.json | 8 + .../recipes/polished_moon_rock_stairs.json | 18 ++ ..._from_polished_moon_rock_stonecutting.json | 8 + .../recipes/polished_moon_rock_wall.json | 17 ++ ..._from_polished_moon_rock_stonecutting.json | 8 + .../recipes/steel_decoration.json | 1 + ...ab_from_steel_decoration_stonecutting.json | 8 + ...rs_from_steel_decoration_stonecutting.json | 8 + ...ll_from_steel_decoration_stonecutting.json | 8 + .../galacticraft/recipes/tin_decoration.json | 1 + ...slab_from_tin_decoration_stonecutting.json | 8 + ...airs_from_tin_decoration_stonecutting.json | 8 + ...wall_from_tin_decoration_stonecutting.json | 8 + .../recipes/titanium_decoration.json | 1 + ...from_titanium_decoration_stonecutting.json | 8 + ...from_titanium_decoration_stonecutting.json | 8 + ...from_titanium_decoration_stonecutting.json | 8 + .../tags/blocks/mineable/pickaxe.json | 11 + .../data/minecraft/tags/blocks/slabs.json | 3 + .../data/minecraft/tags/blocks/stairs.json | 3 + .../data/minecraft/tags/blocks/walls.json | 3 + .../java/dev/galacticraft/mod/Constant.java | 25 +++ .../galacticraft/mod/content/GCBlocks.java | 19 +- .../mod/content/item/GCCreativeModeTabs.java | 18 ++ .../mod/content/item/GCItems.java | 36 +++ .../mod/data/GCBlockLootTableProvider.java | 18 ++ .../mod/data/model/GCBlockFamilies.java | 15 ++ .../mod/data/model/GCModelProvider.java | 10 +- .../recipes/GCDecorationRecipeProvider.java | 67 +++++- .../mod/data/tag/GCBlockTagProvider.java | 14 ++ .../block/chiseled_moon_rock_brick.png | Bin 562 -> 482 bytes .../block/cracked_moon_rock_brick.png | Bin 0 -> 548 bytes .../galacticraft/textures/block/moon_rock.png | Bin 1902 -> 381 bytes .../textures/block/moon_rock_brick.png | Bin 1847 -> 386 bytes .../textures/block/moon_rock_pillar_side.png | Bin 0 -> 298 bytes .../textures/block/moon_rock_pillar_top.png | Bin 0 -> 420 bytes .../textures/block/polished_moon_rock.png | Bin 0 -> 356 bytes 329 files changed, 6514 insertions(+), 9 deletions(-) create mode 100644 src/main/generated/assets/galacticraft/blockstates/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_wall.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_wall.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_rock_pillar.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/polished_moon_rock.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_slab.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_stairs.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_wall.json create mode 100644 src/main/generated/assets/galacticraft/models/block/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab_top.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_inner.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_outer.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_inventory.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_post.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side.json create mode 100644 src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side_tall.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab_top.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_inner.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_outer.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_inventory.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_post.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side_tall.json create mode 100644 src/main/generated/assets/galacticraft/models/block/moon_rock_pillar.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab_top.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_inner.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_outer.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_inventory.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_post.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side.json create mode 100644 src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side_tall.json create mode 100644 src/main/generated/assets/galacticraft/models/item/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_wall.json create mode 100644 src/main/generated/assets/galacticraft/models/item/moon_rock_brick.json create mode 100644 src/main/generated/assets/galacticraft/models/item/moon_rock_brick_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/item/moon_rock_brick_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/item/moon_rock_brick_wall.json create mode 100644 src/main/generated/assets/galacticraft/models/item/moon_rock_pillar.json create mode 100644 src/main/generated/assets/galacticraft/models/item/polished_moon_rock.json create mode 100644 src/main/generated/assets/galacticraft/models/item/polished_moon_rock_slab.json create mode 100644 src/main/generated/assets/galacticraft/models/item/polished_moon_rock_stairs.json create mode 100644 src/main/generated/assets/galacticraft/models/item/polished_moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_slab.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json create mode 100644 src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json create mode 100644 src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json create mode 100644 src/main/resources/assets/galacticraft/textures/block/cracked_moon_rock_brick.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/moon_rock_pillar_side.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/moon_rock_pillar_top.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/polished_moon_rock.png diff --git a/src/main/generated/assets/galacticraft/blockstates/chiseled_moon_rock_brick.json b/src/main/generated/assets/galacticraft/blockstates/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..83cca4703 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/chiseled_moon_rock_brick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/chiseled_moon_rock_brick" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick.json b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick.json new file mode 100644 index 000000000..95b323900 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/cracked_moon_rock_brick" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..697d5a309 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "galacticraft:block/cracked_moon_rock_brick_slab" + }, + "type=double": { + "model": "galacticraft:block/cracked_moon_rock_brick" + }, + "type=top": { + "model": "galacticraft:block/cracked_moon_rock_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..960120f66 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "galacticraft:block/cracked_moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_wall.json b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_wall.json new file mode 100644 index 000000000..24e684318 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/cracked_moon_rock_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/cracked_moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick.json b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick.json new file mode 100644 index 000000000..8a9c7f5dd --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/moon_rock_brick" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_slab.json new file mode 100644 index 000000000..6da7f9c26 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "galacticraft:block/moon_rock_brick_slab" + }, + "type=double": { + "model": "galacticraft:block/moon_rock_brick" + }, + "type=top": { + "model": "galacticraft:block/moon_rock_brick_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_stairs.json new file mode 100644 index 000000000..0dbd9de77 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "galacticraft:block/moon_rock_brick_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "galacticraft:block/moon_rock_brick_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_wall.json b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_wall.json new file mode 100644 index 000000000..a483419a0 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/moon_rock_brick_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/moon_rock_brick_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_rock_pillar.json b/src/main/generated/assets/galacticraft/blockstates/moon_rock_pillar.json new file mode 100644 index 000000000..b81cac579 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/moon_rock_pillar.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "galacticraft:block/moon_rock_pillar", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "galacticraft:block/moon_rock_pillar" + }, + "axis=z": { + "model": "galacticraft:block/moon_rock_pillar", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock.json b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock.json new file mode 100644 index 000000000..b8c1bd9b4 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/polished_moon_rock" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_slab.json b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_slab.json new file mode 100644 index 000000000..764a7fa5e --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_slab.json @@ -0,0 +1,13 @@ +{ + "variants": { + "type=bottom": { + "model": "galacticraft:block/polished_moon_rock_slab" + }, + "type=double": { + "model": "galacticraft:block/polished_moon_rock" + }, + "type=top": { + "model": "galacticraft:block/polished_moon_rock_slab_top" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_stairs.json b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_stairs.json new file mode 100644 index 000000000..75efda909 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_stairs.json @@ -0,0 +1,209 @@ +{ + "variants": { + "facing=east,half=bottom,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner" + }, + "facing=east,half=bottom,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=east,half=bottom,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer" + }, + "facing=east,half=bottom,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs" + }, + "facing=east,half=top,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=east,half=top,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=east,half=top,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "x": 180 + }, + "facing=north,half=bottom,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=north,half=bottom,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 270 + }, + "facing=north,half=bottom,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "y": 270 + }, + "facing=north,half=top,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=north,half=top,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180 + }, + "facing=north,half=top,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=south,half=bottom,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner" + }, + "facing=south,half=bottom,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer" + }, + "facing=south,half=bottom,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=south,half=bottom,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "y": 90 + }, + "facing=south,half=top,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=south,half=top,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=south,half=top,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "x": 180, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 90 + }, + "facing=west,half=bottom,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "y": 180 + }, + "facing=west,half=bottom,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "y": 180 + }, + "facing=west,half=top,shape=inner_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=inner_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_inner", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=outer_left": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 180 + }, + "facing=west,half=top,shape=outer_right": { + "model": "galacticraft:block/polished_moon_rock_stairs_outer", + "uvlock": true, + "x": 180, + "y": 270 + }, + "facing=west,half=top,shape=straight": { + "model": "galacticraft:block/polished_moon_rock_stairs", + "uvlock": true, + "x": 180, + "y": 180 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_wall.json b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_wall.json new file mode 100644 index 000000000..60b9cb08d --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/polished_moon_rock_wall.json @@ -0,0 +1,90 @@ +{ + "multipart": [ + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_post" + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side", + "uvlock": true + }, + "when": { + "north": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "low" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side_tall", + "uvlock": true + }, + "when": { + "north": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side_tall", + "uvlock": true, + "y": 90 + }, + "when": { + "east": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side_tall", + "uvlock": true, + "y": 180 + }, + "when": { + "south": "tall" + } + }, + { + "apply": { + "model": "galacticraft:block/polished_moon_rock_wall_side_tall", + "uvlock": true, + "y": 270 + }, + "when": { + "west": "tall" + } + } + ] +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/lang/en_us.json b/src/main/generated/assets/galacticraft/lang/en_us.json index 636dd08f9..98e9d834a 100644 --- a/src/main/generated/assets/galacticraft/lang/en_us.json +++ b/src/main/generated/assets/galacticraft/lang/en_us.json @@ -35,6 +35,7 @@ "block.galacticraft.candle_moon_cheese_block": "Block of Cheese with Candle", "block.galacticraft.cavernous_vines": "Cavernous Vines", "block.galacticraft.cavernous_vines_plant": "Cavernous Vines Plant", + "block.galacticraft.chiseled_moon_rock_brick": "Chiseled Moon Rock Brick", "block.galacticraft.circuit_fabricator": "Circuit Fabricator", "block.galacticraft.circuit_fabricator.description": "Circuit Fabricator will process basic materials into silicon wafers, used for advanced machines.", "block.galacticraft.coal_generator": "Coal Generator", @@ -57,6 +58,10 @@ "block.galacticraft.cracked_moon_basalt_brick_slab": "Cracked Moon Basalt Brick Slab", "block.galacticraft.cracked_moon_basalt_brick_stairs": "Cracked Moon Basalt Brick Stairs", "block.galacticraft.cracked_moon_basalt_brick_wall": "Cracked Moon Basalt Brick Wall", + "block.galacticraft.cracked_moon_rock_brick": "Cracked Moon Rock Brick", + "block.galacticraft.cracked_moon_rock_brick_slab": "Cracked Moon Rock Brick Slab", + "block.galacticraft.cracked_moon_rock_brick_stairs": "Cracked Moon Rock Brick Stairs", + "block.galacticraft.cracked_moon_rock_brick_wall": "Cracked Moon Rock Brick Wall", "block.galacticraft.crude_oil": "Crude Oil", "block.galacticraft.cryogenic_chamber": "Cryogenic Chamber", "block.galacticraft.cryogenic_chamber_part": "Cryogenic Chamber Part", @@ -178,6 +183,11 @@ "block.galacticraft.moon_dirt_path": "Moon Dirt Path", "block.galacticraft.moon_dungeon_brick": "Moon Dungeon Brick", "block.galacticraft.moon_rock": "Moon Rock", + "block.galacticraft.moon_rock_brick": "Moon Rock Brick", + "block.galacticraft.moon_rock_brick_slab": "Moon Rock Brick Slab", + "block.galacticraft.moon_rock_brick_stairs": "Moon Rock Brick Stairs", + "block.galacticraft.moon_rock_brick_wall": "Moon Rock Brick Wall", + "block.galacticraft.moon_rock_pillar": "Moon Rock Pillar", "block.galacticraft.moon_rock_slab": "Moon Rock Slab", "block.galacticraft.moon_rock_stairs": "Moon Rock Stairs", "block.galacticraft.moon_rock_wall": "Moon Rock Wall", @@ -197,6 +207,10 @@ "block.galacticraft.parachest.description": "Parachests will fall from the sky after landing on certain planets/moons, such as Earth. Contains rocket, fuel, and cargo from previous launch.", "block.galacticraft.pink_candle_moon_cheese_block": "Block of Cheese with Pink Candle", "block.galacticraft.player_transport_tube": "Player Transport Tube", + "block.galacticraft.polished_moon_rock": "Polished Moon Rock", + "block.galacticraft.polished_moon_rock_slab": "Polished Moon Rock Slab", + "block.galacticraft.polished_moon_rock_stairs": "Polished Moon Rock Stairs", + "block.galacticraft.polished_moon_rock_wall": "Polished Moon Rock Wall", "block.galacticraft.pumice": "Pumice", "block.galacticraft.purple_candle_moon_cheese_block": "Block of Cheese with Purple Candle", "block.galacticraft.red_candle_moon_cheese_block": "Block of Cheese with Red Candle", @@ -347,6 +361,7 @@ "item.galacticraft.blue_parachute": "Blue Parachute", "item.galacticraft.blue_solar_wafer": "Blue Solar Wafer", "item.galacticraft.brown_parachute": "Brown Parachute", + "item.galacticraft.buggy": "Buggy", "item.galacticraft.burger_bun": "Burger Bun", "item.galacticraft.canned_beef": "Canned Beef", "item.galacticraft.canned_dehydrated_apple": "Canned Dehydrated Apple", diff --git a/src/main/generated/assets/galacticraft/models/block/chiseled_moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/block/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..6a7ec54bf --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/chiseled_moon_rock_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/chiseled_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick.json new file mode 100644 index 000000000..1ca53c658 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..8f0455c8b --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "galacticraft:block/cracked_moon_rock_brick", + "side": "galacticraft:block/cracked_moon_rock_brick", + "top": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab_top.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab_top.json new file mode 100644 index 000000000..b385a5590 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "galacticraft:block/cracked_moon_rock_brick", + "side": "galacticraft:block/cracked_moon_rock_brick", + "top": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..5056ea6fd --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "galacticraft:block/cracked_moon_rock_brick", + "side": "galacticraft:block/cracked_moon_rock_brick", + "top": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_inner.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_inner.json new file mode 100644 index 000000000..065fd5c44 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "galacticraft:block/cracked_moon_rock_brick", + "side": "galacticraft:block/cracked_moon_rock_brick", + "top": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_outer.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_outer.json new file mode 100644 index 000000000..c3cd082c1 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "galacticraft:block/cracked_moon_rock_brick", + "side": "galacticraft:block/cracked_moon_rock_brick", + "top": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_inventory.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_inventory.json new file mode 100644 index 000000000..4c0756fe2 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_post.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_post.json new file mode 100644 index 000000000..740dba5dd --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side.json new file mode 100644 index 000000000..8771fac6b --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side_tall.json b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side_tall.json new file mode 100644 index 000000000..805cdac8e --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/cracked_moon_rock_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "galacticraft:block/cracked_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick.json new file mode 100644 index 000000000..c1693fea0 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab.json new file mode 100644 index 000000000..e3eb6bbd0 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "galacticraft:block/moon_rock_brick", + "side": "galacticraft:block/moon_rock_brick", + "top": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab_top.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab_top.json new file mode 100644 index 000000000..20939fbf9 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "galacticraft:block/moon_rock_brick", + "side": "galacticraft:block/moon_rock_brick", + "top": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs.json new file mode 100644 index 000000000..865705034 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "galacticraft:block/moon_rock_brick", + "side": "galacticraft:block/moon_rock_brick", + "top": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_inner.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_inner.json new file mode 100644 index 000000000..6614a9266 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "galacticraft:block/moon_rock_brick", + "side": "galacticraft:block/moon_rock_brick", + "top": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_outer.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_outer.json new file mode 100644 index 000000000..f76f89e24 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "galacticraft:block/moon_rock_brick", + "side": "galacticraft:block/moon_rock_brick", + "top": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_inventory.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_inventory.json new file mode 100644 index 000000000..d5eb2d680 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_post.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_post.json new file mode 100644 index 000000000..93baa9f2f --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side.json new file mode 100644 index 000000000..d9240aed0 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side_tall.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side_tall.json new file mode 100644 index 000000000..050282a7d --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_brick_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "galacticraft:block/moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_rock_pillar.json b/src/main/generated/assets/galacticraft/models/block/moon_rock_pillar.json new file mode 100644 index 000000000..2f4c455e5 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/moon_rock_pillar.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "galacticraft:block/moon_rock_pillar_top", + "side": "galacticraft:block/moon_rock_pillar_side" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock.json new file mode 100644 index 000000000..976afdc45 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab.json new file mode 100644 index 000000000..db1465634 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab", + "textures": { + "bottom": "galacticraft:block/polished_moon_rock", + "side": "galacticraft:block/polished_moon_rock", + "top": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab_top.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab_top.json new file mode 100644 index 000000000..bcd38806b --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_slab_top.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/slab_top", + "textures": { + "bottom": "galacticraft:block/polished_moon_rock", + "side": "galacticraft:block/polished_moon_rock", + "top": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs.json new file mode 100644 index 000000000..bd1569d51 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/stairs", + "textures": { + "bottom": "galacticraft:block/polished_moon_rock", + "side": "galacticraft:block/polished_moon_rock", + "top": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_inner.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_inner.json new file mode 100644 index 000000000..e97de19e4 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_inner.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/inner_stairs", + "textures": { + "bottom": "galacticraft:block/polished_moon_rock", + "side": "galacticraft:block/polished_moon_rock", + "top": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_outer.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_outer.json new file mode 100644 index 000000000..452d93112 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_stairs_outer.json @@ -0,0 +1,8 @@ +{ + "parent": "minecraft:block/outer_stairs", + "textures": { + "bottom": "galacticraft:block/polished_moon_rock", + "side": "galacticraft:block/polished_moon_rock", + "top": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_inventory.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_inventory.json new file mode 100644 index 000000000..754a9df4e --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_inventory.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/wall_inventory", + "textures": { + "wall": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_post.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_post.json new file mode 100644 index 000000000..1a82c8178 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side.json new file mode 100644 index 000000000..778b05524 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side_tall.json b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side_tall.json new file mode 100644 index 000000000..c5012380a --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/polished_moon_rock_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "galacticraft:block/polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/chiseled_moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/item/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..f8c9a8e31 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/chiseled_moon_rock_brick.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/chiseled_moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick.json new file mode 100644 index 000000000..a409c03b7 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/cracked_moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..567104c29 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/cracked_moon_rock_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..60c334a84 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/cracked_moon_rock_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_wall.json b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_wall.json new file mode 100644 index 000000000..3fa8cc704 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/cracked_moon_rock_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/cracked_moon_rock_brick_wall_inventory" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_rock_brick.json b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick.json new file mode 100644 index 000000000..1498b6482 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_slab.json b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_slab.json new file mode 100644 index 000000000..88b7c0931 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/moon_rock_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_stairs.json b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_stairs.json new file mode 100644 index 000000000..00442e2e4 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/moon_rock_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_wall.json b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_wall.json new file mode 100644 index 000000000..27a5b5832 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/moon_rock_brick_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/moon_rock_brick_wall_inventory" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_rock_pillar.json b/src/main/generated/assets/galacticraft/models/item/moon_rock_pillar.json new file mode 100644 index 000000000..e66e259f5 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/moon_rock_pillar.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/moon_rock_pillar" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/polished_moon_rock.json b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock.json new file mode 100644 index 000000000..7e0c4d418 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/polished_moon_rock" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_slab.json b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_slab.json new file mode 100644 index 000000000..d000c92f8 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_slab.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/polished_moon_rock_slab" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_stairs.json b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_stairs.json new file mode 100644 index 000000000..8f1d11f17 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_stairs.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/polished_moon_rock_stairs" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_wall.json b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_wall.json new file mode 100644 index 000000000..43da16aad --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/polished_moon_rock_wall.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/polished_moon_rock_wall_inventory" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..f0daff5a5 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:aluminum_decoration_slab_from_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:aluminum_decoration_slab_from_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..06e5227dd --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:aluminum_decoration_stairs_from_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:aluminum_decoration_stairs_from_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..45e49a213 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:aluminum_decoration_wall_from_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:aluminum_decoration_wall_from_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..2ffcd5d5b --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bronze_decoration_slab_from_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bronze_decoration_slab_from_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..0ab36b4f4 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bronze_decoration_stairs_from_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bronze_decoration_stairs_from_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..e1e2aff59 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bronze_decoration_wall_from_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bronze_decoration_wall_from_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..3c025a425 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick_slab": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick_slab" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:chiseled_moon_rock_brick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick_slab" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:chiseled_moon_rock_brick" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..a5459de5e --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..1c59e8be7 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chiseled_moon_rock_brick_from_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chiseled_moon_rock_brick_from_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..6b2f8b044 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cobbled_lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..93a300633 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cobbled_lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..017bd1bc8 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cobbled_lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..1a0e7b8e4 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_decoration_slab_from_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_decoration_slab_from_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..13c016a57 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_decoration_stairs_from_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_decoration_stairs_from_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..fbf5d725c --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:copper_decoration_wall_from_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:copper_decoration_wall_from_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..618f81653 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..c6a43cd68 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..9a04ec50b --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json new file mode 100644 index 000000000..8425196ed --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:cracked_moon_rock_brick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:cracked_moon_rock_brick" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..35edc32e7 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:cracked_moon_rock_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:cracked_moon_rock_brick_slab" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..9623ebac4 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..246570ecd --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:cracked_moon_rock_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:cracked_moon_rock_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..be0cab25d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json new file mode 100644 index 000000000..d08e52095 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:cracked_moon_rock_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:cracked_moon_rock_brick_wall" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..ff14cb09b --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cracked_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cracked_moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cracked_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..1ca1b4d18 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_decoration_slab_from_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_decoration_slab_from_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..70f35ab77 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_decoration_stairs_from_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_decoration_stairs_from_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..943b3f5db --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dark_decoration_wall_from_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dark_decoration_wall_from_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..eb50bfa81 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..93c0c529a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..ae651ec50 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_aluminum_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_aluminum_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_aluminum_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..2ae940d26 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..7610de95f --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..e37c89954 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_bronze_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_bronze_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_bronze_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..f4f8e5586 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..3020f1ce4 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..737b8eb7a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_copper_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_copper_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_copper_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..9303baa85 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..d6778d7ee --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..d0efd5662 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_dark_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_dark_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_dark_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..25bbe4475 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..ac5865913 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..32a37776a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..5a0c85926 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..aabf0e214 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..06821c4de --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..e2cd02a5e --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..fe1beff91 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..bf345dc6a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..3c0b90a82 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..c5e3bebb5 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..e971214fd --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..504a6d4ac --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..aa67a00b7 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..59658a3f2 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_detailed_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:detailed_titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_detailed_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..ea331548c --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_decoration_slab_from_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_decoration_slab_from_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..e4da3de83 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_decoration_stairs_from_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_decoration_stairs_from_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..697690583 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:iron_decoration_wall_from_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:iron_decoration_wall_from_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..a185a186d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lunaslate_slab_from_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lunaslate_slab_from_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..a1fe56de2 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lunaslate_stairs_from_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lunaslate_stairs_from_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..c4b4a45f6 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_lunaslate": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:lunaslate" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:lunaslate_wall_from_lunaslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_lunaslate" + ] + ], + "rewards": { + "recipes": [ + "minecraft:lunaslate_wall_from_lunaslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..2b93dfb76 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_cobblestone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_cobblestone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_cobblestone_slab_from_mars_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_cobblestone_slab_from_mars_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..067ebe6c0 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_cobblestone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_cobblestone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_cobblestone_stairs_from_mars_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_cobblestone_stairs_from_mars_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..f18f30046 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_cobblestone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_cobblestone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_cobblestone_wall_from_mars_cobblestone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_cobblestone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_cobblestone_wall_from_mars_cobblestone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..433da4927 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_stone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_stone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_stone_slab_from_mars_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_stone_slab_from_mars_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..3f43e7bc6 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_stone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_stone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_stone_stairs_from_mars_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_stone_stairs_from_mars_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..1afb7ec5c --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mars_stone": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:mars_stone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:mars_stone_wall_from_mars_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mars_stone" + ] + ], + "rewards": { + "recipes": [ + "minecraft:mars_stone_wall_from_mars_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..996c9b556 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..8d5b9b05d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..ba627252d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_meteoric_iron_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:meteoric_iron_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_meteoric_iron_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..27b350294 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..efbd491f5 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..24a821473 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..ea44a22f1 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_slab_from_moon_basalt_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_slab_from_moon_basalt_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..f7a8ef860 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_stairs_from_moon_basalt_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_stairs_from_moon_basalt_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..9352e2b8d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_basalt": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_basalt" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_basalt_wall_from_moon_basalt_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_basalt" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_basalt_wall_from_moon_basalt_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json new file mode 100644 index 000000000..99e5ba93a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cobbled_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:cobbled_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cobbled_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json new file mode 100644 index 000000000..2562696a7 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_brick" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_brick" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..b36e2611e --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_brick_from_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_brick_from_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json new file mode 100644 index 000000000..cd76e499f --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_brick_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_brick_slab" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..af5a92f82 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_brick_slab_from_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_brick_slab_from_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json new file mode 100644 index 000000000..003eda230 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_brick_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_brick_stairs" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..198f9acc6 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_brick_stairs_from_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_brick_stairs_from_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json new file mode 100644 index 000000000..2fca0669a --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_brick_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_brick_wall" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..ab0b12db9 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_brick_wall_from_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_brick_wall_from_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json new file mode 100644 index 000000000..781192214 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_pillar" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_pillar" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json new file mode 100644 index 000000000..5c562ac4c --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_slab" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..9788fd479 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_slab_from_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_slab_from_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json new file mode 100644 index 000000000..aa7b0df69 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_stairs" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..7ad4dd2e6 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_stairs_from_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_stairs_from_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json new file mode 100644 index 000000000..8cc33e89e --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:moon_rock_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:moon_rock_wall" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..58f9b9f0f --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:moon_rock_wall_from_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:moon_rock_wall_from_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json new file mode 100644 index 000000000..1679540de --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:polished_moon_rock" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:polished_moon_rock" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..2127c4200 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_moon_rock_brick": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:moon_rock_brick" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_moon_rock_from_moon_rock_brick_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_moon_rock_brick" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_moon_rock_from_moon_rock_brick_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json new file mode 100644 index 000000000..c477bdeff --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:polished_moon_rock_slab" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:polished_moon_rock_slab" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..1e7055051 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_moon_rock_slab_from_polished_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_moon_rock_slab_from_polished_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json new file mode 100644 index 000000000..0a7923740 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:polished_moon_rock_stairs" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:polished_moon_rock_stairs" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..5c734898f --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_moon_rock_stairs_from_polished_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_moon_rock_stairs_from_polished_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json new file mode 100644 index 000000000..48be85a5d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:polished_moon_rock_wall" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:polished_moon_rock_wall" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..01a872eb9 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_moon_rock": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:polished_moon_rock" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:polished_moon_rock_wall_from_polished_moon_rock_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_moon_rock" + ] + ], + "rewards": { + "recipes": [ + "minecraft:polished_moon_rock_wall_from_polished_moon_rock_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..0f7a62c10 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:steel_decoration_slab_from_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:steel_decoration_slab_from_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..ede4e93a9 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:steel_decoration_stairs_from_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:steel_decoration_stairs_from_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..8edca26ed --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_steel_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:steel_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:steel_decoration_wall_from_steel_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_steel_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:steel_decoration_wall_from_steel_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..95ca83c6b --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tin_decoration_slab_from_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tin_decoration_slab_from_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..52cdce41d --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tin_decoration_stairs_from_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tin_decoration_stairs_from_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..49bff1803 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:tin_decoration_wall_from_tin_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tin_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:tin_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tin_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:tin_decoration_wall_from_tin_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..dbeff9ad8 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:titanium_decoration_slab_from_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:titanium_decoration_slab_from_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..a761f81a5 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:titanium_decoration_stairs_from_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:titanium_decoration_stairs_from_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..a37f6f6e0 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:titanium_decoration_wall_from_titanium_decoration_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_titanium_decoration": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:titanium_decoration" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_titanium_decoration" + ] + ], + "rewards": { + "recipes": [ + "minecraft:titanium_decoration_wall_from_titanium_decoration_stonecutting" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..749d477fb --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:chiseled_moon_rock_brick" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json new file mode 100644 index 000000000..04a23f6c6 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:cracked_moon_rock_brick" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..0380e1cb9 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:cracked_moon_rock_brick_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..45b47a14b --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:cracked_moon_rock_brick_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json new file mode 100644 index 000000000..03c4c55a3 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:cracked_moon_rock_brick_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json new file mode 100644 index 000000000..894dc80e7 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:moon_rock_brick" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json new file mode 100644 index 000000000..1c8b0c3b1 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:moon_rock_brick_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json new file mode 100644 index 000000000..7313d7bb3 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:moon_rock_brick_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json new file mode 100644 index 000000000..3441d3789 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:moon_rock_brick_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json new file mode 100644 index 000000000..5c04a44fd --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:moon_rock_pillar" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json new file mode 100644 index 000000000..aa776e564 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:polished_moon_rock" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json new file mode 100644 index 000000000..d27948ff9 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:polished_moon_rock_slab" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json new file mode 100644 index 000000000..8131b1f01 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:polished_moon_rock_stairs" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json new file mode 100644 index 000000000..b3e97b8bd --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:polished_moon_rock_wall" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json b/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json index cc71ca350..4f092a14a 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:aluminum_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..69fcabf07 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:aluminum_decoration" + }, + "result": "galacticraft:aluminum_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..e40af1ccb --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:aluminum_decoration" + }, + "result": "galacticraft:aluminum_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..c69d684c8 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:aluminum_decoration" + }, + "result": "galacticraft:aluminum_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration.json b/src/main/generated/data/galacticraft/recipes/bronze_decoration.json index 4c7cbb70d..cefb2b5bb 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/bronze_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:bronze_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..18607d42a --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:bronze_decoration" + }, + "result": "galacticraft:bronze_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..ff8b2fe48 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:bronze_decoration" + }, + "result": "galacticraft:bronze_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..d2f9de806 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:bronze_decoration" + }, + "result": "galacticraft:bronze_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json new file mode 100644 index 000000000..c9d08369c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock_brick_slab" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "item": "galacticraft:chiseled_moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..7954318f1 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:chiseled_moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..bbefb74f7 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock" + }, + "result": "galacticraft:chiseled_moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..83a2f07b0 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:cobbled_lunaslate" + }, + "result": "galacticraft:cobbled_lunaslate_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..a305b5e96 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cobbled_lunaslate" + }, + "result": "galacticraft:cobbled_lunaslate_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json new file mode 100644 index 000000000..9e0c80795 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cobbled_lunaslate" + }, + "result": "galacticraft:cobbled_lunaslate_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration.json b/src/main/generated/data/galacticraft/recipes/copper_decoration.json index 8587954d3..875ef8566 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/copper_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:copper_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..73c5d9875 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:copper_decoration" + }, + "result": "galacticraft:copper_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..def4d5a83 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:copper_decoration" + }, + "result": "galacticraft:copper_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json new file mode 100644 index 000000000..523d23bfd --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:copper_decoration" + }, + "result": "galacticraft:copper_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..4e56e7f20 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:cracked_moon_basalt_brick" + }, + "result": "galacticraft:cracked_moon_basalt_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..f4b569e8d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cracked_moon_basalt_brick" + }, + "result": "galacticraft:cracked_moon_basalt_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..cc76af383 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cracked_moon_basalt_brick" + }, + "result": "galacticraft:cracked_moon_basalt_brick_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json new file mode 100644 index 000000000..9c676cdeb --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:cracked_moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json new file mode 100644 index 000000000..c1cd8f22d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:cracked_moon_rock_brick" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:cracked_moon_rock_brick_slab" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..f23525092 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:cracked_moon_rock_brick" + }, + "result": "galacticraft:cracked_moon_rock_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json new file mode 100644 index 000000000..94693a294 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:cracked_moon_rock_brick" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "galacticraft:cracked_moon_rock_brick_stairs" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..9e48027ee --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cracked_moon_rock_brick" + }, + "result": "galacticraft:cracked_moon_rock_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json new file mode 100644 index 000000000..9a8490813 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:cracked_moon_rock_brick" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:cracked_moon_rock_brick_wall" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..18b5ae037 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:cracked_moon_rock_brick" + }, + "result": "galacticraft:cracked_moon_rock_brick_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..8f457ccfe --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:dark_decoration" + }, + "result": "galacticraft:dark_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..c8337f6e2 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:dark_decoration" + }, + "result": "galacticraft:dark_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json new file mode 100644 index 000000000..d30ecd636 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:dark_decoration" + }, + "result": "galacticraft:dark_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json index 2505d287c..98ba5b1e2 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_aluminum_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..39d7521a9 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_aluminum_decoration" + }, + "result": "galacticraft:detailed_aluminum_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..5b2a468d3 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_aluminum_decoration" + }, + "result": "galacticraft:detailed_aluminum_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json new file mode 100644 index 000000000..fa449c53c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_aluminum_decoration" + }, + "result": "galacticraft:detailed_aluminum_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json index a885ba1e8..426729b93 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_bronze_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..e49fd3f0f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_bronze_decoration" + }, + "result": "galacticraft:detailed_bronze_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..a8aefaeb8 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_bronze_decoration" + }, + "result": "galacticraft:detailed_bronze_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json new file mode 100644 index 000000000..9ab2a6e90 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_bronze_decoration" + }, + "result": "galacticraft:detailed_bronze_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json index 4df26c100..7a47d0be6 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_copper_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..c65f56398 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_copper_decoration" + }, + "result": "galacticraft:detailed_copper_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..a2707b14f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_copper_decoration" + }, + "result": "galacticraft:detailed_copper_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json new file mode 100644 index 000000000..0bcb19e84 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_copper_decoration" + }, + "result": "galacticraft:detailed_copper_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..c8c6794f5 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_dark_decoration" + }, + "result": "galacticraft:detailed_dark_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..b6e0dae10 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_dark_decoration" + }, + "result": "galacticraft:detailed_dark_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json new file mode 100644 index 000000000..d99fcccb9 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_dark_decoration" + }, + "result": "galacticraft:detailed_dark_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json index 57a579676..66c34c7be 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..a13a8b924 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_iron_decoration" + }, + "result": "galacticraft:detailed_iron_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..ff2b3428c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_iron_decoration" + }, + "result": "galacticraft:detailed_iron_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json new file mode 100644 index 000000000..a1b06f1c4 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_iron_decoration" + }, + "result": "galacticraft:detailed_iron_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json index 9bb07807b..51e6649c6 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_meteoric_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..e38ab97c4 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_meteoric_iron_decoration" + }, + "result": "galacticraft:detailed_meteoric_iron_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..e2be6a1d7 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_meteoric_iron_decoration" + }, + "result": "galacticraft:detailed_meteoric_iron_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..5ec6be95b --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_meteoric_iron_decoration" + }, + "result": "galacticraft:detailed_meteoric_iron_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json index eff446e37..fdc00f76a 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_steel_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..5a660ec8f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_steel_decoration" + }, + "result": "galacticraft:detailed_steel_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..e1173da2b --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_steel_decoration" + }, + "result": "galacticraft:detailed_steel_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json new file mode 100644 index 000000000..1284d4c0d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_steel_decoration" + }, + "result": "galacticraft:detailed_steel_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json index 66240dbb6..920b667b7 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_tin_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..b1f353f5e --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_tin_decoration" + }, + "result": "galacticraft:detailed_tin_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..e21511d5e --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_tin_decoration" + }, + "result": "galacticraft:detailed_tin_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json new file mode 100644 index 000000000..ef05322ff --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_tin_decoration" + }, + "result": "galacticraft:detailed_tin_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json index 42831abc0..bfb1517e5 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json @@ -15,6 +15,7 @@ " X" ], "result": { + "count": 4, "item": "galacticraft:detailed_titanium_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..62195a245 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:detailed_titanium_decoration" + }, + "result": "galacticraft:detailed_titanium_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..7808bd924 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_titanium_decoration" + }, + "result": "galacticraft:detailed_titanium_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..4fc8f470c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:detailed_titanium_decoration" + }, + "result": "galacticraft:detailed_titanium_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration.json b/src/main/generated/data/galacticraft/recipes/iron_decoration.json index 0b468caae..0d354b848 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/iron_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..84abda429 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:iron_decoration" + }, + "result": "galacticraft:iron_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..37681aecd --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:iron_decoration" + }, + "result": "galacticraft:iron_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json new file mode 100644 index 000000000..359dc04c0 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:iron_decoration" + }, + "result": "galacticraft:iron_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..eb091a399 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:lunaslate" + }, + "result": "galacticraft:lunaslate_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..ad5063de9 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:lunaslate" + }, + "result": "galacticraft:lunaslate_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json new file mode 100644 index 000000000..f6e097af2 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:lunaslate" + }, + "result": "galacticraft:lunaslate_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..7b0a17666 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:mars_cobblestone" + }, + "result": "galacticraft:mars_cobblestone_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..83abca8bc --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:mars_cobblestone" + }, + "result": "galacticraft:mars_cobblestone_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json new file mode 100644 index 000000000..91752a80a --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:mars_cobblestone" + }, + "result": "galacticraft:mars_cobblestone_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..717acf44e --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:mars_stone" + }, + "result": "galacticraft:mars_stone_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..89fa10c83 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:mars_stone" + }, + "result": "galacticraft:mars_stone_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json new file mode 100644 index 000000000..1243eb745 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:mars_stone" + }, + "result": "galacticraft:mars_stone_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json index f32675ea5..b41d12f91 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:meteoric_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..676934c4b --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:meteoric_iron_decoration" + }, + "result": "galacticraft:meteoric_iron_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..8844c39c0 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:meteoric_iron_decoration" + }, + "result": "galacticraft:meteoric_iron_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json new file mode 100644 index 000000000..fbe215712 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:meteoric_iron_decoration" + }, + "result": "galacticraft:meteoric_iron_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..ad6b3d4e5 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:moon_basalt_brick" + }, + "result": "galacticraft:moon_basalt_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..a9dd338fd --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_basalt_brick" + }, + "result": "galacticraft:moon_basalt_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json new file mode 100644 index 000000000..ffe4921e9 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_basalt_brick" + }, + "result": "galacticraft:moon_basalt_brick_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..b3b694adb --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:moon_basalt" + }, + "result": "galacticraft:moon_basalt_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..e9e3b594a --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_basalt" + }, + "result": "galacticraft:moon_basalt_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json new file mode 100644 index 000000000..70918cc3b --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_basalt" + }, + "result": "galacticraft:moon_basalt_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock.json b/src/main/generated/data/galacticraft/recipes/moon_rock.json new file mode 100644 index 000000000..bd8ad828a --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock.json @@ -0,0 +1,10 @@ +{ + "type": "minecraft:smelting", + "category": "blocks", + "cookingtime": 200, + "experience": 0.1, + "ingredient": { + "item": "galacticraft:cobbled_moon_rock" + }, + "result": "galacticraft:moon_rock" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick.json new file mode 100644 index 000000000..035a38a52 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "item": "galacticraft:moon_rock_brick" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..657b9155c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock" + }, + "result": "galacticraft:moon_rock_brick" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json new file mode 100644 index 000000000..d57b6ca65 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock_brick" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:moon_rock_brick_slab" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..da6caec3f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:moon_rock_brick_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json new file mode 100644 index 000000000..233a6632d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock_brick" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "galacticraft:moon_rock_brick_stairs" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..239b34287 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:moon_rock_brick_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json new file mode 100644 index 000000000..13372e252 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock_brick" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:moon_rock_brick_wall" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..cd0cdd10f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:moon_rock_brick_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json b/src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json new file mode 100644 index 000000000..d34ce8b5f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock" + } + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 2, + "item": "galacticraft:moon_rock_pillar" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_slab.json b/src/main/generated/data/galacticraft/recipes/moon_rock_slab.json new file mode 100644 index 000000000..7e8ac1f75 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:moon_rock_slab" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..e9f830980 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:moon_rock" + }, + "result": "galacticraft:moon_rock_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json b/src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json new file mode 100644 index 000000000..9519b40fd --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "galacticraft:moon_rock_stairs" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..ef07259de --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock" + }, + "result": "galacticraft:moon_rock_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_wall.json b/src/main/generated/data/galacticraft/recipes/moon_rock_wall.json new file mode 100644 index 000000000..23f595b83 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:moon_rock_wall" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json new file mode 100644 index 000000000..5c3f05c7c --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock" + }, + "result": "galacticraft:moon_rock_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock.json new file mode 100644 index 000000000..1aecb04c6 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:moon_rock_brick" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "item": "galacticraft:polished_moon_rock" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json new file mode 100644 index 000000000..096293254 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:moon_rock_brick" + }, + "result": "galacticraft:polished_moon_rock" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json new file mode 100644 index 000000000..68c9d1530 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:polished_moon_rock" + } + }, + "pattern": [ + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:polished_moon_rock_slab" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..f92fe791b --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:polished_moon_rock" + }, + "result": "galacticraft:polished_moon_rock_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json new file mode 100644 index 000000000..0a5ef39ec --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:polished_moon_rock" + } + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 4, + "item": "galacticraft:polished_moon_rock_stairs" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..0bfb7aa96 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:polished_moon_rock" + }, + "result": "galacticraft:polished_moon_rock_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json new file mode 100644 index 000000000..5997c5ae9 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": { + "item": "galacticraft:polished_moon_rock" + } + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "item": "galacticraft:polished_moon_rock_wall" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json new file mode 100644 index 000000000..c80ba31c0 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:polished_moon_rock" + }, + "result": "galacticraft:polished_moon_rock_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration.json b/src/main/generated/data/galacticraft/recipes/steel_decoration.json index 5c29a60e1..6d2152a09 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/steel_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:steel_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..9a968087d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:steel_decoration" + }, + "result": "galacticraft:steel_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..d087b3c88 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:steel_decoration" + }, + "result": "galacticraft:steel_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json new file mode 100644 index 000000000..33821465f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:steel_decoration" + }, + "result": "galacticraft:steel_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration.json b/src/main/generated/data/galacticraft/recipes/tin_decoration.json index 6d6439488..98efbfa82 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/tin_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:tin_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..9bc8808c4 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:tin_decoration" + }, + "result": "galacticraft:tin_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..affdfe77d --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:tin_decoration" + }, + "result": "galacticraft:tin_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json new file mode 100644 index 000000000..77c2d365f --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:tin_decoration" + }, + "result": "galacticraft:tin_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration.json b/src/main/generated/data/galacticraft/recipes/titanium_decoration.json index eca841e96..f1b9591e3 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration.json +++ b/src/main/generated/data/galacticraft/recipes/titanium_decoration.json @@ -14,6 +14,7 @@ "##X" ], "result": { + "count": 4, "item": "galacticraft:titanium_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..39d4eccce --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "galacticraft:titanium_decoration" + }, + "result": "galacticraft:titanium_decoration_slab" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..fde9d22fe --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:titanium_decoration" + }, + "result": "galacticraft:titanium_decoration_stairs" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json new file mode 100644 index 000000000..b625515dd --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "galacticraft:titanium_decoration" + }, + "result": "galacticraft:titanium_decoration_wall" +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json index 313842005..d9c9899b4 100644 --- a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -16,6 +16,9 @@ "galacticraft:ilmenite_ore", "galacticraft:galena_ore", "galacticraft:moon_rock_slab", + "galacticraft:moon_rock_brick_slab", + "galacticraft:cracked_moon_rock_brick_slab", + "galacticraft:polished_moon_rock_slab", "galacticraft:lunaslate_slab", "galacticraft:cobbled_moon_rock_slab", "galacticraft:cobbled_lunaslate_slab", @@ -25,6 +28,9 @@ "galacticraft:mars_stone_slab", "galacticraft:mars_cobblestone_slab", "galacticraft:moon_rock_stairs", + "galacticraft:moon_rock_brick_stairs", + "galacticraft:cracked_moon_rock_brick_stairs", + "galacticraft:polished_moon_rock_stairs", "galacticraft:lunaslate_stairs", "galacticraft:cobbled_moon_rock_stairs", "galacticraft:cobbled_lunaslate_stairs", @@ -91,6 +97,11 @@ "galacticraft:detailed_meteoric_iron_decoration", "galacticraft:detailed_dark_decoration", "galacticraft:moon_rock", + "galacticraft:moon_rock_brick", + "galacticraft:cracked_moon_rock_brick", + "galacticraft:polished_moon_rock", + "galacticraft:chiseled_moon_rock_brick", + "galacticraft:moon_rock_pillar", "galacticraft:lunaslate", "galacticraft:cobbled_moon_rock", "galacticraft:cobbled_lunaslate", diff --git a/src/main/generated/data/minecraft/tags/blocks/slabs.json b/src/main/generated/data/minecraft/tags/blocks/slabs.json index 13fbf284d..181e2d9eb 100644 --- a/src/main/generated/data/minecraft/tags/blocks/slabs.json +++ b/src/main/generated/data/minecraft/tags/blocks/slabs.json @@ -2,6 +2,9 @@ "replace": false, "values": [ "galacticraft:moon_rock_slab", + "galacticraft:moon_rock_brick_slab", + "galacticraft:cracked_moon_rock_brick_slab", + "galacticraft:polished_moon_rock_slab", "galacticraft:lunaslate_slab", "galacticraft:cobbled_moon_rock_slab", "galacticraft:cobbled_lunaslate_slab", diff --git a/src/main/generated/data/minecraft/tags/blocks/stairs.json b/src/main/generated/data/minecraft/tags/blocks/stairs.json index cd221be8a..9eb744d83 100644 --- a/src/main/generated/data/minecraft/tags/blocks/stairs.json +++ b/src/main/generated/data/minecraft/tags/blocks/stairs.json @@ -2,6 +2,9 @@ "replace": false, "values": [ "galacticraft:moon_rock_stairs", + "galacticraft:moon_rock_brick_stairs", + "galacticraft:cracked_moon_rock_brick_stairs", + "galacticraft:polished_moon_rock_stairs", "galacticraft:lunaslate_stairs", "galacticraft:cobbled_moon_rock_stairs", "galacticraft:cobbled_lunaslate_stairs", diff --git a/src/main/generated/data/minecraft/tags/blocks/walls.json b/src/main/generated/data/minecraft/tags/blocks/walls.json index 21f06b46a..1071540e3 100644 --- a/src/main/generated/data/minecraft/tags/blocks/walls.json +++ b/src/main/generated/data/minecraft/tags/blocks/walls.json @@ -2,6 +2,9 @@ "replace": false, "values": [ "galacticraft:moon_rock_wall", + "galacticraft:moon_rock_brick_wall", + "galacticraft:cracked_moon_rock_brick_wall", + "galacticraft:polished_moon_rock_wall", "galacticraft:lunaslate_wall", "galacticraft:cobbled_moon_rock_wall", "galacticraft:cobbled_lunaslate_wall", diff --git a/src/main/java/dev/galacticraft/mod/Constant.java b/src/main/java/dev/galacticraft/mod/Constant.java index 6dd6efa1a..8bbb0d236 100644 --- a/src/main/java/dev/galacticraft/mod/Constant.java +++ b/src/main/java/dev/galacticraft/mod/Constant.java @@ -64,30 +64,55 @@ interface Block { String MOON_TURF = "moon_turf"; String MOON_SURFACE_ROCK = "moon_surface_rock"; String MOON_DUNGEON_BRICK = "moon_dungeon_brick"; + String MOON_ROCK = "moon_rock"; String MOON_ROCK_SLAB = "moon_rock_slab"; String MOON_ROCK_STAIRS = "moon_rock_stairs"; String MOON_ROCK_WALL = "moon_rock_wall"; + + String MOON_ROCK_BRICK = "moon_rock_brick"; + String MOON_ROCK_BRICK_SLAB = "moon_rock_brick_slab"; + String MOON_ROCK_BRICK_STAIRS = "moon_rock_brick_stairs"; + String MOON_ROCK_BRICK_WALL = "moon_rock_brick_wall"; + + String CRACKED_MOON_ROCK_BRICK = "cracked_moon_rock_brick"; + String CRACKED_MOON_ROCK_BRICK_SLAB = "cracked_moon_rock_brick_slab"; + String CRACKED_MOON_ROCK_BRICK_STAIRS = "cracked_moon_rock_brick_stairs"; + String CRACKED_MOON_ROCK_BRICK_WALL = "cracked_moon_rock_brick_wall"; + + String POLISHED_MOON_ROCK = "polished_moon_rock"; + String POLISHED_MOON_ROCK_SLAB = "polished_moon_rock_slab"; + String POLISHED_MOON_ROCK_STAIRS = "polished_moon_rock_stairs"; + String POLISHED_MOON_ROCK_WALL = "polished_moon_rock_wall"; + + String CHISELED_MOON_ROCK_BRICK = "chiseled_moon_rock_brick"; + String MOON_ROCK_PILLAR = "moon_rock_pillar"; + String COBBLED_MOON_ROCK = "cobbled_moon_rock"; String COBBLED_MOON_ROCK_SLAB = "cobbled_moon_rock_slab"; String COBBLED_MOON_ROCK_STAIRS = "cobbled_moon_rock_stairs"; String COBBLED_MOON_ROCK_WALL = "cobbled_moon_rock_wall"; + String LUNASLATE = "lunaslate"; String LUNASLATE_SLAB = "lunaslate_slab"; String LUNASLATE_STAIRS = "lunaslate_stairs"; String LUNASLATE_WALL = "lunaslate_wall"; + String COBBLED_LUNASLATE = "cobbled_lunaslate"; String COBBLED_LUNASLATE_SLAB = "cobbled_lunaslate_slab"; String COBBLED_LUNASLATE_STAIRS = "cobbled_lunaslate_stairs"; String COBBLED_LUNASLATE_WALL = "cobbled_lunaslate_wall"; + String MOON_BASALT = "moon_basalt"; String MOON_BASALT_SLAB = "moon_basalt_slab"; String MOON_BASALT_STAIRS = "moon_basalt_stairs"; String MOON_BASALT_WALL = "moon_basalt_wall"; + String MOON_BASALT_BRICK = "moon_basalt_brick"; String MOON_BASALT_BRICK_SLAB = "moon_basalt_brick_slab"; String MOON_BASALT_BRICK_STAIRS = "moon_basalt_brick_stairs"; String MOON_BASALT_BRICK_WALL = "moon_basalt_brick_wall"; + String CRACKED_MOON_BASALT_BRICK = "cracked_moon_basalt_brick"; String CRACKED_MOON_BASALT_BRICK_SLAB = "cracked_moon_basalt_brick_slab"; String CRACKED_MOON_BASALT_BRICK_STAIRS = "cracked_moon_basalt_brick_stairs"; diff --git a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java index fcae3dd5b..c4ae8b8c4 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java +++ b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java @@ -38,7 +38,6 @@ import dev.galacticraft.mod.content.block.special.aluminumwire.tier2.HeavySealableAluminumWireBlock; import dev.galacticraft.mod.content.block.special.fluidpipe.GlassFluidPipeBlock; import dev.galacticraft.mod.content.block.special.launchpad.FuelPadBlock; -import dev.galacticraft.mod.content.block.special.launchpad.AbstractLaunchPad; import dev.galacticraft.mod.content.block.special.launchpad.LaunchPadBlock; import dev.galacticraft.mod.content.block.special.walkway.FluidPipeWalkway; import dev.galacticraft.mod.content.block.special.walkway.WalkwayBlock; @@ -115,6 +114,24 @@ public class GCBlocks { public static final Block MOON_ROCK_STAIRS = BLOCKS.register(Constant.Block.MOON_ROCK_STAIRS, new StairBlock(MOON_ROCK.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(MOON_ROCK))); public static final Block MOON_ROCK_WALL = BLOCKS.register(Constant.Block.MOON_ROCK_WALL, new WallBlock(BlockBehaviour.Properties.ofFullCopy(MOON_ROCK))); + public static final Block MOON_ROCK_BRICK = BLOCKS.register(Constant.Block.MOON_ROCK_BRICK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); + public static final Block MOON_ROCK_BRICK_SLAB = BLOCKS.register(Constant.Block.MOON_ROCK_BRICK_SLAB, new SlabBlock(BlockBehaviour.Properties.ofFullCopy(MOON_ROCK_BRICK).strength(2.5F, 6.0F))); + public static final Block MOON_ROCK_BRICK_STAIRS = BLOCKS.register(Constant.Block.MOON_ROCK_BRICK_STAIRS, new StairBlock(MOON_ROCK_BRICK.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(MOON_ROCK_BRICK))); + public static final Block MOON_ROCK_BRICK_WALL = BLOCKS.register(Constant.Block.MOON_ROCK_BRICK_WALL, new WallBlock(BlockBehaviour.Properties.ofFullCopy(MOON_ROCK_BRICK))); + + public static final Block CRACKED_MOON_ROCK_BRICK = BLOCKS.register(Constant.Block.CRACKED_MOON_ROCK_BRICK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); + public static final Block CRACKED_MOON_ROCK_BRICK_SLAB = BLOCKS.register(Constant.Block.CRACKED_MOON_ROCK_BRICK_SLAB, new SlabBlock(BlockBehaviour.Properties.ofFullCopy(CRACKED_MOON_ROCK_BRICK).strength(2.5F, 6.0F))); + public static final Block CRACKED_MOON_ROCK_BRICK_STAIRS = BLOCKS.register(Constant.Block.CRACKED_MOON_ROCK_BRICK_STAIRS, new StairBlock(CRACKED_MOON_ROCK_BRICK.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(CRACKED_MOON_ROCK_BRICK))); + public static final Block CRACKED_MOON_ROCK_BRICK_WALL = BLOCKS.register(Constant.Block.CRACKED_MOON_ROCK_BRICK_WALL, new WallBlock(BlockBehaviour.Properties.ofFullCopy(CRACKED_MOON_ROCK_BRICK))); + + public static final Block POLISHED_MOON_ROCK = BLOCKS.register(Constant.Block.POLISHED_MOON_ROCK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); + public static final Block POLISHED_MOON_ROCK_SLAB = BLOCKS.register(Constant.Block.POLISHED_MOON_ROCK_SLAB, new SlabBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_MOON_ROCK).strength(2.5F, 6.0F))); + public static final Block POLISHED_MOON_ROCK_STAIRS = BLOCKS.register(Constant.Block.POLISHED_MOON_ROCK_STAIRS, new StairBlock(POLISHED_MOON_ROCK.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(POLISHED_MOON_ROCK))); + public static final Block POLISHED_MOON_ROCK_WALL = BLOCKS.register(Constant.Block.POLISHED_MOON_ROCK_WALL, new WallBlock(BlockBehaviour.Properties.ofFullCopy(POLISHED_MOON_ROCK))); + + public static final Block CHISELED_MOON_ROCK_BRICK = BLOCKS.register(Constant.Block.CHISELED_MOON_ROCK_BRICK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); + public static final Block MOON_ROCK_PILLAR = BLOCKS.register(Constant.Block.MOON_ROCK_PILLAR, new RotatedPillarBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); + public static final Block COBBLED_MOON_ROCK = BLOCKS.register(Constant.Block.COBBLED_MOON_ROCK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GRAY).instrument(NoteBlockInstrument.BASEDRUM).strength(2.0F, 6.0F))); public static final Block COBBLED_MOON_ROCK_SLAB = BLOCKS.register(Constant.Block.COBBLED_MOON_ROCK_SLAB, new SlabBlock(BlockBehaviour.Properties.ofFullCopy(COBBLED_MOON_ROCK).strength(2.5F, 6.0F))); public static final Block COBBLED_MOON_ROCK_STAIRS = BLOCKS.register(Constant.Block.COBBLED_MOON_ROCK_STAIRS, new StairBlock(COBBLED_MOON_ROCK.defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(COBBLED_MOON_ROCK))); diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java index eff54f9a4..38793a439 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java @@ -280,6 +280,24 @@ public class GCCreativeModeTabs { output.accept(MOON_ROCK_STAIRS); output.accept(MOON_ROCK_WALL); + output.accept(MOON_ROCK_BRICK); + output.accept(MOON_ROCK_BRICK_SLAB); + output.accept(MOON_ROCK_BRICK_STAIRS); + output.accept(MOON_ROCK_BRICK_WALL); + + output.accept(CRACKED_MOON_ROCK_BRICK); + output.accept(CRACKED_MOON_ROCK_BRICK_SLAB); + output.accept(CRACKED_MOON_ROCK_BRICK_STAIRS); + output.accept(CRACKED_MOON_ROCK_BRICK_WALL); + + output.accept(POLISHED_MOON_ROCK); + output.accept(POLISHED_MOON_ROCK_SLAB); + output.accept(POLISHED_MOON_ROCK_STAIRS); + output.accept(POLISHED_MOON_ROCK_WALL); + + output.accept(CHISELED_MOON_ROCK_BRICK); + output.accept(MOON_ROCK_PILLAR); + output.accept(COBBLED_MOON_ROCK); output.accept(COBBLED_MOON_ROCK_SLAB); output.accept(COBBLED_MOON_ROCK_STAIRS); diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java index a79d0cfe9..104fa66cb 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java @@ -66,6 +66,24 @@ public class GCItems { public static final Item MOON_ROCK_STAIRS = new BlockItem(GCBlocks.MOON_ROCK_STAIRS, new Item.Properties()); public static final Item MOON_ROCK_WALL = new BlockItem(GCBlocks.MOON_ROCK_WALL, new Item.Properties()); + public static final Item MOON_ROCK_BRICK = new BlockItem(GCBlocks.MOON_ROCK_BRICK, new Item.Properties()); + public static final Item MOON_ROCK_BRICK_SLAB = new BlockItem(GCBlocks.MOON_ROCK_BRICK_SLAB, new Item.Properties()); + public static final Item MOON_ROCK_BRICK_STAIRS = new BlockItem(GCBlocks.MOON_ROCK_BRICK_STAIRS, new Item.Properties()); + public static final Item MOON_ROCK_BRICK_WALL = new BlockItem(GCBlocks.MOON_ROCK_BRICK_WALL, new Item.Properties()); + + public static final Item CRACKED_MOON_ROCK_BRICK = new BlockItem(GCBlocks.CRACKED_MOON_ROCK_BRICK, new Item.Properties()); + public static final Item CRACKED_MOON_ROCK_BRICK_SLAB = new BlockItem(GCBlocks.CRACKED_MOON_ROCK_BRICK_SLAB, new Item.Properties()); + public static final Item CRACKED_MOON_ROCK_BRICK_STAIRS = new BlockItem(GCBlocks.CRACKED_MOON_ROCK_BRICK_STAIRS, new Item.Properties()); + public static final Item CRACKED_MOON_ROCK_BRICK_WALL = new BlockItem(GCBlocks.CRACKED_MOON_ROCK_BRICK_WALL, new Item.Properties()); + + public static final Item POLISHED_MOON_ROCK = new BlockItem(GCBlocks.POLISHED_MOON_ROCK, new Item.Properties()); + public static final Item POLISHED_MOON_ROCK_SLAB = new BlockItem(GCBlocks.POLISHED_MOON_ROCK_SLAB, new Item.Properties()); + public static final Item POLISHED_MOON_ROCK_STAIRS = new BlockItem(GCBlocks.POLISHED_MOON_ROCK_STAIRS, new Item.Properties()); + public static final Item POLISHED_MOON_ROCK_WALL = new BlockItem(GCBlocks.POLISHED_MOON_ROCK_WALL, new Item.Properties()); + + public static final Item CHISELED_MOON_ROCK_BRICK = new BlockItem(GCBlocks.CHISELED_MOON_ROCK_BRICK, new Item.Properties()); + public static final Item MOON_ROCK_PILLAR = new BlockItem(GCBlocks.MOON_ROCK_PILLAR, new Item.Properties()); + public static final Item COBBLED_MOON_ROCK = new BlockItem(GCBlocks.COBBLED_MOON_ROCK, new Item.Properties()); public static final Item COBBLED_MOON_ROCK_SLAB = new BlockItem(GCBlocks.COBBLED_MOON_ROCK_SLAB, new Item.Properties()); public static final Item COBBLED_MOON_ROCK_STAIRS = new BlockItem(GCBlocks.COBBLED_MOON_ROCK_STAIRS, new Item.Properties()); @@ -432,6 +450,24 @@ public static void register() { Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_STAIRS), MOON_ROCK_STAIRS); Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_WALL), MOON_ROCK_WALL); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_BRICK), MOON_ROCK_BRICK); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_BRICK_SLAB), MOON_ROCK_BRICK_SLAB); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_BRICK_STAIRS), MOON_ROCK_BRICK_STAIRS); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_BRICK_WALL), MOON_ROCK_BRICK_WALL); + + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.CRACKED_MOON_ROCK_BRICK), CRACKED_MOON_ROCK_BRICK); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.CRACKED_MOON_ROCK_BRICK_SLAB), CRACKED_MOON_ROCK_BRICK_SLAB); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.CRACKED_MOON_ROCK_BRICK_STAIRS), CRACKED_MOON_ROCK_BRICK_STAIRS); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.CRACKED_MOON_ROCK_BRICK_WALL), CRACKED_MOON_ROCK_BRICK_WALL); + + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.POLISHED_MOON_ROCK), POLISHED_MOON_ROCK); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.POLISHED_MOON_ROCK_SLAB), POLISHED_MOON_ROCK_SLAB); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.POLISHED_MOON_ROCK_STAIRS), POLISHED_MOON_ROCK_STAIRS); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.POLISHED_MOON_ROCK_WALL), POLISHED_MOON_ROCK_WALL); + + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.CHISELED_MOON_ROCK_BRICK), CHISELED_MOON_ROCK_BRICK); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.MOON_ROCK_PILLAR), MOON_ROCK_PILLAR); + Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.COBBLED_MOON_ROCK), COBBLED_MOON_ROCK); Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.COBBLED_MOON_ROCK_SLAB), COBBLED_MOON_ROCK_SLAB); Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Block.COBBLED_MOON_ROCK_STAIRS), COBBLED_MOON_ROCK_STAIRS); diff --git a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java index c338f3305..15f993b1b 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java @@ -85,6 +85,24 @@ public void generate() { this.dropSelf(GCBlocks.MOON_ROCK_STAIRS); this.dropSelf(GCBlocks.MOON_ROCK_WALL); + this.dropSelf(GCBlocks.MOON_ROCK_BRICK); + this.dropSelf(GCBlocks.MOON_ROCK_BRICK_SLAB); + this.dropSelf(GCBlocks.MOON_ROCK_BRICK_STAIRS); + this.dropSelf(GCBlocks.MOON_ROCK_BRICK_WALL); + + this.dropSelf(GCBlocks.CRACKED_MOON_ROCK_BRICK); + this.dropSelf(GCBlocks.CRACKED_MOON_ROCK_BRICK_SLAB); + this.dropSelf(GCBlocks.CRACKED_MOON_ROCK_BRICK_STAIRS); + this.dropSelf(GCBlocks.CRACKED_MOON_ROCK_BRICK_WALL); + + this.dropSelf(GCBlocks.CHISELED_MOON_ROCK_BRICK); + this.dropSelf(GCBlocks.MOON_ROCK_PILLAR); + + this.dropSelf(GCBlocks.POLISHED_MOON_ROCK); + this.dropSelf(GCBlocks.POLISHED_MOON_ROCK_SLAB); + this.dropSelf(GCBlocks.POLISHED_MOON_ROCK_STAIRS); + this.dropSelf(GCBlocks.POLISHED_MOON_ROCK_WALL); + this.dropSelf(GCBlocks.COBBLED_MOON_ROCK); this.dropSelf(GCBlocks.COBBLED_MOON_ROCK_SLAB); this.dropSelf(GCBlocks.COBBLED_MOON_ROCK_STAIRS); diff --git a/src/main/java/dev/galacticraft/mod/data/model/GCBlockFamilies.java b/src/main/java/dev/galacticraft/mod/data/model/GCBlockFamilies.java index e48c08ec4..96929b671 100644 --- a/src/main/java/dev/galacticraft/mod/data/model/GCBlockFamilies.java +++ b/src/main/java/dev/galacticraft/mod/data/model/GCBlockFamilies.java @@ -55,6 +55,21 @@ public class GCBlockFamilies { .stairs(MOON_ROCK_STAIRS) .wall(MOON_ROCK_WALL) .getFamily(); + public static final BlockFamily MOON_ROCK_BRICKS = builder(MOON_ROCK_BRICK) + .slab(MOON_ROCK_BRICK_SLAB) + .stairs(MOON_ROCK_BRICK_STAIRS) + .wall(MOON_ROCK_BRICK_WALL) + .getFamily(); + public static final BlockFamily CRACKED_MOON_ROCK_BRICKS = builder(CRACKED_MOON_ROCK_BRICK) + .slab(CRACKED_MOON_ROCK_BRICK_SLAB) + .stairs(CRACKED_MOON_ROCK_BRICK_STAIRS) + .wall(CRACKED_MOON_ROCK_BRICK_WALL) + .getFamily(); + public static final BlockFamily POLISHED_MOON_ROCKS = builder(POLISHED_MOON_ROCK) + .slab(POLISHED_MOON_ROCK_SLAB) + .stairs(POLISHED_MOON_ROCK_STAIRS) + .wall(POLISHED_MOON_ROCK_WALL) + .getFamily(); public static final BlockFamily COBBLED_MOON_ROCKS = builder(COBBLED_MOON_ROCK) .slab(COBBLED_MOON_ROCK_SLAB) .stairs(COBBLED_MOON_ROCK_STAIRS) diff --git a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java index 3bac097d3..286ae3b80 100644 --- a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java @@ -68,9 +68,7 @@ public void generateBlockStateModels(BlockModelGenerators generator) { List decorations = GCBlocks.BLOCKS.getDecorations(); - decorations.forEach(decorationSet -> { - putDetailedTextured(generator, decorationSet.detailedBlock()); - }); + decorations.forEach(decorationSet -> putDetailedTextured(generator, decorationSet.detailedBlock())); generator.texturedModels.put(GCBlocks.LUNASLATE, TexturedModel.COLUMN_WITH_WALL.get(GCBlocks.LUNASLATE)); GCBlockFamilies.getAllFamilies() @@ -96,6 +94,8 @@ public void generateBlockStateModels(BlockModelGenerators generator) { createRotatedDelegate(generator, GCBlocks.MOON_DIRT_PATH); generator.createTrivialCube(GCBlocks.MOON_SURFACE_ROCK); generator.createTrivialCube(GCBlocks.MOON_DUNGEON_BRICK); + generator.createTrivialCube(GCBlocks.CHISELED_MOON_ROCK_BRICK); + generator.createAxisAlignedPillarBlock(GCBlocks.MOON_ROCK_PILLAR, TexturedModel.COLUMN); // MARS NATURAL generator.createTrivialCube(GCBlocks.MARS_SURFACE_ROCK); @@ -470,9 +470,7 @@ public void generateItemModels(ItemModelGenerators generator) { generator.generateFlatItem(GCItems.SULFURIC_ACID_BUCKET, ModelTemplates.FLAT_ITEM); //GALACTICRAFT INVENTORY - GCItems.PARACHUTE.colorMap().forEach((color, parachute) -> { - generator.generateFlatItem(parachute, ModelTemplates.FLAT_ITEM); - }); + GCItems.PARACHUTE.colorMap().forEach((color, parachute) -> generator.generateFlatItem(parachute, ModelTemplates.FLAT_ITEM)); generator.generateFlatItem(GCItems.OXYGEN_MASK, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.OXYGEN_GEAR, ModelTemplates.FLAT_ITEM); diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java index 9b5f91088..b0483ce77 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java @@ -30,6 +30,7 @@ import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.data.recipes.SimpleCookingRecipeBuilder; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; @@ -282,6 +283,33 @@ public void buildRecipes(RecipeOutput output) { ); // Rock decoration blocks + decorationBlockVariants(output, GCItems.MOON_ROCK, + GCItems.MOON_ROCK_SLAB, + GCItems.MOON_ROCK_STAIRS, + GCItems.MOON_ROCK_WALL + ); + decorationBlockVariants(output, GCBlocks.MOON_ROCK_BRICK, + GCBlocks.MOON_ROCK_BRICK_SLAB, + GCBlocks.MOON_ROCK_BRICK_STAIRS, + GCBlocks.MOON_ROCK_BRICK_WALL + ); + decorationBlockVariants(output, GCBlocks.CRACKED_MOON_ROCK_BRICK, + GCBlocks.CRACKED_MOON_ROCK_BRICK_SLAB, + GCBlocks.CRACKED_MOON_ROCK_BRICK_STAIRS, + GCBlocks.CRACKED_MOON_ROCK_BRICK_WALL + ); + decorationBlockVariants(output, GCBlocks.POLISHED_MOON_ROCK, + GCBlocks.POLISHED_MOON_ROCK_SLAB, + GCBlocks.POLISHED_MOON_ROCK_STAIRS, + GCBlocks.POLISHED_MOON_ROCK_WALL + ); + smeltBuildingBlock(output, GCBlocks.MOON_ROCK, GCBlocks.COBBLED_MOON_ROCK); + smeltBuildingBlock(output, GCBlocks.CRACKED_MOON_ROCK_BRICK, GCBlocks.MOON_ROCK_BRICK); + squareStone(output, GCBlocks.MOON_ROCK_BRICK, GCBlocks.MOON_ROCK); + squareStone(output, GCBlocks.POLISHED_MOON_ROCK, GCBlocks.MOON_ROCK_BRICK); + chiseledStone(output, GCBlocks.CHISELED_MOON_ROCK_BRICK, GCBlocks.MOON_ROCK_BRICK_SLAB, GCBlocks.MOON_ROCK, GCBlocks.MOON_ROCK_BRICK); + pillar(output, GCBlocks.MOON_ROCK_PILLAR, GCBlocks.MOON_ROCK); + decorationBlockVariants(output, GCItems.LUNASLATE, GCItems.LUNASLATE_SLAB, GCItems.LUNASLATE_STAIRS, @@ -325,10 +353,45 @@ private static void decorationBlockVariants(RecipeOutput output, ItemLike base, slab(output, RecipeCategory.BUILDING_BLOCKS, slab, base); stairs(output, stairs, base); wall(output, RecipeCategory.BUILDING_BLOCKS, wall, base); + + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, slab, base, 2); + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, stairs, base); + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, wall, base); + } + + public static void pillar(RecipeOutput output, ItemLike pillar, ItemLike base) { + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, pillar, 2) + .define('#', base) + .pattern("#") + .pattern("#") + .unlockedBy(getHasName(base), has(base)) + .save(output); + } + + public static void squareStone(RecipeOutput output, ItemLike brick, ItemLike base) { + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, brick, base); + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, brick, 4) + .define('#', base) + .pattern("##") + .pattern("##") + .unlockedBy(getHasName(base), has(base)) + .save(output); + } + + public static void smeltBuildingBlock(RecipeOutput output, ItemLike result, ItemLike ingredient) { + SimpleCookingRecipeBuilder.smelting(Ingredient.of(ingredient), RecipeCategory.BUILDING_BLOCKS, result, 0.1F, 200) + .unlockedBy(getHasName(ingredient), has(ingredient)) + .save(output); + } + + public static void chiseledStone(RecipeOutput output, ItemLike chiseled, ItemLike brickSlab, ItemLike base, ItemLike brick) { + chiseled(output, RecipeCategory.BUILDING_BLOCKS, chiseled, brickSlab); + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, chiseled, base); + stonecutterResultFromBase(output, RecipeCategory.BUILDING_BLOCKS, chiseled, brick); } public static void decorationBlock(RecipeOutput output, ItemLike input, ItemLike block, ItemLike slab, ItemLike stairs, ItemLike wall) { - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, block, 1) + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, block, 4) .define('#', Items.STONE) .define('X', input) .pattern("## ") @@ -340,7 +403,7 @@ public static void decorationBlock(RecipeOutput output, ItemLike input, ItemLike } public static void detailedDecorationBlock(RecipeOutput output, ItemLike input, ItemLike block, ItemLike slab, ItemLike stairs, ItemLike wall) { - ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, block, 1) + ShapedRecipeBuilder.shaped(RecipeCategory.BUILDING_BLOCKS, block, 4) .define('#', Items.STONE) .define('X', input) .pattern("##") diff --git a/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java b/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java index 529256220..e92e025e7 100644 --- a/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java @@ -97,6 +97,9 @@ protected void addTags(HolderLookup.Provider provider) { var stairs = new Block[] { GCBlocks.MOON_ROCK_STAIRS, + GCBlocks.MOON_ROCK_BRICK_STAIRS, + GCBlocks.CRACKED_MOON_ROCK_BRICK_STAIRS, + GCBlocks.POLISHED_MOON_ROCK_STAIRS, GCBlocks.LUNASLATE_STAIRS, GCBlocks.COBBLED_MOON_ROCK_STAIRS, GCBlocks.COBBLED_LUNASLATE_STAIRS, @@ -109,6 +112,9 @@ protected void addTags(HolderLookup.Provider provider) { var wall = new Block[] { GCBlocks.MOON_ROCK_WALL, + GCBlocks.MOON_ROCK_BRICK_WALL, + GCBlocks.CRACKED_MOON_ROCK_BRICK_WALL, + GCBlocks.POLISHED_MOON_ROCK_WALL, GCBlocks.LUNASLATE_WALL, GCBlocks.COBBLED_MOON_ROCK_WALL, GCBlocks.COBBLED_LUNASLATE_WALL, @@ -121,6 +127,9 @@ protected void addTags(HolderLookup.Provider provider) { var slab = new Block[] { GCBlocks.MOON_ROCK_SLAB, + GCBlocks.MOON_ROCK_BRICK_SLAB, + GCBlocks.CRACKED_MOON_ROCK_BRICK_SLAB, + GCBlocks.POLISHED_MOON_ROCK_SLAB, GCBlocks.LUNASLATE_SLAB, GCBlocks.COBBLED_MOON_ROCK_SLAB, GCBlocks.COBBLED_LUNASLATE_SLAB, @@ -229,6 +238,11 @@ protected void addTags(HolderLookup.Provider provider) { GCBlocks.METEORIC_IRON_DECORATION.detailedBlock(), GCBlocks.DARK_DECORATION.detailedBlock(), GCBlocks.MOON_ROCK, + GCBlocks.MOON_ROCK_BRICK, + GCBlocks.CRACKED_MOON_ROCK_BRICK, + GCBlocks.POLISHED_MOON_ROCK, + GCBlocks.CHISELED_MOON_ROCK_BRICK, + GCBlocks.MOON_ROCK_PILLAR, GCBlocks.LUNASLATE, GCBlocks.COBBLED_MOON_ROCK, GCBlocks.COBBLED_LUNASLATE, diff --git a/src/main/resources/assets/galacticraft/textures/block/chiseled_moon_rock_brick.png b/src/main/resources/assets/galacticraft/textures/block/chiseled_moon_rock_brick.png index e8e2a97511b78bcc2289487ef7e3ab96f0d6d8da..cc287768e3155fbccc26507c59c11cda1a10af6e 100644 GIT binary patch delta 467 zcmV;^0WAKq1mXjb8Gi-<001BJ|6u?C00DDSM?wIu&K&6g00EpyL_t(Ijg^u=Yui8^ zhMxuv;&eg~%Q%L#IK*^lOtu8_Ni*~V722)19!yGv?V<|F0&#!1EgjlBOI3ze)9Ft4 z{GRtkZyrBBzGPX(|2|#U@$~ea2;j$IhfFj61=MvNT6N()@_&o|W`A$9-U4twJ!iSR z20*46T6H+vO#U0}4f=MW15foW_f6*W8T0v!&3a2Lh7kDkAILN#77ek8*{rvG zSiMJS7pCuv9U>7ViNqK^258l>Twb&O`i-}XcNEVDtg(a4lW7isvyRp6O)!moPNf}- zt4oUK1CwdaWI8U-7|r79lCrFVNmQ0qC`f6?WSVoVn@myOB#~Uqa+G!$qeGnNST`JN z!Ubm?)>y2uh(rLt&y3ORi(LS=b&E&@k)PPs?I3d>=%KH5@(c39<0X@{S3m#&002ov JPDHLkV1ld4+Z_M^ delta 548 zcmV+<0^9xK1F{5=8Gix*005AYXf^-<03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(` z>RI+y?e7jKeZ#YO-C010qNS#tmY4y*tG4y*y(sA7Wv000gQBh0j#gP+oZIaFA z;t1sh^@U&AZ?jv9Dvhkf_ISqLhwJtGhRfw_aQ}N>olYm3kfobw>$OeUch%w0>~>12 zLQ0W~q-~1*u1?bpJwOxS@im`6Z9)g+BC1tB4DEU7PhY*1naGl|NNAumn@u$#i33{0 z0D=n`L)k=>$$tnDHBEuICGcZJ;Lx}DoCDYSh$0`uCP{-;AcZ0#WKC_kcy*o6Fjz$! zmntG8lQ^Wu5>(B8(U{dV#{1qfjr~St<|HIB1`|z9IGwuTP-E$I?1_vI{8c5>uE{YR z25XWm$v8{c?UfPx$-bqA3R5*=wl1ppbKoo_)7A*#8gus$;1W9mdFeWisG`p1k&Mf+KN?T~@t`uWr zEE0oaEC&Y746|z&VkXX`cOx|CKF+=8yt(;&^Eb;fp2ycO-}w0H`o+5sr4)6&BGSD= z_X?S2wCxrEWAu~a#bSvunk11_)fnBYfJM!ELtYm2+F^|5?Cd=-Mya83uN|orq*Bmp zM_sRQ){&P5&N`y`%oSN8?9E zZ43Kd2S8pHfqGsR>~|f}{dNF-QC=4KHy_qm&gWC^w;jf40Fp!^VnO7rL&SnVzn3pA z9VamWqjK~r?yTdjhzHs}`LNhy54(p~8;e*FU0r<$z@heD=lSIY&wa93ESb%w!x0Yw z5sM(7r>J`s{4twNpA-W`N(~AAIBmNP5?W)C=`g)nZ}??2N8hA6R^#@^FE3G)A7_2#*mf7K*(9@dT~)# zn09WR_L-SbJu=gNoPufR=jBhdmJEqwij!yqQ%inP#1pE;Mq)+r8?;_g>I#Y0;)*x5 zXbf2`LH6_EDrTJ4di<&-q?CM|(=k=i%WIyCJdZ8-7KP>jM6g+2ESj3MTn z{V8*=9U&d4CCF~~@h^W|OrHVzH0A?@2a%rz)ZmMEt41)y{-7R@c{pasy{?ZGA z55}p%Pq`q~Hz_3NebAMh_MfqX!B+5;sq+~hAsvmJd zHI$gxF|%jkz>$;jm)7hj}=5=*L3RZ6D1%GFn? zp~jk;YJaU!bB&vC(n57D7TLY>QH`byV~%vEKcVQqYT#btUJbJYqg$?l!6ey&FT zegFoxne~L`U~UHVwkz{E+E=^_a-MX1U}Yv)-G(=M(C>pMVd26>Uy!e> zkbiev;jzsecryWjvK`!&U04p@_Hz>>@Vkz9j|y>yR~|6>sUtt5sdJUv!C#n9Td>~> zGapz>c~OEaNa_Z$_0!hy9?TQ-gEw{G+@5+KGklIV`!NSu#&;5|X8h?ZbEqVDiA0;JxRst!TPe9&Q-_p_`%y&^( z`5e>k0r%wn7N7a3pi{CeJB6w2$>BG)t=SVk?`q`wQX7`zp?dRa0*{kncv1VJcqWl~ z7R^-$;$Bu)VR)348q5ae$|nE5@BTi3mHj&*_*zSzC3D)EM+t#PaBhcC|4ux}+kXYg z=}n>W^;I{L!t5n;dzq|q`1YoQDCPJv_D3lKd@Q#7wy zd8jDw@HPFz6V1Ok{a=X7Ln2lH00D$)LqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~Nh zq(v$Uc2IH1P@OD@ia2T&iclfc3V*FSm|Xe=O&XFE7e~Rh;NZt%)xpJCR|i)?5c~jf za&%I3krMxx6k5c1aNLh~_a1le0Dq&xR5LgZsG4P@lL;Z4TNOgD2xAa^h#@F3Q=b#X z6gga5(rZq35vgqsve z09`M({V@WBc7bNyw!e>UyMK8C1fGE_t?jQifSFIy>uoJ|1oUnL7uRh~-UBXofPp7n zG9*U|(DWAy!220}Qx53A1-jSV-dg)OeE>4lRq6&fI0QzEl)dip?r>*s|DI{}_X9}s za+WHQ0ImQ40c=S`K~yNuO_Iy5t1t{j9lrwQJNy5GR#1}IzJq;)E`I|A5#Enw+WY-> zcM(xlBKm&6L=+JbK}4!*X4|%Xzh4n)t!Zm*jIq`_j)R$x}vNt)1t2-?ysHIYoqsR7B>Sn1LHUMXEU`&i8#cv&_`qyQ<#z zjU=r#BFaomR#jDvF@JD3Grg{hnKLsppSIZtnJ7?I%&fh4BwlL) z-?I%|%xq@v?(S8kB4TD$^$a}hQRaCDIvr!6sE9yg+cqLP&r?J))67&Azw;R54-Pg! kM8|PJ6}B)@RkUK}e|Gn4?UT>wZvX%Q07*qoM6N<$g6IX0V*mgE diff --git a/src/main/resources/assets/galacticraft/textures/block/moon_rock_brick.png b/src/main/resources/assets/galacticraft/textures/block/moon_rock_brick.png index 068c26b1ce5ed43cf91005b51751efd4de8f38d7..7791cad7d414403feaa0778a0b6191a54dd184cd 100644 GIT binary patch delta 370 zcmV-&0ge8*4uS)a8Gi-<001BJ|6u?C00DDSM?wIu&K&6g00BHnL_t(Ijg^wIN(3_Hp~& zwk`h+V+^maZ-}!7XAO1J@|Q-&O!YAYz`B5SAvKDT7Xm3)H-9b88iEf<-L&Zfpzj9& znp!0w=9UeC=?m6{1U0oHpK2L-9zb@(0f5W(stDxJZa6TG4uGnvQCcCvPtfzz%P&w@ z8l@HE=mf9V6k zTjN-QkKS8-TyznWE`ohM?V8U$u=6NoP7Y#eZFI>Dr(2e$A@r%M0M` z04+24ZdlT_j}|{XDzt38!nr=Z*U)=Aqf5>!4E_x2G-0M170ikf9ml*5(GTldjuCYP zn`{ARt1UL`C=daGYzGI`K!Oeps?G(9`slEs=!{s9j=eyF5!GD+a$`V8p-7biAr)*y zN9q!d^W#NfdS zq5wF;padoL9LZr;27no>I*E?RD>p&&NNwvGfkPG<&wqU_73GJ?lPEWll9J^dYyOA} znnQ_+9W#3t4jefdPu_X<-iseKmxRO#ix-g~QBt7b0tX)?gb+iD7)eW#qmL3pj4>s( znVdy~KqUlpy;o^&wP-00HD^*vy`YJWlSW|)^t~7C^}TY=rcSxQ^wGNGA@Gw zO=ujP*#OSrU~X_`BWhJJs*^mpsbG@4UFXn#Dn^CNP;thYpoEg;p56q!y zwDIYHE-PS?mknN_8c8o z_9w^-%oi@Q8}jdoIH5D2GI6g5yJtG#4%L~2=3DN=DuVi{?uF*uSWubzWA3`IEbZFN z2V1Z9ut)YZFPIF?73_xd^o`RFx7=dy=6{ir`q-etp1VBT$ciXVOXBzLA-g*MghTJO zxTD;5=i);)zf$(}Xmq667x=~^eG6pMa)kC=rno_CpE?)O@+jY0$7+^&iyXdJuX&cF z=ek*prp1nV^uIhM&n?0uoz2(Wzr}aEoV={dgjUf`TIBH#c`UniWHtZi`|#FkSASyX z_gmHcu_W7`*BEcXUe~1ln|15PJMnnyQ@-t}HnT^4YuNJ^7X5h>wSoN$rYBcs#$6$j z0004mX+uL$Nkc;*aB^>EX>4Tx0C=2zkv&MmKpe$iKcqz}3U*L&$WWauh>AFB6^c+H z)C#RSm|Xe=O&XFE7e~Rh;NZt%)qlaoSyu;FK@j`^adLE0bdeJOmlRsWcyQd0clRE5 z?*M~9Dn_Cq^uLxrheTX3_F;kxt#S}cp*FAiEy^HfK?{j~S9wl!w zz$XyTGTpF!Lh4`F!%%BSrKXP4m`HgeYVL#7|8kzJwaetIpD0Z;i z!K`Gc#8bpEMb#+ZpLJQ`yv13q)L84D{DqOcwzAB1n!`w95lavuKt>H^RA3=at44~6 zH0>um{6mgkB$rICG8j1)P=yM~@q_=t?{3Y)uoJ|1b_5y0~gnAP2K}8cYuK>T{0v`3efZy3c&jreNztTzXiJ2 z+}>LIIDG&z)K%&RI5-4GiWVPZxPvh15nk7P}SC2L}X@W zatweI2><{y!=ED}A`%h&)mqC;&rA{F*WFL|T8r?kRdua3=X3xhjR-=rNmUQ0s+!r} zJ2Rbq5kWliP{u(qvwtxL$Nau;k^*q|y*IImmzlr2y7S(9?|&DKh_%)jBQvk->b;AI zs*W+tjI|PgDn+E$`hLFwlv22EX4YEGEHhnIODPmhNmNe*mPx#5lEF#^F$_hIU6o8rK1A_51;MX-xNs@T!)0h4W~Zx`WPI<*+}+77 zX>!}U=a;9S*V7xa2oI0<^ky94gp;arlxKr18Gust5GMdxBy{!Mn+4vVPo*kZGTXY% zqUZnokb#+TRDVMJ{CEdo{a)t^w>bHNnaz-{O|$G1ugPAr2xdktIrwQ5vgGj7277-@Px$UP(kjR5*>5lFv#)Q4q#|iVL}axFAKogVLhAE7}$G8ubbVy+RQ5JVEUR-HHn_ z3Qo6hkHe>zTFJx%=gWYsXV_ttq1)fK^V|JZDBIuKXrA`9|GX4BS{j9 zI#fIB=yrNk?jIl4xyyZ16@65L~%kGMywVqlwGZH+&~$qGLw^;oH(iz z#R*ZIU^3zRdychcKLd49cTJO-jX@mM{eYbe^i$DYHJdN7*7z0nGT4r+YMvbVB*1#9*L>P@e{GV#`Px$9!W$&R5*>5lFM#`Fc3vgB`*-zVv$6YFV7;smTsz66!DNOY~)?LKw}IfRqKuM z+_`7QV_vSe>vvg}{C8Pvx!>PV0G}W4XjAeRkhK;!*?3m+kp`c|v?=56CQF#Z0uW)p zBrc#wMHE2Ov;Y{L9ZY+eXp;*oz~~Hs$pt1C;`uitK$d6g4E7y}AvGDDQP)+}ymu=g zC8xtm^+QhEuYhOwPphX;$x-|2>C&d$7#__?0n~MMxNF+7bSLkh7F0stCwT7wc&*OB z^3)P53XRd(I>gBZzS@2xrcWzI(Sew+nx>5gN%r0yKmtj-@ZO<@u4m|$p8_Dvf!WWD z-AG>Kz^aYi7&{SNoi1mFuHT4xk#B$kP4&}dnavN#1l8RCX|w+T0000 Date: Thu, 11 Jul 2024 00:19:21 -0500 Subject: [PATCH 04/10] Fix fuel loader and add recipe (#339) * feat: fuel loader recipe * fix: fuel loader not being registered --- .../recipes/misc/fuel_loader.json | 34 +++++++++++++++++++ .../galacticraft/recipes/fuel_loader.json | 26 ++++++++++++++ .../mod/data/recipes/GCMachineRecipes.java | 11 ++++++ .../mod/lookup/GCApiLookupProviders.java | 1 + 4 files changed, 72 insertions(+) create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json create mode 100644 src/main/generated/data/galacticraft/recipes/fuel_loader.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json b/src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json new file mode 100644 index 000000000..3c2fd2a05 --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_fuel_bucket": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:fuel_bucket" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:fuel_loader" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_fuel_bucket" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:fuel_loader" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fuel_loader.json b/src/main/generated/data/galacticraft/recipes/fuel_loader.json new file mode 100644 index 000000000..90aaed7fb --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/fuel_loader.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "C": { + "item": "galacticraft:tin_canister" + }, + "T": { + "item": "galacticraft:compressed_tin" + }, + "U": { + "item": "galacticraft:compressed_copper" + }, + "W": { + "item": "galacticraft:basic_wafer" + } + }, + "pattern": [ + "UUU", + "UCU", + "TWT" + ], + "result": { + "item": "galacticraft:fuel_loader" + } +} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java index 130ef7a9c..8bc4b65e7 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java @@ -236,6 +236,17 @@ public void buildRecipes(RecipeOutput output) { .unlockedBy(getHasName(GCItems.CRUDE_OIL_BUCKET), has(GCItems.CRUDE_OIL_BUCKET)) .save(output); + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, GCItems.FUEL_LOADER) + .define('U', GCItems.COMPRESSED_COPPER) + .define('C', GCItems.TIN_CANISTER) + .define('T', GCItems.COMPRESSED_TIN) + .define('W', GCItems.BASIC_WAFER) + .pattern("UUU") + .pattern("UCU") + .pattern("TWT") + .unlockedBy(getHasName(GCItems.FUEL_BUCKET), has(GCItems.FUEL_BUCKET)) + .save(output); + // Wires + Pipes ShapedRecipeBuilder.shaped(RecipeCategory.MISC, GCItems.GLASS_FLUID_PIPE, 6) .define('X', Items.GLASS_PANE) diff --git a/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java b/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java index 1383ab5ba..73180ea9f 100644 --- a/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java +++ b/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java @@ -50,6 +50,7 @@ public class GCApiLookupProviders { GCBlocks.ELECTRIC_FURNACE, GCBlocks.ELECTRIC_ARC_FURNACE, GCBlocks.REFINERY, + GCBlocks.FUEL_LOADER, GCBlocks.OXYGEN_COLLECTOR, GCBlocks.OXYGEN_COMPRESSOR, GCBlocks.OXYGEN_DECOMPRESSOR, From e23e129620eac877fcd04082d2803ecbc7877b9b Mon Sep 17 00:00:00 2001 From: JustAPotota <43710172+JustAPotota@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:39:34 -0500 Subject: [PATCH 05/10] feat: olivine cave items (#340) * feat: olivine block textures * feat: implement olivine caves blocks * chore: unused imports * chore: minor cleanup * feat: add olivine blocks to creative tab --- .../blockstates/olivine_basalt.json | 7 ++ .../blockstates/olivine_block.json | 16 ++++ .../blockstates/olivine_cluster.json | 30 +++++++ .../blockstates/rich_olivine_basalt.json | 7 ++ .../assets/galacticraft/lang/en_us.json | 5 ++ .../models/block/olivine_basalt.json | 6 ++ .../models/block/olivine_block.json | 7 ++ .../block/olivine_cluster_horizontal.json | 6 ++ .../block/olivine_cluster_vertical.json | 6 ++ .../models/block/rich_olivine_basalt.json | 6 ++ .../models/item/olivine_basalt.json | 3 + .../models/item/olivine_block.json | 3 + .../models/item/olivine_cluster.json | 6 ++ .../models/item/olivine_shard.json | 6 ++ .../models/item/rich_olivine_basalt.json | 3 + .../data/c/tags/blocks/clusters.json | 6 ++ .../generated/data/c/tags/blocks/ores.json | 2 + .../generated/data/c/tags/items/clusters.json | 6 ++ .../generated/data/c/tags/items/gems.json | 6 ++ .../generated/data/c/tags/items/ores.json | 2 + .../misc/olivine_block_from_shards.json | 34 ++++++++ .../loot_tables/blocks/olivine_basalt.json | 61 ++++++++++++++ .../loot_tables/blocks/olivine_block.json | 20 +++++ .../loot_tables/blocks/olivine_cluster.json | 78 ++++++++++++++++++ .../blocks/rich_olivine_basalt.json | 61 ++++++++++++++ .../recipes/olivine_block_from_shards.json | 16 ++++ .../tags/blocks/mineable/pickaxe.json | 4 + .../java/dev/galacticraft/mod/Constant.java | 6 ++ .../galacticraft/mod/GalacticraftClient.java | 1 + .../galacticraft/mod/content/GCBlocks.java | 5 ++ .../environment/OlivineClusterBlock.java | 9 ++ .../mod/content/item/GCCreativeModeTabs.java | 6 ++ .../mod/content/item/GCItems.java | 6 ++ .../mod/data/GCBlockLootTableProvider.java | 35 ++++++++ .../mod/data/model/GCModelProvider.java | 42 ++++++++++ .../mod/data/recipes/GCOreRecipeProvider.java | 12 +++ .../mod/data/tag/GCBlockTagProvider.java | 9 ++ .../mod/data/tag/GCItemTagProvider.java | 10 +++ .../textures/block/moon_basalt.png | Bin 1837 -> 446 bytes .../textures/block/olivine_basalt.png | Bin 0 -> 691 bytes .../textures/block/olivine_block_side.png | Bin 0 -> 518 bytes .../block/olivine_cluster_horizontal.png | Bin 0 -> 483 bytes .../block/olivine_cluster_vertical.png | Bin 0 -> 417 bytes .../textures/block/rich_olivine_basalt.png | Bin 0 -> 734 bytes .../textures/item/olivine_shard.png | Bin 0 -> 449 bytes 45 files changed, 554 insertions(+) create mode 100644 src/main/generated/assets/galacticraft/blockstates/olivine_basalt.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/olivine_block.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/olivine_cluster.json create mode 100644 src/main/generated/assets/galacticraft/blockstates/rich_olivine_basalt.json create mode 100644 src/main/generated/assets/galacticraft/models/block/olivine_basalt.json create mode 100644 src/main/generated/assets/galacticraft/models/block/olivine_block.json create mode 100644 src/main/generated/assets/galacticraft/models/block/olivine_cluster_horizontal.json create mode 100644 src/main/generated/assets/galacticraft/models/block/olivine_cluster_vertical.json create mode 100644 src/main/generated/assets/galacticraft/models/block/rich_olivine_basalt.json create mode 100644 src/main/generated/assets/galacticraft/models/item/olivine_basalt.json create mode 100644 src/main/generated/assets/galacticraft/models/item/olivine_block.json create mode 100644 src/main/generated/assets/galacticraft/models/item/olivine_cluster.json create mode 100644 src/main/generated/assets/galacticraft/models/item/olivine_shard.json create mode 100644 src/main/generated/assets/galacticraft/models/item/rich_olivine_basalt.json create mode 100644 src/main/generated/data/c/tags/blocks/clusters.json create mode 100644 src/main/generated/data/c/tags/items/clusters.json create mode 100644 src/main/generated/data/c/tags/items/gems.json create mode 100644 src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json create mode 100644 src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json create mode 100644 src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json create mode 100644 src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java create mode 100644 src/main/resources/assets/galacticraft/textures/block/olivine_basalt.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/olivine_block_side.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/olivine_cluster_horizontal.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/olivine_cluster_vertical.png create mode 100644 src/main/resources/assets/galacticraft/textures/block/rich_olivine_basalt.png create mode 100644 src/main/resources/assets/galacticraft/textures/item/olivine_shard.png diff --git a/src/main/generated/assets/galacticraft/blockstates/olivine_basalt.json b/src/main/generated/assets/galacticraft/blockstates/olivine_basalt.json new file mode 100644 index 000000000..2737a1707 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/olivine_basalt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/olivine_basalt" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/olivine_block.json b/src/main/generated/assets/galacticraft/blockstates/olivine_block.json new file mode 100644 index 000000000..a39c7f101 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/olivine_block.json @@ -0,0 +1,16 @@ +{ + "variants": { + "axis=x": { + "model": "galacticraft:block/olivine_block", + "x": 90, + "y": 90 + }, + "axis=y": { + "model": "galacticraft:block/olivine_block" + }, + "axis=z": { + "model": "galacticraft:block/olivine_block", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/olivine_cluster.json b/src/main/generated/assets/galacticraft/blockstates/olivine_cluster.json new file mode 100644 index 000000000..a5aad5dcf --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/olivine_cluster.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "galacticraft:block/olivine_cluster_vertical", + "x": 180 + }, + "facing=east": { + "model": "galacticraft:block/olivine_cluster_horizontal", + "x": 90, + "y": 90 + }, + "facing=north": { + "model": "galacticraft:block/olivine_cluster_horizontal", + "x": 90 + }, + "facing=south": { + "model": "galacticraft:block/olivine_cluster_horizontal", + "x": 90, + "y": 180 + }, + "facing=up": { + "model": "galacticraft:block/olivine_cluster_vertical" + }, + "facing=west": { + "model": "galacticraft:block/olivine_cluster_horizontal", + "x": 90, + "y": 270 + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/blockstates/rich_olivine_basalt.json b/src/main/generated/assets/galacticraft/blockstates/rich_olivine_basalt.json new file mode 100644 index 000000000..dd6e3d845 --- /dev/null +++ b/src/main/generated/assets/galacticraft/blockstates/rich_olivine_basalt.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "galacticraft:block/rich_olivine_basalt" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/lang/en_us.json b/src/main/generated/assets/galacticraft/lang/en_us.json index 98e9d834a..558d5e6a8 100644 --- a/src/main/generated/assets/galacticraft/lang/en_us.json +++ b/src/main/generated/assets/galacticraft/lang/en_us.json @@ -194,6 +194,9 @@ "block.galacticraft.moon_surface_rock": "Moon Surface Rock", "block.galacticraft.moon_tin_ore": "Moon Tin Ore", "block.galacticraft.moon_turf": "Moon Turf", + "block.galacticraft.olivine_basalt": "Olivine Basalt", + "block.galacticraft.olivine_block": "Block of Olivine", + "block.galacticraft.olivine_cluster": "Olivine Cluster", "block.galacticraft.orange_candle_moon_cheese_block": "Block of Cheese with Orange Candle", "block.galacticraft.oxygen_bubble_distributor": "Bubble Distributor", "block.galacticraft.oxygen_bubble_distributor.description": "Oxygen Bubble Distributor creates a bubble of air around itself. Requires oxygen and electricity.", @@ -216,6 +219,7 @@ "block.galacticraft.red_candle_moon_cheese_block": "Block of Cheese with Red Candle", "block.galacticraft.refinery": "Refinery", "block.galacticraft.refinery.description": "Refinery will take an input of oil and energy, and output fuel used for rockets and vehicles.", + "block.galacticraft.rich_olivine_basalt": "Rich Olivine Basalt", "block.galacticraft.rocket_launch_pad": "Rocket Launch Pad", "block.galacticraft.rocket_workbench": "Rocket Workbench", "block.galacticraft.scorched_venus_rock": "Scorched Rock", @@ -436,6 +440,7 @@ "item.galacticraft.meteoric_iron_nugget": "Meteoric Iron Nugget", "item.galacticraft.moon_buggy_schematic": "Moon Buggy Schematic", "item.galacticraft.nose_cone": "Nose Cone", + "item.galacticraft.olivine_shard": "Olivine Shard", "item.galacticraft.orange_parachute": "Orange Parachute", "item.galacticraft.orion_drive": "Orion Drive", "item.galacticraft.oxygen_concentrator": "Oxygen Concentrator", diff --git a/src/main/generated/assets/galacticraft/models/block/olivine_basalt.json b/src/main/generated/assets/galacticraft/models/block/olivine_basalt.json new file mode 100644 index 000000000..c250585c2 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/olivine_basalt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/olivine_basalt" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/olivine_block.json b/src/main/generated/assets/galacticraft/models/block/olivine_block.json new file mode 100644 index 000000000..3ab88d112 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/olivine_block.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/cube_column", + "textures": { + "end": "galacticraft:block/olivine_block_top", + "side": "galacticraft:block/olivine_block_side" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/olivine_cluster_horizontal.json b/src/main/generated/assets/galacticraft/models/block/olivine_cluster_horizontal.json new file mode 100644 index 000000000..748befdec --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/olivine_cluster_horizontal.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "galacticraft:block/olivine_cluster_horizontal" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/olivine_cluster_vertical.json b/src/main/generated/assets/galacticraft/models/block/olivine_cluster_vertical.json new file mode 100644 index 000000000..1d22d1666 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/olivine_cluster_vertical.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cross", + "textures": { + "cross": "galacticraft:block/olivine_cluster_vertical" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/rich_olivine_basalt.json b/src/main/generated/assets/galacticraft/models/block/rich_olivine_basalt.json new file mode 100644 index 000000000..539eef33d --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/block/rich_olivine_basalt.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "galacticraft:block/rich_olivine_basalt" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/olivine_basalt.json b/src/main/generated/assets/galacticraft/models/item/olivine_basalt.json new file mode 100644 index 000000000..7832c3b3c --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/olivine_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/olivine_basalt" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/olivine_block.json b/src/main/generated/assets/galacticraft/models/item/olivine_block.json new file mode 100644 index 000000000..ae4b1bd61 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/olivine_block.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/olivine_block" +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/olivine_cluster.json b/src/main/generated/assets/galacticraft/models/item/olivine_cluster.json new file mode 100644 index 000000000..170edb065 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/olivine_cluster.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "galacticraft:block/olivine_cluster_vertical" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/olivine_shard.json b/src/main/generated/assets/galacticraft/models/item/olivine_shard.json new file mode 100644 index 000000000..582831a77 --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/olivine_shard.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "galacticraft:item/olivine_shard" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/rich_olivine_basalt.json b/src/main/generated/assets/galacticraft/models/item/rich_olivine_basalt.json new file mode 100644 index 000000000..cdd8e9a6f --- /dev/null +++ b/src/main/generated/assets/galacticraft/models/item/rich_olivine_basalt.json @@ -0,0 +1,3 @@ +{ + "parent": "galacticraft:block/rich_olivine_basalt" +} \ No newline at end of file diff --git a/src/main/generated/data/c/tags/blocks/clusters.json b/src/main/generated/data/c/tags/blocks/clusters.json new file mode 100644 index 000000000..338497d4f --- /dev/null +++ b/src/main/generated/data/c/tags/blocks/clusters.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "galacticraft:olivine_cluster" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/c/tags/blocks/ores.json b/src/main/generated/data/c/tags/blocks/ores.json index 650c958c6..ce98e8ff6 100644 --- a/src/main/generated/data/c/tags/blocks/ores.json +++ b/src/main/generated/data/c/tags/blocks/ores.json @@ -5,6 +5,8 @@ "galacticraft:deepslate_silicon_ore", "galacticraft:moon_copper_ore", "galacticraft:lunaslate_copper_ore", + "galacticraft:olivine_basalt", + "galacticraft:rich_olivine_basalt", "galacticraft:tin_ore", "galacticraft:deepslate_tin_ore", "galacticraft:moon_tin_ore", diff --git a/src/main/generated/data/c/tags/items/clusters.json b/src/main/generated/data/c/tags/items/clusters.json new file mode 100644 index 000000000..338497d4f --- /dev/null +++ b/src/main/generated/data/c/tags/items/clusters.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "galacticraft:olivine_cluster" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/c/tags/items/gems.json b/src/main/generated/data/c/tags/items/gems.json new file mode 100644 index 000000000..9640ff551 --- /dev/null +++ b/src/main/generated/data/c/tags/items/gems.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "galacticraft:olivine_shard" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/c/tags/items/ores.json b/src/main/generated/data/c/tags/items/ores.json index 650c958c6..ce98e8ff6 100644 --- a/src/main/generated/data/c/tags/items/ores.json +++ b/src/main/generated/data/c/tags/items/ores.json @@ -5,6 +5,8 @@ "galacticraft:deepslate_silicon_ore", "galacticraft:moon_copper_ore", "galacticraft:lunaslate_copper_ore", + "galacticraft:olivine_basalt", + "galacticraft:rich_olivine_basalt", "galacticraft:tin_ore", "galacticraft:deepslate_tin_ore", "galacticraft:moon_tin_ore", diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json b/src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json new file mode 100644 index 000000000..ab5022bde --- /dev/null +++ b/src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json @@ -0,0 +1,34 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_olivine_shard": { + "conditions": { + "items": [ + { + "items": [ + "galacticraft:olivine_shard" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "galacticraft:olivine_block_from_shards" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_olivine_shard" + ] + ], + "rewards": { + "recipes": [ + "galacticraft:olivine_block_from_shards" + ] + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json new file mode 100644 index 000000000..84746e6bc --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "galacticraft:olivine_basalt" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 1.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "galacticraft:olivine_shard" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json new file mode 100644 index 000000000..8d8cc3bf5 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "galacticraft:olivine_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json new file mode 100644 index 000000000..9b37531a3 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json @@ -0,0 +1,78 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "galacticraft:olivine_cluster" + }, + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "tag": "minecraft:cluster_max_harvestables" + } + } + ], + "functions": [ + { + "add": false, + "count": 4.0, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:ore_drops", + "function": "minecraft:apply_bonus" + } + ], + "name": "galacticraft:olivine_shard" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": 2.0, + "function": "minecraft:set_count" + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "galacticraft:olivine_shard" + } + ] + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json b/src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json new file mode 100644 index 000000000..10c36b63a --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json @@ -0,0 +1,61 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "enchantments": [ + { + "enchantment": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + ], + "name": "galacticraft:rich_olivine_basalt" + }, + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 4.0, + "min": 3.0 + }, + "function": "minecraft:set_count" + }, + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:uniform_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "bonusMultiplier": 1 + } + }, + { + "function": "minecraft:explosion_decay" + } + ], + "name": "galacticraft:olivine_shard" + } + ] + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json b/src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json new file mode 100644 index 000000000..113a8ae90 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "galacticraft:olivine_shard" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "galacticraft:olivine_block" + } +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json index d9c9899b4..4ed791ade 100644 --- a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -6,6 +6,8 @@ "galacticraft:deepslate_silicon_ore", "galacticraft:moon_copper_ore", "galacticraft:lunaslate_copper_ore", + "galacticraft:olivine_basalt", + "galacticraft:rich_olivine_basalt", "galacticraft:tin_ore", "galacticraft:deepslate_tin_ore", "galacticraft:moon_tin_ore", @@ -15,6 +17,7 @@ "galacticraft:desh_ore", "galacticraft:ilmenite_ore", "galacticraft:galena_ore", + "galacticraft:olivine_cluster", "galacticraft:moon_rock_slab", "galacticraft:moon_rock_brick_slab", "galacticraft:cracked_moon_rock_brick_slab", @@ -63,6 +66,7 @@ "galacticraft:titanium_block", "galacticraft:lead_block", "galacticraft:lunar_sapphire_block", + "galacticraft:olivine_block", "galacticraft:moon_turf", "galacticraft:moon_dirt", "galacticraft:moon_dirt_path", diff --git a/src/main/java/dev/galacticraft/mod/Constant.java b/src/main/java/dev/galacticraft/mod/Constant.java index 8bbb0d236..8861b584c 100644 --- a/src/main/java/dev/galacticraft/mod/Constant.java +++ b/src/main/java/dev/galacticraft/mod/Constant.java @@ -118,6 +118,10 @@ interface Block { String CRACKED_MOON_BASALT_BRICK_STAIRS = "cracked_moon_basalt_brick_stairs"; String CRACKED_MOON_BASALT_BRICK_WALL = "cracked_moon_basalt_brick_wall"; + String OLIVINE_CLUSTER = "olivine_cluster"; + String OLIVINE_BASALT = "olivine_basalt"; + String RICH_OLIVINE_BASALT = "rich_olivine_basalt"; + String MOON_DIRT = "moon_dirt"; String MARS_SURFACE_ROCK = "mars_surface_rock"; String MARS_SUB_SURFACE_ROCK = "mars_sub_surface_rock"; @@ -163,6 +167,7 @@ interface Block { String TITANIUM_BLOCK = "titanium_block"; String LEAD_BLOCK = "lead_block"; String LUNAR_SAPPHIRE_BLOCK = "lunar_sapphire_block"; + String OLIVINE_BLOCK = "olivine_block"; // Decorative BLocks String ALUMINUM_DECORATION = "aluminum_decoration"; @@ -349,6 +354,7 @@ interface Item { String TITANIUM_NUGGET = "titanium_nugget"; String STEEL_INGOT = "steel_ingot"; String LUNAR_SAPPHIRE = "lunar_sapphire"; + String OLIVINE_SHARD = "olivine_shard"; String DESH_STICK = "desh_stick"; String CARBON_FRAGMENTS = "carbon_fragments"; String IRON_SHARD = "iron_shard"; diff --git a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java index 8e0082a32..e941e3535 100644 --- a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java +++ b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java @@ -148,6 +148,7 @@ public void onInitializeClient() { BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.UNLIT_LANTERN, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.CAVERNOUS_VINES, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.CAVERNOUS_VINES_PLANT, RenderType.cutout()); + BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.OLIVINE_CLUSTER, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.translucent(), GCBlocks.VACUUM_GLASS, GCBlocks.CLEAR_VACUUM_GLASS, GCBlocks.STRONG_VACUUM_GLASS); BlockRenderLayerMap.INSTANCE.putBlocks(RenderType.translucent(), GCBlocks.CRYOGENIC_CHAMBER, GCBlocks.CRYOGENIC_CHAMBER_PART, GCBlocks.PLAYER_TRANSPORT_TUBE); diff --git a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java index c4ae8b8c4..1b0381323 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java +++ b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java @@ -241,6 +241,10 @@ public class GCBlocks { public static final Block GALENA_ORE = BLOCKS.register(Constant.Block.GALENA_ORE, new DropExperienceBlock(ConstantInt.of(0), oreSettings(3.0F, 5.0F, false))); + public static final Block OLIVINE_CLUSTER = BLOCKS.registerWithItem(Constant.Block.OLIVINE_CLUSTER, new OlivineClusterBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.AMETHYST_CLUSTER).mapColor(MapColor.COLOR_LIGHT_GREEN))); + public static final Block OLIVINE_BASALT = BLOCKS.registerWithItem(Constant.Block.OLIVINE_BASALT, new Block(BlockBehaviour.Properties.ofFullCopy(MOON_BASALT).strength(3.5F, 6.0F))); + public static final Block RICH_OLIVINE_BASALT = BLOCKS.registerWithItem(Constant.Block.RICH_OLIVINE_BASALT, new Block(BlockBehaviour.Properties.ofFullCopy(OLIVINE_BASALT))); + // CHEESE BLOCK public static final Block MOON_CHEESE_WHEEL = BLOCKS.register(Constant.Block.MOON_CHEESE_WHEEL, new MoonCheeseBlock(BlockBehaviour.Properties.of().forceSolidOn().strength(0.5F).sound(SoundType.WOOL).pushReaction(PushReaction.DESTROY))); public static final Block CANDLE_MOON_CHEESE_WHEEL = BLOCKS.register(Constant.Block.CANDLE_MOON_CHEESE_WHEEL, new CandleMoonCheeseBlock(Blocks.CANDLE, BlockBehaviour.Properties.ofFullCopy(MOON_CHEESE_WHEEL).lightLevel(litBlockEmission(3)))); @@ -268,6 +272,7 @@ public class GCBlocks { public static final Block TITANIUM_BLOCK = BLOCKS.register(Constant.Block.TITANIUM_BLOCK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(5.0F, 6.0F).sound(SoundType.METAL))); public static final Block LEAD_BLOCK = BLOCKS.register(Constant.Block.LEAD_BLOCK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(5.0F, 6.0F).sound(SoundType.METAL))); public static final Block LUNAR_SAPPHIRE_BLOCK = BLOCKS.register(Constant.Block.LUNAR_SAPPHIRE_BLOCK, new Block(BlockBehaviour.Properties.of().mapColor(MapColor.STONE).strength(5.0F, 6.0F).sound(SoundType.STONE))); + public static final Block OLIVINE_BLOCK = BLOCKS.registerWithItem(Constant.Block.OLIVINE_BLOCK, new RotatedPillarBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_LIGHT_GREEN).strength(1.5F, 1.5F).sound(SoundType.AMETHYST))); // MOON VILLAGER SPECIAL public static final Block LUNAR_CARTOGRAPHY_TABLE = BLOCKS.register(Constant.Block.LUNAR_CARTOGRAPHY_TABLE, new LunarCartographyTableBlock(BlockBehaviour.Properties.of().mapColor(MapColor.WOOD).ignitedByLava().instrument(NoteBlockInstrument.BASS).strength(2.5F).sound(SoundType.WOOD))); diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java new file mode 100644 index 000000000..b9a42e113 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java @@ -0,0 +1,9 @@ +package dev.galacticraft.mod.content.block.environment; + +import net.minecraft.world.level.block.AmethystClusterBlock; + +public class OlivineClusterBlock extends AmethystClusterBlock { + public OlivineClusterBlock(Properties properties) { + super(7.0F, 3.0F, properties); + } +} diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java index 38793a439..433787466 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java @@ -105,6 +105,7 @@ public class GCCreativeModeTabs { output.accept(RAW_TITANIUM); output.accept(RAW_SILICON); output.accept(LUNAR_SAPPHIRE); + output.accept(OLIVINE_SHARD); output.accept(METEORIC_IRON_INGOT); output.accept(DESH_INGOT); @@ -409,6 +410,10 @@ public class GCCreativeModeTabs { output.accept(GALENA_ORE); + output.accept(GCBlocks.OLIVINE_BASALT); + output.accept(GCBlocks.RICH_OLIVINE_BASALT); + output.accept(GCBlocks.OLIVINE_CLUSTER); + // COMPACT MINERAL BLOCKS output.accept(MOON_CHEESE_WHEEL); output.accept(SILICON_BLOCK); @@ -417,6 +422,7 @@ public class GCCreativeModeTabs { output.accept(TITANIUM_BLOCK); output.accept(LEAD_BLOCK); output.accept(LUNAR_SAPPHIRE_BLOCK); + output.accept(GCBlocks.OLIVINE_BLOCK); // MOON VILLAGER SPECIAL output.accept(LUNAR_CARTOGRAPHY_TABLE); diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java index 104fa66cb..26dfbe020 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java @@ -242,6 +242,8 @@ public class GCItems { public static final Item METEORIC_IRON_NUGGET = new Item(new Item.Properties()); public static final Item COMPRESSED_METEORIC_IRON = new Item(new Item.Properties()); + public static final Item OLIVINE_SHARD = registerItem(Constant.Item.OLIVINE_SHARD, new Item(new Item.Properties())); + public static final Item RAW_DESH = new Item(new Item.Properties()); public static final Item DESH_INGOT = new Item(new Item.Properties()); public static final Item DESH_NUGGET = new Item(new Item.Properties()); @@ -435,6 +437,10 @@ public class GCItems { public static final Item MOON_BUGGY_SCHEMATIC = new SchematicItem(new Item.Properties()); public static final Item TIER_3_ROCKET_SCHEMATIC = new SchematicItem(new Item.Properties()); public static final Item ASTRO_MINER_SCHEMATIC = new SchematicItem(new Item.Properties()); + + public static Item registerItem(String id, Item item) { + return Registry.register(BuiltInRegistries.ITEM, Constant.id(id), item); + } public static void register() { // === START BLOCKS === diff --git a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java index 15f993b1b..e9e0b44ec 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java @@ -28,8 +28,11 @@ import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; +import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.advancements.critereon.StatePropertiesPredicate; import net.minecraft.data.loot.BlockLootSubProvider; +import net.minecraft.tags.ItemTags; +import net.minecraft.world.item.Item; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; @@ -40,6 +43,7 @@ import net.minecraft.world.level.storage.loot.functions.ApplyBonusCount; import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; import net.minecraft.world.level.storage.loot.predicates.LootItemBlockStatePropertyCondition; +import net.minecraft.world.level.storage.loot.predicates.MatchTool; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; @@ -197,6 +201,10 @@ public void generate() { this.add(GCBlocks.GALENA_ORE, this.createOreDrop(GCBlocks.GALENA_ORE, GCItems.RAW_LEAD)); + this.add(GCBlocks.OLIVINE_CLUSTER, this.createCrystalClusterDrop(GCBlocks.OLIVINE_CLUSTER, GCItems.OLIVINE_SHARD)); + this.add(GCBlocks.OLIVINE_BASALT, this.createOreDrop(GCBlocks.OLIVINE_BASALT, GCItems.OLIVINE_SHARD, 1.0F, 2.0F)); + this.add(GCBlocks.RICH_OLIVINE_BASALT, this.createOreDrop(GCBlocks.RICH_OLIVINE_BASALT, GCItems.OLIVINE_SHARD, 3.0F, 4.0F)); + this.add(GCBlocks.MOON_CHEESE_WHEEL, noDrop()); this.add(GCBlocks.CANDLE_MOON_CHEESE_WHEEL, createCandleCakeDrops(Blocks.CANDLE)); this.add(GCBlocks.WHITE_CANDLE_MOON_CHEESE_WHEEL, createCandleCakeDrops(Blocks.WHITE_CANDLE)); @@ -222,6 +230,7 @@ public void generate() { this.dropSelf(GCBlocks.TITANIUM_BLOCK); this.dropSelf(GCBlocks.LEAD_BLOCK); this.dropSelf(GCBlocks.LUNAR_SAPPHIRE_BLOCK); + this.dropSelf(GCBlocks.OLIVINE_BLOCK); this.add(GCBlocks.FALLEN_METEOR, block -> BlockLootSubProvider.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block, LootItem.lootTableItem(GCItems.RAW_METEORIC_IRON) .apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, 2.0f)))))); @@ -288,4 +297,30 @@ private LootTable.Builder createLaunchPadTable(Block block) { .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block) .setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(AbstractLaunchPad.PART, AbstractLaunchPad.Part.CENTER)))))); } + + public LootTable.Builder createOreDrop(Block block, Item item, float min, float max) { + return createSilkTouchDispatchTable( + block, + this.applyExplosionDecay( + block, + LootItem.lootTableItem(item) + .apply(SetItemCountFunction.setCount(UniformGenerator.between(min, max))) + .apply(ApplyBonusCount.addUniformBonusCount(Enchantments.BLOCK_FORTUNE)) + ) + ); + } + + public LootTable.Builder createCrystalClusterDrop(Block block, Item item) { + return createSilkTouchDispatchTable( + block, + (LootItem.lootTableItem(item) + .apply(SetItemCountFunction.setCount(ConstantValue.exactly(4.0F))) + .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + .when(MatchTool.toolMatches(ItemPredicate.Builder.item().of(ItemTags.CLUSTER_MAX_HARVESTABLES))) + ) + .otherwise( + this.applyExplosionDecay(block, LootItem.lootTableItem(item).apply(SetItemCountFunction.setCount(ConstantValue.exactly(2.0F)))) + ) + ); + } } diff --git a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java index 286ae3b80..0fc0bc274 100644 --- a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java @@ -96,6 +96,7 @@ public void generateBlockStateModels(BlockModelGenerators generator) { generator.createTrivialCube(GCBlocks.MOON_DUNGEON_BRICK); generator.createTrivialCube(GCBlocks.CHISELED_MOON_ROCK_BRICK); generator.createAxisAlignedPillarBlock(GCBlocks.MOON_ROCK_PILLAR, TexturedModel.COLUMN); + generator.createAxisAlignedPillarBlock(GCBlocks.OLIVINE_BLOCK, TexturedModel.COLUMN); // MARS NATURAL generator.createTrivialCube(GCBlocks.MARS_SURFACE_ROCK); @@ -169,6 +170,11 @@ public void generateBlockStateModels(BlockModelGenerators generator) { generator.createTrivialCube(GCBlocks.GALENA_ORE); + this.createOlivineCluster(generator, GCBlocks.OLIVINE_CLUSTER); + generator.createSimpleFlatItemModel(GCBlocks.OLIVINE_CLUSTER, "_vertical"); + generator.createTrivialCube(GCBlocks.OLIVINE_BASALT); + generator.createTrivialCube(GCBlocks.RICH_OLIVINE_BASALT); + this.createCheeseBlock(generator); this.createCandleCheeseBlock(generator, Blocks.CANDLE, GCBlocks.CANDLE_MOON_CHEESE_WHEEL); this.createCandleCheeseBlock(generator, Blocks.WHITE_CANDLE, GCBlocks.WHITE_CANDLE_MOON_CHEESE_WHEEL); @@ -370,6 +376,7 @@ public void generateItemModels(ItemModelGenerators generator) { generator.generateFlatItem(GCItems.COMPRESSED_STEEL, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.LUNAR_SAPPHIRE, ModelTemplates.FLAT_ITEM); + generator.generateFlatItem(GCItems.OLIVINE_SHARD, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.DESH_STICK, ModelTemplates.FLAT_HANDHELD_ITEM); generator.generateFlatItem(GCItems.CARBON_FRAGMENTS, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.IRON_SHARD, ModelTemplates.FLAT_ITEM); @@ -567,6 +574,41 @@ private void createCavernousVines(BlockModelGenerators generator) { generator.blockStateOutput.accept(MultiVariantGenerator.multiVariant(cavernousVinesPlant).with(BlockModelGenerators.createBooleanModelDispatch(CavernousVines.POISONOUS, resourceLocation4, resourceLocation3))); } + private ResourceLocation blockTextureWithSuffix(Block block, String suffix) { + ResourceLocation resourceLocation = BuiltInRegistries.BLOCK.getKey(block); + return resourceLocation.withPrefix("block/").withSuffix(suffix); + } + + public final void createOlivineCluster(BlockModelGenerators generator, Block block) { + ResourceLocation verticalModel = ModelTemplates.CROSS.createWithSuffix(block, "_vertical", TextureMapping.cross(blockTextureWithSuffix(block, "_vertical")), generator.modelOutput); + ResourceLocation horizontalModel = ModelTemplates.CROSS.createWithSuffix(block, "_horizontal", TextureMapping.cross(blockTextureWithSuffix(block, "_horizontal")), generator.modelOutput); + generator.skipAutoItemBlock(block); + generator.blockStateOutput + .accept( + MultiVariantGenerator.multiVariant(block) + .with(PropertyDispatch.property(BlockStateProperties.FACING) + .select(Direction.DOWN, Variant.variant().with(VariantProperties.X_ROT, VariantProperties.Rotation.R180) + .with(VariantProperties.MODEL, verticalModel)) + .select(Direction.UP, Variant.variant() + .with(VariantProperties.MODEL, verticalModel)) + .select(Direction.NORTH, Variant.variant().with(VariantProperties.X_ROT, VariantProperties.Rotation.R90) + .with(VariantProperties.MODEL, horizontalModel)) + .select( + Direction.SOUTH, + Variant.variant().with(VariantProperties.X_ROT, VariantProperties.Rotation.R90).with(VariantProperties.Y_ROT, VariantProperties.Rotation.R180) + .with(VariantProperties.MODEL, horizontalModel)) + .select( + Direction.WEST, + Variant.variant().with(VariantProperties.X_ROT, VariantProperties.Rotation.R90).with(VariantProperties.Y_ROT, VariantProperties.Rotation.R270) + .with(VariantProperties.MODEL, horizontalModel)) + .select( + Direction.EAST, + Variant.variant().with(VariantProperties.X_ROT, VariantProperties.Rotation.R90).with(VariantProperties.Y_ROT, VariantProperties.Rotation.R90) + .with(VariantProperties.MODEL, horizontalModel)) + ) + ); + } + private static TextureMapping rocketLaunchPadPart(Block block, String suffix) { return new TextureMapping() .put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(block, suffix)) diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java index 9ac6c6d1c..090236f60 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java @@ -23,6 +23,7 @@ package dev.galacticraft.mod.data.recipes; import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; @@ -73,6 +74,7 @@ public void buildRecipes(RecipeOutput output) { nineBlockStorageUnpackingRecipe(output, RecipeCategory.MISC, GCItems.LEAD_INGOT, RecipeCategory.BUILDING_BLOCKS, GCItems.LEAD_BLOCK, "lead_ingot_from_block", "lead_ingot"); nineBlockStorageUnpackingRecipe(output, RecipeCategory.MISC, GCItems.TITANIUM_INGOT, RecipeCategory.BUILDING_BLOCKS, GCItems.TITANIUM_BLOCK, "titanium_ingot_from_block", "titanium_ingot"); nineBlockStorageUnpackingRecipe(output, RecipeCategory.MISC, GCItems.LUNAR_SAPPHIRE, RecipeCategory.BUILDING_BLOCKS, GCItems.LUNAR_SAPPHIRE_BLOCK, "lunar_sapphire_from_block", "lunar_sapphire"); + crystalBlockStorageRecipe(output, GCItems.OLIVINE_SHARD, RecipeCategory.MISC, GCBlocks.OLIVINE_BLOCK, "olivine_block_from_shards", null); } @Override @@ -108,4 +110,14 @@ public static void nineBlockStorageRecipe(RecipeOutput exporter, RecipeCategory .unlockedBy(getHasName(baseItem), has(baseItem)) .save(exporter, Constant.id(compactingId)); } + + public static void crystalBlockStorageRecipe(RecipeOutput exporter, ItemLike baseItem, RecipeCategory compactingCategory, ItemLike compactItem, String compactingId, @Nullable String compactingGroup) { + ShapedRecipeBuilder.shaped(compactingCategory, compactItem) + .define('#', baseItem) + .pattern("##") + .pattern("##") + .group(compactingGroup) + .unlockedBy(getHasName(baseItem), has(baseItem)) + .save(exporter, Constant.id(compactingId)); + } } diff --git a/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java b/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java index e92e025e7..f0cc9a1f4 100644 --- a/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/tag/GCBlockTagProvider.java @@ -162,6 +162,7 @@ protected void addTags(HolderLookup.Provider provider) { var ores = new Block[] { GCBlocks.SILICON_ORE, GCBlocks.DEEPSLATE_SILICON_ORE, GCBlocks.MOON_COPPER_ORE, GCBlocks.LUNASLATE_COPPER_ORE, + GCBlocks.OLIVINE_BASALT, GCBlocks.RICH_OLIVINE_BASALT, GCBlocks.TIN_ORE, GCBlocks.DEEPSLATE_TIN_ORE, GCBlocks.MOON_TIN_ORE, GCBlocks.LUNASLATE_TIN_ORE, GCBlocks.ALUMINUM_ORE, GCBlocks.DEEPSLATE_ALUMINUM_ORE, GCBlocks.DESH_ORE, @@ -171,9 +172,16 @@ protected void addTags(HolderLookup.Provider provider) { this.tag(ConventionalBlockTags.ORES).add(ores); + var clusters = new Block[] { + GCBlocks.OLIVINE_CLUSTER + }; + + this.tag(ConventionalBlockTags.CLUSTERS).add(clusters); + this.tag(BlockTags.MINEABLE_WITH_PICKAXE) .forceAddTag(GCTags.MACHINES) .add(ores) + .add(clusters) .add(slab) .add(stairs) .add( @@ -202,6 +210,7 @@ protected void addTags(HolderLookup.Provider provider) { GCBlocks.TITANIUM_BLOCK, GCBlocks.LEAD_BLOCK, GCBlocks.LUNAR_SAPPHIRE_BLOCK, + GCBlocks.OLIVINE_BLOCK, GCBlocks.MOON_TURF, GCBlocks.MOON_DIRT, diff --git a/src/main/java/dev/galacticraft/mod/data/tag/GCItemTagProvider.java b/src/main/java/dev/galacticraft/mod/data/tag/GCItemTagProvider.java index a98aa218d..640bd2f2c 100644 --- a/src/main/java/dev/galacticraft/mod/data/tag/GCItemTagProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/tag/GCItemTagProvider.java @@ -22,6 +22,7 @@ package dev.galacticraft.mod.data.tag; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.tag.GCTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; @@ -109,12 +110,21 @@ protected void addTags(HolderLookup.Provider provider) { tag(ConventionalItemTags.ORES).add( GCItems.SILICON_ORE, GCItems.DEEPSLATE_SILICON_ORE, GCItems.MOON_COPPER_ORE, GCItems.LUNASLATE_COPPER_ORE, + GCBlocks.OLIVINE_BASALT.asItem(), GCBlocks.RICH_OLIVINE_BASALT.asItem(), GCItems.TIN_ORE, GCItems.DEEPSLATE_TIN_ORE, GCItems.MOON_TIN_ORE, GCItems.LUNASLATE_TIN_ORE, GCItems.ALUMINUM_ORE, GCItems.DEEPSLATE_ALUMINUM_ORE, GCItems.DESH_ORE, GCItems.ILMENITE_ORE, GCItems.GALENA_ORE ); + + tag(ConventionalItemTags.GEMS).add( + GCItems.OLIVINE_SHARD + ); + + tag(ConventionalItemTags.CLUSTERS).add( + GCBlocks.OLIVINE_CLUSTER.asItem() + ); } protected FabricTagProvider.FabricTagBuilder tag(TagKey tag) { diff --git a/src/main/resources/assets/galacticraft/textures/block/moon_basalt.png b/src/main/resources/assets/galacticraft/textures/block/moon_basalt.png index 534b573f25f2f6cd38556735098949ad06c88cca..66f3fea4e1104deeada7842c64b0fd47571b3b3d 100644 GIT binary patch delta 431 zcmV;g0Z{&}4!#4B8Gi-<001BJ|6u?C00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z00B-(L_t(IPj!;pZo)7SM2#f^b&3Rt_MsoqKKB1VC6B!bAwf(VBwC-{3<*e#WN`K} zyF2U2+w1#ZC`b=64-u>93!g4+-_GBXf#*YdlSt4Q+NFY(k z_(*io&mr>TB!BrzAWwE86338E_$@-So3U4&yU6``b#!2BbWBW7;MMJZNA+Pm-m14B>firs?k{~H za&Vp{h7`i4k54{f)ZySGwDp{rhoYBl&<|LAJ(jjemDR& z7igKmPs5V0ecbTNqvN)5hjV>eE3vhDMwfliG=wv#(}bI9RB+cU(YO|Lh<;etGDgx7 zx4a$Tx1ttz9S0;ppsj(2;vhqV3PtAw4)xJvMbR1YKpK0I1QQ;#5s>c#8VV&U6bb3T zN<`ifE?;2SO@G7Q0Z}a%P*DU`272XRhx<+7PeyCUra1!8=;6wh`i0nWfSyL`-zuhn zK)Z0`k>EMj<34~TMUY3DqXw9_{Zz3t+}xr;08%;D`Q#T!>8RmgiC5dK&HyO{TL5AR zunD37c*3XvW%V4%qVh;>>m7k1i+_ygzLtvO!xTsqn?zZ`@}8AH z;-hjXGqGppz`~IeXBQ~=z##+)z2>rzcwq@55+zBF6n*3vqQn?e%n1`|NpcEFQcNl3 ztTwZEnX}%`Dv|S!JMDhwJ?yf_J?;5W`W*h?BOG$XBOSS5q2dddP^83?O0H0qO0N3K zHB_mwrhl57a;;JGjaz8aVoNPA)GkyXn@5Xdu+9u;+9mt-gwC9;2SSz<=QNPdi)RKrP?af3sE%UkeJCaKvjd z=Y79KnBBZy=Jj+fa9Wu2F-4~Y)k|Mex7@d>v~2OKUvg;%o?*qMDCG~`V=*HJZNjHR zyH&{3!?EGIiC0-PPHZ;r-fqr?1DlFuwfSjz#UG5@{f--#;F0NK)J_RnNtAi#Jkp}| zVt<5}I&alzm3$kzQ|KmrP_D)HG9#Le6>97>a9aJ*MW&@q={cbpust%t-{P{KUiC?iNCu*PXDtPNg@cL#sXZM5}=?&{gvwvzg z2+kzVCM7(Qa#&K+dO`A|hq48zzP;nt%he?drnhemYWj~&a{mCnvQukaM+xBo00D$) zLqkwWLqi~Na&Km7Y-Iodc$|HaJxIeq9K~Nhq(v$Uc2IH1P@OD@ia2T&iclfc3avVr zT>1q~8j=(jN5Qq=;KyRs!Nplu2Y**V5c~jfa&%I3krMxx6k5c1aNLh~_a1le0Dq&x zR5LgZsG4P@lL;Z4TNOgD2xAa^h#@F3Q=b#X6gga5(rZq35vgqsve09`M({V@WBc7bNyw!e>UyLkcxo`EZ^ z?XNa~nNQN|Z7p^L^lk$e*MDtI-UBXofPp7nG9*U|(DWAy!220}Qx53A1-jSV-dg)O zeE>4lRq6&fI0QzEl)dip?r>*s|DI{}_X9}sa+WHQ0ImQ40YgbdK~yNuJyJ=I0x=Bq zmLQOL8UKF@pu{PA4#jjIBDrIiYl*&IF97cD?wMItYb_CZKA)e@$A8QsqPs-|0D#zg z&pFpx5%G9DGBYB~?EC$mbLO082H>2ds;U~@z4wj?ReitTBEk-Lzu)hf381@Gm3ty0 z2*BdHs490q=Ui72AtKS;ym0q9r~H4Jxz_6L?gk(tzey3{#=SRLa=^@Z{-{S(6@UPs zs+mbyw1tpWRaL6$?tgo4Gjn&NCuTOr7-LWa;W^d?kwi~*pk7%Fx1?Cz@KKvi{jux8(!^Xgk`k@~ftWsm@y_)G|KyWN;E zfW7y{>ZfmvK@&5Re=Z<;cx4h*#mB?^&p9;2-T9&bT)L~u+#;P|+|H7$%#2Pj1ZMIF X^G-F#-@PX(00000NkvXXu0mjfdc<`7 diff --git a/src/main/resources/assets/galacticraft/textures/block/olivine_basalt.png b/src/main/resources/assets/galacticraft/textures/block/olivine_basalt.png new file mode 100644 index 0000000000000000000000000000000000000000..b165e9454b755bf4c4df6f868d5a2df5c676fd9e GIT binary patch literal 691 zcmV;k0!;mhP)Px#1ZP1_K>z@;j|==^1poj7LrFwIR5(vnQ_pJ?VGw=$Bb#K?{OHEkT2o2`EebYz zGPDRHg7zYa7yk&slNS#{{;eK+tX`B-0%~JJLDE{YCNZ1MZg$swQ@@}OhW(hCH{ZTUf$?aJYGWj~oOSv_vTa+Eh*7(WfjgC)e>*j*HK#T8L!2J@nDrMh z>>~Z}<^XzcRa$SizlracpP-V{(wXhFbr0+7*M&^5fUf3Y<=rPsxVh`2dwPy* zX`3WJNCjPMM);lzNc^}M36VzKbgIcB#oIqcX$rXA*p%ee#R5vHu`mm<3+6MIWb%xy zN2L~Lr-&QXZ4_|>yHEmb2%{mtecphQ!0ePk(*(d{jbK znFZ8*>Y3Dxj43cjVZMpnEJY@PL@KSwclJy%1?DL-bL6DfSp^6de)-OkSLhsA^8V@) z>acR(NBv;{!9)eo9A00&9HFUe@;^T(03-xE(c^!WM0C6eI&^Cc?0000EWmrjOO-%qQ00008 Z000000002eQPx#1ZP1_K>z@;j|==^1poj6mPtfGR5(w4lRrztP!z>)GnCdpwF(tQ2vi4=f+9*+ z>7qyxQ8zz;xVX4DiGzzexHt$7eg_c|C+Xr)8blGDv``1dsFYZ3$k58U&5bW1_=E8B z-pf7j-g93f$M^nM`+vh+P39i>1dapHF0$?b)P2-8YJ0rTb&ZumiyR+6IK!OEN;PQ2z zl5H!L>pP*T-VI(e%o2Yr!CrBNr!;y4QGJ#@WJ%Jg3m~ZqohXT$|nSG0Q`yEn2SxM zCdf&LMu80*>5uVT)+M-D`R08s*gjQEMb@Qc>4sMQIr7>UOi_IJ4-FRvbv{-%dAukW z-K{@@-9h?-uZ_}s6$us(mWP*UFSp~h(kBo^t}MDF_W&8ozXFj^0T`v;_n^^0{*_Px z)jZT2W;8I&68!>g!{j2@o;KG2000hUSV?A0O#mtY000O800000007cclK=n!07*qo IM6N<$f__oi+5i9m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/galacticraft/textures/block/olivine_cluster_horizontal.png b/src/main/resources/assets/galacticraft/textures/block/olivine_cluster_horizontal.png new file mode 100644 index 0000000000000000000000000000000000000000..abcff314e3ea1cb6991e2a65b121c90e9bed3d19 GIT binary patch literal 483 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCh82x;Tbd_$Nyg9N<{Gv8j7~^FQv*CyhQ7zA*T(ad}c`cc{RUj~DyB1LT;S z73Z7#Id72q@bvrD|ML6JGHpIze~W9`Q;RPWUtF(0EH#v=`DOXr{)B)8+s+lQr<|!@ zVZwDF>(R60TK^r*nhu=%yK;G;Kx3oe8a@_>Du)?@ zDZ3fMr6LOcbJrWx{{6|%=IhB)EQ;> zWOW+OvYvQwxnDbB>rH80iL{s;mTtqTGi@1vTb36KMhHA{nebL2`~ZVGzjTDmlaz>_ z178}G8ILh~HpQ?oZkQ{Nw50 z{$YlbC%eM*h8$+eOL4FB7ou>NkJ%f7pVQ>&eE!eItBhgpts zRzFrvW)#_>z+lesBu9YlCZDJiqmqq}#zRJC9R;Q(f+<>h1@G^cFJQdG(c=@V~jZ(co{5tRTzU9lA3c`7*oEz zKEHo~4%-e@3ueLT+6fG41~(W|j-JSg@TvLFwDITJ>GcUxk-S~p6I30{8h*T(<;ZX| zx`27ZQEQ`yOsCM}2N)P6mDg)1sF_3n1CuW`!ZXd+mq822<^W<4xD-4YM0vXUxvXPx#1ZP1_K>z@;j|==^1poj7Zb?KzR5(vvQ_F7CP!K(~<2;;aL(^0tC6pvZh_;jk zly<`o5E2qQc6UraY?L(APP^DFZZ3TU z-FmLcx!r8b((;MzO20pWV^2L~2fD7Kb2f+DUPoHLg?g=yZr4FF8G@FwP}+&WSW_^l z1>nwIXz^I4!Y&FA!|0r7(v1-bLQxeg77H|+eb7H@gwXf~bSx7CbA()C3$|@TWkO;l zDlKy^w#zl0cpW(oGHY?ns~bqIqy#)RC}G{*gJoF=hP*-t`v*c|q}-R;7|=6&m`!KU zgE}~#Zyd2u$O<@(0IJWf+Q>#)DZ z@eZG51jvXOGRF3cfFxgbEogf$S1ZAB0%mV00k7VLh2_r4!c#;+?eko|C*v6sO3qWu z!D5h<4s=a{%C_?xd8x)KUp@|&`m-}uG(V+7{|JQ52SElaU1Vx;^}^wLGw(S0;cf-9hWZLe$MdmC~NETKrx|&aGBUs`=dbM6W*{ z%YOPHC{k*L8kBN*=lU%e;$+J-KZ#?}m_+;E?_DGVZ;sM(&;NB&I{v%=C?WInLeWnj z7lEmu$VlP_rY*#gBnFOtBn6DVSS%)I|4~sX%FE)~-Ey&Fod=K!mxZ{Wbrb1$NUAix zx-hGJeOHob7={o#QtWG4bNB+j)edNuh8{!XRQI^Xxs@;9skgc0JFd`RKD@nuO@dU)@6LP2KOAs3 zWKb!5&SO92IKy|YGi5mphglUEidZ)VJ8p}XC^Tx|ao;A(V!+d|lj#Ys0K-vh@&EY- z($WWBF$pxVs%YpO$~|K6hmTo;$$+72;(`K~SE@IGK`zOZnsn8N^}qoJh6?89|DHzS kAAo_)mm1-j=IhI#1!QvoF$i1=o(!TqUHx3vIVCg!0CRGog8%>k literal 0 HcmV?d00001 From 0a7f714e0e9e21656669a5565e76c73d4a18f157 Mon Sep 17 00:00:00 2001 From: marcus8448 Date: Sat, 24 Aug 2024 05:03:16 +0000 Subject: [PATCH 06/10] feat: update to minecraft 1.21 (#346) * wip: update to 1.21 most stuff is still broken * chore: continue porting to 1.21 * chore: even more porting work (still not done) * chore: porting continues data component edition (also simplify level -> celestialbody system) * feat: it loads to the title screen * chore: run datagen * fix: hack around datagen registry restrictions * feat: most things work now * update tag conventions * fix network recipe serialization * synchronize dynamic registries * feat: all tests pass, moon no longer crashes * chore: update to 1.21.1 and optimize imports * also add a missing license header * chore: use an alternative maven builds should work now --- .github/workflows/build.yml | 6 +- .github/workflows/codeql.yml | 6 +- .github/workflows/crowdin_push.yml | 2 +- .github/workflows/crowdin_sync.yml | 2 +- .github/workflows/pr_check.yml | 6 +- README.md | 2 +- build.gradle.kts | 39 +- gradle.properties | 24 +- gradle/wrapper/gradle-wrapper.jar | Bin 43453 -> 43583 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 7 +- gradlew.bat | 2 + settings.gradle.kts | 9 +- src/main/generated/README.md | 3 +- .../blockstates/moon_berry_bush.json | 16 - .../assets/galacticraft/lang/en_us.json | 2 +- .../models/block/moon_berry_bush_stage0.json | 6 - .../models/block/moon_berry_bush_stage1.json | 6 - .../models/block/moon_berry_bush_stage2.json | 6 - .../models/block/moon_berry_bush_stage3.json | 6 - .../models/item/moon_berries.json | 6 - .../c/tags/{items => block}/clusters.json | 1 - .../data/c/tags/{blocks => block}/ores.json | 1 - .../data/c/tags/{fluids => fluid}/fuel.json | 1 - .../data/c/tags/{fluids => fluid}/oil.json | 1 - .../data/c/tags/{fluids => fluid}/oxygen.json | 1 - .../tags/{fluids => fluid}/sulfuric_acid.json | 1 - .../c/tags/{blocks => item}/clusters.json | 1 - .../data/c/tags/{items => item}/gems.json | 1 - .../silicons.json => item/gems/silicon.json} | 1 - .../ingots/aluminum.json} | 1 - .../ingots/lead.json} | 1 - .../tin_ingots.json => item/ingots/tin.json} | 1 - .../data/c/tags/{items => item}/ores.json | 1 - .../plates/iron.json} | 1 - .../plates/steel.json} | 1 - .../plates/tin.json} | 1 - .../raw_materials/aluminum.json} | 1 - .../raw_materials/lead.json} | 1 - .../raw_materials/tin.json} | 1 - .../recipes/advanced_wafer.json | 0 .../recipes/basic_wafer.json | 0 .../recipes/blue_solar_wafer.json | 0 .../building_blocks/aluminum_decoration.json | 4 +- .../aluminum_decoration_slab.json | 4 +- ...from_aluminum_decoration_stonecutting.json | 4 +- .../aluminum_decoration_stairs.json | 4 +- ...from_aluminum_decoration_stonecutting.json | 4 +- .../aluminum_decoration_wall.json | 4 +- ...from_aluminum_decoration_stonecutting.json | 4 +- .../building_blocks/bronze_decoration.json | 4 +- .../bronze_decoration_slab.json | 4 +- ...b_from_bronze_decoration_stonecutting.json | 4 +- .../bronze_decoration_stairs.json | 4 +- ...s_from_bronze_decoration_stonecutting.json | 4 +- .../bronze_decoration_wall.json | 4 +- ...l_from_bronze_decoration_stonecutting.json | 4 +- .../chiseled_moon_rock_brick.json | 4 +- ...ick_from_moon_rock_brick_stonecutting.json | 4 +- ...ock_brick_from_moon_rock_stonecutting.json | 4 +- .../cobbled_lunaslate_slab.json | 4 +- ...b_from_cobbled_lunaslate_stonecutting.json | 4 +- .../cobbled_lunaslate_stairs.json | 4 +- ...s_from_cobbled_lunaslate_stonecutting.json | 4 +- .../cobbled_lunaslate_wall.json | 4 +- ...l_from_cobbled_lunaslate_stonecutting.json | 4 +- .../building_blocks/copper_decoration.json | 4 +- .../copper_decoration_slab.json | 4 +- ...b_from_copper_decoration_stonecutting.json | 4 +- .../copper_decoration_stairs.json | 4 +- ...s_from_copper_decoration_stonecutting.json | 4 +- .../copper_decoration_wall.json | 4 +- ...l_from_copper_decoration_stonecutting.json | 4 +- .../cracked_moon_basalt_brick_slab.json | 4 +- ...racked_moon_basalt_brick_stonecutting.json | 4 +- .../cracked_moon_basalt_brick_stairs.json | 4 +- ...racked_moon_basalt_brick_stonecutting.json | 4 +- .../cracked_moon_basalt_brick_wall.json | 4 +- ...racked_moon_basalt_brick_stonecutting.json | 4 +- .../cracked_moon_rock_brick.json | 4 +- .../cracked_moon_rock_brick_slab.json | 4 +- ..._cracked_moon_rock_brick_stonecutting.json | 4 +- .../cracked_moon_rock_brick_stairs.json | 4 +- ..._cracked_moon_rock_brick_stonecutting.json | 4 +- .../cracked_moon_rock_brick_wall.json | 4 +- ..._cracked_moon_rock_brick_stonecutting.json | 4 +- .../building_blocks/dark_decoration_slab.json | 4 +- ...lab_from_dark_decoration_stonecutting.json | 4 +- .../dark_decoration_stairs.json | 4 +- ...irs_from_dark_decoration_stonecutting.json | 4 +- .../building_blocks/dark_decoration_wall.json | 4 +- ...all_from_dark_decoration_stonecutting.json | 4 +- .../recipes/building_blocks/desh_block.json | 4 +- .../detailed_aluminum_decoration.json | 4 +- .../detailed_aluminum_decoration_slab.json | 4 +- ...iled_aluminum_decoration_stonecutting.json | 4 +- .../detailed_aluminum_decoration_stairs.json | 4 +- ...iled_aluminum_decoration_stonecutting.json | 4 +- .../detailed_aluminum_decoration_wall.json | 4 +- ...iled_aluminum_decoration_stonecutting.json | 4 +- .../detailed_bronze_decoration.json | 4 +- .../detailed_bronze_decoration_slab.json | 4 +- ...tailed_bronze_decoration_stonecutting.json | 4 +- .../detailed_bronze_decoration_stairs.json | 4 +- ...tailed_bronze_decoration_stonecutting.json | 4 +- .../detailed_bronze_decoration_wall.json | 4 +- ...tailed_bronze_decoration_stonecutting.json | 4 +- .../detailed_copper_decoration.json | 4 +- .../detailed_copper_decoration_slab.json | 4 +- ...tailed_copper_decoration_stonecutting.json | 4 +- .../detailed_copper_decoration_stairs.json | 4 +- ...tailed_copper_decoration_stonecutting.json | 4 +- .../detailed_copper_decoration_wall.json | 4 +- ...tailed_copper_decoration_stonecutting.json | 4 +- .../detailed_dark_decoration_slab.json | 4 +- ...detailed_dark_decoration_stonecutting.json | 4 +- .../detailed_dark_decoration_stairs.json | 4 +- ...detailed_dark_decoration_stonecutting.json | 4 +- .../detailed_dark_decoration_wall.json | 4 +- ...detailed_dark_decoration_stonecutting.json | 4 +- .../detailed_iron_decoration.json | 4 +- .../detailed_iron_decoration_slab.json | 4 +- ...detailed_iron_decoration_stonecutting.json | 4 +- .../detailed_iron_decoration_stairs.json | 4 +- ...detailed_iron_decoration_stonecutting.json | 4 +- .../detailed_iron_decoration_wall.json | 4 +- ...detailed_iron_decoration_stonecutting.json | 4 +- .../detailed_meteoric_iron_decoration.json | 4 +- ...etailed_meteoric_iron_decoration_slab.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- ...ailed_meteoric_iron_decoration_stairs.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- ...etailed_meteoric_iron_decoration_wall.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- .../detailed_steel_decoration.json | 4 +- .../detailed_steel_decoration_slab.json | 4 +- ...etailed_steel_decoration_stonecutting.json | 4 +- .../detailed_steel_decoration_stairs.json | 4 +- ...etailed_steel_decoration_stonecutting.json | 4 +- .../detailed_steel_decoration_wall.json | 4 +- ...etailed_steel_decoration_stonecutting.json | 4 +- .../detailed_tin_decoration.json | 4 +- .../detailed_tin_decoration_slab.json | 4 +- ..._detailed_tin_decoration_stonecutting.json | 4 +- .../detailed_tin_decoration_stairs.json | 4 +- ..._detailed_tin_decoration_stonecutting.json | 4 +- .../detailed_tin_decoration_wall.json | 4 +- ..._detailed_tin_decoration_stonecutting.json | 4 +- .../detailed_titanium_decoration.json | 4 +- .../detailed_titanium_decoration_slab.json | 4 +- ...iled_titanium_decoration_stonecutting.json | 4 +- .../detailed_titanium_decoration_stairs.json | 4 +- ...iled_titanium_decoration_stonecutting.json | 4 +- .../detailed_titanium_decoration_wall.json | 4 +- ...iled_titanium_decoration_stonecutting.json | 4 +- .../recipes/building_blocks/grating.json | 4 +- .../building_blocks/iron_decoration.json | 4 +- .../building_blocks/iron_decoration_slab.json | 4 +- ...lab_from_iron_decoration_stonecutting.json | 4 +- .../iron_decoration_stairs.json | 4 +- ...irs_from_iron_decoration_stonecutting.json | 4 +- .../building_blocks/iron_decoration_wall.json | 4 +- ...all_from_iron_decoration_stonecutting.json | 4 +- .../recipes/building_blocks/lead_block.json | 4 +- .../building_blocks/lunar_sapphire_block.json | 4 +- .../building_blocks/lunaslate_slab.json | 4 +- ...late_slab_from_lunaslate_stonecutting.json | 4 +- .../building_blocks/lunaslate_stairs.json | 4 +- ...te_stairs_from_lunaslate_stonecutting.json | 4 +- .../building_blocks/lunaslate_wall.json | 4 +- ...late_wall_from_lunaslate_stonecutting.json | 4 +- .../mars_cobblestone_slab.json | 4 +- ...ab_from_mars_cobblestone_stonecutting.json | 4 +- .../mars_cobblestone_stairs.json | 4 +- ...rs_from_mars_cobblestone_stonecutting.json | 4 +- .../mars_cobblestone_wall.json | 4 +- ...ll_from_mars_cobblestone_stonecutting.json | 4 +- .../building_blocks/mars_stone_slab.json | 4 +- ...one_slab_from_mars_stone_stonecutting.json | 4 +- .../building_blocks/mars_stone_stairs.json | 4 +- ...e_stairs_from_mars_stone_stonecutting.json | 4 +- .../building_blocks/mars_stone_wall.json | 4 +- ...one_wall_from_mars_stone_stonecutting.json | 4 +- .../building_blocks/meteoric_iron_block.json | 4 +- .../meteoric_iron_decoration.json | 4 +- .../meteoric_iron_decoration_slab.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- .../meteoric_iron_decoration_stairs.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- .../meteoric_iron_decoration_wall.json | 4 +- ...meteoric_iron_decoration_stonecutting.json | 4 +- .../moon_basalt_brick_slab.json | 4 +- ...b_from_moon_basalt_brick_stonecutting.json | 4 +- .../moon_basalt_brick_stairs.json | 4 +- ...s_from_moon_basalt_brick_stonecutting.json | 4 +- .../moon_basalt_brick_wall.json | 4 +- ...l_from_moon_basalt_brick_stonecutting.json | 4 +- .../building_blocks/moon_basalt_slab.json | 4 +- ...lt_slab_from_moon_basalt_stonecutting.json | 4 +- .../building_blocks/moon_basalt_stairs.json | 4 +- ..._stairs_from_moon_basalt_stonecutting.json | 4 +- .../building_blocks/moon_basalt_wall.json | 4 +- ...lt_wall_from_moon_basalt_stonecutting.json | 4 +- .../recipes/building_blocks/moon_rock.json | 4 +- .../building_blocks/moon_rock_brick.json | 4 +- ...ock_brick_from_moon_rock_stonecutting.json | 4 +- .../building_blocks/moon_rock_brick_slab.json | 4 +- ...lab_from_moon_rock_brick_stonecutting.json | 4 +- .../moon_rock_brick_stairs.json | 4 +- ...irs_from_moon_rock_brick_stonecutting.json | 4 +- .../building_blocks/moon_rock_brick_wall.json | 4 +- ...all_from_moon_rock_brick_stonecutting.json | 4 +- .../building_blocks/moon_rock_pillar.json | 4 +- .../building_blocks/moon_rock_slab.json | 4 +- ...rock_slab_from_moon_rock_stonecutting.json | 4 +- .../building_blocks/moon_rock_stairs.json | 4 +- ...ck_stairs_from_moon_rock_stonecutting.json | 4 +- .../building_blocks/moon_rock_wall.json | 4 +- ...rock_wall_from_moon_rock_stonecutting.json | 4 +- .../building_blocks/polished_moon_rock.json | 4 +- ...ock_from_moon_rock_brick_stonecutting.json | 4 +- .../polished_moon_rock_slab.json | 4 +- ..._from_polished_moon_rock_stonecutting.json | 4 +- .../polished_moon_rock_stairs.json | 4 +- ..._from_polished_moon_rock_stonecutting.json | 4 +- .../polished_moon_rock_wall.json | 4 +- ..._from_polished_moon_rock_stonecutting.json | 4 +- .../building_blocks/steel_decoration.json | 4 +- .../steel_decoration_slab.json | 4 +- ...ab_from_steel_decoration_stonecutting.json | 4 +- .../steel_decoration_stairs.json | 4 +- ...rs_from_steel_decoration_stonecutting.json | 4 +- .../steel_decoration_wall.json | 4 +- ...ll_from_steel_decoration_stonecutting.json | 4 +- .../building_blocks/tin_decoration.json | 4 +- .../building_blocks/tin_decoration_slab.json | 4 +- ...slab_from_tin_decoration_stonecutting.json | 4 +- .../tin_decoration_stairs.json | 4 +- ...airs_from_tin_decoration_stonecutting.json | 4 +- .../building_blocks/tin_decoration_wall.json | 4 +- ...wall_from_tin_decoration_stonecutting.json | 4 +- .../recipes/building_blocks/tin_ladder.json | 4 +- .../building_blocks/titanium_block.json | 4 +- .../building_blocks/titanium_decoration.json | 4 +- .../titanium_decoration_slab.json | 4 +- ...from_titanium_decoration_stonecutting.json | 4 +- .../titanium_decoration_stairs.json | 4 +- ...from_titanium_decoration_stonecutting.json | 4 +- .../titanium_decoration_wall.json | 4 +- ...from_titanium_decoration_stonecutting.json | 4 +- .../recipes/combat/desh_sword.json | 4 +- .../recipes/combat/heavy_duty_boots.json | 4 +- .../recipes/combat/heavy_duty_chestplate.json | 4 +- .../recipes/combat/heavy_duty_helmet.json | 4 +- .../recipes/combat/heavy_duty_leggings.json | 4 +- .../recipes/combat/heavy_duty_sword.json | 4 +- .../combat/throwable_meteor_chunk.json | 4 +- .../combat/titanium_boots_smithing.json | 4 +- .../combat/titanium_chestplate_smithing.json | 4 +- .../combat/titanium_helmet_smithing.json | 4 +- .../combat/titanium_leggings_smithing.json | 4 +- .../combat/titanium_sword_smithing.json | 4 +- .../recipes/compressed_aluminum.json | 4 +- .../recipes/compressed_bronze.json | 0 .../recipes/compressed_copper.json | 2 +- .../recipes/compressed_desh.json | 4 +- .../recipes/compressed_iron.json | 2 +- .../recipes/compressed_meteoric_iron.json | 0 .../recipes/compressed_steel.json | 4 +- .../recipes/compressed_steel_from_ingots.json | 0 .../recipes/compressed_tin.json | 4 +- .../recipes/compressed_titanium.json | 4 +- .../decorations/dashed_light_panel.json | 4 +- .../decorations/diagonal_light_panel.json | 4 +- .../diagonal_light_panel_flipped.json | 4 +- .../decorations/glowstone_lantern.json | 4 +- .../recipes/decorations/glowstone_torch.json | 4 +- .../decorations/linear_light_panel.json | 4 +- .../decorations/spotlight_light_panel.json | 4 +- .../decorations/square_light_panel.json | 4 +- .../recipes/decorations/vacuum_glass.json | 4 +- .../decorations/vacuum_glass_clear.json | 4 +- .../decorations/vacuum_glass_strong.json | 4 +- .../beef_patty_from_campfire_cooking.json | 4 +- .../food/beef_patty_from_smelting.json | 4 +- .../recipes/food/beef_patty_from_smoking.json | 4 +- .../recipes/food/burger_bun.json | 4 +- .../recipes/food/canned_beef.json | 4 +- .../recipes/food/canned_dehydrated_apple.json | 4 +- .../food/canned_dehydrated_carrot.json | 4 +- .../recipes/food/canned_dehydrated_melon.json | 4 +- .../food/canned_dehydrated_potato.json | 4 +- .../recipes/food/cheese_slice.json | 4 +- .../recipes/food/cheeseburger.json | 4 +- .../recipes/food/ground_beef.json | 4 +- ..._throwable_meteor_chunk_from_blasting.json | 4 +- ..._throwable_meteor_chunk_from_smelting.json | 4 +- .../recipes/food/moon_cheese_block.json | 4 +- .../recipes/heavy_plating.json | 4 +- .../recipes/heavy_plating_flipped.json | 4 +- .../recipes/heavy_plating_t2.json | 4 +- .../recipes/heavy_plating_t3.json | 4 +- .../recipes/misc/advanced_solar_panel.json | 4 +- ...inum_ingot_from_blasting_aluminum_ore.json | 4 +- ..._from_blasting_deepslate_aluminum_ore.json | 4 +- ...inum_ingot_from_blasting_raw_aluminum.json | 4 +- .../misc/aluminum_ingot_from_nuggets.json | 4 +- ...inum_ingot_from_smelting_aluminum_ore.json | 4 +- ..._from_smelting_deepslate_aluminum_ore.json | 4 +- ...inum_ingot_from_smelting_raw_aluminum.json | 4 +- .../recipes/misc/aluminum_nugget.json | 4 +- .../recipes/misc/aluminum_wire.json | 4 +- .../misc/ambient_thermal_controller.json | 4 +- .../recipes/misc/atmospheric_valve.json | 4 +- .../recipes/misc/basic_solar_panel.json | 4 +- .../recipes/misc/battery.json | 4 +- .../recipes/misc/beam_core.json | 4 +- .../recipes/misc/black_parachute.json | 4 +- .../recipes/misc/blue_parachute.json | 4 +- .../recipes/misc/brown_parachute.json | 4 +- .../recipes/misc/canvas.json | 4 +- .../misc/carbon_fragments_from_charcoal.json | 4 +- .../misc/carbon_fragments_from_coal.json | 2 +- ...carbon_fragments_from_smelting_planks.json | 2 +- .../recipes/misc/circuit_fabricator.json | 4 +- .../recipes/misc/coal_generator.json | 4 +- .../recipes/misc/compressor.json | 4 +- .../recipes/misc/copper_canister.json | 4 +- ...ot_from_blasting_lunaslate_copper_ore.json | 4 +- ...r_ingot_from_blasting_moon_copper_ore.json | 4 +- ...ot_from_smelting_lunaslate_copper_ore.json | 4 +- ...r_ingot_from_smelting_moon_copper_ore.json | 4 +- .../recipes/misc/cyan_parachute.json | 4 +- .../recipes/misc/desh_boots.json | 4 +- .../recipes/misc/desh_chestplate.json | 4 +- .../recipes/misc/desh_helmet.json | 4 +- .../desh_ingot_from_blasting_desh_ore.json | 4 +- .../desh_ingot_from_blasting_raw_desh.json | 4 +- .../recipes/misc/desh_ingot_from_block.json | 4 +- .../recipes/misc/desh_ingot_from_nuggets.json | 4 +- .../desh_ingot_from_smelting_desh_ore.json | 4 +- .../desh_ingot_from_smelting_raw_desh.json | 4 +- .../recipes/misc/desh_leggings.json | 4 +- .../recipes/misc/desh_nugget.json | 4 +- .../recipes/misc/desh_stick.json | 4 +- .../recipes/misc/electric_arc_furnace.json | 4 +- .../recipes/misc/electric_compressor.json | 4 +- .../misc/electric_compressor_upgrade.json | 4 +- .../recipes/misc/electric_furnace.json | 4 +- .../recipes/misc/energy_storage_module.json | 4 +- .../recipes/misc/fluid_manipulator.json | 4 +- .../recipes/misc/fluid_pipe_walkway.json | 4 +- .../misc/fluid_pipe_walkway_shapeless.json | 4 +- .../recipes/misc/frequency_module.json | 4 +- .../recipes/misc/fuel_loader.json | 4 +- .../recipes/misc/full_solar_panel.json | 4 +- .../recipes/misc/glass_fluid_pipe.json | 4 +- .../recipes/misc/gray_parachute.json | 4 +- .../recipes/misc/green_parachute.json | 4 +- .../iron_ingot_from_blasting_iron_shard.json | 4 +- .../iron_ingot_from_smelting_iron_shard.json | 4 +- .../recipes/misc/isothermal_fabric.json | 4 +- .../recipes/misc/large_oxygen_tank.json | 4 +- .../lead_ingot_from_blasting_galena_ore.json | 4 +- .../lead_ingot_from_blasting_raw_lead.json | 4 +- .../recipes/misc/lead_ingot_from_block.json | 4 +- .../recipes/misc/lead_ingot_from_nuggets.json | 4 +- .../lead_ingot_from_smelting_galena_ore.json | 4 +- .../lead_ingot_from_smelting_raw_lead.json | 4 +- .../recipes/misc/lead_nugget.json | 4 +- .../recipes/misc/light_blue_parachute.json | 4 +- .../recipes/misc/light_gray_parachute.json | 4 +- .../recipes/misc/lime_parachute.json | 4 +- .../misc/lunar_sapphire_from_block.json | 4 +- .../recipes/misc/magenta_parachute.json | 4 +- .../recipes/misc/medium_oxygen_tank.json | 4 +- ...ingot_from_blasting_raw_meteoric_iron.json | 4 +- .../misc/meteoric_iron_ingot_from_block.json | 4 +- .../meteoric_iron_ingot_from_nuggets.json | 4 +- ...ingot_from_smelting_raw_meteoric_iron.json | 4 +- .../recipes/misc/meteoric_iron_nugget.json | 4 +- .../recipes/misc/nose_cone.json | 4 +- .../misc/olivine_block_from_shards.json | 4 +- .../recipes/misc/orange_parachute.json | 4 +- .../recipes/misc/orion_drive.json | 4 +- .../misc/oxygen_bubble_distributor.json | 4 +- .../recipes/misc/oxygen_collector.json | 4 +- .../recipes/misc/oxygen_compressor.json | 4 +- .../recipes/misc/oxygen_concentrator.json | 4 +- .../recipes/misc/oxygen_decompressor.json | 4 +- .../recipes/misc/oxygen_fan.json | 4 +- .../recipes/misc/oxygen_gear.json | 4 +- .../recipes/misc/oxygen_mask.json | 4 +- .../recipes/misc/oxygen_sealer.json | 4 +- .../recipes/misc/oxygen_storage_module.json | 4 +- .../recipes/misc/oxygen_vent.json | 4 +- .../recipes/misc/pink_parachute.json | 4 +- .../recipes/misc/purple_parachute.json | 4 +- .../recipes/misc/red_parachute.json | 4 +- .../recipes/misc/refinery.json | 4 +- .../recipes/misc/rocket_engine.json | 4 +- .../recipes/misc/rocket_fin.json | 4 +- .../recipes/misc/rocket_workbench.json | 4 +- .../recipes/misc/sealable_aluminum_wire.json | 4 +- .../recipes/misc/sensor_glasses.json | 4 +- .../recipes/misc/sensor_lens.json | 4 +- .../recipes/misc/single_solar_module.json | 4 +- .../recipes/misc/small_oxygen_tank.json | 4 +- .../recipes/misc/standard_wrench.json | 4 +- .../recipes/misc/steel_pole.json | 4 +- .../recipes/misc/thermal_cloth.json | 2 +- .../recipes/misc/thermal_padding_boots.json | 4 +- .../misc/thermal_padding_chestpiece.json | 4 +- .../recipes/misc/thermal_padding_helmet.json | 4 +- .../misc/thermal_padding_leggings.json | 4 +- .../recipes/misc/tin_canister.json | 4 +- ...ingot_from_blasting_deepslate_tin_ore.json | 4 +- .../tin_ingot_from_blasting_moon_tin_ore.json | 4 +- .../misc/tin_ingot_from_blasting_raw_tin.json | 4 +- .../misc/tin_ingot_from_blasting_tin_ore.json | 4 +- .../recipes/misc/tin_ingot_from_nuggets.json | 4 +- ...ingot_from_smelting_deepslate_tin_ore.json | 4 +- .../tin_ingot_from_smelting_moon_tin_ore.json | 4 +- .../misc/tin_ingot_from_smelting_raw_tin.json | 4 +- .../misc/tin_ingot_from_smelting_tin_ore.json | 4 +- .../recipes/misc/tin_nugget.json | 4 +- ...nium_ingot_from_blasting_ilmenite_ore.json | 4 +- ...nium_ingot_from_blasting_raw_titanium.json | 4 +- .../misc/titanium_ingot_from_block.json | 4 +- .../misc/titanium_ingot_from_nuggets.json | 4 +- ...nium_ingot_from_smelting_ilmenite_ore.json | 4 +- ...nium_ingot_from_smelting_raw_titanium.json | 4 +- .../recipes/misc/titanium_nugget.json | 4 +- .../recipes/misc/walkway.json | 4 +- .../recipes/misc/white_parachute.json | 4 +- .../recipes/misc/wire_walkway.json | 4 +- .../recipes/misc/wire_walkway_shapeless.json | 4 +- .../recipes/misc/yellow_parachute.json | 4 +- .../recipes/solar_array_wafer.json | 0 .../recipes/tools/desh_axe.json | 4 +- .../recipes/tools/desh_axe_flipped.json | 4 +- .../recipes/tools/desh_hoe.json | 4 +- .../recipes/tools/desh_hoe_flipped.json | 4 +- .../recipes/tools/desh_pickaxe.json | 4 +- .../recipes/tools/desh_shovel.json | 4 +- .../recipes/tools/heavy_duty_axe.json | 4 +- .../recipes/tools/heavy_duty_axe_flipped.json | 4 +- .../recipes/tools/heavy_duty_hoe.json | 4 +- .../recipes/tools/heavy_duty_hoe_flipped.json | 4 +- .../recipes/tools/heavy_duty_pickaxe.json | 4 +- .../recipes/tools/heavy_duty_shovel.json | 4 +- .../recipes/tools/titanium_axe_smithing.json | 4 +- .../recipes/tools/titanium_hoe_smithing.json | 4 +- .../tools/titanium_pickaxe_smithing.json | 4 +- .../tools/titanium_shovel_smithing.json | 4 +- .../recipes/transportation/fueling_pad.json | 4 +- .../transportation/rocket_launch_pad.json | 4 +- .../galacticraft/banner_pattern/rocket.json | 4 + .../galacticraft/dimension_type/moon.json | 6 +- .../galacticraft/dimension_type/venus.json | 6 +- .../celestial_body/asteroids.json | 0 .../celestial_body/earth.json | 0 .../celestial_body/jupiter.json | 0 .../celestial_body/mars.json | 0 .../celestial_body/mercury.json | 0 .../celestial_body/moon.json | 0 .../celestial_body/neptune.json | 0 .../celestial_body/saturn.json | 0 .../celestial_body/sol.json | 0 .../celestial_body/uranus.json | 0 .../celestial_body/venus.json | 0 .../celestial_teleporter/direct.json | 0 .../celestial_teleporter/lander.json | 0 .../celestial_teleporter/overworld.json | 0 .../{ => galacticraft}/galaxy/milky_way.json | 0 .../rocket_body/tier_1.json | 0 .../rocket_booster/tier_1.json | 0 .../rocket_cone/advanced_cone.json | 0 .../rocket_cone/sloped_cone.json | 0 .../rocket_cone/tier_1.json | 0 .../rocket_engine/tier_1.json | 0 .../{ => galacticraft}/rocket_fin/tier_1.json | 0 .../rocket_upgrade/storage.json | 0 .../blocks/advanced_solar_panel.json | 0 .../blocks/air_lock_controller.json | 0 .../blocks/air_lock_frame.json | 0 .../blocks/air_lock_seal.json | 0 .../blocks/aluminum_decoration.json | 0 .../blocks/aluminum_decoration_slab.json | 0 .../blocks/aluminum_decoration_stairs.json | 0 .../blocks/aluminum_decoration_wall.json | 0 .../blocks/aluminum_ore.json | 16 +- .../blocks/aluminum_wire.json | 0 .../blocks/asteroid_rock.json | 0 .../blocks/asteroid_rock_block_1.json | 0 .../blocks/asteroid_rock_block_2.json | 0 .../blocks/basic_solar_panel.json | 0 .../black_candle_moon_cheese_block.json | 0 .../blocks/blue_candle_moon_cheese_block.json | 0 .../blocks/bronze_decoration.json | 0 .../blocks/bronze_decoration_slab.json | 0 .../blocks/bronze_decoration_stairs.json | 0 .../blocks/bronze_decoration_wall.json | 0 .../brown_candle_moon_cheese_block.json | 0 .../blocks/candle_moon_cheese_block.json | 0 .../blocks/cavernous_vines.json | 4 +- .../blocks/chiseled_moon_rock_brick.json | 0 .../blocks/circuit_fabricator.json | 0 .../blocks/coal_generator.json | 0 .../blocks/cobbled_lunaslate.json | 0 .../blocks/cobbled_lunaslate_slab.json | 0 .../blocks/cobbled_lunaslate_stairs.json | 0 .../blocks/cobbled_lunaslate_wall.json | 0 .../blocks/cobbled_moon_rock.json | 0 .../blocks/cobbled_moon_rock_slab.json | 0 .../blocks/cobbled_moon_rock_stairs.json | 0 .../blocks/cobbled_moon_rock_wall.json | 0 .../blocks/compressor.json | 0 .../blocks/copper_decoration.json | 0 .../blocks/copper_decoration_slab.json | 0 .../blocks/copper_decoration_stairs.json | 0 .../blocks/copper_decoration_wall.json | 0 .../blocks/cracked_moon_basalt_brick.json | 0 .../cracked_moon_basalt_brick_slab.json | 0 .../cracked_moon_basalt_brick_stairs.json | 0 .../cracked_moon_basalt_brick_wall.json | 0 .../blocks/cracked_moon_rock_brick.json | 0 .../blocks/cracked_moon_rock_brick_slab.json | 0 .../cracked_moon_rock_brick_stairs.json | 0 .../blocks/cracked_moon_rock_brick_wall.json | 0 .../blocks/cryogenic_chamber.json | 0 .../blocks/cyan_candle_moon_cheese_block.json | 0 .../blocks/dark_decoration.json | 0 .../blocks/dark_decoration_slab.json | 0 .../blocks/dark_decoration_stairs.json | 0 .../blocks/dark_decoration_wall.json | 0 .../blocks/dashed_light_panel.json | 0 .../blocks/deepslate_aluminum_ore.json | 16 +- .../blocks/deepslate_silicon_ore.json | 16 +- .../blocks/deepslate_tin_ore.json | 16 +- .../blocks/desh_block.json | 0 .../blocks/desh_ore.json | 16 +- .../blocks/detailed_aluminum_decoration.json | 0 .../detailed_aluminum_decoration_slab.json | 0 .../detailed_aluminum_decoration_stairs.json | 0 .../detailed_aluminum_decoration_wall.json | 0 .../blocks/detailed_bronze_decoration.json | 0 .../detailed_bronze_decoration_slab.json | 0 .../detailed_bronze_decoration_stairs.json | 0 .../detailed_bronze_decoration_wall.json | 0 .../blocks/detailed_copper_decoration.json | 0 .../detailed_copper_decoration_slab.json | 0 .../detailed_copper_decoration_stairs.json | 0 .../detailed_copper_decoration_wall.json | 0 .../blocks/detailed_dark_decoration.json | 0 .../blocks/detailed_dark_decoration_slab.json | 0 .../detailed_dark_decoration_stairs.json | 0 .../blocks/detailed_dark_decoration_wall.json | 0 .../blocks/detailed_iron_decoration.json | 0 .../blocks/detailed_iron_decoration_slab.json | 0 .../detailed_iron_decoration_stairs.json | 0 .../blocks/detailed_iron_decoration_wall.json | 0 .../detailed_meteoric_iron_decoration.json | 0 ...etailed_meteoric_iron_decoration_slab.json | 0 ...ailed_meteoric_iron_decoration_stairs.json | 0 ...etailed_meteoric_iron_decoration_wall.json | 0 .../blocks/detailed_steel_decoration.json | 0 .../detailed_steel_decoration_slab.json | 0 .../detailed_steel_decoration_stairs.json | 0 .../detailed_steel_decoration_wall.json | 0 .../blocks/detailed_tin_decoration.json | 0 .../blocks/detailed_tin_decoration_slab.json | 0 .../detailed_tin_decoration_stairs.json | 0 .../blocks/detailed_tin_decoration_wall.json | 0 .../blocks/detailed_titanium_decoration.json | 0 .../detailed_titanium_decoration_slab.json | 0 .../detailed_titanium_decoration_stairs.json | 0 .../detailed_titanium_decoration_wall.json | 0 .../blocks/diagonal_light_panel.json | 0 .../blocks/electric_arc_furnace.json | 0 .../blocks/electric_compressor.json | 0 .../blocks/electric_furnace.json | 0 .../blocks/energy_storage_module.json | 0 .../blocks/fallen_meteor.json | 16 +- .../blocks/fluid_pipe_walkway.json | 0 .../blocks/fuel_loader.json | 0 .../blocks/fueling_pad.json | 0 .../blocks/galena_ore.json | 16 +- .../blocks/glass_fluid_pipe.json | 0 .../blocks/glowstone_lantern.json | 0 .../blocks/glowstone_torch.json | 0 .../blocks/grating.json | 0 .../blocks/gray_candle_moon_cheese_block.json | 0 .../green_candle_moon_cheese_block.json | 0 .../blocks/hard_venus_rock.json | 0 .../blocks/heavy_sealable_aluminum_wire.json | 0 .../blocks/ilmenite_ore.json | 16 +- .../blocks/iron_decoration.json | 0 .../blocks/iron_decoration_slab.json | 0 .../blocks/iron_decoration_stairs.json | 0 .../blocks/iron_decoration_wall.json | 0 .../blocks/lead_block.json | 0 .../light_blue_candle_moon_cheese_block.json | 0 .../light_gray_candle_moon_cheese_block.json | 0 .../blocks/lime_candle_moon_cheese_block.json | 0 .../blocks/linear_light_panel.json | 0 .../blocks/lunar_cartography_table.json | 0 .../blocks/lunar_sapphire_block.json | 0 .../blocks/lunaslate.json | 16 +- .../blocks/lunaslate_copper_ore.json | 16 +- .../blocks/lunaslate_slab.json | 0 .../blocks/lunaslate_stairs.json | 0 .../blocks/lunaslate_tin_ore.json | 16 +- .../blocks/lunaslate_wall.json | 0 .../magenta_candle_moon_cheese_block.json | 0 .../blocks/mars_cobblestone.json | 0 .../blocks/mars_cobblestone_slab.json | 0 .../blocks/mars_cobblestone_stairs.json | 0 .../blocks/mars_cobblestone_wall.json | 0 .../blocks/mars_stone.json | 16 +- .../blocks/mars_stone_slab.json | 0 .../blocks/mars_stone_stairs.json | 0 .../blocks/mars_stone_wall.json | 0 .../blocks/mars_sub_surface_rock.json | 0 .../blocks/mars_surface_rock.json | 0 .../blocks/meteoric_iron_block.json | 0 .../blocks/meteoric_iron_decoration.json | 0 .../blocks/meteoric_iron_decoration_slab.json | 0 .../meteoric_iron_decoration_stairs.json | 0 .../blocks/meteoric_iron_decoration_wall.json | 0 .../blocks/moon_basalt.json | 0 .../blocks/moon_basalt_brick.json | 0 .../blocks/moon_basalt_brick_slab.json | 0 .../blocks/moon_basalt_brick_stairs.json | 0 .../blocks/moon_basalt_brick_wall.json | 0 .../blocks/moon_basalt_slab.json | 0 .../blocks/moon_basalt_stairs.json | 0 .../blocks/moon_basalt_wall.json | 0 .../blocks/moon_cheese_block.json | 0 .../blocks/moon_copper_ore.json | 16 +- .../blocks/moon_dirt.json | 0 .../blocks/moon_dirt_path.json | 0 .../blocks/moon_dungeon_brick.json | 0 .../blocks/moon_rock.json | 16 +- .../blocks/moon_rock_brick.json | 0 .../blocks/moon_rock_brick_slab.json | 0 .../blocks/moon_rock_brick_stairs.json | 0 .../blocks/moon_rock_brick_wall.json | 0 .../blocks/moon_rock_pillar.json | 0 .../blocks/moon_rock_slab.json | 0 .../blocks/moon_rock_stairs.json | 0 .../blocks/moon_rock_wall.json | 0 .../blocks/moon_surface_rock.json | 0 .../blocks/moon_tin_ore.json | 16 +- .../blocks/moon_turf.json | 0 .../blocks/olivine_basalt.json | 16 +- .../blocks/olivine_block.json | 0 .../blocks/olivine_cluster.json | 18 +- .../orange_candle_moon_cheese_block.json | 0 .../blocks/oxygen_bubble_distributor.json | 0 .../blocks/oxygen_collector.json | 0 .../blocks/oxygen_compressor.json | 0 .../blocks/oxygen_decompressor.json | 0 .../blocks/oxygen_sealer.json | 0 .../blocks/oxygen_storage_module.json | 0 .../blocks/parachest.json | 0 .../blocks/pink_candle_moon_cheese_block.json | 0 .../blocks/player_transport_tube.json | 0 .../blocks/polished_moon_rock.json | 0 .../blocks/polished_moon_rock_slab.json | 0 .../blocks/polished_moon_rock_stairs.json | 0 .../blocks/polished_moon_rock_wall.json | 0 .../blocks/pumice.json | 0 .../purple_candle_moon_cheese_block.json | 0 .../blocks/red_candle_moon_cheese_block.json | 0 .../blocks/refinery.json | 0 .../blocks/rich_olivine_basalt.json | 16 +- .../blocks/rocket_launch_pad.json | 0 .../blocks/rocket_workbench.json | 0 .../blocks/scorched_venus_rock.json | 0 .../blocks/sealable_aluminum_wire.json | 0 .../blocks/silicon_block.json | 0 .../blocks/silicon_ore.json | 16 +- .../blocks/soft_venus_rock.json | 0 .../blocks/spotlight_light_panel.json | 0 .../blocks/square_light_panel.json | 0 .../blocks/steel_decoration.json | 0 .../blocks/steel_decoration_slab.json | 0 .../blocks/steel_decoration_stairs.json | 0 .../blocks/steel_decoration_wall.json | 0 .../blocks/tin_decoration.json | 0 .../blocks/tin_decoration_slab.json | 0 .../blocks/tin_decoration_stairs.json | 0 .../blocks/tin_decoration_wall.json | 0 .../blocks/tin_ladder.json | 0 .../blocks/tin_ore.json | 16 +- .../blocks/titanium_block.json | 0 .../blocks/titanium_decoration.json | 0 .../blocks/titanium_decoration_slab.json | 0 .../blocks/titanium_decoration_stairs.json | 0 .../blocks/titanium_decoration_wall.json | 0 .../blocks/unlit_lantern.json | 0 .../blocks/unlit_torch.json | 0 .../blocks/vacuum_glass.json | 0 .../blocks/vacuum_glass_clear.json | 0 .../blocks/vacuum_glass_strong.json | 0 .../blocks/vapor_spout.json | 16 +- .../blocks/volcanic_rock.json | 16 +- .../blocks/walkway.json | 0 .../white_candle_moon_cheese_block.json | 0 .../blocks/wire_walkway.json | 0 .../yellow_candle_moon_cheese_block.json | 0 .../entities/arch_grey.json | 0 .../entities/comet_cube.json | 0 .../entities/evolved_creeper.json | 5 +- .../entities/evolved_evoker.json | 3 +- .../entities/evolved_pillager.json | 0 .../entities/evolved_skeleton.json | 6 +- .../entities/evolved_skeleton_boss.json | 0 .../entities/evolved_spider.json | 6 +- .../entities/evolved_vindicator.json | 3 +- .../loot_table/entities/evolved_zombie.json | 107 ++++ .../entities/gazer.json | 0 .../entities/grey.json | 0 .../entities/oli_grub.json | 0 .../entities/rumbler.json | 0 .../loot_tables/entities/evolved_zombie.json | 79 --- .../advanced_solar_panel.json | 3 +- .../aluminum_decoration.json | 2 +- .../aluminum_decoration_slab.json | 2 +- ...from_aluminum_decoration_stonecutting.json | 6 +- .../aluminum_decoration_stairs.json | 2 +- ...from_aluminum_decoration_stonecutting.json | 6 +- .../aluminum_decoration_wall.json | 2 +- ...from_aluminum_decoration_stonecutting.json | 6 +- ...inum_ingot_from_blasting_aluminum_ore.json | 4 +- ..._from_blasting_deepslate_aluminum_ore.json | 4 +- ...inum_ingot_from_blasting_raw_aluminum.json | 4 +- .../aluminum_ingot_from_nuggets.json | 3 +- ...inum_ingot_from_smelting_aluminum_ore.json | 4 +- ..._from_smelting_deepslate_aluminum_ore.json | 4 +- ...inum_ingot_from_smelting_raw_aluminum.json | 4 +- .../{recipes => recipe}/aluminum_nugget.json | 2 +- .../{recipes => recipe}/aluminum_wire.json | 2 +- .../ambient_thermal_controller.json | 5 +- .../atmospheric_valve.json | 3 +- .../basic_solar_panel.json | 3 +- .../{recipes => recipe}/battery.json | 5 +- .../{recipes => recipe}/beam_core.json | 7 +- .../beef_patty_from_campfire_cooking.json | 4 +- .../beef_patty_from_smelting.json | 4 +- .../beef_patty_from_smoking.json | 4 +- .../{recipes => recipe}/black_parachute.json | 3 +- .../{recipes => recipe}/blue_parachute.json | 3 +- .../bronze_decoration.json | 2 +- .../bronze_decoration_slab.json | 2 +- ...b_from_bronze_decoration_stonecutting.json | 6 +- .../bronze_decoration_stairs.json | 2 +- ...s_from_bronze_decoration_stonecutting.json | 6 +- .../bronze_decoration_wall.json | 2 +- ...l_from_bronze_decoration_stonecutting.json | 6 +- .../{recipes => recipe}/brown_parachute.json | 3 +- .../{recipes => recipe}/burger_bun.json | 2 +- .../{recipes => recipe}/canned_beef.json | 3 +- .../canned_dehydrated_apple.json | 3 +- .../canned_dehydrated_carrot.json | 3 +- .../canned_dehydrated_melon.json | 3 +- .../canned_dehydrated_potato.json | 3 +- .../{recipes => recipe}/canvas.json | 3 +- .../carbon_fragments_from_charcoal.json | 2 +- .../carbon_fragments_from_coal.json | 2 +- ...carbon_fragments_from_smelting_planks.json | 4 +- .../{recipes => recipe}/cheese_slice.json | 2 +- .../{recipes => recipe}/cheeseburger.json | 3 +- .../chiseled_moon_rock_brick.json | 3 +- ...ick_from_moon_rock_brick_stonecutting.json | 6 +- ...ock_brick_from_moon_rock_stonecutting.json | 6 +- .../circuit_fabricator.json | 3 +- .../{recipes => recipe}/coal_generator.json | 5 +- .../cobbled_lunaslate_slab.json | 2 +- ...b_from_cobbled_lunaslate_stonecutting.json | 6 +- .../cobbled_lunaslate_stairs.json | 2 +- ...s_from_cobbled_lunaslate_stonecutting.json | 6 +- .../cobbled_lunaslate_wall.json | 2 +- ...l_from_cobbled_lunaslate_stonecutting.json | 6 +- .../compressing/compressed_aluminum.json | 15 + .../compressing/compressed_bronze.json | 3 +- .../recipe/compressing/compressed_copper.json | 15 + .../compressing/compressed_desh.json | 3 +- .../compressing/compressed_iron.json | 7 +- .../compressing/compressed_meteoric_iron.json | 3 +- .../compressing/compressed_steel.json | 3 +- .../compressed_steel_from_ingots.json | 7 +- .../compressing/compressed_tin.json | 7 +- .../compressing/compressed_titanium.json | 3 +- .../compressing/heavy_plating.json | 2 +- .../compressing/heavy_plating_flipped.json | 2 +- .../compressing/heavy_plating_t2.json | 3 +- .../compressing/heavy_plating_t3.json | 3 +- .../{recipes => recipe}/compressor.json | 5 +- .../{recipes => recipe}/copper_canister.json | 2 +- .../copper_decoration.json | 2 +- .../copper_decoration_slab.json | 2 +- ...b_from_copper_decoration_stonecutting.json | 6 +- .../copper_decoration_stairs.json | 2 +- ...s_from_copper_decoration_stonecutting.json | 6 +- .../copper_decoration_wall.json | 2 +- ...l_from_copper_decoration_stonecutting.json | 6 +- ...ot_from_blasting_lunaslate_copper_ore.json | 4 +- ...r_ingot_from_blasting_moon_copper_ore.json | 4 +- ...ot_from_smelting_lunaslate_copper_ore.json | 4 +- ...r_ingot_from_smelting_moon_copper_ore.json | 4 +- .../cracked_moon_basalt_brick_slab.json | 2 +- ...racked_moon_basalt_brick_stonecutting.json | 6 +- .../cracked_moon_basalt_brick_stairs.json | 2 +- ...racked_moon_basalt_brick_stonecutting.json | 6 +- .../cracked_moon_basalt_brick_wall.json | 2 +- ...racked_moon_basalt_brick_stonecutting.json | 6 +- .../cracked_moon_rock_brick.json | 4 +- .../cracked_moon_rock_brick_slab.json | 2 +- ..._cracked_moon_rock_brick_stonecutting.json | 6 +- .../cracked_moon_rock_brick_stairs.json | 2 +- ..._cracked_moon_rock_brick_stonecutting.json | 6 +- .../cracked_moon_rock_brick_wall.json | 2 +- ..._cracked_moon_rock_brick_stonecutting.json | 6 +- .../{recipes => recipe}/cyan_parachute.json | 3 +- .../dark_decoration_slab.json | 2 +- ...lab_from_dark_decoration_stonecutting.json | 6 +- .../dark_decoration_stairs.json | 2 +- ...irs_from_dark_decoration_stonecutting.json | 6 +- .../dark_decoration_wall.json | 2 +- ...all_from_dark_decoration_stonecutting.json | 6 +- .../dashed_light_panel.json | 3 +- .../{recipes => recipe}/desh_axe.json | 3 +- .../{recipes => recipe}/desh_axe_flipped.json | 3 +- .../{recipes => recipe}/desh_block.json | 3 +- .../{recipes => recipe}/desh_boots.json | 3 +- .../{recipes => recipe}/desh_chestplate.json | 3 +- .../{recipes => recipe}/desh_helmet.json | 3 +- .../{recipes => recipe}/desh_hoe.json | 3 +- .../{recipes => recipe}/desh_hoe_flipped.json | 3 +- .../desh_ingot_from_blasting_desh_ore.json | 4 +- .../desh_ingot_from_blasting_raw_desh.json | 4 +- .../desh_ingot_from_block.json | 2 +- .../desh_ingot_from_nuggets.json | 3 +- .../desh_ingot_from_smelting_desh_ore.json | 4 +- .../desh_ingot_from_smelting_raw_desh.json | 4 +- .../{recipes => recipe}/desh_leggings.json | 3 +- .../{recipes => recipe}/desh_nugget.json | 2 +- .../{recipes => recipe}/desh_pickaxe.json | 3 +- .../{recipes => recipe}/desh_shovel.json | 3 +- .../{recipes => recipe}/desh_stick.json | 2 +- .../{recipes => recipe}/desh_sword.json | 3 +- .../detailed_aluminum_decoration.json | 2 +- .../detailed_aluminum_decoration_slab.json | 2 +- ...iled_aluminum_decoration_stonecutting.json | 6 +- .../detailed_aluminum_decoration_stairs.json | 2 +- ...iled_aluminum_decoration_stonecutting.json | 6 +- .../detailed_aluminum_decoration_wall.json | 2 +- ...iled_aluminum_decoration_stonecutting.json | 6 +- .../detailed_bronze_decoration.json | 2 +- .../detailed_bronze_decoration_slab.json | 2 +- ...tailed_bronze_decoration_stonecutting.json | 6 +- .../detailed_bronze_decoration_stairs.json | 2 +- ...tailed_bronze_decoration_stonecutting.json | 6 +- .../detailed_bronze_decoration_wall.json | 2 +- ...tailed_bronze_decoration_stonecutting.json | 6 +- .../detailed_copper_decoration.json | 2 +- .../detailed_copper_decoration_slab.json | 2 +- ...tailed_copper_decoration_stonecutting.json | 6 +- .../detailed_copper_decoration_stairs.json | 2 +- ...tailed_copper_decoration_stonecutting.json | 6 +- .../detailed_copper_decoration_wall.json | 2 +- ...tailed_copper_decoration_stonecutting.json | 6 +- .../detailed_dark_decoration_slab.json | 2 +- ...detailed_dark_decoration_stonecutting.json | 6 +- .../detailed_dark_decoration_stairs.json | 2 +- ...detailed_dark_decoration_stonecutting.json | 6 +- .../detailed_dark_decoration_wall.json | 2 +- ...detailed_dark_decoration_stonecutting.json | 6 +- .../detailed_iron_decoration.json | 2 +- .../detailed_iron_decoration_slab.json | 2 +- ...detailed_iron_decoration_stonecutting.json | 6 +- .../detailed_iron_decoration_stairs.json | 2 +- ...detailed_iron_decoration_stonecutting.json | 6 +- .../detailed_iron_decoration_wall.json | 2 +- ...detailed_iron_decoration_stonecutting.json | 6 +- .../detailed_meteoric_iron_decoration.json | 2 +- ...etailed_meteoric_iron_decoration_slab.json | 2 +- ...eteoric_iron_decoration_stonecutting.json} | 6 +- ...ailed_meteoric_iron_decoration_stairs.json | 2 +- ...eteoric_iron_decoration_stonecutting.json} | 6 +- ...etailed_meteoric_iron_decoration_wall.json | 2 +- ...meteoric_iron_decoration_stonecutting.json | 6 +- .../detailed_steel_decoration.json | 2 +- .../detailed_steel_decoration_slab.json | 2 +- ...etailed_steel_decoration_stonecutting.json | 6 +- .../detailed_steel_decoration_stairs.json | 2 +- ...etailed_steel_decoration_stonecutting.json | 6 +- .../detailed_steel_decoration_wall.json | 2 +- ...etailed_steel_decoration_stonecutting.json | 6 +- .../detailed_tin_decoration.json | 2 +- .../detailed_tin_decoration_slab.json | 2 +- ..._detailed_tin_decoration_stonecutting.json | 6 +- .../detailed_tin_decoration_stairs.json | 2 +- ..._detailed_tin_decoration_stonecutting.json | 6 +- .../detailed_tin_decoration_wall.json | 2 +- ..._detailed_tin_decoration_stonecutting.json | 6 +- .../detailed_titanium_decoration.json | 2 +- .../detailed_titanium_decoration_slab.json | 2 +- ...iled_titanium_decoration_stonecutting.json | 6 +- .../detailed_titanium_decoration_stairs.json | 2 +- ...iled_titanium_decoration_stonecutting.json | 6 +- .../detailed_titanium_decoration_wall.json | 2 +- ...iled_titanium_decoration_stonecutting.json | 6 +- .../diagonal_light_panel.json | 3 +- .../diagonal_light_panel_flipped.json | 3 +- .../electric_arc_furnace.json | 3 +- .../electric_compressor.json | 3 +- .../electric_compressor_upgrade.json | 3 +- .../{recipes => recipe}/electric_furnace.json | 3 +- .../energy_storage_module.json | 3 +- .../fabrication/advanced_wafer.json | 2 +- .../fabrication/basic_wafer.json | 2 +- .../fabrication/blue_solar_wafer.json | 2 +- .../fabrication/solar_array_wafer.json | 2 +- .../fluid_manipulator.json | 3 +- .../fluid_pipe_walkway.json | 2 +- .../fluid_pipe_walkway_shapeless.json | 3 +- .../{recipes => recipe}/frequency_module.json | 5 +- .../{recipes => recipe}/fuel_loader.json | 3 +- .../{recipes => recipe}/fueling_pad.json | 2 +- .../{recipes => recipe}/full_solar_panel.json | 3 +- .../{recipes => recipe}/glass_fluid_pipe.json | 2 +- .../glowstone_lantern.json | 3 +- .../{recipes => recipe}/glowstone_torch.json | 2 +- .../{recipes => recipe}/grating.json | 2 +- .../{recipes => recipe}/gray_parachute.json | 3 +- .../{recipes => recipe}/green_parachute.json | 3 +- .../{recipes => recipe}/ground_beef.json | 2 +- .../{recipes => recipe}/heavy_duty_axe.json | 3 +- .../heavy_duty_axe_flipped.json | 3 +- .../{recipes => recipe}/heavy_duty_boots.json | 3 +- .../heavy_duty_chestplate.json | 3 +- .../heavy_duty_helmet.json | 3 +- .../{recipes => recipe}/heavy_duty_hoe.json | 3 +- .../heavy_duty_hoe_flipped.json | 3 +- .../heavy_duty_leggings.json | 3 +- .../heavy_duty_pickaxe.json | 3 +- .../heavy_duty_shovel.json | 3 +- .../{recipes => recipe}/heavy_duty_sword.json | 3 +- ..._throwable_meteor_chunk_from_blasting.json | 4 +- ..._throwable_meteor_chunk_from_smelting.json | 4 +- .../{recipes => recipe}/iron_decoration.json | 2 +- .../iron_decoration_slab.json | 2 +- ...lab_from_iron_decoration_stonecutting.json | 6 +- .../iron_decoration_stairs.json | 2 +- ...irs_from_iron_decoration_stonecutting.json | 6 +- .../iron_decoration_wall.json | 2 +- ...all_from_iron_decoration_stonecutting.json | 6 +- .../iron_ingot_from_blasting_iron_shard.json | 4 +- .../iron_ingot_from_smelting_iron_shard.json | 4 +- .../isothermal_fabric.json | 3 +- .../large_oxygen_tank.json | 3 +- .../{recipes => recipe}/lead_block.json | 3 +- .../lead_ingot_from_blasting_galena_ore.json | 4 +- .../lead_ingot_from_blasting_raw_lead.json | 4 +- .../lead_ingot_from_block.json | 2 +- .../lead_ingot_from_nuggets.json | 3 +- .../lead_ingot_from_smelting_galena_ore.json | 4 +- .../lead_ingot_from_smelting_raw_lead.json | 4 +- .../{recipes => recipe}/lead_nugget.json | 2 +- .../light_blue_parachute.json | 3 +- .../light_gray_parachute.json | 3 +- .../{recipes => recipe}/lime_parachute.json | 3 +- .../linear_light_panel.json | 3 +- .../lunar_sapphire_block.json | 3 +- .../lunar_sapphire_from_block.json | 2 +- .../{recipes => recipe}/lunaslate_slab.json | 2 +- ...late_slab_from_lunaslate_stonecutting.json | 6 +- .../{recipes => recipe}/lunaslate_stairs.json | 2 +- ...te_stairs_from_lunaslate_stonecutting.json | 6 +- .../{recipes => recipe}/lunaslate_wall.json | 2 +- ...late_wall_from_lunaslate_stonecutting.json | 6 +- .../magenta_parachute.json | 3 +- .../mars_cobblestone_slab.json | 2 +- ...ab_from_mars_cobblestone_stonecutting.json | 6 +- .../mars_cobblestone_stairs.json | 2 +- ...rs_from_mars_cobblestone_stonecutting.json | 6 +- .../mars_cobblestone_wall.json | 2 +- ...ll_from_mars_cobblestone_stonecutting.json | 6 +- .../{recipes => recipe}/mars_stone_slab.json | 2 +- ...one_slab_from_mars_stone_stonecutting.json | 6 +- .../mars_stone_stairs.json | 2 +- ...e_stairs_from_mars_stone_stonecutting.json | 6 +- .../{recipes => recipe}/mars_stone_wall.json | 2 +- ...one_wall_from_mars_stone_stonecutting.json | 6 +- .../medium_oxygen_tank.json | 3 +- .../meteoric_iron_block.json | 3 +- .../meteoric_iron_decoration.json | 2 +- .../meteoric_iron_decoration_slab.json | 2 +- ...meteoric_iron_decoration_stonecutting.json | 6 +- .../meteoric_iron_decoration_stairs.json | 2 +- ...meteoric_iron_decoration_stonecutting.json | 6 +- .../meteoric_iron_decoration_wall.json | 2 +- ...meteoric_iron_decoration_stonecutting.json | 6 +- ...ingot_from_blasting_raw_meteoric_iron.json | 4 +- .../meteoric_iron_ingot_from_block.json | 2 +- .../meteoric_iron_ingot_from_nuggets.json | 3 +- ...ingot_from_smelting_raw_meteoric_iron.json | 4 +- .../meteoric_iron_nugget.json | 2 +- .../moon_basalt_brick_slab.json | 2 +- ...b_from_moon_basalt_brick_stonecutting.json | 6 +- .../moon_basalt_brick_stairs.json | 2 +- ...s_from_moon_basalt_brick_stonecutting.json | 6 +- .../moon_basalt_brick_wall.json | 2 +- ...l_from_moon_basalt_brick_stonecutting.json | 6 +- .../{recipes => recipe}/moon_basalt_slab.json | 2 +- ...lt_slab_from_moon_basalt_stonecutting.json | 6 +- .../moon_basalt_stairs.json | 2 +- ..._stairs_from_moon_basalt_stonecutting.json | 6 +- .../{recipes => recipe}/moon_basalt_wall.json | 2 +- ...lt_wall_from_moon_basalt_stonecutting.json | 6 +- .../moon_cheese_block.json | 3 +- .../{recipes => recipe}/moon_rock.json | 4 +- .../{recipes => recipe}/moon_rock_brick.json | 2 +- ...ock_brick_from_moon_rock_stonecutting.json | 6 +- .../moon_rock_brick_slab.json | 2 +- ...lab_from_moon_rock_brick_stonecutting.json | 6 +- .../moon_rock_brick_stairs.json | 2 +- ...irs_from_moon_rock_brick_stonecutting.json | 6 +- .../moon_rock_brick_wall.json | 2 +- ...all_from_moon_rock_brick_stonecutting.json | 6 +- .../{recipes => recipe}/moon_rock_pillar.json | 2 +- .../{recipes => recipe}/moon_rock_slab.json | 2 +- ...rock_slab_from_moon_rock_stonecutting.json | 6 +- .../{recipes => recipe}/moon_rock_stairs.json | 2 +- ...ck_stairs_from_moon_rock_stonecutting.json | 6 +- .../{recipes => recipe}/moon_rock_wall.json | 2 +- ...rock_wall_from_moon_rock_stonecutting.json | 6 +- .../{recipes => recipe}/nose_cone.json | 3 +- .../olivine_block_from_shards.json | 3 +- .../{recipes => recipe}/orange_parachute.json | 3 +- .../{recipes => recipe}/orion_drive.json | 3 +- .../oxygen_bubble_distributor.json | 3 +- .../{recipes => recipe}/oxygen_collector.json | 3 +- .../oxygen_compressor.json | 3 +- .../oxygen_concentrator.json | 7 +- .../oxygen_decompressor.json | 3 +- .../{recipes => recipe}/oxygen_fan.json | 5 +- .../{recipes => recipe}/oxygen_gear.json | 3 +- .../{recipes => recipe}/oxygen_mask.json | 3 +- .../{recipes => recipe}/oxygen_sealer.json | 3 +- .../oxygen_storage_module.json | 3 +- .../{recipes => recipe}/oxygen_vent.json | 3 +- .../{recipes => recipe}/pink_parachute.json | 3 +- .../polished_moon_rock.json | 2 +- ...ock_from_moon_rock_brick_stonecutting.json | 6 +- .../polished_moon_rock_slab.json | 2 +- ..._from_polished_moon_rock_stonecutting.json | 6 +- .../polished_moon_rock_stairs.json | 2 +- ..._from_polished_moon_rock_stonecutting.json | 6 +- .../polished_moon_rock_wall.json | 2 +- ..._from_polished_moon_rock_stonecutting.json | 6 +- .../{recipes => recipe}/purple_parachute.json | 3 +- .../{recipes => recipe}/red_parachute.json | 3 +- .../{recipes => recipe}/refinery.json | 3 +- .../{recipes => recipe}/rocket_engine.json | 3 +- .../{recipes => recipe}/rocket_fin.json | 5 +- .../rocket_launch_pad.json | 2 +- .../{recipes => recipe}/rocket_workbench.json | 3 +- .../sealable_aluminum_wire.json | 2 +- .../{recipes => recipe}/sensor_glasses.json | 5 +- .../{recipes => recipe}/sensor_lens.json | 5 +- .../single_solar_module.json | 2 +- .../small_oxygen_tank.json | 3 +- .../spotlight_light_panel.json | 3 +- .../square_light_panel.json | 3 +- .../{recipes => recipe}/standard_wrench.json | 3 +- .../{recipes => recipe}/steel_decoration.json | 2 +- .../steel_decoration_slab.json | 2 +- ...ab_from_steel_decoration_stonecutting.json | 6 +- .../steel_decoration_stairs.json | 2 +- ...rs_from_steel_decoration_stonecutting.json | 6 +- .../steel_decoration_wall.json | 2 +- ...ll_from_steel_decoration_stonecutting.json | 6 +- .../{recipes => recipe}/steel_pole.json | 3 +- .../{recipes => recipe}/thermal_cloth.json | 5 +- .../thermal_padding_boots.json | 3 +- .../thermal_padding_chestpiece.json | 3 +- .../thermal_padding_helmet.json | 3 +- .../thermal_padding_leggings.json | 3 +- .../throwable_meteor_chunk.json | 2 +- .../{recipes => recipe}/tin_canister.json | 4 +- .../{recipes => recipe}/tin_decoration.json | 2 +- .../tin_decoration_slab.json | 2 +- ...slab_from_tin_decoration_stonecutting.json | 6 +- .../tin_decoration_stairs.json | 2 +- ...airs_from_tin_decoration_stonecutting.json | 6 +- .../tin_decoration_wall.json | 2 +- ...wall_from_tin_decoration_stonecutting.json | 6 +- ...ingot_from_blasting_deepslate_tin_ore.json | 4 +- .../tin_ingot_from_blasting_moon_tin_ore.json | 4 +- .../tin_ingot_from_blasting_raw_tin.json | 4 +- .../tin_ingot_from_blasting_tin_ore.json | 4 +- .../tin_ingot_from_nuggets.json | 3 +- ...ingot_from_smelting_deepslate_tin_ore.json | 4 +- .../tin_ingot_from_smelting_moon_tin_ore.json | 4 +- .../tin_ingot_from_smelting_raw_tin.json | 4 +- .../tin_ingot_from_smelting_tin_ore.json | 4 +- .../{recipes => recipe}/tin_ladder.json | 2 +- .../{recipes => recipe}/tin_nugget.json | 2 +- .../titanium_axe_smithing.json | 3 +- .../{recipes => recipe}/titanium_block.json | 3 +- .../titanium_boots_smithing.json | 3 +- .../titanium_chestplate_smithing.json | 3 +- .../titanium_decoration.json | 2 +- .../titanium_decoration_slab.json | 2 +- ...from_titanium_decoration_stonecutting.json | 6 +- .../titanium_decoration_stairs.json | 2 +- ...from_titanium_decoration_stonecutting.json | 6 +- .../titanium_decoration_wall.json | 2 +- ...from_titanium_decoration_stonecutting.json | 6 +- .../titanium_helmet_smithing.json | 3 +- .../titanium_hoe_smithing.json | 3 +- ...nium_ingot_from_blasting_ilmenite_ore.json | 4 +- ...nium_ingot_from_blasting_raw_titanium.json | 4 +- .../titanium_ingot_from_block.json | 2 +- .../titanium_ingot_from_nuggets.json | 3 +- ...nium_ingot_from_smelting_ilmenite_ore.json | 4 +- ...nium_ingot_from_smelting_raw_titanium.json | 4 +- .../titanium_leggings_smithing.json | 3 +- .../{recipes => recipe}/titanium_nugget.json | 2 +- .../titanium_pickaxe_smithing.json | 3 +- .../titanium_shovel_smithing.json | 3 +- .../titanium_sword_smithing.json | 3 +- .../{recipes => recipe}/vacuum_glass.json | 3 +- .../vacuum_glass_clear.json | 3 +- .../vacuum_glass_strong.json | 3 +- .../{recipes => recipe}/walkway.json | 2 +- .../{recipes => recipe}/white_parachute.json | 3 +- .../{recipes => recipe}/wire_walkway.json | 2 +- .../wire_walkway_shapeless.json | 3 +- .../{recipes => recipe}/yellow_parachute.json | 3 +- .../compressing/compressed_aluminum.json | 14 - .../compressing/compressed_copper.json | 14 - .../{blocks => block}/base_stone_moon.json | 1 - .../tags/{blocks => block}/footprints.json | 1 - .../{blocks => block}/infiniburn_moon.json | 1 - .../lunaslate_ore_replaceables.json | 1 - .../tags/{blocks => block}/machines.json | 1 - .../moon_carver_replaceables.json | 1 - .../moon_crater_carver_replaceables.json | 1 - .../moon_stone_ore_replaceables.json | 1 - .../tags/dimension_type/footprints.json | 1 - .../tags/dimension_type/space.json | 1 - .../has_footprints.json | 1 - .../tags/{fluids => fluid}/oxygen.json | 1 - .../biome/has_structure/moon_boss.json | 1 - .../has_structure/moon_pillager_base.json | 1 - .../biome/has_structure/moon_ruins.json | 1 - .../has_structure/moon_village_highlands.json | 1 - .../tags/worldgen/biome/moon.json | 1 - .../tags/worldgen/biome/venus.json | 1 - .../tags/worldgen/structure/moon_ruins.json | 1 - .../configured_carver/moon_canyon_carver.json | 26 +- .../configured_carver/moon_crater_carver.json | 6 +- .../moon_highlands_cave_carver.json | 24 +- .../moon_mare_cave_carver.json | 24 +- .../worldgen/structure/moon_ruins.json | 3 +- .../tags/banner_pattern/no_item_required.json | 1 - .../tags/{blocks => block}/candle_cakes.json | 1 - .../tags/{blocks => block}/climbable.json | 1 - .../tags/{blocks => block}/dragon_immune.json | 1 - .../{blocks => block}/mineable/pickaxe.json | 1 - .../{blocks => block}/mineable/shovel.json | 1 - .../{blocks => block}/needs_diamond_tool.json | 1 - .../{blocks => block}/needs_iron_tool.json | 1 - .../{blocks => block}/needs_stone_tool.json | 1 - .../tags/{blocks => block}/replaceable.json | 1 - .../tags/{blocks => block}/slabs.json | 1 - .../tags/{blocks => block}/stairs.json | 1 - .../{blocks => block}/wall_post_override.json | 1 - .../tags/{blocks => block}/walls.json | 1 - .../tags/{blocks => block}/wither_immune.json | 1 - .../minecraft/tags/{items => item}/axes.json | 1 - .../cluster_max_harvestables.json | 1 - .../tags/item/creeper_drop_music_discs.json | 3 + .../minecraft/tags/{items => item}/hoes.json | 1 - .../data/minecraft/tags/item/meat.json | 6 + .../tags/{items => item}/pickaxes.json | 1 - .../tags/{items => item}/shovels.json | 1 - .../tags/{items => item}/swords.json | 1 - .../tags/{items => item}/trimmable_armor.json | 1 - .../tags/items/creeper_drop_music_discs.json | 4 - .../accessor/LevelBodyAccessor.java} | 11 +- .../api/component/GCDataComponents.java | 83 ++++ .../api/data/TranslationProvider.java | 5 +- .../attribute/GcApiEntityAttributes.java | 5 +- .../galacticraft/api/gas/GasComposition.java | 4 +- .../api/registry/AddonRegistries.java | 1 - .../galacticraft/api/rocket/LaunchStage.java | 5 + .../galacticraft/api/rocket/RocketData.java | 216 ++++++--- .../api/rocket/entity/Rocket.java | 21 +- .../api/rocket/part/RocketBody.java | 8 + .../api/rocket/part/RocketBooster.java | 8 + .../api/rocket/part/RocketCone.java | 8 + .../api/rocket/part/RocketEngine.java | 8 + .../api/rocket/part/RocketFin.java | 8 + .../api/rocket/part/RocketUpgrade.java | 8 + .../api/rocket/part/type/RocketBodyType.java | 7 +- .../rocket/part/type/RocketBoosterType.java | 7 +- .../api/rocket/part/type/RocketConeType.java | 7 +- .../rocket/part/type/RocketEngineType.java | 7 +- .../api/rocket/part/type/RocketFinType.java | 7 +- .../api/rocket/part/type/RocketPartType.java | 4 +- .../rocket/part/type/RocketUpgradeType.java | 7 +- .../api/rocket/recipe/RocketPartRecipe.java | 8 +- .../recipe/type/RocketPartRecipeType.java | 11 +- .../ConfiguredTravelPredicate.java | 2 +- .../travelpredicate/TravelPredicateType.java | 9 +- .../api/satellite/SatelliteRecipe.java | 6 +- .../universe/celestialbody/CelestialBody.java | 62 +-- .../celestialbody/CelestialBodyType.java | 7 +- .../type/CelestialTeleporterType.java | 7 +- .../universe/display/CelestialDisplay.java | 6 +- .../display/CelestialDisplayType.java | 11 +- .../display/ring/CelestialRingDisplay.java | 8 +- .../ring/CelestialRingDisplayType.java | 15 +- .../api/universe/galaxy/Galaxy.java | 4 + .../position/CelestialPositionType.java | 7 +- .../accessor/ClientResearchAccessor.java | 4 +- .../render/BakedModelRocketPartRenderer.java | 10 +- .../codec/{MapCodec.java => MapKvCodec.java} | 16 +- .../impl/data/GCDynamicRegistryProvider.java | 79 +-- .../impl/data/GeneratingBootstrapContext.java | 5 +- .../internal/accessor/ChunkOxygenSyncer.java | 6 +- .../accessor/ChunkSectionOxygenAccessor.java | 18 +- .../client/fabric/GalacticraftAPIClient.java | 47 +- .../impl/internal/fabric/GalacticraftAPI.java | 48 +- .../mixin/LevelCelestialBodyMixin.java | 69 +++ .../internal/mixin/LevelTimeAccessMixin.java | 7 +- .../internal/mixin/MinecraftServerMixin.java | 6 +- .../AbstractClientPlayerEntityMixin.java | 12 +- .../mixin/client/MinecraftClientMixin.java | 13 +- .../mixin/client/ParticleManagerMixin.java | 4 +- .../mixin/gear/LivingEntityMixin.java | 7 +- .../internal/mixin/gear/PlayerListMixin.java | 18 +- .../mixin/gear/ServerPlayerMixin.java | 30 +- .../mixin/gravity/EntityGravityMixin.java | 25 +- .../mixin/gravity/LivingEntityMixin.java | 84 ---- .../mixin/oxygen/ChunkHolderMixin.java | 13 +- .../mixin/oxygen/ChunkSerializerMixin.java | 25 +- .../mixin/oxygen/LevelChunkMixin.java | 39 +- .../mixin/oxygen/LevelChunkSectionMixin.java | 80 ++- .../internal/mixin/oxygen/LevelMixin.java | 4 +- .../registry/RegistryDataLoaderMixin.java | 63 --- .../RegistrySynchronizationMixin.java | 65 --- .../research/AdvancementRewardsMixin.java | 5 +- .../mixin/research/ServerPlayerMixin.java | 30 +- .../network/GCApiClientPacketReceivers.java} | 29 +- .../GCApiPackets.java} | 27 +- .../network/GCApiServerPacketReceivers.java} | 37 +- .../network/c2s/C2SPayload.java} | 12 +- .../network/c2s/FlagDataPayload.java} | 34 +- .../network/c2s/TeamNamePayload.java} | 42 +- .../impl/network/s2c/AddSatellitePayload.java | 56 +++ .../impl/network/s2c/GearInvPayload.java | 65 +++ .../impl/network/s2c/OxygenUpdatePayload.java | 77 +++ .../network/s2c/RemoveSatellitePayload.java} | 44 +- .../network/s2c/ResearchUpdatePayload.java | 57 +++ .../network/s2c/S2CPayload.java} | 16 +- .../impl/rocket/RocketDataImpl.java | 88 ---- .../rocket/recipe/RocketPartRecipeImpl.java | 13 +- ...nteredPatternedRocketPartRecipeConfig.java | 2 +- .../PatternedRocketPartRecipeConfig.java | 2 +- ...CenteredPatternedRocketPartRecipeType.java | 8 +- .../type/PatternedRocketPartRecipeType.java | 16 +- .../type/AccessWeightTravelPredicateType.java | 3 +- .../type/AndTravelPredicateType.java | 3 +- .../type/ConstantTravelPredicateType.java | 3 +- .../type/DefaultTravelPredicateType.java | 3 +- .../type/OrTravelPredicateType.java | 3 +- .../impl/universe/BuiltinObjects.java | 1 - .../celestialbody/type/SatelliteType.java | 16 +- .../type/EmptyCelestialDisplayType.java | 4 +- .../type/IconCelestialDisplayType.java | 4 +- .../SpinningIconCelestialDisplayType.java | 6 +- .../AsteroidCelestialRingDisplayType.java | 72 ++- .../ring/DefaultCelestialRingDisplayType.java | 35 +- .../ring/EmptyCelestialRingDisplayType.java | 6 +- .../impl/universe/galaxy/GalaxyImpl.java | 4 +- .../position/config/SatelliteConfig.java | 4 + .../java/dev/galacticraft/mod/Constant.java | 8 +- .../dev/galacticraft/mod/Galacticraft.java | 7 +- .../galacticraft/mod/GalacticraftClient.java | 14 +- .../mod/api/block/FluidLoggable.java | 4 +- .../galacticraft/mod/api/block/FluidPipe.java | 10 +- .../mod/api/block/MultiBlockBase.java | 4 +- .../mod/api/block/MultiBlockMachineBlock.java | 5 +- .../galacticraft/mod/api/block/WireBlock.java | 10 +- .../entity/AbstractSolarPanelBlockEntity.java | 43 +- .../mod/api/block/entity/Walkway.java | 5 +- .../mod/api/data/recipe/GCRecipeBuilder.java | 2 +- .../ShapelessCompressorRecipeBuilder.java | 2 +- .../mod/api/wire/WireConnectionType.java | 2 +- .../mod/attachments/GCServerPlayer.java | 16 +- .../mod/client/gl/BufferWriter.java | 135 ------ .../mod/client/gl/GlElementArrayBuffer.java | 59 --- .../mod/client/gl/GlVertexBuffer.java | 59 --- .../mod/client/gl/MeshBuffer.java | 161 ------ .../client/gui/overlay/CountdownOverlay.java | 3 +- .../mod/client/gui/overlay/LanderOverlay.java | 3 +- .../mod/client/gui/overlay/OxygenOverlay.java | 14 +- .../mod/client/gui/overlay/RocketOverlay.java | 43 +- .../gui/screen/ingame/CelestialScreen.java | 15 +- .../ingame/CelestialSelectionScreen.java | 13 +- .../ingame/CircuitFabricatorScreen.java | 6 +- .../ingame/ElectricArcFurnaceScreen.java | 6 +- .../ingame/ElectricCompressorScreen.java | 6 +- .../screen/ingame/ElectricFurnaceScreen.java | 6 +- .../gui/screen/ingame/FuelLoaderScreen.java | 8 +- .../ingame/OxygenBubbleDistributorScreen.java | 10 +- .../ingame/OxygenStorageModuleScreen.java | 6 +- .../screen/ingame/RocketWorkbenchScreen.java | 115 +++-- .../gui/screen/ingame/SolarPanelScreen.java | 8 +- .../gui/screen/ingame/SpaceRaceScreen.java | 17 +- .../gui/screen/ingame/SpaceTravelScreen.java | 22 +- .../mod/client/model/BakedObjModel.java | 22 +- .../model/FluidPipeWalkwayBakedModel.java | 64 +-- .../model/FluidPipeWalkwayUnbakedModel.java | 6 +- .../mod/client/model/GCBakedModel.java | 7 +- .../mod/client/model/GCMissingModel.java | 6 +- .../mod/client/model/GCModel.java | 4 +- .../mod/client/model/GCModelLoader.java | 24 +- .../mod/client/model/GCRenderTypes.java | 1 - .../model/OxygenSealerSpriteProvider.java | 7 +- .../mod/client/model/ParaChestBakedModel.java | 47 +- .../client/model/ParachestUnbakedModel.java | 8 +- .../mod/client/model/PipeBakedModel.java | 64 +-- .../mod/client/model/PipeUnbakedModel.java | 4 +- .../model/SolarPanelSpriteProvider.java | 9 +- .../client/model/VacuumGlassUnbakedModel.java | 4 +- .../mod/client/model/WalkwayBakedModel.java | 53 +- .../mod/client/model/WalkwayUnbakedModel.java | 6 +- .../mod/client/model/WireBakedModel.java | 50 +- .../mod/client/model/WireUnbakedModel.java | 6 +- .../client/model/WireWalkwayBakedModel.java | 102 ++-- .../client/model/WireWalkwayUnbakedModel.java | 6 +- .../model/entity/ArchGreyEntityModel.java | 14 +- .../model/entity/CometCubeEntityModel.java | 11 +- .../entity/EvolvedSkeletonBossModel.java | 9 +- .../client/model/entity/GazerEntityModel.java | 34 +- .../client/model/entity/GreyEntityModel.java | 15 +- .../mod/client/model/entity/LanderModel.java | 8 +- .../model/entity/OliGrubEntityModel.java | 8 +- .../model/entity/RumblerEntityModel.java | 52 +- .../mod/client/model/types/ObjModel.java | 8 +- .../network/GCClientPacketReceiver.java | 68 +-- .../client/particle/AcidVaporParticle.java | 2 +- .../client/particle/LaunchFlameParticle.java | 4 +- .../mod/client/particle/LaunchParticle.java | 4 - .../client/particle/LaunchSmokeParticle.java | 3 +- .../mod/client/render/FootprintRenderer.java | 36 +- .../BasicSolarPanelBlockEntityRenderer.java | 8 +- .../dimension/CelestialBodyTextures.java | 2 +- .../render/dimension/MoonSkyRenderer.java | 36 +- .../render/dimension/OverworldRenderer.java | 66 ++- .../render/dimension/SpaceSkyRenderer.java | 7 +- .../client/render/dimension/StarManager.java | 7 +- .../dimension/VenusDimensionEffects.java | 2 +- .../render/dimension/VenusSkyRenderer.java | 177 ++++--- .../dimension/VenusWeatherRenderer.java | 27 +- .../render/entity/LanderEntityRenderer.java | 3 +- .../render/entity/ParachestRenderer.java | 4 +- .../render/entity/model/ParachestModel.java | 1 - .../entity/rocket/RocketEntityRenderer.java | 14 +- .../render/item/RocketItemRenderer.java | 16 +- .../BakedModelItemRocketPartRenderer.java | 9 +- .../GalacticraftRocketPartRenderers.java | 31 +- .../mod/client/util/BatchedColorRenderer.java | 89 ---- .../mod/client/util/BatchedRenderer.java | 83 ---- .../mod/client/util/Graphics.java | 77 +-- .../mod/command/DimensionTpCommand.java | 14 +- .../mod/command/GCHoustonCommand.java | 3 +- .../category/DefaultFabricationCategory.java | 4 +- .../transfer/info/FabricationMenuInfo.java | 13 +- .../transfer/info/SimpleMachineMenuInfo.java | 13 +- .../galacticraft/mod/content/GCBlocks.java | 27 +- .../mod/content/GCCelestialBodies.java | 4 +- .../mod/content/GCLootTables.java | 11 +- .../mod/content/GCMachineTypes.java | 458 ------------------ .../mod/content/GCRocketParts.java | 14 +- .../dev/galacticraft/mod/content/GCStats.java | 7 +- .../mod/content/GCTeleporterTypes.java | 4 +- .../critereon/CreateSpaceStationTrigger.java | 4 +- .../critereon/FindMoonBossTrigger.java | 3 +- .../critereon/LaunchRocketTrigger.java | 3 +- .../mod/content/block/GCBlock.java | 6 +- .../block/decoration/GratingBlock.java | 2 +- .../LunarCartographyTableBlock.java | 3 +- .../CryogenicChamberPartBlockEntity.java | 13 +- .../entity/DungeonSpawnerBlockEntity.java | 14 +- .../entity/RocketWorkbenchBlockEntity.java | 76 ++- .../entity/SolarPanelPartBlockEntity.java | 9 +- .../block/entity/WalkwayBlockEntity.java | 13 +- .../AdvancedSolarPanelBlockEntity.java | 36 +- .../machine/BasicSolarPanelBlockEntity.java | 35 +- .../machine/CircuitFabricatorBlockEntity.java | 101 ++-- .../machine/CoalGeneratorBlockEntity.java | 56 ++- .../entity/machine/CompressorBlockEntity.java | 57 ++- .../ElectricArcFurnaceBlockEntity.java | 63 ++- .../ElectricCompressorBlockEntity.java | 64 ++- .../machine/ElectricFurnaceBlockEntity.java | 61 ++- .../EnergyStorageModuleBlockEntity.java | 62 ++- .../entity/machine/FuelLoaderBlockEntity.java | 64 ++- .../OxygenBubbleDistributorBlockEntity.java | 85 ++-- .../machine/OxygenCollectorBlockEntity.java | 56 ++- .../machine/OxygenCompressorBlockEntity.java | 58 ++- .../OxygenDecompressorBlockEntity.java | 64 ++- .../machine/OxygenSealerBlockEntity.java | 65 ++- .../OxygenStorageModuleBlockEntity.java | 42 +- .../entity/machine/RefineryBlockEntity.java | 71 ++- .../FluidPipeWalkwayBlockEntity.java | 9 +- .../networked/GlassFluidPipeBlockEntity.java | 9 +- .../entity/networked/WireBlockEntity.java | 13 +- .../networked/WireWalkwayBlockEntity.java | 9 +- .../block/environment/FallenMeteorBlock.java | 3 +- .../environment/GlowstoneLanternBlock.java | 10 +- .../environment/GlowstoneTorchBlock.java | 10 +- .../environment/GlowstoneWallTorchBlock.java | 9 +- .../block/environment/MoonBerryBushBlock.java | 138 ------ .../environment/OlivineClusterBlock.java | 22 + .../block/environment/UnlitLanternBlock.java | 23 +- .../block/environment/UnlitTorchBlock.java | 23 +- .../environment/UnlitWallTorchBlock.java | 23 +- .../block/environment/VolcanicRockBlock.java | 18 +- .../block/machine/CoalGeneratorBlock.java | 21 +- .../block/machine/FuelLoaderBlock.java | 20 +- .../block/machine/OxygenCollectorBlock.java | 22 +- .../content/block/machine/RefineryBlock.java | 21 +- .../machine/SimpleMultiBlockMachineBlock.java | 11 +- .../content/block/special/AirlockBlock.java | 5 +- .../block/special/CandleMoonCheeseBlock.java | 31 +- .../block/special/CryogenicChamberBlock.java | 7 +- .../block/special/CryogenicChamberPart.java | 7 +- .../block/special/MoonCheeseBlock.java | 46 +- .../content/block/special/ParaChestBlock.java | 17 +- .../block/special/ParaChestBlockEntity.java | 28 +- .../block/special/RocketWorkbench.java | 3 +- .../block/special/SolarPanelPartBlock.java | 11 +- .../content/block/special/TinLadderBlock.java | 31 +- .../fluidpipe/GlassFluidPipeBlock.java | 47 +- .../special/fluidpipe/PipeBlockEntity.java | 13 +- .../special/launchpad/AbstractLaunchPad.java | 5 +- .../launchpad/LaunchPadBlockEntity.java | 29 +- .../special/walkway/FluidPipeWalkway.java | 29 +- .../mod/content/entity/BubbleEntity.java | 28 +- .../mod/content/entity/Buggy.java | 8 +- .../content/entity/EvolvedCreeperEntity.java | 39 +- .../mod/content/entity/GCVehicle.java | 12 +- .../mod/content/entity/GreyEntity.java | 4 +- .../mod/content/entity/OliGrubEntity.java | 6 + .../mod/content/entity/ParachestEntity.java | 8 +- .../entity/ThrowableMeteorChunkEntity.java | 8 +- .../entity/boss/AbstractBossEntity.java | 1 - .../mod/content/entity/boss/SkeletonBoss.java | 26 +- .../content/entity/damage/GCDamageTypes.java | 4 +- .../entity/data/GCEntityDataSerializers.java | 24 +- .../entity/goals/FollowPlayerGoal.java | 76 +-- .../content/entity/orbital/RocketEntity.java | 249 +++------- .../entity/orbital/lander/LanderEntity.java | 35 +- .../mod/content/item/BatteryItem.java | 17 +- .../mod/content/item/BrittleSwordItem.java | 6 +- .../mod/content/item/BuggyItem.java | 6 +- .../mod/content/item/GCArmorMaterial.java | 132 ----- .../mod/content/item/GCArmorMaterials.java | 85 ++++ .../mod/content/item/GCCreativeModeTabs.java | 26 +- .../mod/content/item/GCFoodComponent.java | 23 +- .../mod/content/item/GCItems.java | 97 ++-- .../{GCToolMaterial.java => GCTiers.java} | 24 +- .../content/item/GenericLiquidCanister.java | 47 -- .../item/HotThrowableMeteorChunkItem.java | 36 +- .../mod/content/item/InfiniteBatteryItem.java | 6 +- .../content/item/InfiniteOxygenTankItem.java | 6 +- .../mod/content/item/OxygenTankItem.java | 6 +- .../mod/content/item/RocketItem.java | 62 +-- .../mod/content/item/SchematicItem.java | 13 +- .../mod/content/item/StandardWrenchItem.java | 39 +- .../mod/data/GCBlockLootTableProvider.java | 34 +- .../mod/data/GCDataGenerator.java | 5 +- .../galacticraft/mod/data/GCEntityLoot.java | 35 +- .../mod/data/GCLootTableProvider.java | 8 +- .../mod/data/GCTranslationProvider.java | 3 + .../data/content/BootstrapDataProvider.java | 8 +- .../mod/data/content/GCLevelStemProvider.java | 10 +- .../mod/data/gen/SatelliteChunkGenerator.java | 18 +- .../data/loot/GCEntityLootSubProvider.java | 27 +- .../mod/data/model/GCModelProvider.java | 12 +- .../recipes/GCDecorationRecipeProvider.java | 7 +- .../data/recipes/GCGearRecipeProvider.java | 11 +- .../mod/data/recipes/GCMachineRecipes.java | 9 +- .../data/recipes/GCMiscRecipeProvider.java | 11 +- .../mod/data/recipes/GCOreRecipeProvider.java | 6 +- .../mod/data/recipes/GCRocketRecipes.java | 7 +- .../mod/data/tag/GCBannerTagProvider.java | 2 +- .../mod/data/tag/GCItemTagProvider.java | 16 +- .../mod/events/GCEventHandlers.java | 19 +- .../mod/lookup/GCApiLookupProviders.java | 47 +- .../storage/VariableSizedContainer.java | 19 +- .../mod/misc/banner/GCBannerPatterns.java | 11 +- .../mod/misc/footprint/Footprint.java | 38 +- .../footprint/ServerFootprintManager.java | 2 +- .../mod/mixin/BuiltInLootTablesAccessor.java | 36 -- .../galacticraft/mod/mixin/EntityMixin.java | 26 +- .../mod/mixin/ItemEntityMixin.java | 15 +- .../mod/mixin/LanternBlockMixin.java | 7 +- .../mod/mixin/LivingEntityMixin.java | 4 +- .../mod/mixin/ServerPlayerMixin.java | 5 +- .../mod/mixin/TorchBlockMixin.java | 7 +- .../mod/mixin/client/CameraMixin.java | 5 +- .../mod/mixin/client/HumanoidModelMixin.java | 44 +- .../mod/mixin/client/LevelRendererMixin.java | 14 +- .../client/LivingEntityRendererMixin.java | 20 +- .../mod/mixin/client/LocalPlayerMixin.java | 4 +- .../galacticraft/mod/network/GCPackets.java | 48 ++ .../mod/network/GCServerPacketReceivers.java | 89 +--- .../BubbleMaxPayload.java} | 42 +- .../BubbleVisibilityPayload.java} | 41 +- .../mod/network/c2s/ControlEntityPayload.java | 71 +++ .../network/c2s/OpenGcInventoryPayload.java | 57 +++ .../mod/network/c2s/OpenRocketPayload.java | 77 +++ .../network/c2s/PlanetTeleportPayload.java | 61 +++ .../network/c2s/SatelliteCreationPayload.java | 53 ++ .../mod/network/c2s/SelectPartPayload.java | 73 +++ .../network/packets/ControlEntityPacket.java | 62 --- .../packets/FootprintRemovedPacket.java | 76 --- .../network/packets/RocketSpawnPacket.java | 77 --- .../mod/network/packets/SelectPartPacket.java | 77 --- .../mod/network/s2c/BubbleSizePayload.java | 75 +++ .../mod/network/s2c/BubbleUpdatePayload.java | 67 +++ .../{packets => s2c}/FootprintPacket.java | 56 +-- .../network/s2c/FootprintRemovedPacket.java | 79 +++ .../s2c/OpenCelestialScreenPayload.java | 68 +++ .../ResetPerspectivePacket.java} | 38 +- .../mod/network/s2c/RocketSpawnPacket.java | 98 ++++ .../mod/particle/EntityParticleOption.java | 63 +-- .../mod/particle/GCParticleTypes.java | 8 +- .../particle/LaunchSmokeParticleOption.java | 69 +-- .../mod/particle/ScaleParticleType.java | 51 +- .../mod/recipe/CompressingRecipe.java | 4 +- .../mod/recipe/FabricationRecipe.java | 90 ++-- .../galacticraft/mod/recipe/GCRecipeType.java | 6 +- .../mod/recipe/ShapedCompressingRecipe.java | 204 ++------ .../recipe/ShapelessCompressingRecipe.java | 99 ++-- .../mod/screen/CoalGeneratorMenu.java | 22 +- .../mod/screen/CompressorMenu.java | 30 +- .../mod/screen/FuelLoaderMenu.java | 23 +- .../galacticraft/mod/screen/GCMenuTypes.java | 50 +- .../mod/screen/GCPlayerInventoryMenu.java | 5 +- .../screen/OxygenBubbleDistributorMenu.java | 48 +- .../mod/screen/OxygenCollectorMenu.java | 24 +- .../mod/screen/ParachestMenu.java | 42 +- .../galacticraft/mod/screen/RocketMenu.java | 5 +- .../mod/screen/RocketWorkbenchMenu.java | 73 ++- .../mod/screen/SolarPanelMenu.java | 43 +- .../mod/storage/PlaceholderItemStorage.java | 8 +- .../mod/storage/SingleTypeStorage.java | 122 ----- .../mod/structure/GCStructureSets.java | 4 +- .../structure/GCStructureTemplatePools.java | 9 +- .../dungeon/DungeonConfiguration.java | 5 +- .../mod/structure/dungeon/DungeonStart.java | 1 - .../structure/dungeon/DungeonStructure.java | 6 +- .../mod/structure/dungeon/RoomChest.java | 5 +- .../mod/structure/dungeon/RoomSpawner.java | 4 - .../mod/structure/dungeon/RoomTreasure.java | 7 +- .../java/dev/galacticraft/mod/tag/GCTags.java | 32 +- .../galacticraft/mod/util/DrawableUtil.java | 29 +- .../galacticraft/mod/util/StreamCodecs.java | 364 ++++++++++++++ .../galacticraft/mod/util/Translations.java | 4 + .../mod/village/GCVillagerProfessions.java | 49 +- .../mod/village/GCVillagerTrades.java | 138 ------ .../mod/world/biome/GCBiomes.java | 4 +- .../mod/world/biome/MoonBiomes.java | 1 - .../mod/world/biome/VenusBiomes.java | 2 - ...GCMultiNoiseBiomeSourceParameterLists.java | 4 +- .../mod/world/dimension/GCDimensionTypes.java | 5 +- .../mod/world/dimension/GCLevelStems.java | 4 +- .../mod/world/gen/GCDensityFunctions.java | 14 +- .../mod/world/gen/GCNoiseData.java | 12 +- .../world/gen/GCNoiseGeneratorSettings.java | 7 +- .../mod/world/gen/PlanetChunkGenerator.java | 9 +- .../world/gen/carver/GCConfiguredCarvers.java | 4 +- .../gen/feature/GCConfiguredFeature.java | 4 +- .../gen/feature/GCOreConfiguredFeature.java | 4 +- .../gen/feature/GCOrePlacedFeatures.java | 4 +- .../world/gen/feature/GCPlacedFeatures.java | 4 +- .../gen/spawner/EvolvedPillagerSpawner.java | 2 +- .../world/gen/structure/GCStructureTypes.java | 3 - .../mod/world/gen/structure/GCStructures.java | 9 +- .../gen/structure/MoonRuinsStructure.java | 4 +- .../BiomeTagRule.java | 14 +- .../MoonSurfaceRules.java | 6 +- .../VenusSurfaceRules.java | 2 +- .../mod/world/inventory/GearInventory.java | 28 +- src/main/resources/fabric.mod.json | 3 +- .../resources/galacticraft-api.mixins.json | 7 +- src/main/resources/galacticraft.accesswidener | 51 +- src/main/resources/galacticraft.mixins.json | 3 +- src/main/resources/waila_plugins.json | 2 +- .../mod/gametest/ConfigTestSuite.java | 6 +- .../mod/gametest/GratingTestSuite.java | 27 +- .../machine/AdvancedSolarPanelTestSuite.java | 4 +- .../machine/BasicSolarPanelTestSuite.java | 4 +- .../machine/CircuitFabricatorTestSuite.java | 18 +- .../machine/CoalGeneratorTestSuite.java | 10 +- .../gametest/machine/CompressorTestSuite.java | 18 +- .../machine/ElectricArcFurnaceTestSuite.java | 10 +- .../machine/ElectricCompressorTestSuite.java | 12 +- .../machine/ElectricFurnaceTestSuite.java | 10 +- .../machine/EnergyStorageModuleTestSuite.java | 4 +- .../gametest/machine/FuelLoaderTestSuite.java | 4 +- .../gametest/machine/RefineryTestSuite.java | 12 +- src/test/resources/fabric.mod.json | 2 +- 1624 files changed, 7581 insertions(+), 8658 deletions(-) delete mode 100644 src/main/generated/assets/galacticraft/blockstates/moon_berry_bush.json delete mode 100644 src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage0.json delete mode 100644 src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage1.json delete mode 100644 src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage2.json delete mode 100644 src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage3.json delete mode 100644 src/main/generated/assets/galacticraft/models/item/moon_berries.json rename src/main/generated/data/c/tags/{items => block}/clusters.json (73%) rename src/main/generated/data/c/tags/{blocks => block}/ores.json (96%) rename src/main/generated/data/c/tags/{fluids => fluid}/fuel.json (80%) rename src/main/generated/data/c/tags/{fluids => fluid}/oil.json (82%) rename src/main/generated/data/c/tags/{fluids => fluid}/oxygen.json (72%) rename src/main/generated/data/c/tags/{fluids => fluid}/sulfuric_acid.json (83%) rename src/main/generated/data/c/tags/{blocks => item}/clusters.json (73%) rename src/main/generated/data/c/tags/{items => item}/gems.json (72%) rename src/main/generated/data/c/tags/{items/silicons.json => item/gems/silicon.json} (72%) rename src/main/generated/data/c/tags/{items/aluminum_ingots.json => item/ingots/aluminum.json} (73%) rename src/main/generated/data/c/tags/{items/lead_ingots.json => item/ingots/lead.json} (71%) rename src/main/generated/data/c/tags/{items/tin_ingots.json => item/ingots/tin.json} (71%) rename src/main/generated/data/c/tags/{items => item}/ores.json (96%) rename src/main/generated/data/c/tags/{items/compressed_iron.json => item/plates/iron.json} (73%) rename src/main/generated/data/c/tags/{items/compressed_steel.json => item/plates/steel.json} (74%) rename src/main/generated/data/c/tags/{items/compressed_tin.json => item/plates/tin.json} (73%) rename src/main/generated/data/c/tags/{items/raw_aluminum_ores.json => item/raw_materials/aluminum.json} (72%) rename src/main/generated/data/c/tags/{items/raw_lead_ores.json => item/raw_materials/lead.json} (71%) rename src/main/generated/data/c/tags/{items/raw_tin_ores.json => item/raw_materials/tin.json} (70%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/advanced_wafer.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/basic_wafer.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/blue_solar_wafer.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/chiseled_moon_rock_brick.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/desh_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/grating.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lead_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunar_sapphire_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_block.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_slab.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_stairs.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_wall.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_pillar.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/tin_ladder.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_slab.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_stairs.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_wall.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/desh_sword.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/heavy_duty_boots.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/heavy_duty_chestplate.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/heavy_duty_helmet.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/heavy_duty_leggings.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/heavy_duty_sword.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/throwable_meteor_chunk.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/titanium_boots_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/titanium_chestplate_smithing.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/titanium_helmet_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/titanium_leggings_smithing.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/combat/titanium_sword_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_aluminum.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_bronze.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_copper.json (93%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_desh.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_iron.json (93%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_meteoric_iron.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_steel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_steel_from_ingots.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_tin.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/compressed_titanium.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/dashed_light_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/diagonal_light_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/diagonal_light_panel_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/glowstone_lantern.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/glowstone_torch.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/linear_light_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/spotlight_light_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/square_light_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/vacuum_glass.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/vacuum_glass_clear.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/decorations/vacuum_glass_strong.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/beef_patty_from_campfire_cooking.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/beef_patty_from_smelting.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/beef_patty_from_smoking.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/burger_bun.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/canned_beef.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/canned_dehydrated_apple.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/canned_dehydrated_carrot.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/canned_dehydrated_melon.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/canned_dehydrated_potato.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/cheese_slice.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/cheeseburger.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/ground_beef.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/hot_throwable_meteor_chunk_from_blasting.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/hot_throwable_meteor_chunk_from_smelting.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/food/moon_cheese_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/heavy_plating.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/heavy_plating_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/heavy_plating_t2.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/heavy_plating_t3.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/advanced_solar_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_nugget.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/aluminum_wire.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/ambient_thermal_controller.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/atmospheric_valve.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/basic_solar_panel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/battery.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/beam_core.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/black_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/blue_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/brown_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/canvas.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/carbon_fragments_from_charcoal.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/carbon_fragments_from_coal.json (94%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/carbon_fragments_from_smelting_planks.json (93%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/circuit_fabricator.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/coal_generator.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/compressor.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/copper_canister.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/cyan_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_boots.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_chestplate.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_helmet.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_blasting_desh_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_blasting_raw_desh.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_smelting_desh_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_ingot_from_smelting_raw_desh.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_leggings.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_nugget.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/desh_stick.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/electric_arc_furnace.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/electric_compressor.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/electric_compressor_upgrade.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/electric_furnace.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/energy_storage_module.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/fluid_manipulator.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/fluid_pipe_walkway.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/fluid_pipe_walkway_shapeless.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/frequency_module.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/fuel_loader.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/full_solar_panel.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/glass_fluid_pipe.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/gray_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/green_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/iron_ingot_from_blasting_iron_shard.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/iron_ingot_from_smelting_iron_shard.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/isothermal_fabric.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/large_oxygen_tank.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_blasting_galena_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_blasting_raw_lead.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_smelting_galena_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_ingot_from_smelting_raw_lead.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lead_nugget.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/light_blue_parachute.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/light_gray_parachute.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lime_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/lunar_sapphire_from_block.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/magenta_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/medium_oxygen_tank.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/meteoric_iron_ingot_from_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/meteoric_iron_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/meteoric_iron_nugget.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/nose_cone.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/olivine_block_from_shards.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/orange_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/orion_drive.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_bubble_distributor.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_collector.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_compressor.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_concentrator.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_decompressor.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_fan.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_gear.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_mask.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_sealer.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_storage_module.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/oxygen_vent.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/pink_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/purple_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/red_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/refinery.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/rocket_engine.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/rocket_fin.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/rocket_workbench.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/sealable_aluminum_wire.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/sensor_glasses.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/sensor_lens.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/single_solar_module.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/small_oxygen_tank.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/standard_wrench.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/steel_pole.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/thermal_cloth.json (93%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/thermal_padding_boots.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/thermal_padding_chestpiece.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/thermal_padding_helmet.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/thermal_padding_leggings.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_canister.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_blasting_raw_tin.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_blasting_tin_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_smelting_raw_tin.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_ingot_from_smelting_tin_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/tin_nugget.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_block.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_nuggets.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/titanium_nugget.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/walkway.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/white_parachute.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/wire_walkway.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/wire_walkway_shapeless.json (88%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/misc/yellow_parachute.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/solar_array_wafer.json (100%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_axe.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_axe_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_hoe.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_hoe_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_pickaxe.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/desh_shovel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_axe.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_axe_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_hoe.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_hoe_flipped.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_pickaxe.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/heavy_duty_shovel.json (87%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/titanium_axe_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/titanium_hoe_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/titanium_pickaxe_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/tools/titanium_shovel_smithing.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/transportation/fueling_pad.json (86%) rename src/main/generated/data/galacticraft/{advancements => advancement}/recipes/transportation/rocket_launch_pad.json (88%) create mode 100644 src/main/generated/data/galacticraft/banner_pattern/rocket.json rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/asteroids.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/earth.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/jupiter.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/mars.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/mercury.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/moon.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/neptune.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/saturn.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/sol.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/uranus.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_body/venus.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_teleporter/direct.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_teleporter/lander.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/celestial_teleporter/overworld.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/galaxy/milky_way.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_body/tier_1.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_booster/tier_1.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_cone/advanced_cone.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_cone/sloped_cone.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_cone/tier_1.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_engine/tier_1.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_fin/tier_1.json (100%) rename src/main/generated/data/galacticraft/{ => galacticraft}/rocket_upgrade/storage.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/advanced_solar_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/air_lock_controller.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/air_lock_frame.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/air_lock_seal.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/aluminum_wire.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/asteroid_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/asteroid_rock_block_1.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/asteroid_rock_block_2.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/basic_solar_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/black_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/blue_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/bronze_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/bronze_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/bronze_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/bronze_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/brown_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cavernous_vines.json (84%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/chiseled_moon_rock_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/circuit_fabricator.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/coal_generator.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_lunaslate.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_lunaslate_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_lunaslate_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_lunaslate_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_moon_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_moon_rock_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_moon_rock_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cobbled_moon_rock_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/compressor.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/copper_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/copper_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/copper_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/copper_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_basalt_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_basalt_brick_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_basalt_brick_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_basalt_brick_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_rock_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_rock_brick_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_rock_brick_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cracked_moon_rock_brick_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cryogenic_chamber.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/cyan_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/dark_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/dark_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/dark_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/dark_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/dashed_light_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/deepslate_aluminum_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/deepslate_silicon_ore.json (80%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/deepslate_tin_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/desh_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/desh_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_aluminum_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_aluminum_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_aluminum_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_aluminum_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_bronze_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_bronze_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_bronze_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_bronze_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_copper_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_copper_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_copper_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_copper_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_dark_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_dark_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_dark_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_dark_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_iron_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_iron_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_iron_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_iron_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_meteoric_iron_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_meteoric_iron_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_meteoric_iron_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_meteoric_iron_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_steel_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_steel_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_steel_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_steel_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_tin_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_tin_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_tin_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_tin_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_titanium_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_titanium_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_titanium_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/detailed_titanium_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/diagonal_light_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/electric_arc_furnace.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/electric_compressor.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/electric_furnace.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/energy_storage_module.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/fallen_meteor.json (77%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/fluid_pipe_walkway.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/fuel_loader.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/fueling_pad.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/galena_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/glass_fluid_pipe.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/glowstone_lantern.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/glowstone_torch.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/grating.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/gray_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/green_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/hard_venus_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/heavy_sealable_aluminum_wire.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/ilmenite_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/iron_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/iron_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/iron_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/iron_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lead_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/light_blue_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/light_gray_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lime_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/linear_light_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunar_cartography_table.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunar_sapphire_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate.json (71%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate_copper_ore.json (79%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate_tin_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/lunaslate_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/magenta_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_cobblestone.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_cobblestone_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_cobblestone_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_cobblestone_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_stone.json (71%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_stone_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_stone_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_stone_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_sub_surface_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/mars_surface_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/meteoric_iron_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/meteoric_iron_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/meteoric_iron_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/meteoric_iron_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/meteoric_iron_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_brick_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_brick_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_brick_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_basalt_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_copper_ore.json (79%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_dirt.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_dirt_path.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_dungeon_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock.json (71%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_brick.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_brick_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_brick_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_brick_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_pillar.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_rock_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_surface_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_tin_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/moon_turf.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/olivine_basalt.json (81%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/olivine_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/olivine_cluster.json (83%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/orange_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_bubble_distributor.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_collector.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_compressor.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_decompressor.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_sealer.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/oxygen_storage_module.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/parachest.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/pink_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/player_transport_tube.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/polished_moon_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/polished_moon_rock_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/polished_moon_rock_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/polished_moon_rock_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/pumice.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/purple_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/red_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/refinery.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/rich_olivine_basalt.json (81%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/rocket_launch_pad.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/rocket_workbench.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/scorched_venus_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/sealable_aluminum_wire.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/silicon_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/silicon_ore.json (79%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/soft_venus_rock.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/spotlight_light_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/square_light_panel.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/steel_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/steel_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/steel_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/steel_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_ladder.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/tin_ore.json (75%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/titanium_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/titanium_decoration.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/titanium_decoration_slab.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/titanium_decoration_stairs.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/titanium_decoration_wall.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/unlit_lantern.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/unlit_torch.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/vacuum_glass.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/vacuum_glass_clear.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/vacuum_glass_strong.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/vapor_spout.json (71%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/volcanic_rock.json (60%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/walkway.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/white_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/wire_walkway.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/blocks/yellow_candle_moon_cheese_block.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/arch_grey.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/comet_cube.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_creeper.json (88%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_evoker.json (90%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_pillager.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_skeleton.json (85%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_skeleton_boss.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_spider.json (86%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/evolved_vindicator.json (88%) create mode 100644 src/main/generated/data/galacticraft/loot_table/entities/evolved_zombie.json rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/gazer.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/grey.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/oli_grub.json (100%) rename src/main/generated/data/galacticraft/{loot_tables => loot_table}/entities/rumbler.json (100%) delete mode 100644 src/main/generated/data/galacticraft/loot_tables/entities/evolved_zombie.json rename src/main/generated/data/galacticraft/{recipes => recipe}/advanced_solar_panel.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_blasting_aluminum_ore.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_blasting_raw_aluminum.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_nuggets.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_smelting_aluminum_ore.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_ingot_from_smelting_raw_aluminum.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_nugget.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/aluminum_wire.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/ambient_thermal_controller.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/atmospheric_valve.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/basic_solar_panel.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/battery.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/beam_core.json (67%) rename src/main/generated/data/galacticraft/{recipes => recipe}/beef_patty_from_campfire_cooking.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/beef_patty_from_smelting.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/beef_patty_from_smoking.json (74%) rename src/main/generated/data/galacticraft/{recipes => recipe}/black_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/blue_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_slab_from_bronze_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/bronze_decoration_wall_from_bronze_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/brown_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/burger_bun.json (89%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canned_beef.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canned_dehydrated_apple.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canned_dehydrated_carrot.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canned_dehydrated_melon.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canned_dehydrated_potato.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/canvas.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/carbon_fragments_from_charcoal.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/carbon_fragments_from_coal.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/carbon_fragments_from_smelting_planks.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cheese_slice.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cheeseburger.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/chiseled_moon_rock_brick.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json (54%) rename src/main/generated/data/galacticraft/{recipes => recipe}/circuit_fabricator.json (89%) rename src/main/generated/data/galacticraft/{recipes => recipe}/coal_generator.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json (56%) create mode 100644 src/main/generated/data/galacticraft/recipe/compressing/compressed_aluminum.json rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_bronze.json (77%) create mode 100644 src/main/generated/data/galacticraft/recipe/compressing/compressed_copper.json rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_desh.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_iron.json (50%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_meteoric_iron.json (70%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_steel.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_steel_from_ingots.json (50%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_tin.json (51%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/compressed_titanium.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/heavy_plating.json (95%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/heavy_plating_flipped.json (95%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/heavy_plating_t2.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressing/heavy_plating_t3.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/compressor.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_canister.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_slab_from_copper_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_stairs_from_copper_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_decoration_wall_from_copper_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_ingot_from_blasting_lunaslate_copper_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_ingot_from_blasting_moon_copper_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_ingot_from_smelting_lunaslate_copper_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/copper_ingot_from_smelting_moon_copper_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_wall.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/cyan_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_slab_from_dark_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_stairs_from_dark_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_wall.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dark_decoration_wall_from_dark_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/dashed_light_panel.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_axe.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_axe_flipped.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_block.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_boots.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_chestplate.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_helmet.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_hoe.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_hoe_flipped.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_blasting_desh_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_blasting_raw_desh.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_block.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_nuggets.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_smelting_desh_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_ingot_from_smelting_raw_desh.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_leggings.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_nugget.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_pickaxe.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_shovel.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_stick.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/desh_sword.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_slab.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_stairs.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_slab.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_stairs.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_slab.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_stairs.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_wall.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_wall.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_meteoric_iron_decoration.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_meteoric_iron_decoration_slab.json (77%) rename src/main/generated/data/galacticraft/{recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json => recipe/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json} (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_meteoric_iron_decoration_stairs.json (78%) rename src/main/generated/data/galacticraft/{recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json => recipe/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json} (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_meteoric_iron_decoration_wall.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_wall.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_slab.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_stairs.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_wall.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/diagonal_light_panel.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/diagonal_light_panel_flipped.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/electric_arc_furnace.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/electric_compressor.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/electric_compressor_upgrade.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/electric_furnace.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/energy_storage_module.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fabrication/advanced_wafer.json (90%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fabrication/basic_wafer.json (90%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fabrication/blue_solar_wafer.json (90%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fabrication/solar_array_wafer.json (91%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fluid_manipulator.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fluid_pipe_walkway.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fluid_pipe_walkway_shapeless.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/frequency_module.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fuel_loader.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/fueling_pad.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/full_solar_panel.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/glass_fluid_pipe.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/glowstone_lantern.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/glowstone_torch.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/grating.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/gray_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/green_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/ground_beef.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_axe.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_axe_flipped.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_boots.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_chestplate.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_helmet.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_hoe.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_hoe_flipped.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_leggings.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_pickaxe.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_shovel.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/heavy_duty_sword.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/hot_throwable_meteor_chunk_from_blasting.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/hot_throwable_meteor_chunk_from_smelting.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_slab_from_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_stairs_from_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_wall.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_decoration_wall_from_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_ingot_from_blasting_iron_shard.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/iron_ingot_from_smelting_iron_shard.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/isothermal_fabric.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/large_oxygen_tank.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_block.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_blasting_galena_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_blasting_raw_lead.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_block.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_nuggets.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_smelting_galena_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_ingot_from_smelting_raw_lead.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lead_nugget.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/light_blue_parachute.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/light_gray_parachute.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lime_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/linear_light_panel.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunar_sapphire_block.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunar_sapphire_from_block.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_slab.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_slab_from_lunaslate_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_stairs.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_stairs_from_lunaslate_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_wall.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/lunaslate_wall_from_lunaslate_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/magenta_parachute.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_slab.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_slab_from_mars_stone_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_stairs.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_stairs_from_mars_stone_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_wall.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/mars_stone_wall_from_mars_stone_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/medium_oxygen_tank.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_block.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_slab.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_stairs.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_wall.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_ingot_from_block.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_ingot_from_nuggets.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/meteoric_iron_nugget.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_slab.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_slab_from_moon_basalt_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_stairs.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_stairs_from_moon_basalt_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_wall.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_basalt_wall_from_moon_basalt_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_cheese_block.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_from_moon_rock_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_wall.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_pillar.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_slab.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_slab_from_moon_rock_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_stairs.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_stairs_from_moon_rock_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_wall.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/moon_rock_wall_from_moon_rock_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/nose_cone.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/olivine_block_from_shards.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/orange_parachute.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/orion_drive.json (92%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_bubble_distributor.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_collector.json (90%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_compressor.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_concentrator.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_decompressor.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_fan.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_gear.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_mask.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_sealer.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_storage_module.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/oxygen_vent.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/pink_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_from_moon_rock_brick_stonecutting.json (57%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/purple_parachute.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/red_parachute.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/refinery.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/rocket_engine.json (89%) rename src/main/generated/data/galacticraft/{recipes => recipe}/rocket_fin.json (73%) rename src/main/generated/data/galacticraft/{recipes => recipe}/rocket_launch_pad.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/rocket_workbench.json (88%) rename src/main/generated/data/galacticraft/{recipes => recipe}/sealable_aluminum_wire.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/sensor_glasses.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/sensor_lens.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/single_solar_module.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/small_oxygen_tank.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/spotlight_light_panel.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/square_light_panel.json (84%) rename src/main/generated/data/galacticraft/{recipes => recipe}/standard_wrench.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_slab_from_steel_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_stairs_from_steel_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_decoration_wall_from_steel_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/steel_pole.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/thermal_cloth.json (71%) rename src/main/generated/data/galacticraft/{recipes => recipe}/thermal_padding_boots.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/thermal_padding_chestpiece.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/thermal_padding_helmet.json (75%) rename src/main/generated/data/galacticraft/{recipes => recipe}/thermal_padding_leggings.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/throwable_meteor_chunk.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_canister.json (72%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_slab.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_slab_from_tin_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_stairs.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_stairs_from_tin_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_wall.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_decoration_wall_from_tin_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_blasting_deepslate_tin_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_blasting_moon_tin_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_blasting_raw_tin.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_blasting_tin_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_nuggets.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_smelting_deepslate_tin_ore.json (78%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_smelting_moon_tin_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_smelting_raw_tin.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ingot_from_smelting_tin_ore.json (77%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_ladder.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/tin_nugget.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_axe_smithing.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_block.json (79%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_boots_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_chestplate_smithing.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration.json (85%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_slab.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_slab_from_titanium_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_stairs.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json (55%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_wall.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_decoration_wall_from_titanium_decoration_stonecutting.json (56%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_helmet_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_hoe_smithing.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_blasting_ilmenite_ore.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_blasting_raw_titanium.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_block.json (83%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_nuggets.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_smelting_ilmenite_ore.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_ingot_from_smelting_raw_titanium.json (76%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_leggings_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_nugget.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_pickaxe_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_shovel_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/titanium_sword_smithing.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/vacuum_glass.json (82%) rename src/main/generated/data/galacticraft/{recipes => recipe}/vacuum_glass_clear.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/vacuum_glass_strong.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/walkway.json (86%) rename src/main/generated/data/galacticraft/{recipes => recipe}/white_parachute.json (81%) rename src/main/generated/data/galacticraft/{recipes => recipe}/wire_walkway.json (87%) rename src/main/generated/data/galacticraft/{recipes => recipe}/wire_walkway_shapeless.json (80%) rename src/main/generated/data/galacticraft/{recipes => recipe}/yellow_parachute.json (78%) delete mode 100644 src/main/generated/data/galacticraft/recipes/compressing/compressed_aluminum.json delete mode 100644 src/main/generated/data/galacticraft/recipes/compressing/compressed_copper.json rename src/main/generated/data/galacticraft/tags/{blocks => block}/base_stone_moon.json (71%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/footprints.json (71%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/infiniburn_moon.json (74%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/lunaslate_ore_replaceables.json (71%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/machines.json (97%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/moon_carver_replaceables.json (90%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/moon_crater_carver_replaceables.json (90%) rename src/main/generated/data/galacticraft/tags/{blocks => block}/moon_stone_ore_replaceables.json (71%) rename src/main/generated/data/galacticraft/tags/{entity_types => entity_type}/has_footprints.json (68%) rename src/main/generated/data/galacticraft/tags/{fluids => fluid}/oxygen.json (70%) rename src/main/generated/data/minecraft/tags/{blocks => block}/candle_cakes.json (97%) rename src/main/generated/data/minecraft/tags/{blocks => block}/climbable.json (86%) rename src/main/generated/data/minecraft/tags/{blocks => block}/dragon_immune.json (72%) rename src/main/generated/data/minecraft/tags/{blocks => block}/mineable/pickaxe.json (99%) rename src/main/generated/data/minecraft/tags/{blocks => block}/mineable/shovel.json (85%) rename src/main/generated/data/minecraft/tags/{blocks => block}/needs_diamond_tool.json (80%) rename src/main/generated/data/minecraft/tags/{blocks => block}/needs_iron_tool.json (86%) rename src/main/generated/data/minecraft/tags/{blocks => block}/needs_stone_tool.json (95%) rename src/main/generated/data/minecraft/tags/{blocks => block}/replaceable.json (84%) rename src/main/generated/data/minecraft/tags/{blocks => block}/slabs.json (98%) rename src/main/generated/data/minecraft/tags/{blocks => block}/stairs.json (98%) rename src/main/generated/data/minecraft/tags/{blocks => block}/wall_post_override.json (81%) rename src/main/generated/data/minecraft/tags/{blocks => block}/walls.json (98%) rename src/main/generated/data/minecraft/tags/{blocks => block}/wither_immune.json (72%) rename src/main/generated/data/minecraft/tags/{items => item}/axes.json (85%) rename src/main/generated/data/minecraft/tags/{items => item}/cluster_max_harvestables.json (86%) create mode 100644 src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json rename src/main/generated/data/minecraft/tags/{items => item}/hoes.json (85%) create mode 100644 src/main/generated/data/minecraft/tags/item/meat.json rename src/main/generated/data/minecraft/tags/{items => item}/pickaxes.json (86%) rename src/main/generated/data/minecraft/tags/{items => item}/shovels.json (86%) rename src/main/generated/data/minecraft/tags/{items => item}/swords.json (86%) rename src/main/generated/data/minecraft/tags/{items => item}/trimmable_armor.json (95%) delete mode 100644 src/main/generated/data/minecraft/tags/items/creeper_drop_music_discs.json rename src/main/java/dev/galacticraft/{mod/network/packets/OpenScreenPacket.java => api/accessor/LevelBodyAccessor.java} (74%) create mode 100644 src/main/java/dev/galacticraft/api/component/GCDataComponents.java rename src/main/java/dev/galacticraft/impl/codec/{MapCodec.java => MapKvCodec.java} (62%) create mode 100644 src/main/java/dev/galacticraft/impl/internal/mixin/LevelCelestialBodyMixin.java delete mode 100644 src/main/java/dev/galacticraft/impl/internal/mixin/gravity/LivingEntityMixin.java delete mode 100644 src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistryDataLoaderMixin.java delete mode 100644 src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistrySynchronizationMixin.java rename src/main/java/dev/galacticraft/{mod/particle/ComplexParticleType.java => impl/network/GCApiClientPacketReceivers.java} (57%) rename src/main/java/dev/galacticraft/impl/{internal/mixin/gravity/ArrowGravityMixin.java => network/GCApiPackets.java} (52%) rename src/main/java/dev/galacticraft/{mod/client/gl/GlVertexArray.java => impl/network/GCApiServerPacketReceivers.java} (60%) rename src/main/java/dev/galacticraft/{mod/network/packets/GCPacket.java => impl/network/c2s/C2SPayload.java} (76%) rename src/main/java/dev/galacticraft/{mod/network/packets/PlanetTpPacket.java => impl/network/c2s/FlagDataPayload.java} (57%) rename src/main/java/dev/galacticraft/{mod/screen/sync/BooleanMenuSyncHandler.java => impl/network/c2s/TeamNamePayload.java} (53%) create mode 100644 src/main/java/dev/galacticraft/impl/network/s2c/AddSatellitePayload.java create mode 100644 src/main/java/dev/galacticraft/impl/network/s2c/GearInvPayload.java create mode 100644 src/main/java/dev/galacticraft/impl/network/s2c/OxygenUpdatePayload.java rename src/main/java/dev/galacticraft/{mod/screen/sync/DoubleMenuSyncHandler.java => impl/network/s2c/RemoveSatellitePayload.java} (52%) create mode 100644 src/main/java/dev/galacticraft/impl/network/s2c/ResearchUpdatePayload.java rename src/main/java/dev/galacticraft/{mod/client/gl/GlObject.java => impl/network/s2c/S2CPayload.java} (75%) delete mode 100644 src/main/java/dev/galacticraft/impl/rocket/RocketDataImpl.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/gl/BufferWriter.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/gl/GlElementArrayBuffer.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/gl/GlVertexBuffer.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/gl/MeshBuffer.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/util/BatchedColorRenderer.java delete mode 100644 src/main/java/dev/galacticraft/mod/client/util/BatchedRenderer.java delete mode 100644 src/main/java/dev/galacticraft/mod/content/GCMachineTypes.java delete mode 100644 src/main/java/dev/galacticraft/mod/content/block/environment/MoonBerryBushBlock.java delete mode 100644 src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterial.java create mode 100644 src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterials.java rename src/main/java/dev/galacticraft/mod/content/item/{GCToolMaterial.java => GCTiers.java} (67%) delete mode 100644 src/main/java/dev/galacticraft/mod/content/item/GenericLiquidCanister.java delete mode 100644 src/main/java/dev/galacticraft/mod/mixin/BuiltInLootTablesAccessor.java create mode 100644 src/main/java/dev/galacticraft/mod/network/GCPackets.java rename src/main/java/dev/galacticraft/mod/network/{packets/BubbleMaxPacket.java => c2s/BubbleMaxPayload.java} (54%) rename src/main/java/dev/galacticraft/mod/network/{packets/ToggleBubbleVisibilityPacket.java => c2s/BubbleVisibilityPayload.java} (55%) create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/ControlEntityPayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/OpenGcInventoryPayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/OpenRocketPayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/PlanetTeleportPayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/SatelliteCreationPayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/c2s/SelectPartPayload.java delete mode 100644 src/main/java/dev/galacticraft/mod/network/packets/ControlEntityPacket.java delete mode 100644 src/main/java/dev/galacticraft/mod/network/packets/FootprintRemovedPacket.java delete mode 100644 src/main/java/dev/galacticraft/mod/network/packets/RocketSpawnPacket.java delete mode 100644 src/main/java/dev/galacticraft/mod/network/packets/SelectPartPacket.java create mode 100644 src/main/java/dev/galacticraft/mod/network/s2c/BubbleSizePayload.java create mode 100644 src/main/java/dev/galacticraft/mod/network/s2c/BubbleUpdatePayload.java rename src/main/java/dev/galacticraft/mod/network/{packets => s2c}/FootprintPacket.java (50%) create mode 100644 src/main/java/dev/galacticraft/mod/network/s2c/FootprintRemovedPacket.java create mode 100644 src/main/java/dev/galacticraft/mod/network/s2c/OpenCelestialScreenPayload.java rename src/main/java/dev/galacticraft/mod/network/{packets/ResetThirdPersonPacket.java => s2c/ResetPerspectivePacket.java} (53%) create mode 100644 src/main/java/dev/galacticraft/mod/network/s2c/RocketSpawnPacket.java delete mode 100644 src/main/java/dev/galacticraft/mod/storage/SingleTypeStorage.java create mode 100644 src/main/java/dev/galacticraft/mod/util/StreamCodecs.java delete mode 100644 src/main/java/dev/galacticraft/mod/village/GCVillagerTrades.java rename src/main/java/dev/galacticraft/mod/world/gen/{surfacebuilder => surfacerule}/BiomeTagRule.java (82%) rename src/main/java/dev/galacticraft/mod/world/gen/{surfacebuilder => surfacerule}/MoonSurfaceRules.java (97%) rename src/main/java/dev/galacticraft/mod/world/gen/{surfacebuilder => surfacerule}/VenusSurfaceRules.java (97%) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4c095c193..7427028ad 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,12 +12,12 @@ jobs: uses: actions/checkout@v4 - name: Validate Gradle wrapper - uses: gradle/actions/wrapper-validation@v3 + uses: gradle/actions/wrapper-validation@v4 - - name: Setup JDK 17 + - name: Setup JDK 21 uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin - name: Cache Gradle diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 34dab9506..8015f18ef 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -15,12 +15,12 @@ jobs: uses: actions/checkout@v4 - name: Validate Gradle wrapper - uses: gradle/actions/wrapper-validation@v3 + uses: gradle/actions/wrapper-validation@v4 - - name: Setup JDK 17 + - name: Setup JDK 21 uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin - name: Restore Gradle cache diff --git a/.github/workflows/crowdin_push.yml b/.github/workflows/crowdin_push.yml index f0ed1bc0f..c9f36a5d5 100644 --- a/.github/workflows/crowdin_push.yml +++ b/.github/workflows/crowdin_push.yml @@ -15,7 +15,7 @@ jobs: uses: actions/checkout@v4 - name: Crowdin Push - uses: crowdin/github-action@v1 + uses: crowdin/github-action@v2 with: upload_sources: true upload_translations: false diff --git a/.github/workflows/crowdin_sync.yml b/.github/workflows/crowdin_sync.yml index 2b2720231..06ed782b4 100644 --- a/.github/workflows/crowdin_sync.yml +++ b/.github/workflows/crowdin_sync.yml @@ -10,7 +10,7 @@ jobs: uses: actions/checkout@v4 - name: Crowdin Sync - uses: crowdin/github-action@v1 + uses: crowdin/github-action@v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 22c196767..642960a1d 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -12,12 +12,12 @@ jobs: uses: actions/checkout@v4 - name: Validate Gradle wrapper - uses: gradle/actions/wrapper-validation@v3 + uses: gradle/actions/wrapper-validation@v4 - - name: Setup JDK 17 + - name: Setup JDK 21 uses: actions/setup-java@v4 with: - java-version: 17 + java-version: 21 distribution: temurin - name: Cache Gradle diff --git a/README.md b/README.md index c7b5bd7c8..3f664381c 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ The classic Minecraft space mod, rewritten from the ground up for modern version Here we answer a few common questions we get regarding the release of the mod.\ More information can be found in the `#faq` channel in [our Discord](https://discord.gg/n3QqhMYyFK). -**When will Galacticraft 5 for 1.20+ be released?**\ +**When will Galacticraft 5 for 1.21+ be released?**\ There is currently no ETA for a release. Keep an eye out on [our Discord server](https://discord.gg/n3QqhMYyFK) for an alpha release announcement. diff --git a/build.gradle.kts b/build.gradle.kts index 74c43863e..87acb73bc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -52,15 +52,15 @@ val objVersion = project.property("obj.version").toString() plugins { java `maven-publish` - id("fabric-loom") version("1.6-SNAPSHOT") + id("fabric-loom") version("1.7-SNAPSHOT") id("org.cadixdev.licenser") version("0.6.1") id("org.ajoberstar.grgit") version("5.2.2") - id("dev.galacticraft.mojarn") version("0.1.2") + id("dev.galacticraft.mojarn") version("0.4.0+10") } java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 withSourcesJar() withJavadocJar() @@ -134,7 +134,14 @@ loom { } afterEvaluate { - val mixinJarFile = configurations.compileClasspath.get().files { it.group == "net.fabricmc" && it.name == "sponge-mixin" }.first() + val mixinJarFile = configurations.runtimeClasspath.get().incoming.artifactView { + componentFilter { + it is ModuleComponentIdentifier + && it.group == "net.fabricmc" + && it.module == "sponge-mixin" + } + }.files.first() + configureEach { vmArg("-javaagent:$mixinJarFile") @@ -147,12 +154,8 @@ loom { repositories { mavenLocal() - maven("https://maven.galacticraft.net/repository/maven-releases/") { - content { - includeGroup("dev.galacticraft") - } - } - maven("https://maven.galacticraft.net/repository/maven-snapshots/") { + maven("https://repo.terradevelopment.net/repository/maven-releases/") { + // https://maven.galacticraft.net/repository/maven-releases content { includeGroup("dev.galacticraft") } @@ -240,8 +243,8 @@ dependencies { } multicompat(group = "mezz.jei", - api = "jei-$minecraftVersion-common-api", - extra = "jei-$minecraftVersion-fabric-api", + api = "jei-1.21-common-api", + extra = "jei-1.21-fabric-api", // runtime = "jei-$minecraftVersion-fabric", // we already have REI at runtime version = jeiVersion) { exclude(group = "net.fabricmc.fabric-api") @@ -266,21 +269,13 @@ tasks.processResources { } } -tasks.processTestResources { - inputs.property("version", project.version) - - filesMatching("fabric.mod.json") { - expand("version" to project.version) - } -} - tasks.javadoc { options.encoding = "UTF-8" } tasks.withType(JavaCompile::class) { options.encoding = "UTF-8" - options.release.set(17) + options.release.set(21) } tasks.jar { diff --git a/gradle.properties b/gradle.properties index 2a5087fe4..e0223a8d4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,8 +2,8 @@ org.gradle.jvmargs=-Xmx2G # Fabric Info -minecraft.version=1.20.4 -loader.version=0.15.7 +minecraft.version=1.21.1 +loader.version=0.15.11 yarn.build=3 # Mod Info @@ -12,14 +12,14 @@ mod.group=dev.galacticraft mod.name=Galacticraft # Dependencies -fabric.version=0.97.1+1.20.4 -cloth.config.version=13.0.121 -modmenu.version=9.0.0 -rei.version=14.0.688 -jei.version=17.3.0.49 -dynamicdimensions.version=0.6.0+8 -machinelib.version=0.4.2+48 -badpackets.version=0.6.1 -wthit.version=10.4.0 +fabric.version=0.102.1+1.21.1 +cloth.config.version=15.0.130 +modmenu.version=11.0.1 +rei.version=16.0.754 +jei.version=19.8.2.99 +dynamicdimensions.version=0.8.0+24 +machinelib.version=0.7.0+74 +badpackets.version=0.8.1 +wthit.version=12.3.0 obj.version=0.4.0 -architectury.version=11.1.17 +architectury.version=13.0.6 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e6441136f3d4ba8a0da8d277868979cfbc8ad796..a4b76b9530d66f5e68d973ea569d8e19de379189 100644 GIT binary patch delta 12612 zcmY+pRa6|n(lttO3GVLh?(Xh3xVuAe26uONcL=V5;I6?T_zdn2`Oi5I_gl9gx~lft zRjVKRp?B~8Wyrx5$mS3|py!Njy{0Wt4i%@s8v88pK z6fPNA45)|*9+*w5kcg$o)}2g}%JfXe6l9ig4T8ia3Hlw#3f^fAKW63%<~GZJd-0YA z9YjleCs~#Y?V+`#nr+49hhsr$K$k!lg}AZDw@>2j=f7t~5IW6#K|lAX7|^N}lJ)I!km`nrwx> z))1Es16__aXGVzQM0EC8xH+O!nqTFBg9Ci{NwRK*CP<6s`Gq(~#lqb(zOlh6ZDBK* zr$|NDj^s6VanrKa+QC;5>twePaexqRI%RO~OY075y?NN90I|f^(P# zF=b>fZ73b5JzD`#GC3lTQ_B3lMeBWgQUGYnFw*HQC}^z{$6G4j(n4y-pRxPT(d2Wgb%vCH(?+t&Pj z)QM`zc`U`+<~D+9E{4Uj2kc#*6eZMU$4Oj6QMfA^K!rbl`iBix=2sPrs7j@aqIrE zTaZJ2M09>rp$mgyUZ!r2$UK{+DGqgl`n;*qFF~M(r#eh`T{MO?2&j?xgr8FU$u3-` zhRDc_I23LL4)K&xg$^&l-W=!Jp-P(_Ie07q>Je;QLxi8LaEc%;WIacJD_T69egF?7 z;I_Sg_!+qrur8$Hq4grigaiVF>U7uWJ@Hkd&%kmFnQN-P^fq0gB1|uRt!U#X;DnlV zo?yHWTw7g5B;#xxY`adhi4yZn@f(7-Xa(J6S=#d@&rlFw!qfvholE>MEb|VWn^g}G zMSrK&zQ^vDId&ojL!{%{o7?s{7;{+u%L{|tar(gp?Uxq3p?xAysB>0E$eG#$tvkk9 z2Q2gEP17{U6@UD*v({5MP-CTZfvWMItVjb4c;i~WLq&{?Q1(koX&vt7+$z}10{^Id z{KDjGi0JpD7@;~odF__0m|p;5rIrHidOP9^mwKe#-&JX-X@acc)06G{LO1Wu)#gvZ za~y9(fhA%UwkDOVU1LBJ`0ROE z4&)dJKK%mG@+CIm?+wt9f~@xIMr8}UH*K1j| z0pppo{7gv3v{URwxVMeg>Ps!L5IKxm zjac2egjgb0vH5i75$s|sY_RYec#>faqJk|AGgV;v=^%BM(^p{p;(^SVt-88G9f!q; z>p}9E4^f0=01S2pQBE4}9YqE%TV)*hlU^8k9{&=K76+*Ax^r=AkBb%OCP^P2nm0Ri z;D-|Zk?gGeU<12ti2CnPVNA(Pb)02+r|&yTWW-OJO7 zNLb0pps6aN?A~NJp5kj{{IOlf!5KWMleV@-hYLift)D>-7K+tgs=7Ake}oBnIy-y1 z(Hn@Hjw=_(x>dO5ysQsrnE%A*bk0K<-j{1Yqz@#n#jOL^AzCr#wR|WYzqk6i7v)Lf zkXdKxzuu20aP{Tbg$(+9&oh7cd(Uoqqf<#ujb$q4sZ~gxFbQfS zS)kNklyL*{2AELgjZ(LBu*>S(oH5AaJ;YiB@;l@=O%F6B?oanzoYRM^fQ9-<~^=3$H0g^JPMLQo@SZ@QuNvy)tyJ)LSj`+()#fy?{aV4Yg^7dlQ7AQM^3GLCR2dAFR zJjtfKiVqF`l-H_fz0HD|9g>)pOxn}k!vdZ=DO!7Sikm{Z%P6BrRkBS6W?ZB5W&7rT z@uYpf@M@a!z7H&o@-yrcCL^Ff3e7p3T`R9p?@o-acXmbTSa0>ZANzCSgovsd%;i$| zVus`not!oL#(W`L-!9w0jdaECaG4hk{V7IOs676ZquZH~0TX5hDq|)x z6T497l|E?f4)LA>j=S8}b$0LS=I4h|hUFJYJODT8Li@#6kF$k0)@*l{RnM1HQ%?VT ze-Pqlc!~t(oumVC*?5fwR;P6u{tHaZ~*LlD;B)4f? z?lpWfa2P@)g57flVl83Ej%P`2)gGyaPjhvD(%i~{`2b>#3!+y&` z!2nuwHMFA-zUY}f1^0B8<`N)Gr=A4TS@b1qykmd0Pq{?r)+1^^+D(=xasb^Tf!oK9 zBLL+*p6M_#ufgLzgq1zcSwZsZnQWFLC3`Yxdg-2=*tT`J9nrfYt)RF)YryBf8_gW{ zvKbB+oZLehfT)S#<|y1)E0hW^?+AnqPXq9Hu;v3dsMGdr{SVyF63;K<8VcgI#~}1i zLYSBL0K;RTT(;>2x=*!1Di9w0mwr;`CN}kM65|Ay{~z}_^JKOsRaN<~#9O^iiW<5P zYN7r~HV!#Nz~IZU`P>1Xe%4f~K}KcF#X&5kO*G}-)74S*tQ8CietdPcA1Yl;S=Mr# z`#MYY!{s^uo=jn7;k6O%(}fN+*0cWMpt~#n9DR<3NyU?+3D^AgI}S)Cu-Tljg`VY} zX1=fq$?8$DtOeGxE6f8lbS_6Q3C4+LDTO$}_IpM$Xv<|QSC%+Oll^q$y`7o@jD{dp zNDl|&X)r7wETa-#h*d`KXntxI(Y{vLha{$0i7@G8xx^m=c<{lJ9?p-i!^W{%j7-oo z0W^SzZ^(Wkyz*We{lEn%Yhu-ycUOHtrRiVJL4~&S91*D0MrLu}Q>v-Mc?GcWfpyz% zX|UvcN@krFO#@v|CtYM}g|=L3%aMo$E5<@CM%c*;?u>LOTz00@+dt1{yg1y=$h+{|D17U}$*^fE^H&8b431EUE z<9tv0V_#%#&1N#j7AKCj!tTK@J%oFW*ESW<(#Gl#Xs%v<@AitI?s92nLzm<)w3Wkkom1f$gcdUi%g_*jofy&}N#luL<$GVIe{iQkQ)sIHVy zBgItnPBFamrv6Kb{eE($Q(f`ZPeW!Hm%Y@F*OF1sKB{Yy|C>WEv_mfvv-N-jh)B-5 z4a!1WcT@9a+hGaBrc~sz=>G?Q!*Zp^JFRUvBMyNR1;`)j$RhH$6gEyVKhd$&K-CFT zXaWC-Y=fyOnqT84iMn9o5oLEOI(_3fk!W^8-74|q1QhQ|CmT0i=b;6Z3u?E{p7V{? z;f#Q-33!L+4&QQcZ~GAqu$NS{M;u%`+#9=7^Oa5PKvCCCWNG_~l(CidS!+xr-*gg{ z$UQ`_1tLT_9jB=Hckkwu>G{s0b0F4bnR7GibmHo?>TR&<3?D;5Fb#gd8*wYa$$~ar z7epl1qM)L{kwiNjQk}?)CFpNTd?0wAOUZ|gC{Ub|c-7h~+Rm(JbdoRe!RNVBQi!M8 z+~U6E2X&KSA*T6KJvsqwqZl#1&==Dm(#b^&VAKQ>7ygv*Fyr;)q9*^F@dCTg2g!w~ z%hg)UXAUyIpIbLXJv1nZX+a_C)BOH2hUim|>=JHCRf(!dtTidb&*~I!JrfRe+PO>w z@ox$G2a3i9d_N9J=|2$y2m-P&#PTNwe!oLBZFs;z|F5kXvBDn<)WwE0E3$ow=zg3R zK(9;sf0t;VEV3@gAg7jRtnj%-6O@!Hvg*;XcUAw}!=2*aErvB(eQIm(-UGmq^J=XN zTqJo$Y|WKo^HlBF3BXJrA#}7ZLg=r*w`I*~Ix`o&2k8^(0mt8Rp=A>F`&gehhp@Jy z^e^#B2!~$LvNCKugg)8)-G%&THdk~kfextilegP9?#C#()F59U$&eo(h|5>ceo*Em z{PEE79T$YP|Kr7K`WBHbtQwyxFkCl6xX&+oUf90B5xoi3_5KHHCyEE*oPbOQkfMz& z6^hT8_NXd2iWk{q9IKae1{_7hMPH8I7_BMtVOM4 z6jm?E0QJOn$qrgsJ`9w##GB9?G})-GXSQo6(tYS(Q0-Ct$co?Zzl0?NHsDRron?;_ zZZgQg)%XW>P?8_&zoGuF(>Och2kEJXsu1_X&~w87x!b z>~h!a>e7{`p@+#hXF88wI*JeWRZ;J4ev4<}HWf|Z;(7$E!S5l9wzBHFe>^I{2`a;a)QnAwa2xv1e(bq$<}!8o^ofGvYpk7dBR+`*%iE;hUY5 zaHF}OjGO9r*{%lmcK^uFiTHgoUD`^9Nx@~;Bg!V* zuuJ&ti{DQiq7RyJAR94wem{}cPK1J(Yxnn_{=>?USqz-~&QXRStS^s-7TksZ$AEI! z#og36s3JGtGU{CnDHRFtipFqvrE*gw7_K@NN0h+ItTq@4fqN!HeQU1y7*X?9+IfZT4Vxebpt z%#VzgdDK~-&+=Z*#>=n#XUhNvBZp3=Cr41jMqwJkHLf3L7Vm~V#GgJ(Jpii~PmJ#s zA7Ft!{xD@z>9DUb4JbiUBdNEcU4BO$651iN*mp*f)HbRRM`Cx5cR?5IfEcU{IZWwf zz(M6CDv)>xa3x}K6%tP^i15P1&&DOLK=k~+jNR$UK3frSl+|PjSC-dBItvD~LL! z>_g(YYdO4k(5EbPOw+v+;G7~jYm>F@Ai|o`gs%F)F8tDz$dl7Q%aCe|v|$UkAul_R zNlA-beBX^IJU?kgS`E$it7nF4DaI!SJAGq)2P&Few(-|tp z?K+%D3e4{pfkayrcbm0ftu6Ol2ZzdKM+4i!hNP3NRL`EvvZJ3yvNr2MV%igZ4kj``Qrdb_OI$7jWP z;l0DYf&0(-*QcP5zrP`HVznW+SbH63Qx$7_9~NjRNg7eKqI!UJ=XH`g^=t8GiFTu( z?2L{JKEu%jJx&XjNzU(*!ZNmL1@RlJA0G$2_LrAb_7lmjil(GSlSM zwTes`m+3R;3#N~Xg#9owh3ycXV8@ZlaY_16kpPFA={721b~URO4HD3sp%fmkZM}k) zZB0#)kP=RkNB~R-MCk8aljG_bagt4vIb~8)BV%(b8_;)&Kf9GX+%O_cNG|(D$!3&D zL(I8}*LqN5NntipFlN13=`D>6!{D@CFMBH0kW3=HccJV+xW~|$qeFR5i-2{X+iWMu zI2$gepQ)H_B%ip_BlWOQ*|pErXs|4ir{IHccgaIJ84irE{?+$KDABXr&f`jB^V-c% z$$u`uU1YB^{<+UN2cNg#7&0bz@yF?5>j|;)5&IV3wIQp58X#OE-M^$HdyvL|Um5t? zhZlAG!Mz%XkUe3t471JM*Yur}o30vzu6RN7gJyNcf!IItsDO730mcJ*O!~V``y5=3 zNJGp34DZ}wd1H6V`Uuy%es>BiO_aE-S8jzir#$& zyk)@2a5tP$@g%jW^b^JGdo)X@Q%sE`^lDQmY9m%uDFpPX`w9%=yQ+nneMm#OaXcD` z9}{tn5A2b2z9783vL2_jSao?uxJhWJoq%47*RafM4o0@gY(p)F>qT4^XM5GLzV#6j zC+HoGhAne7o_w{WUo(B++z7lU3Y0k1rYv9|TSv0vR-Du(5=VakbbelgZTeDn+a_Wv zq_j-^+Qz1WAl;Zg>ahX|CERbX1V%B!hTKN?M}fGoA07M(WU&NfT&TmN`P@56U2 z^)vLDs|Ln~0iTtn-?KTeQl@T&bskJFuTUS!m+$CS9vnd}8(UMO|Kv6TCfGN9NUu&4 zL{)GTxPq>fwsJ~aU=4Qhuq8*RzDsP(LZh$BHezq&9gK$IS<|DYbm})$QTGCS6T;Dr zEkLct!b+#<1r9OKG@P!f1wm8>=Nz!7OzJm!g<+`?N3;YaA3(P@EL=(sTaRMDD!c8=-XN^4BXp(eVkj$NmEMYPP>YJ4bJ3yUud z<3BeJAJ$6z^TuywnfH5lv#$lgwraNw{IV=tIznPH1DT`v-5yS=!)J<}xxl}uZf9azA2A97Haf!;<3y01hlw?dWNEv@TLi1s-mO4vmIT%O_42nS z$VRWrs9NngqRRkWAnWkn%`Rw@?wH|)7XL`EL5EZu$qyJW31&CB^T_)qwIv!{;E_6 zo-9XAryQRlk-O0>o#-SZO>|6OYq;}<*>Wu1AsVRiXY4f8qb;+sItv3AyS!4Ry+q}) zA!pAB|BmC;=RIOk^^vlsEH(!Q!7_1FK~ZB2err*o!+b(r=m1b?$6d!%zmN+69LXnT z&gRmM+n_R-F@sT*IYv0_mGPvur!u`iWbQO7SqiGFLeY&yga zf`lM&B74FA2C?N@8_z652fjhBEoDUKbP8hL{0{HAF%qDo7)o3=3rg#6)T7%%5^wl% z9R0*S*<~>nzYOdQk2l`9h#t+gJy_xujw6xjV(8S<_DbVg61&pT%Hi42l%D73G?adn znB%UdNM0p}lEF-P2%TAMam2zpQev71e>a$$%i+r~b+D9G9pF|oY_*(-u*89oKsXLY+UIbqq)MQ%(GYS{(*n_S_*RN$*~`zUtab%0aKwhx znc)Yo?{xq1sJCgQD)TeTci1ucvbez9q=A72H(-SB18Kl&6^vHV8^i!p@>iF!DIw17 z+8Q)TNisB7>pwyww4y)yJx*wX6SJO78eLBC-ar1+k$Z9fy;wBD|3kzI{<+l*>PSY^ z_?nLOZaeWbU@C3hfK?X;Di*8CHCPkx2qco6(ZyJdqSzp^TJ_5Lpa0UP{Gy+!b0Lr% z@xYxSjUKoY6L#>$qx~KD$-0=|OF7zhVP~ntMgEALYPIfhj@+ z!;JJ7te>CcovruwHsJH6Lta$nm|%^C@=V-rmhU{+I~0(|XHQ9jt@L7pb{gx#{4r!) zg($FyFTslcgu(~6lYr$nW?)%*l#VJ=R-jxK(x=t1bWlu(nL66T#qj%3aZ@uVhy}Co zDU_q61DD5FqqJ*#c|(M5tV)XBN?Ac^12*q)VN4yKPJ|#==S_`_QD9|0ls!`2)SwuHDRA_OfXQDq3%qW&MZB}Z!=k-9xqev8jHz(H z{^D@cIB~QiK>~wa)A&^Ll^Wi6QgCzU;iv-BHsLBs zH7=jN%|>0S`SjP%M&AF1PNVDp_FZ?2Bm@7`DC&v(pYrw!!yD#4 z6+<=HS0Ln6MhoKxF<%~H`y20{vf#pxh=;j{zY381gvAFekgG|>G1zo8$&az{V=;JR zy_puF4$L$?EMhT?;TpQoR*j16ll`#AS4e96C}yp_aGKkBe?1H|k_;gG-~Xorc<;lI zkB}fB{$c-D2mGA&{rm<*@F5)c3X+6??g~XoEwuzSuch0D@W~P5(2I8v8F$c2$Vw51 zP#YLSBDqtWW^EYBl^QYHF+MA7am6f4DOhwnJM=W9$uvMOsZ%_~?)2C#wb?CkI$7{K zEi)=#|5pFvg^){zK5kpBLjB2kZ+$ZB|L=W|aNwyyb(gC2l7bcpx{E-H@)q6@D6N^xh`{1E%ItF2$eeB_SjI@b2WgTpS1thwg&n`jiIzw^TtXUyB{00($GIq>vbj|}bav}}Q_~wp3>k8!E@hVC;OMUTu|= zAy#vXH*GrUHu7^cNZWe1>y;2(51js9wbu+R3Aa*(wzH9+X0dIsf&gc_x|_LP z>~CF^?(~U}+l~ehe|i>?4eo!xkq&Lk+RR-1duNP#o~>@1x)s&i&u zRaYL@+D&_M|JLI6fHbEr_`U;HgPTh#E3?sB)A$*gqyBgg*ql|a-m*TX5rACbWKCE6 zdeQ`v8m6>g^ugv`p|HY^#1QZrGGUj0^HVDc@{?Q0yhalbBEV{+|HzC^-{&e{5K%z9 z6Bxtnfu1!@Mp+Q&*&~;FOg&*Vm<@4b;{FG0-!UUXX!|)1w}op!B_|7_s~d(+=9Gba zKp8`LaB4D(H=cGcspJ_TjYaOwMb=sGn^gtUVhK!UI~2KKYEE-NC}F>+BEY7IVvy%KRvm00tg!Q`y=er}wpEetX}K@;}(}{s9AzV#q2@ zBy7}->|N?13POrs`;U?(qAG(I$~Gt+Rgw%aNZ_0fs_utVvRJT-7z4!@x36v@=NBX=IqkK{#Kg0w48de@?#Yb4M(Svj5=T+<ONr8-oh7l?Cji@+erqur zFhZ=9|Lk=$`c}v4u`)-!!UI=!9Jo@h&7p4RlS#u! zZ7-prn75JkV?VjptX;@$#`U`{vB!=Z?V`T*FBF>J?vsML7e6@2GbUteMFfX-TUu{2 zLNIG*;dV)8GV8gAgEf#)X3A>p3^CRka1v?~8x^anBhQ=L=LsOl=&pcOYHo98m##ye z34MtGCDK!`ptl?taGMr5q{!zVc? zG00e){TV?`YA9eB;(lA3lXI?RrB4BYQGk?vOmTIUJED=(`_*gtn2DB-t4WW54as*W zb2kD-lWX>lb$+W!VFakki>B^Vc+u$?NLF>)!U%b@Y}gYJ>m2H=^x0=nsE0TF^Yu0h ztgH8-o1%+jCk(+&`|)tTfEVHq0cMeFa{Uz)X$;fCq%Y=SOWML6bYfeP8j5hktL`KK z(18`XrUn&WN9PtFxh&dX`y~YBsmdhi7Kw%tKzM%^VEhdD<_XkulW-x=JN6OPbFI4@ zzDDRN+f=@{0h*MswwOqG6gJ?{NuHx(y-|FUGsxyZ*x0~$MW(eY>vqq4Fh#t7uzw=- zKB?|!0N~!h^AMdLa)oR!Ca#HZ9&Zf)ghuO<^RN)4twRlygHnQG(BE{cDc5E}OF4;xss6gYyV~EcJvJkX)xNWb=@yw!uq0v-sf^rvkp-;?DPWK@*SEw|V;IH=7 zfQqEV_>DjOPT~8X*J|H8=&RnzK4~S7ML~nLX^%s-Vqc^aWy7N$y57qciZGcqy#=zU zs8hcHiI=D$+RB{|62{ohCTiaML6FI4Uhzo5D{Jik@poCs0w7F)*w}F4r0sJ~#u-72 z5bK=ANt=M$Dh5NKnxGsg9NRR?WD-x|FhTwBjd zD<-K>44DB~i%frJOfnzh1R>PRY34kw!6~p3M$JLaD1r@`=h)~Ngks-(gdXh^Q?BTP zZ^Zj5w1AwtuR2$~E7s9iZdF}z%pv1em^V2rM{1tLUY@-+Sc0(9jA|iZWml1;v13=U zHf?y@#mb--7z6$ue>`qjhE~brk$AY-RG90~5wcBbDReXR2)pKg{L>;H(DI`U!MLNQ zY9rFJP@ZQ}jlcMh%WSCo%vf+nd0Gmd*F%KMIe>slCUh)8Ma|;M_I+v#;|ueg9oLg; zq2HtZX%&#F7vdpNlkX?}(C7dGC^y#NB#m4%69RzTNrk%4ol~hSI%>2r6B|*ZkW(*P z;u#s;+faHo{tfy+1L^RzWDi*^JR0iY(zJDB36y_QJ+|E-2x+cY z!V8uLNktH~q>WQZuY!Ap66WP|E!0PA1jK~)^8oJVGbspJs6QL!!-5Qm7 zHYI|_`Actg?vDzdg5{86w@GS$G6ANzff7->6i5pB$T4O}`fZ_;{217Om0gN5zTr12 z5mW{hCzCE-QubjxN$TAE-XgI-8dTY@OZmq`y+y_>dk*(qXF0{nam|q@~i}Utp*k{yurq(DW54hkDT4bbg z=_etM?Nf5W^o-HEu9_?&xEqPg^P^mTxLH8n%u$!mWvFG|{&)jtnU&6|5-`~eaNz0%D1BDo`{ zS1N5(KW5v^2eLdd_%`uaRndF@h0Uo6=M|8?b~KbOLZk{HXEnGmtgZXf2inI*1r%n! zQ3&%RI4r{f&dwW~HwH0Ked9b!k6{>_19H z_Ai>5IChDMY(FfMyG%;30?SQ{iV9KyGru62+Y)~qSQ91}b~}w<&*}R&1c#$O`H@~c z5)2S_eXx}M#N{MuGeQS9@#UJB@;W_j50b}jIhxMPloEFQZdvwxiU^RYycTzgK)-vl3LT&$L8~@68$C8~5_U{cR$E#w*x65(qw&eoL@>%ZHvj zWnEMlSh*(o&oy|J7eJ5OD`ssy%F?*Vp?`Cq;FShyl{ZoKCG5g{y}>usznni#8ki(i zO{w@n{iAj1_ooX@+s*!uW60WcH~*bNOT6z%0jVML5};wVrQp~`Uss_{cO2oud_nNA8^B$?07fJ6?iI)Q zuo9G)O-z)DqstrBqf>B%S05hf-wep0@$BFHKSrkZ{za3D)yVzRz)2{wf8(Wp+xyAM z$rtyx$gi3A=V~V!`Q3;BM0$>*VVtxEM|xDL^gew7ydy3Q6YzD&THRz*q33Ms_D;M- zbCx1Ft#UNB)V3bf`~{ImI72OTp^|bF8?G8#FRj+Biy8ET5#rA3sd|0FR@U(LAJ%w8 zS1%n8Z=Amhw)92rIsof=YVWF4jw&F*j1LG@-`+cR0-~2LqXRH8(Ccne{y#MCPncF64U`0uO zWmi$dlii~1D0rLR{qc|_2M!C$t8^=G7xQY)9!#Y331A|>N)EhmyVdLWL9I3YLJ`7? zZmpqUJB>Ni9oiL)^1IK1UoMyhWE{$9M2M6Xi zPKk7GpMsA6vjZbU7~i+u|J6Nk|Ci!Y3UMUT2|`M;JsNQACdJ%ooo9Yt{?A+0hMpxi znEa~~sxC>rKrU6bd=WRb;%wsH>A#j4{({&1GYSNR57Gama(3)2A;SM>qop}l>Jk2* zn1+C$fIxuwzg3mCU#SOqb-wOCb6mBcYlA5+mt<&_J~sBxc(GQtBFINUO~Mr7<-uu($>P HJ4oML2Lo<@i8BwbL^1~GkG`E7C$SEa_ zF^}Ea+#Je`Xy6;#D0FPnSrR%Y!QGA~NA^{oWmW8C<3dr{x6wWQ{4+bzemqV5W$i5~ z=J0jXZ>uZb>DT@0Ks?4QJ{`z?8JWl3$y;2pj#$XP*pv$>$g(z43{YH9KmmR6<#sIn zA`#=0#sgycaBQ^&}Xba!|KaZ8~b30v~nLt z9%#gz_*=~KD{3t^X~l>480*}PhKN=??g`RV|4Ud{Gyyl187MJ}r(#e+H$GEdI+p1s zq_25h;fV)$EPK%Dw-(G=f`yHB-_tttsC!?k7*#!|4a>`Ahj8nm?&n>NRs%jkZW^3-0P_yMP5&*6a26{MRj1&TPF zyE#|c)5uUHzMWx=rMKpuPih*V=S;W3MzIZTw2uTbr}8`p2bm+Z6Sa%vvWAWSf4H)p(+ zSQ8;EvUa#wqWV+9vmIio(%7wukK2SwjUS8Yl%Rq%=~PU)2$Tvm6`1!r3H@U#_|bB0 zmlT1PS3wPB(b&^+@YY7Y$n4l3mV3-X0$>z|gZp6O*Lhzn&?Gad2ZCF;+#95-Y?#y+ z?*l@Yf=a4w{Px=o!N|3~_XKfk&G;fN>Ps&dp2FpA~qD=0~=!NOS@B#XAKKkND>Y{4>rqxrViKD7;?>j8`R` z&G)3FN|dfsxnaI^!d1G%=>AbTTxZWo;n-DLrQ!sj=f~VAOe5zhGS(dgx|!ls62fbX zV@<7Ck^!}R=`Swr?(7w1rY6Nmq~sfXJ?TiKJLn=&SQdEt9$@0 zA+h1Wbwbri0s-stc8yVq;mRa6@kEf8^KXUz&jcic!+avDvvJFa>k0ioWug=T3oPw; zyj4it&0@>_*uI@2=^+T7sL1_!^aJW@Xfo8aC#3^WtQC7fET8b9C} z*u^ue6Ojn z7@(eskJ2+cNnH9~VyfIh<-|7!je~vGy*odz(sk-u$~SrYF3glruZ*W`{sqnS+9=;Z zh{D@MSG91%lr&ua8%$sJF%y1I<|e;EdfJykY8#D$Hc_81n5`$7;1N|b0tvvPLzSg& zn7!5x?T*@rQUKcUhTIjV(rw*5oQYlm5DbEO?60#mohHfbR$3_x#+PZoYi@Vd4`#YgKyTd^!4n{fN~WZDY61sAOm6 zl!d^i*a01QxpWM9Pcl?&{RgO}uq%ErOk5WpECvnfEh!*YP&1Sl)uTN4hg??Vqs~i5 zYsfufz3?{TtwuBN=`0~Qg1PlWH#OGG$ zLLWU17$v``)CE1cds_7kj8mJ{-+l8{DS|zAQ&3|qpOY=!J|kXUhXue9|H>4gqk|n) z-i34GmxLFj8asb3D#D&=ya*a5`C<=o?G;Ev^LV%;l#nH#O=7Nh@z1Do>j6Q;I5S2P zhg|AZbC&|c7}uSJt57s2IK#rSWuararn-02dkptTjo*R{c5o(bWV}_k3BBnKcE|6l zrHl&ezUyw^DmaMdDFVn<8ZY=7_{u{uW&*F<7Al6};lD(u;SB=RpIwI)PTyL=e25h* zGi{lRT}snjbMK~IUx|EGonH+w;iC2Ws)x>=5_{5$m?K z5(*1jMn%u0V1Y%m@`YS3kskt~`1p(rA4uk;Cs!w^KL$w>MH)+cP6|XKr4FfHIATJH z!EGAK4N>1yFR`-zW|w%ByRe#=&kA&#WyUldDGpt!wf-8SFWiSi!5QZL+l7*CE?u!NW1T$<1rdLJ9y3u{_zvHaM?#Rm4 zFk}^1!ffcrB|XK3gsO-s=wr*sUe&^$yN|KxrA)uW00Gu60%pw_+DcUjW`oW<35OC8 zq2{j8SgC}W$?10pvFU83(SL$%C?Kctu3*cs0aa%q!fjn1%xD*Jrm!F3HGR9-C{b?- zHp(cL;ezXMpL@0-1v0DMWddSDNZ5h?q50cOZyVi#bU3&PWE=(hpVn|M4_KYG5h9LffKNRsfhr^=SYiKg?#r&HNMi2@cd4aYL9lw(5_IvQJ zcB*DD()hUSAD^PdA0y|QrVnqwgI@pUXZXjHq3lG2OU&7sPOxxU$Y3&ytj6Qb=2#cC z;{d-{k|xI*bu+Vy&N+}{i(+1me!M;nshY_*&ZQLTGG*xNw#{RpI`3^eGfHck+*38NRgiGahkFethtVY=czJs#)VVc{T65rhU#3Vf?X)8f0)X{w!J3J{z|Sq|%?)nA+zo?$>L9@o`Kc|*7sJo4UjIqu0Ir~S5k^vEH};6K?-dZ0h*m%-1L zf!VC%YbM1~sZOG5zu&Sh>R;(md*_)kGHP)<;OA44W?y53PI%{&@MEN}9TOiqu+1a3AGetBr$c)Ao3OX>iGxmA;^^_alwS818r4Pn&uYe^;z6dh z)68T|AN=hjNdGpF7n>y+RTAZc9&opTXf zqWfK_dUv=mW{p_vN>|(cIkd(+Jy}qnK{IW%X*3!l`^H~FbAHwof+vLZ0C2ZXN1$v7 zgN&R9c8IO`fkR{6U%ERq8FN<1DQYbAN0-pH7EfcA{A&nhT!Be>jj>J!bNRw4NF|}! z1c70_#fkk!VQ!q1h2ff@`yDyrI1`np>*e#D4-Z~*!T^8#o*$V~!8bWQaie?P@KGBb z8rXc!YDL!$3ZgZZ%;-%~0Kn<+d+{xJ$stQbtN8GWV?MCJvzPU|(E(1z;rFw{&6vy) z3*@y%7Tx8rH-p$boS>bLyod?OKRE8v`QSBvGfY6f}_{Zo1q85xoyOF16n~yHx2W ziydUoYLkJmzq|n&2S(O!ZmLdP1(o1Jsq88cX)x3V-BK5eF&0e_0G!5?U7&3KN0`mc zH&Lt)q8!d_VgzxyL^(@xrbp2y)Hmr^V48));RSfE=*Ly0uh9!$3dv-vMZr2URf@l5zdwLjGZB zugY>7_fd_vbV*Qv1?H~>Z%RD%nEeFSI$n$$Lrpc6g>i4+XdBB!%zM$Bhrz5Swzyg? z$~I~n@~-wTBY3-T&pr+|gC+OHDoR?I(eLWa{Z#Rsh>lc~%u0!&R|s0pA*w<7QZ}{i z*AFr~0F3y~f$MGh_HDL7J_1?SxKL}fWIk!$G}`^{)xh*dZ5kK>xGL9>V`WZZg_ z)^Vm)EQK`yfh5KiR(vb&aHvhich z_5o+{d~0+4BEBqYJXyXBIEb1UgVDs;a!N2$9WA>CbfrWryqT25)S4E4)QXBd*3jN} z?phkAt`1rKW?xoLzEm!*IfkH|P>BtECVr0l8-IGk_`UjE#IWkUGqvyS+dMrCnFl<7RCgSMX^qn|Ld_4iYRldO zY&cHhv)GDo8nKvKwAbfyLR%t?9gG?R7~PSD#4D-;?F&!kV59O}neYut5AGbKwy-(U zqyBi=&Mgj|VIo>$u!DHM`R7O?W8-idbePuxiJMH``6c_5L-chKd}=rGC5Gfrc{f!* zWFEBm?l@_b7kzY7%1RQQbG5V<4=ZlkZ%sF74Q|mKOc7Ak7dP2#quiGcZ0_J%7Q?j{ zv9{WFw;n5G-Mn%r#0R;{jLt{yy}9J6rQ(>X9pJ`7Xy?Zv z=lNit#qXaq?CnElK^zF~sG}U5oCpR0T>FH=ZX}Prju$);?;VOhFH8L3I><9P_A|C+ z{;>~dk%9rrq(snjsEm}oUz2FQ21MCG*e?g)?{!&|eg7PX@I+Q0!hL6C7ZVY|g2E>i zr!Ri2@OfEu$)d52+>+cpgh6Z;cLYCZ&EMR0i<^~4&wEu_bdo;y^6}+U2GIQgW$|Od z_jg{O=pU>0-H$P-EOlWyQy#W0r@@_uT}Lg+!d5NxMii7aT1=|qm6BRaWOf{Pws54v zTu=}LR!V(JzI07>QR;;px0+zq=(s+XH-0~rVbmGp8<)7G+Jf)UYs<$Dd>-K+4}CsD zS}KYLmkbRvjwBO3PB%2@j(vOpm)!JABH_E7X^f#V-bzifSaKtE)|QrczC1$sC<<*Y z$hY*3E10fYk`2W09gM_U<2>+r^+ro$Bqh-O7uSa)cfPE_<#^O) zF+5V;-8LaCLKdIh3UB@idQZL`0Vx8`OE#6*1<;8(zi&E7MWB1S%~HAm%axyIHN2vd zA(pJGm_PraB0Aat3~?obWBs?iSc*NhM!{-l_WNCx4@F7I?)5&oI|z{o@JKd1HZ}zf*#}JjK3$ z-;3V*WJZvUcKvSOBH4c7C{fl8oRw8-vfgKQjNiR|KhQ%k6hWNEke(k8w-Ro| z7Y3)FsY-?7%;VT64vRM)l0%&HI~BXkSAOV#F3Bf#|3QLZM%6C{paqLTb3MU-_)`{R zRdfVQ)uX90VCa3ja$8m;cdtxQ*(tNjIfVb%#TCJWeH?o4RY#LWpyZBJHR| z6G-!4W5O^Z8U}e5GfZ!_M{B``ve{r0Z#CXV0x@~X#Pc;}{{ClY_uw^=wWurj0RKnoFzeY` z;gS!PCLCo*c}-hLc?C&wv&>P1hH75=p#;D3{Q8UZ0ctX!b)_@Ur=WCMEuz>pTs$@s z#7bIutL9Pm2FDb~d+H}uBI#pu6R}T{nzpz9U0XLb9lu@=9bTY&PEyFwhHHtXFX~6C zrcg|qqTk(|MIM%KQ<@j=DOjt|V)+8K26wE_CBNnZTg+Z+s}AU|jp6CFoIptG1{J*# z7Ne~l;ba*=bSwAMQ|Vq#fW~+je4PXA91YFzBubNF?ovIOw-$C-8=Ehed{lGD0}(Id zRe4sh8L>&T%{>8o))he}eE;5_ zxoXk3wX?MyNl-xF!q1d$G?=wp^`@09(jU&X zOqZIBI#dN`2PJNdATR3ivtub|nO$dulSaP|e4)WXF1YAGN1pDQIbIjXFG!oC85Mt; zW$eteoL{y^5t4TMRwP$jNPjZFpGsWnGe=jMMqKtcZm9Y9PFZLi*1p@qoKKub^T@2+ zk$@*KYdQ?Z`}<%4ALwk*Yc{(WTf@#u;as(fvE^9{Gk)lWbJP*SjttWofV0s?AB({~l zZI1hZVWFT~W-T?nfMMcnCS4-#6H-MU7H$KxD;yaM46K4Kc@~Q>xzB+QnD_I`b_l3m zo9pRx46b!p?a^&zCDwygqqV3epjs(s0NQI6ARA1n!Yy-qduipxQ& zUAlqRpNjBS+y-ZheD(!R;F}&^V_}b_gqH%tVZ5%%ziO7k^w=es+wZtK^i*vmrWNLMs{oWu_CIov|s1raZiS)>38>pYu;i+-t zI_DiNe6aA4KTZ2P09qPj(0~K4nUq^0+f(2$g`229zkG4jLzRvJUWE0oF1XHL4t3UN zDH466G56sy9hTZoAJB!C3;@F;ONxEk5u6Mv%zdo}Rq`=* zw1n7MOhfNSV48TS989ArIcj`C%Gk8~93~u>)!Yt2b4ZriKj9x2d`H2HQNJ=I>hkDlcZn zqRj>!;oRMTIOu zx|Zfsu~v76T{z7AC(jxj^c@tnJHZtGPsq$DE!8kqvkDx5W?KUJPL+!Ffpwfa+|5z5 zKPCiOPqZZrAG;2%OH0T$W|`C@C*!Z`@Wkop{CTjB&Tk`+{XPnt`ND`Haz;xV`H^RS zyXYtw@WlqTvToi;=mq1<-|IQ(gcOpU%)b#_46|IuWL#4$oYLbqwuk6=Q@xZaJSKVF zZcHs~ZBl;&lF3=+nK; zF`4gSCeZXlwmC_t4I`#PUNQ*)Uv&oGxMALip|sxv^lyVV73tKI7)+QY5=tEMas{vTD-BaTJ^*Y6gq~PU;F5X!sxqiq$iFCo+Uv7m%1w((=e}Vf*=dtds|6 zbX}91!G?C*KG03eHoN}RZS9DJxa&8YwNCT8?JxMXyZqZr13NA|GB{+vG`08C{V(yy zf*Lw$+tYSU_+dI`3n{bMrPdDb`A=Mkg!O=k>1|*3MC8j~- zXL79J4E=U^H=iBLTeHE_OKzE&dws8RNynsSJ!d;`zK?P92U{f)xvD7VQVosrXZrL+ z6lMVdD1YgL;%(1cq{#bS6yXmp|DS@nax#AqqlZhtUQdh<^2vr5`EpAO

LGYq)sa(w9^3-f}NHy=GR4v%t2YZly3m1G@5y`xBh_HGrD%f z>;|Ty?9FiJAc&UVD(StT4I` zfVQwxhE9bXE6r2mKO8Ag7{L^jCyqQb0QqKDPE=RAgqn8q1O^>(z7h5kE(6va%QqRZ zkIOmp(})rLSS(2{=C12e&@!W2=Jel-^_R``0xHO^+t!(oXbcv5yhD4g*$t_F)_5Dl zSVCgesW%;DtYPCFs{G;GX_o?1J3;QQPPv)rWw;>} zJ&KwnUqwNXloNXlK_+pNDfI~hON#SokVJb&ilg8d7^NWo2ZQymCqQMnjfi>ePibjr z-Z@q!?RGN$Mj}Nk){X_vaj6?Mj$>ACR*z|6MsXy3VZ^PFn@yHkPo(>m(iWepn8SC@ z>D2;R4m+gDRZ=SIX!b+CP(qE=JDIUkn=D$aUu+Ihn9-+k1LS3PreQg0N5eWIG@x${nC3v^7caS>1!PKNAY9J z#}E}Q9w#SP>(GY7Hbj&z4$Li6o5taBO|4+F`yS9zq*LJ<38wy4I>HA9(&GYrk4dLajKGww))BWli6Ln1A^Lda@N~p+snkb9C z@OthI+<##vp8!HVQT4Wk(=@zQ{OvZ$EKWS73+JHb)eYLGD-cqi6^|vd$<+IHuc?Nq zW7JertT~3))4?J|28n$I@nAD0c1%9C&IVhEZX~mUsf{efyS(XNG%ch;!N~d7S(Ri7 zb&=BuON95aVA&kLn6&MVU|x}xPMp7xwWxNU1wS+F6#y}1@^wQZB*(&ecT?RnQcI}Y z2*z!^!D?gDUhc@;M^OpLs4mq>C&p{}OWVv<)S9KMars@0JQ{c_ScGsFo3BJ)Irg++ zAWwypJdTO-_{Uh8m(Z!3KL7K{ZZzKHj;{M8I$mV>k znTM?sa0);^=X^cglL`uC+^J)M7nEa$w=VwFULg~%DJllw+7dJAj3{qnP5i3@wr7%y zjXp?Wl2%Th=my&3u?Q$RV6N5tzKMSPTsc#J+-cDDp~qFB6bL2C8AS7Y3PKtVhdhl) zIaLqH5+OnWPWSt(lQCgkN8lczc-V%_iZ{>#1%Z$N*>lu#S;0MZ$T2Y8Kg!U;hAZj> z6S#%$DQ_`Ic%Zr@?}GgjRXg@qTj^17n`65oJ@Wj0u1X8&+UVd|Xs?J+i_^GZ94m6= zUc96~Q`OJvlKB_Lr15*Yw_PUPEr?f?H&00b^-W%26mD)(n(rGGNfK9~2h=C>p-7BZ zFd&*&Msdu{w~(eyFOglwCPH^Rb}O(N7LtS+nnEwDx*pGD?|&9Si~M43a+*L(b0$5A zv`T`(G3xO;I_sx;FwTP21ZlfDpz zOo?}Vlgf~fo{YWm@n_JyD*frOg{XsvBA~|Tn4V6hu>Gd>89-rblfVJUaGvj6X%NZ} z$tFF9sx=4_$*c~G`9iPLGh@=sV+O{D2-t*K@J7H=`V+oVt}8?04WwU3h1BgS!f%1P zFak-T#7`TtLcR=Yz>g0R!ZQrH!YiZOQN=_V-UyncN1Rc18?KY?#O`v#JK+pq0K$~H z3D@v9DZF42R)b9#BBX{^$DOMlJ!g)Gc za{o-1e%F6NvgKq9tC8pV+9S$;9*zNv{J*)n&dmf~anP1)4~N%~h#c(=B#3*KgzhCKhFdgDoWi2IDog{RVyzK|Y`rCUs3T~pJMmdZJy4?b z&s5G=zhf**(t7Y^oC_mcTsE-{^}wiaoUu&?kojLKs>SJPxjcP>{a5CbXCx92AcBE) zHtqP}LjZ{W>PH?Tu(E0X=%{PBMW@F_?#7b&#!^q`<-5$ur+-q6 z{dn=(^UZw6*3-XM_(=@<1_*i&XM4=0t5u!gm6 z{UlmNGPKgO_;e;q9|#esq~Sq`<}%d{+sRmhvsA{5i*91=tub>OZZ%)xUA#4q$dDyy z1`w4%?OPLg3JeZb#cqSMO?*Xn%|-FCcuH2i2fn_{IFusub6;NQdN|7TD1N?%E8*g? z$apAt@cEe!I%jB=*q$p_3=t_5R0ph%{qaq+QDg!c99Y!Xa!&oDZOeis_ot)gNXr{l zdY$|So2Qed2Y7KMNBrS^E169kG%h<+z{Z_p_;shB!uY)>yAVcK=&!bg`lVg)4T1|7 z0}7FpfydVH4F87K@c!nEG+WGKm{Ouo)Slpl;#qcEIQ0zdMfLA#;dBxYw;p;KoVv6| z3_D5&7rJdG12CnDSvZUW?$UC6^UVSW^|vw|o-_4bz)(w5(3AiVhpeT(|=f#x_}E?s#qHZF#xA6AF_ujl$G z-jHD%q(d2}v2PhXx&6YWps~m(^+RXl91Q#xRRJBhjKl$FG4bk);|ag;ieUZ&!Ii3$ z(iGz1+0m7#g5>ASldBbNZL=ZHh=tmmJt$!71; zIML2GhEz1pg@1rQN(M^_691wAGkJ@Pga_05WuQ6! zG5RkGY2^`@(H~pp7&Ga+Pwh3L!Njj!-rc;^bTIfo5hP@H##1X8xUZJckrx>id`bAd3QUx9GuomqBYZ!uN1-&o zvTxC?;p8vL67&fW8fw(YOqt>L@bdLrEF*3OgYe$4n4{ zEB40LiU#6-0@5jdN`0w}N0qi@c0~oT2FP z)LNk&a82my?jv(tQpiMi$TK_L@lub#lsM$R{Dk?Ya@%%%huZkct~tSWM714c!45k}-ZLVA-bVM`>|_ZBbW_m-7| z3U%xrAhi}n?T(2F{_n4EZ10inkIFl#y09?7$uwBoJgqY8vylwev)fDOn;>0R!aEnV zBz%j0Mqpx~EZU3q@%+oV7;}|vt7$~ou@faEIq{p?FY$XXg&6*K)b_LP=}gi9`Bij3 zN`zEo|B6*|-;>S`rNa^BKRDbDAk>X#MsR`EvL>6bqU@SaDDs z8>bu@3YdRaWs*Te@G-UHjU%F~kTHw5(0PVJ+pwh#ha2u;DB+UMo@A5UYIl#5rtBV- zGX_hIpw}3C@H*Us(Cc-d#-gNrG#w$(9+S=GxO>3SR`SE2fHZ2KrDc#_C^$jI>Y}#; zMwY=R6@+dWi~0RXw(c@3GZ&%~9K(q&ee0Zw;pwL`E_tZak-#8^_b)Dpyi73^he?xV zXJ08&wh5-M&}qy4f7!D&=E)puDD(Nmg1d_(j`4LvxM5x_huNg-pGG%9rYqO6mImyJ@}*3Y>^3OvcnTG%EV1) zq_Ap?Z!Iw__7#D=pOWnQN$gB!Mr0!9yx|g<4icJh{cFOu3B8}&RiYm+Mb;VEK``LK zL(NcpcTiGieOIssSjr?ob}^``nNf&UcJhXyncO9m{6gD$kqSD`S69(aF8dkWz5>!9 zBLe4Sib7Hs2x_L2Ls6Ish$MGVKrGt5+_2zCyP1byaCg3upo+-I}R4&$m)8 zQ7|jc1Z^VWggpuQj*cP;>Zo9LS!VSzrqmZczaf;u`d0J(f%Z9r%An@s!e>n9%y=n!IZ_tVGu{Jmsbp}Fk%HJIU?a+-~bjfLTuH|JExA8EROowzr zqW9{YyZhR0a4clRK>1I4Ncx&WER~{iE;F^$T7K%X@3PGOA%6#Z%p3TS^&M;Dnjw@i z^o!$9nhcsmcHcY4?4j9+ofL_CWsZ4Hcch(rjsGfGD(nsH>w}^ERqGnz%iGj0j{g}h z7wMkJ-2Z2~eS>2!i}0~B63i;>SyFJU2+>VCS^AxaDOx%g6-t0eM^P<3+*z`ztvOqrG3)&#$K?& z_Y0wbWID47@cU`E1A6A&!`aZk0ZE@z-h#l1NqX2#`$Uev2gepW`rf8*!=rD5&;Jb{ zl08rU>dPo=K%-1Ao1~G-@4ve~y5#9E8x;TE0k5d^TC(=Zc>mwjW^c=+U-<9}b0ku~}gj z3sbW>R2M6DR!g#NUP;nxo>)@7*=RP{U18SDop6b2&PHce^&h97@xx3t+VK+!keE#} z;(Uf&89as9k8{$nkLbuB!-d7TP`_VJpL^Xs8OKB~ri$YUbW8fch64}7|0EWoT(TRj{ z*GT<7Y<7DsrCi79ZsM)z#c(!nNOGySOCkY1fAuQOq12&iUVC!a`#O;dBLf=d?&4*B zI~LgAO7E0qxK(uRTM;IgJ}+z^gD+bi-6I!3x{r9`l~%8TRP%UE0V8E*Sz>Nl1NVG<<7(wDHZ+HcOkQm$O&k+vyx)y)x{Pz!U8hS$*m zByc0h6BUI*BOpuL==P+H|Hx%`>7!W+1H!l9vi&)`V zyn2o9{z=lc+VX*!Vh~SF=)L}Z40XeG>LF6cP^b+R$NxSeUqbK^Q*UTalKzP8X%{9@RSCXm_NhF>{=S2 zi}ezam_^P`S!!-cyEW9y7DBbK93roz@Raccy*v}?mKXScU9E_4g;hBU7}zSofAFda zKYEe?{{I54 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 381baa9ce..2b189974c 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d -distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip +distributionSha256Sum=5b9c5eb3f9fc2c94abaea57d90bd78747ca117ddbbf96c859d3741181a12bf2a +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a426..f5feea6d6 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 25da30dbd..9d21a2183 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## diff --git a/settings.gradle.kts b/settings.gradle.kts index c0cd8dda0..41c306be2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,11 @@ pluginManagement { repositories { + mavenLocal { + content { + includeGroup("dev.galacticraft") + includeGroup("dev.galacticraft.mojarn") + } + } maven("https://maven.fabricmc.net/") { name = "Fabric" content { @@ -8,7 +14,8 @@ pluginManagement { includeGroup("fabric-loom") } } - maven("https://maven.galacticraft.net/repository/maven-releases/") { + maven("https://repo.terradevelopment.net/repository/maven-releases/") { + // https://maven.galacticraft.net/repository/maven-releases content { includeGroup("dev.galacticraft") includeGroup("dev.galacticraft.mojarn") diff --git a/src/main/generated/README.md b/src/main/generated/README.md index 247a3cb07..f230e5b11 100644 --- a/src/main/generated/README.md +++ b/src/main/generated/README.md @@ -3,7 +3,8 @@ ### Adding more resources -Resources that cannot be generated (e.g. music, textures, languages, etc.) should be put into [src/main/resources](../resources). +Resources that cannot be generated (e.g., music, textures, translations) +should be put into [src/main/resources](../resources). To generate additional resources, see the `dev.galacticraft.mod.data` package. diff --git a/src/main/generated/assets/galacticraft/blockstates/moon_berry_bush.json b/src/main/generated/assets/galacticraft/blockstates/moon_berry_bush.json deleted file mode 100644 index cf9d16611..000000000 --- a/src/main/generated/assets/galacticraft/blockstates/moon_berry_bush.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "variants": { - "age=0": { - "model": "galacticraft:block/moon_berry_bush_stage0" - }, - "age=1": { - "model": "galacticraft:block/moon_berry_bush_stage1" - }, - "age=2": { - "model": "galacticraft:block/moon_berry_bush_stage2" - }, - "age=3": { - "model": "galacticraft:block/moon_berry_bush_stage3" - } - } -} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/lang/en_us.json b/src/main/generated/assets/galacticraft/lang/en_us.json index 558d5e6a8..487cbf66b 100644 --- a/src/main/generated/assets/galacticraft/lang/en_us.json +++ b/src/main/generated/assets/galacticraft/lang/en_us.json @@ -1,4 +1,5 @@ { + "banner_pattern.galacticraft.rocket": "Rocket", "biome.galacticraft.basaltic_mare": "Basaltic Mare", "biome.galacticraft.comet_tundra": "Comet Tundra", "biome.galacticraft.lunar_highlands": "Lunar Highlands", @@ -175,7 +176,6 @@ "block.galacticraft.moon_basalt_slab": "Moon Basalt Slab", "block.galacticraft.moon_basalt_stairs": "Moon Basalt Stairs", "block.galacticraft.moon_basalt_wall": "Moon Basalt Wall", - "block.galacticraft.moon_berry_bush": "Moon Berry Bush", "block.galacticraft.moon_cheese_block": "Moon Cheese Wheel", "block.galacticraft.moon_cheese_block.description": "Cheese Blocks are created from the cheeses of the Moon, place-able and edible.", "block.galacticraft.moon_copper_ore": "Moon Copper Ore", diff --git a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage0.json b/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage0.json deleted file mode 100644 index 2c4e8c017..000000000 --- a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage0.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "galacticraft:block/moon_berry_bush_stage0" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage1.json b/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage1.json deleted file mode 100644 index 695e588a8..000000000 --- a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage1.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "galacticraft:block/moon_berry_bush_stage1" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage2.json b/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage2.json deleted file mode 100644 index 682199608..000000000 --- a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage2.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "galacticraft:block/moon_berry_bush_stage2" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage3.json b/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage3.json deleted file mode 100644 index 8c17b55b0..000000000 --- a/src/main/generated/assets/galacticraft/models/block/moon_berry_bush_stage3.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:block/cross", - "textures": { - "cross": "galacticraft:block/moon_berry_bush_stage3" - } -} \ No newline at end of file diff --git a/src/main/generated/assets/galacticraft/models/item/moon_berries.json b/src/main/generated/assets/galacticraft/models/item/moon_berries.json deleted file mode 100644 index 27b259dcb..000000000 --- a/src/main/generated/assets/galacticraft/models/item/moon_berries.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "minecraft:item/generated", - "textures": { - "layer0": "galacticraft:item/moon_berries" - } -} \ No newline at end of file diff --git a/src/main/generated/data/c/tags/items/clusters.json b/src/main/generated/data/c/tags/block/clusters.json similarity index 73% rename from src/main/generated/data/c/tags/items/clusters.json rename to src/main/generated/data/c/tags/block/clusters.json index 338497d4f..c2ddbd913 100644 --- a/src/main/generated/data/c/tags/items/clusters.json +++ b/src/main/generated/data/c/tags/block/clusters.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:olivine_cluster" ] diff --git a/src/main/generated/data/c/tags/blocks/ores.json b/src/main/generated/data/c/tags/block/ores.json similarity index 96% rename from src/main/generated/data/c/tags/blocks/ores.json rename to src/main/generated/data/c/tags/block/ores.json index ce98e8ff6..22dbb137f 100644 --- a/src/main/generated/data/c/tags/blocks/ores.json +++ b/src/main/generated/data/c/tags/block/ores.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:silicon_ore", "galacticraft:deepslate_silicon_ore", diff --git a/src/main/generated/data/c/tags/fluids/fuel.json b/src/main/generated/data/c/tags/fluid/fuel.json similarity index 80% rename from src/main/generated/data/c/tags/fluids/fuel.json rename to src/main/generated/data/c/tags/fluid/fuel.json index f8639ed38..9cf08d4fd 100644 --- a/src/main/generated/data/c/tags/fluids/fuel.json +++ b/src/main/generated/data/c/tags/fluid/fuel.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:fuel_still", "galacticraft:fuel_flowing" diff --git a/src/main/generated/data/c/tags/fluids/oil.json b/src/main/generated/data/c/tags/fluid/oil.json similarity index 82% rename from src/main/generated/data/c/tags/fluids/oil.json rename to src/main/generated/data/c/tags/fluid/oil.json index 87c4fdbc7..15ba6583e 100644 --- a/src/main/generated/data/c/tags/fluids/oil.json +++ b/src/main/generated/data/c/tags/fluid/oil.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:crude_oil_still", "galacticraft:crude_oil_flowing" diff --git a/src/main/generated/data/c/tags/fluids/oxygen.json b/src/main/generated/data/c/tags/fluid/oxygen.json similarity index 72% rename from src/main/generated/data/c/tags/fluids/oxygen.json rename to src/main/generated/data/c/tags/fluid/oxygen.json index 358f84023..766ee87e6 100644 --- a/src/main/generated/data/c/tags/fluids/oxygen.json +++ b/src/main/generated/data/c/tags/fluid/oxygen.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:liquid_oxygen" ] diff --git a/src/main/generated/data/c/tags/fluids/sulfuric_acid.json b/src/main/generated/data/c/tags/fluid/sulfuric_acid.json similarity index 83% rename from src/main/generated/data/c/tags/fluids/sulfuric_acid.json rename to src/main/generated/data/c/tags/fluid/sulfuric_acid.json index 5c939409c..9f03740c7 100644 --- a/src/main/generated/data/c/tags/fluids/sulfuric_acid.json +++ b/src/main/generated/data/c/tags/fluid/sulfuric_acid.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:sulfuric_acid_still", "galacticraft:sulfuric_acid_flowing" diff --git a/src/main/generated/data/c/tags/blocks/clusters.json b/src/main/generated/data/c/tags/item/clusters.json similarity index 73% rename from src/main/generated/data/c/tags/blocks/clusters.json rename to src/main/generated/data/c/tags/item/clusters.json index 338497d4f..c2ddbd913 100644 --- a/src/main/generated/data/c/tags/blocks/clusters.json +++ b/src/main/generated/data/c/tags/item/clusters.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:olivine_cluster" ] diff --git a/src/main/generated/data/c/tags/items/gems.json b/src/main/generated/data/c/tags/item/gems.json similarity index 72% rename from src/main/generated/data/c/tags/items/gems.json rename to src/main/generated/data/c/tags/item/gems.json index 9640ff551..21457ae9f 100644 --- a/src/main/generated/data/c/tags/items/gems.json +++ b/src/main/generated/data/c/tags/item/gems.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:olivine_shard" ] diff --git a/src/main/generated/data/c/tags/items/silicons.json b/src/main/generated/data/c/tags/item/gems/silicon.json similarity index 72% rename from src/main/generated/data/c/tags/items/silicons.json rename to src/main/generated/data/c/tags/item/gems/silicon.json index fe1ae16a0..41aef02ae 100644 --- a/src/main/generated/data/c/tags/items/silicons.json +++ b/src/main/generated/data/c/tags/item/gems/silicon.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:raw_silicon" ] diff --git a/src/main/generated/data/c/tags/items/aluminum_ingots.json b/src/main/generated/data/c/tags/item/ingots/aluminum.json similarity index 73% rename from src/main/generated/data/c/tags/items/aluminum_ingots.json rename to src/main/generated/data/c/tags/item/ingots/aluminum.json index 2792ad869..fed9d59d2 100644 --- a/src/main/generated/data/c/tags/items/aluminum_ingots.json +++ b/src/main/generated/data/c/tags/item/ingots/aluminum.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:aluminum_ingot" ] diff --git a/src/main/generated/data/c/tags/items/lead_ingots.json b/src/main/generated/data/c/tags/item/ingots/lead.json similarity index 71% rename from src/main/generated/data/c/tags/items/lead_ingots.json rename to src/main/generated/data/c/tags/item/ingots/lead.json index c89f58442..8d0193229 100644 --- a/src/main/generated/data/c/tags/items/lead_ingots.json +++ b/src/main/generated/data/c/tags/item/ingots/lead.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:lead_ingot" ] diff --git a/src/main/generated/data/c/tags/items/tin_ingots.json b/src/main/generated/data/c/tags/item/ingots/tin.json similarity index 71% rename from src/main/generated/data/c/tags/items/tin_ingots.json rename to src/main/generated/data/c/tags/item/ingots/tin.json index b3747a688..18f9f0436 100644 --- a/src/main/generated/data/c/tags/items/tin_ingots.json +++ b/src/main/generated/data/c/tags/item/ingots/tin.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:tin_ingot" ] diff --git a/src/main/generated/data/c/tags/items/ores.json b/src/main/generated/data/c/tags/item/ores.json similarity index 96% rename from src/main/generated/data/c/tags/items/ores.json rename to src/main/generated/data/c/tags/item/ores.json index ce98e8ff6..22dbb137f 100644 --- a/src/main/generated/data/c/tags/items/ores.json +++ b/src/main/generated/data/c/tags/item/ores.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:silicon_ore", "galacticraft:deepslate_silicon_ore", diff --git a/src/main/generated/data/c/tags/items/compressed_iron.json b/src/main/generated/data/c/tags/item/plates/iron.json similarity index 73% rename from src/main/generated/data/c/tags/items/compressed_iron.json rename to src/main/generated/data/c/tags/item/plates/iron.json index 77e47b6ab..fda05bc0c 100644 --- a/src/main/generated/data/c/tags/items/compressed_iron.json +++ b/src/main/generated/data/c/tags/item/plates/iron.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:compressed_iron" ] diff --git a/src/main/generated/data/c/tags/items/compressed_steel.json b/src/main/generated/data/c/tags/item/plates/steel.json similarity index 74% rename from src/main/generated/data/c/tags/items/compressed_steel.json rename to src/main/generated/data/c/tags/item/plates/steel.json index 69efc2b5e..b1d7f0320 100644 --- a/src/main/generated/data/c/tags/items/compressed_steel.json +++ b/src/main/generated/data/c/tags/item/plates/steel.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:compressed_steel" ] diff --git a/src/main/generated/data/c/tags/items/compressed_tin.json b/src/main/generated/data/c/tags/item/plates/tin.json similarity index 73% rename from src/main/generated/data/c/tags/items/compressed_tin.json rename to src/main/generated/data/c/tags/item/plates/tin.json index fb4642d84..8b6be4414 100644 --- a/src/main/generated/data/c/tags/items/compressed_tin.json +++ b/src/main/generated/data/c/tags/item/plates/tin.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:compressed_tin" ] diff --git a/src/main/generated/data/c/tags/items/raw_aluminum_ores.json b/src/main/generated/data/c/tags/item/raw_materials/aluminum.json similarity index 72% rename from src/main/generated/data/c/tags/items/raw_aluminum_ores.json rename to src/main/generated/data/c/tags/item/raw_materials/aluminum.json index 1541b70bd..52a58bb3d 100644 --- a/src/main/generated/data/c/tags/items/raw_aluminum_ores.json +++ b/src/main/generated/data/c/tags/item/raw_materials/aluminum.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:raw_aluminum" ] diff --git a/src/main/generated/data/c/tags/items/raw_lead_ores.json b/src/main/generated/data/c/tags/item/raw_materials/lead.json similarity index 71% rename from src/main/generated/data/c/tags/items/raw_lead_ores.json rename to src/main/generated/data/c/tags/item/raw_materials/lead.json index c129ebe56..69ed09e40 100644 --- a/src/main/generated/data/c/tags/items/raw_lead_ores.json +++ b/src/main/generated/data/c/tags/item/raw_materials/lead.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:raw_lead" ] diff --git a/src/main/generated/data/c/tags/items/raw_tin_ores.json b/src/main/generated/data/c/tags/item/raw_materials/tin.json similarity index 70% rename from src/main/generated/data/c/tags/items/raw_tin_ores.json rename to src/main/generated/data/c/tags/item/raw_materials/tin.json index 4b7494e9c..60fb451c5 100644 --- a/src/main/generated/data/c/tags/items/raw_tin_ores.json +++ b/src/main/generated/data/c/tags/item/raw_materials/tin.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:raw_tin" ] diff --git a/src/main/generated/data/galacticraft/advancements/recipes/advanced_wafer.json b/src/main/generated/data/galacticraft/advancement/recipes/advanced_wafer.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/advanced_wafer.json rename to src/main/generated/data/galacticraft/advancement/recipes/advanced_wafer.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/basic_wafer.json b/src/main/generated/data/galacticraft/advancement/recipes/basic_wafer.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/basic_wafer.json rename to src/main/generated/data/galacticraft/advancement/recipes/basic_wafer.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/blue_solar_wafer.json b/src/main/generated/data/galacticraft/advancement/recipes/blue_solar_wafer.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/blue_solar_wafer.json rename to src/main/generated/data/galacticraft/advancement/recipes/blue_solar_wafer.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration.json index 326dbccfa..05ddb0c5b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_aluminum" - ] + "items": "galacticraft:compressed_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab.json index 5da42f29a..6a448059f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json index f0daff5a5..adbb00846 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs.json index 5af224e4e..c1e95d325 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json index 06e5227dd..463a73e4f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall.json index 141cc9b01..dc19bd885 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json index 45e49a213..7ba1eca06 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_decoration" - ] + "items": "galacticraft:aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration.json index 292a11a2b..7ead454b3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_bronze" - ] + "items": "galacticraft:compressed_bronze" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab.json index e4c1e75d3..7cf4f7427 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json index 2ffcd5d5b..9e7e30c4f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_slab_from_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs.json index ea8273c1e..a06190d11 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json index 0ab36b4f4..b3a9019b7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall.json index 609ef2d30..5052725ca 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json index e1e2aff59..9400043cf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/bronze_decoration_wall_from_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:bronze_decoration" - ] + "items": "galacticraft:bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick.json index 3c025a425..7efd9df73 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick_slab" - ] + "items": "galacticraft:moon_rock_brick_slab" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json index a5459de5e..b62246515 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json index 1c59e8be7..a7cd830c1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab.json index 68ca547f1..bfa9be11d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json index 6b2f8b044..2e075ff88 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs.json index 06b03c400..046244473 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json index 93a300633..20f56d401 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall.json index 3eb74e5a4..014632019 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json index 017bd1bc8..43c9d64de 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_lunaslate" - ] + "items": "galacticraft:cobbled_lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration.json index 302784f1d..8f137a785 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_copper" - ] + "items": "galacticraft:compressed_copper" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab.json index 443bd0ec2..d5f5c8bfc 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json index 1a0e7b8e4..f24753886 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_slab_from_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs.json index 30a3ad402..47bbe049a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json index 13c016a57..18f6ebd60 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_stairs_from_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall.json index f3a509ffc..d5b57896a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json index fbf5d725c..ed5da5ee4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/copper_decoration_wall_from_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:copper_decoration" - ] + "items": "galacticraft:copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab.json index ae060e541..84d1bf1db 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json index 618f81653..95c595bb7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json index 71965a29b..acae000d2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json index c6a43cd68..7eb26fdf4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall.json index 5aca37376..06bd097d6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json index 9a04ec50b..3938fcf10 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_basalt_brick" - ] + "items": "galacticraft:cracked_moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick.json index 8425196ed..6f1fff2ca 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab.json index 35edc32e7..b4c5bd2da 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json index 9623ebac4..9d7c731f2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs.json index 246570ecd..13d4ce11a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json index be0cab25d..26bf21926 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall.json index d08e52095..367b6a11e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json index ff14cb09b..9f3640d1c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cracked_moon_rock_brick" - ] + "items": "galacticraft:cracked_moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab.json index 35e65054a..1060707f5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json index 1ca1b4d18..4c3ff656f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_slab_from_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs.json index d43a3d231..10e2e0beb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json index 70f35ab77..12d38c324 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_stairs_from_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall.json index de6de01ab..4ee57cecb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json index 943b3f5db..df47f93e4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/dark_decoration_wall_from_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:dark_decoration" - ] + "items": "galacticraft:dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/desh_block.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/desh_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/desh_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/desh_block.json index 3e6d8140c..091f3e444 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/desh_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/desh_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration.json index 0dbe3994b..afa672853 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_aluminum" - ] + "items": "galacticraft:compressed_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab.json index 38004141e..4406c84cd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json index eb50bfa81..b1748d0b8 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs.json index d25c80685..10c092356 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json index 93c0c529a..b6fc563b7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall.json index 18c0c0a0f..e4bc75058 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json index ae651ec50..52c84c831 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_aluminum_decoration" - ] + "items": "galacticraft:detailed_aluminum_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration.json index 7dbab4b19..a8657a7ba 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_bronze" - ] + "items": "galacticraft:compressed_bronze" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab.json index f7ba53a37..953962173 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json index 2ae940d26..c1753bc53 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs.json index 2410c160d..1cbc42cf9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json index 7610de95f..720e66e02 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall.json index 1c96b9b6d..3539b5d47 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json index e37c89954..ef6831ba8 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_bronze_decoration" - ] + "items": "galacticraft:detailed_bronze_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration.json index 02fbade9c..5356ebdc0 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_copper" - ] + "items": "galacticraft:compressed_copper" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab.json index 73e516862..99e2dbed1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json index f4f8e5586..a53df0745 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs.json index 5612b948f..60c524361 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json index 3020f1ce4..0c96eee9a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall.json index 149cbfa3e..65e900d7d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json index 737b8eb7a..28b893682 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_copper_decoration" - ] + "items": "galacticraft:detailed_copper_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab.json index b98fc7184..71f45ac21 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json index 9303baa85..0be76d53f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs.json index 8d1d276cb..018817b5f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json index d6778d7ee..d32ab5858 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall.json index 48529fbfd..8ccc6edc3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json index d0efd5662..f87cf0c80 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_dark_decoration" - ] + "items": "galacticraft:detailed_dark_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration.json index cf2523023..2f21e72c5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_iron" - ] + "items": "galacticraft:compressed_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab.json index ac83c4f1a..83b64a85e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json index 25bbe4475..2f2098731 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs.json index 8e839acc4..903384b50 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json index ac5865913..c4d10f66e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall.json index 3bbad6062..4f5a9e53a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json index 32a37776a..f27ebad9e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_iron_decoration" - ] + "items": "galacticraft:detailed_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration.json index f98020223..1baac4afb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_meteoric_iron" - ] + "items": "galacticraft:compressed_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json index 93dc96ed6..0e4792abf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json index 5a0c85926..41b96e657 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json index bbb50f5f1..0a01ec392 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json index aabf0e214..bbfba6177 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json index f6c73a223..6bc8c25eb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json index 06821c4de..9e099c378 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_meteoric_iron_decoration" - ] + "items": "galacticraft:detailed_meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration.json index 8839bd823..c3d4c085f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab.json index c31ce6fdb..65e647443 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json index e2cd02a5e..d5b54df14 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs.json index 007829b07..574403193 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json index fe1beff91..2c767525d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall.json index 3d6022607..9073f4f35 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json index bf345dc6a..bb2ca88eb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_steel_decoration" - ] + "items": "galacticraft:detailed_steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration.json index b57818463..544cc1922 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_tin" - ] + "items": "galacticraft:compressed_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab.json index 41512054f..20c5c7281 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json index 3c0b90a82..fc8e67075 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs.json index 73eba3c48..ad6bad110 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json index c5e3bebb5..7e354b56c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall.json index 46a5f91ae..59e07f8d7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json index e971214fd..59366a57d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_tin_decoration" - ] + "items": "galacticraft:detailed_tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration.json index 8501041a9..1c71a24d0 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab.json index 853aa27e8..345a5fff5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json index 504a6d4ac..879df9f6c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs.json index 7b49fab88..22eb9c0f9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json index aa67a00b7..9e76558bf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall.json index 4fcecea1d..b85e6fe68 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json index 59658a3f2..8deeb7f58 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:detailed_titanium_decoration" - ] + "items": "galacticraft:detailed_titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/grating.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/grating.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/grating.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/grating.json index 01d8ddec7..e949c98a8 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/grating.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/grating.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:iron_bars" - ] + "items": "minecraft:iron_bars" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration.json index 89ad0ac1b..fd36fc033 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_iron" - ] + "items": "galacticraft:compressed_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab.json index 4aed5764c..c2d426491 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json index ea331548c..8b9926668 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_slab_from_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs.json index 436466b98..0f4b3df4a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json index e4da3de83..ab19b4cbf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_stairs_from_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall.json index f920d7e5f..104b98619 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json index 697690583..c319e8e6f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/iron_decoration_wall_from_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_decoration" - ] + "items": "galacticraft:iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lead_block.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lead_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lead_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lead_block.json index d40ce0c4c..c8f313d00 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lead_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lead_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lead_ingot" - ] + "items": "galacticraft:lead_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunar_sapphire_block.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunar_sapphire_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunar_sapphire_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunar_sapphire_block.json index e2191e67a..f8833b040 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunar_sapphire_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunar_sapphire_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunar_sapphire" - ] + "items": "galacticraft:lunar_sapphire" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab.json index 12e40c6c7..d60cfe023 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json index a185a186d..7e94686fe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_slab_from_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs.json index 6e5581bdf..5595c5443 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json index a1fe56de2..cb832e833 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_stairs_from_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall.json index def8fa83c..03e9f07a4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json index c4b4a45f6..4f2af536a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/lunaslate_wall_from_lunaslate_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate" - ] + "items": "galacticraft:lunaslate" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab.json index e9d3a3c23..f2c02dabe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json index 2b93dfb76..32b8c4bd3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs.json index a73abdbb2..e19220d84 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json index 067ebe6c0..fdecbf488 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall.json index 7c5a0dc33..a192c3e2f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json index f18f30046..09e28e48b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_cobblestone" - ] + "items": "galacticraft:mars_cobblestone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab.json index 851650e8f..54600372f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json index 433da4927..8256c02fa 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_slab_from_mars_stone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs.json index 04efa7e11..16e8d07db 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json index 3f43e7bc6..9c08bf9cb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_stairs_from_mars_stone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall.json index eb19f3694..5ac3e1601 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json index 1afb7ec5c..1b9a7ffb9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/mars_stone_wall_from_mars_stone_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:mars_stone" - ] + "items": "galacticraft:mars_stone" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_block.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_block.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_block.json index d7bb9a1ec..5cdc2108c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_ingot" - ] + "items": "galacticraft:meteoric_iron_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration.json index 3ec5e389b..86fdaa40b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_meteoric_iron" - ] + "items": "galacticraft:compressed_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab.json index f608da411..c985be54b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json index 996c9b556..aaf56c7a6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs.json index 23640a7ab..5562f7284 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json index 8d5b9b05d..99a8ff43f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall.json index 60aad4296..1fc51b2b6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json index ba627252d..e40279477 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_decoration" - ] + "items": "galacticraft:meteoric_iron_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab.json index ba20ff4bc..eea838ea2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json index 27b350294..3e05bc67a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs.json index dd583ebb3..85aefb886 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json index efbd491f5..2606ff94e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall.json index 749b47714..39b6dcaab 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json index 24a821473..fc3f1d593 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt_brick" - ] + "items": "galacticraft:moon_basalt_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab.json index 457353dad..8ce79830d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json index ea44a22f1..34b165b35 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_slab_from_moon_basalt_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs.json index da2806c3a..4f36dcf90 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json index f7a8ef860..9b9e55490 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_stairs_from_moon_basalt_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall.json index 7117376ba..def851bdc 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json index 9352e2b8d..613bdd951 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_basalt_wall_from_moon_basalt_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_basalt" - ] + "items": "galacticraft:moon_basalt" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock.json index 99e5ba93a..711cd9acf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cobbled_moon_rock" - ] + "items": "galacticraft:cobbled_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick.json index 2562696a7..0463e0644 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json index b36e2611e..c2a47d19c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_from_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab.json index cd76e499f..f0586edb4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json index af5a92f82..ef003aa3b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs.json index 003eda230..2dc42be50 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json index 198f9acc6..2422cc871 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall.json index 2fca0669a..5fc8f3f5f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json index ab0b12db9..ecae2cecd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_pillar.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_pillar.json index 781192214..27fd9cf08 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_pillar.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_pillar.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab.json index 5c562ac4c..a4500ecd5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json index 9788fd479..207d5ca65 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_slab_from_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs.json index aa7b0df69..4f95f25c3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json index 7ad4dd2e6..d8a8e31bb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_stairs_from_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall.json index 8cc33e89e..6fef94115 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json index 58f9b9f0f..fa60bdb22 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/moon_rock_wall_from_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock" - ] + "items": "galacticraft:moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock.json index 1679540de..ae78453b1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json index 2127c4200..f46bcbb8d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_from_moon_rock_brick_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_rock_brick" - ] + "items": "galacticraft:moon_rock_brick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab.json index c477bdeff..ead12c7fe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json index 1e7055051..8b40bc300 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs.json index 0a7923740..c228915ad 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json index 5c734898f..89b633884 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall.json index 48be85a5d..34d24626f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json index 01a872eb9..fea8e47e4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:polished_moon_rock" - ] + "items": "galacticraft:polished_moon_rock" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration.json index 10a2d278d..72b5ece98 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab.json index d7a009613..577c43cc2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json index 0f7a62c10..1f21a3f90 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_slab_from_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs.json index 94fdfbf6b..c0d5b286c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json index ede4e93a9..7d745ff11 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_stairs_from_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall.json index 86d7314e3..421aa606c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json index 8edca26ed..fb37508de 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/steel_decoration_wall_from_steel_decoration_stonecutting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:steel_decoration" - ] + "items": "galacticraft:steel_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration.json index b06e28909..b131d1b5f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_tin" - ] + "items": "galacticraft:compressed_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab.json index bc2031902..9bdddb84e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json index 95ca83c6b..c60a34662 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_slab_from_tin_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs.json index fc95d4922..8ebb66249 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json index 52cdce41d..711ca606c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_stairs_from_tin_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall.json index 851273ca1..3a0c3ed11 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json index 49bff1803..1bf818085 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_decoration_wall_from_tin_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_decoration" - ] + "items": "galacticraft:tin_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_ladder.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_ladder.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_ladder.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_ladder.json index f6d8af3fc..17bdd2d0f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/tin_ladder.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/tin_ladder.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ingot" - ] + "items": "galacticraft:tin_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_block.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_block.json index 210ee24d6..99905cf10 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_block.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_ingot" - ] + "items": "galacticraft:titanium_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration.json index d687795b3..2ef5505cd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab.json index e3a5934db..7529da73e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json index dbeff9ad8..41044c54e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_slab_from_titanium_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs.json index 9e5a5a1b7..8f794e493 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json index a761f81a5..997641122 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall.json index 5f780a589..36257a190 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json index a37f6f6e0..391d21434 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/building_blocks/titanium_decoration_wall_from_titanium_decoration_stonecutting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_decoration" - ] + "items": "galacticraft:titanium_decoration" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/desh_sword.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/desh_sword.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/desh_sword.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/desh_sword.json index 7925925ca..a62a0e857 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/desh_sword.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/desh_sword.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_boots.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_boots.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_boots.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_boots.json index b7bcf02d2..2a9090e0c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_boots.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_boots.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_chestplate.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_chestplate.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_chestplate.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_chestplate.json index af99139aa..fb6170ed6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_chestplate.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_chestplate.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_helmet.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_helmet.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_helmet.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_helmet.json index 542a7ab23..6b7ba226c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_helmet.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_helmet.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_leggings.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_leggings.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_leggings.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_leggings.json index d7c4e7eaa..37bfdbadc 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_leggings.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_leggings.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_sword.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_sword.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_sword.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_sword.json index bfd37dfdb..49dfac34e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/heavy_duty_sword.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/heavy_duty_sword.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/throwable_meteor_chunk.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/throwable_meteor_chunk.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/throwable_meteor_chunk.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/throwable_meteor_chunk.json index c8e9d148f..a5a58d87b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/throwable_meteor_chunk.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/throwable_meteor_chunk.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_meteoric_iron" - ] + "items": "galacticraft:raw_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_boots_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_boots_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_boots_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_boots_smithing.json index dec2a34c2..4c118cf9a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_boots_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_boots_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_chestplate_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_chestplate_smithing.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_chestplate_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_chestplate_smithing.json index 5a9fb6fdb..4e921f4d5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_chestplate_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_chestplate_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_helmet_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_helmet_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_helmet_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_helmet_smithing.json index e3e090b6d..b5c3e61e4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_helmet_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_helmet_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_leggings_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_leggings_smithing.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_leggings_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_leggings_smithing.json index 56f8e7296..3500b1bfd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_leggings_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_leggings_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_sword_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_sword_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_sword_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_sword_smithing.json index 9fea02449..c6313a723 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/combat/titanium_sword_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/combat/titanium_sword_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_aluminum.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_aluminum.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_aluminum.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_aluminum.json index bc0e68f27..41caebc6b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_aluminum.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_aluminum.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_bronze.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_bronze.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_bronze.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_bronze.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_copper.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_copper.json similarity index 93% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_copper.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_copper.json index b4a1beb54..b24cdee16 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_copper.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_copper.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "tag": "c:copper_ingots" + "items": "#c:ingots/copper" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_desh.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_desh.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_desh.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_desh.json index 92853c9be..356a77dd4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_desh.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_desh.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_iron.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_iron.json similarity index 93% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_iron.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_iron.json index bc0f0a278..53e9497b3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_iron.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_iron.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "tag": "c:iron_ingots" + "items": "#c:ingots/iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_meteoric_iron.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_meteoric_iron.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_meteoric_iron.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_meteoric_iron.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_steel.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_steel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_steel.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_steel.json index 9b7b58ee6..15b140099 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_steel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_steel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_iron" - ] + "items": "galacticraft:compressed_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_steel_from_ingots.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_steel_from_ingots.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_steel_from_ingots.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_steel_from_ingots.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_tin.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_tin.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_tin.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_tin.json index ecf25a243..536f1cd3e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_tin.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_tin.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ingot" - ] + "items": "galacticraft:tin_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/compressed_titanium.json b/src/main/generated/data/galacticraft/advancement/recipes/compressed_titanium.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/compressed_titanium.json rename to src/main/generated/data/galacticraft/advancement/recipes/compressed_titanium.json index a3047942a..a6be28463 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/compressed_titanium.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/compressed_titanium.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_ingot" - ] + "items": "galacticraft:titanium_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/dashed_light_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/dashed_light_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/dashed_light_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/dashed_light_panel.json index 95d0641f3..a2a9ab991 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/dashed_light_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/dashed_light_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel.json index 74d1a9726..64fb096ae 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel_flipped.json index fb4d4a029..12037c713 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/diagonal_light_panel_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/diagonal_light_panel_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_lantern.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_lantern.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_lantern.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_lantern.json index ecfe50972..3401f7070 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_lantern.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_lantern.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:glowstone_torch" - ] + "items": "galacticraft:glowstone_torch" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_torch.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_torch.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_torch.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_torch.json index 371510986..b0692d935 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/glowstone_torch.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/glowstone_torch.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:glowstone_dust" - ] + "items": "minecraft:glowstone_dust" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/linear_light_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/linear_light_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/linear_light_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/linear_light_panel.json index 65800b1cb..0677b5c75 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/linear_light_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/linear_light_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/spotlight_light_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/spotlight_light_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/spotlight_light_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/spotlight_light_panel.json index 88d7c80ee..6306e9716 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/spotlight_light_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/spotlight_light_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/square_light_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/square_light_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/square_light_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/square_light_panel.json index c6605664b..5f241db59 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/square_light_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/square_light_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass.json index 80928128a..1068c6084 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ingot" - ] + "items": "galacticraft:tin_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_clear.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_clear.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_clear.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_clear.json index 588c83cd8..120c041b5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_clear.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_clear.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_strong.json b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_strong.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_strong.json rename to src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_strong.json index b570c59c9..811a46056 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/decorations/vacuum_glass_strong.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/decorations/vacuum_glass_strong.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_aluminum" - ] + "items": "galacticraft:compressed_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_campfire_cooking.json b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_campfire_cooking.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_campfire_cooking.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_campfire_cooking.json index 00a8fa6da..57e25b027 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_campfire_cooking.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_campfire_cooking.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ground_beef" - ] + "items": "galacticraft:ground_beef" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smelting.json b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smelting.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smelting.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smelting.json index 2a247b1f0..aa654762b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smelting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smelting.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ground_beef" - ] + "items": "galacticraft:ground_beef" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smoking.json b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smoking.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smoking.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smoking.json index 42fcb4f5b..269a1a97f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/beef_patty_from_smoking.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/beef_patty_from_smoking.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ground_beef" - ] + "items": "galacticraft:ground_beef" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/burger_bun.json b/src/main/generated/data/galacticraft/advancement/recipes/food/burger_bun.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/food/burger_bun.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/burger_bun.json index b3e180652..61052c8b0 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/burger_bun.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/burger_bun.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:egg" - ] + "items": "minecraft:egg" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_beef.json b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_beef.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/canned_beef.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/canned_beef.json index 92a9a0977..4494daa07 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_beef.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_beef.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_apple.json b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_apple.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_apple.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_apple.json index 1f8deaf63..60d40fa10 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_apple.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_apple.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_carrot.json b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_carrot.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_carrot.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_carrot.json index b054d6ee0..1c21f4b96 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_carrot.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_carrot.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_melon.json b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_melon.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_melon.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_melon.json index bbad9edf3..46ecea262 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_melon.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_melon.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_potato.json b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_potato.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_potato.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_potato.json index 7a3117b12..b1c0a90b7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/canned_dehydrated_potato.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/canned_dehydrated_potato.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/cheese_slice.json b/src/main/generated/data/galacticraft/advancement/recipes/food/cheese_slice.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/food/cheese_slice.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/cheese_slice.json index 4593f342d..7087ed3bd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/cheese_slice.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/cheese_slice.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_cheese_block" - ] + "items": "galacticraft:moon_cheese_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/cheeseburger.json b/src/main/generated/data/galacticraft/advancement/recipes/food/cheeseburger.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/cheeseburger.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/cheeseburger.json index c0a493e0c..68cfce93f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/cheeseburger.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/cheeseburger.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ground_beef" - ] + "items": "galacticraft:ground_beef" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/ground_beef.json b/src/main/generated/data/galacticraft/advancement/recipes/food/ground_beef.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/food/ground_beef.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/ground_beef.json index 06e0a1623..563d0be47 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/ground_beef.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/ground_beef.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:beef" - ] + "items": "minecraft:beef" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_blasting.json b/src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_blasting.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_blasting.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_blasting.json index 30295c335..d419ec093 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_blasting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_blasting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:throwable_meteor_chunk" - ] + "items": "galacticraft:throwable_meteor_chunk" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_smelting.json b/src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_smelting.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_smelting.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_smelting.json index 99960b838..7e4b91fe7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/hot_throwable_meteor_chunk_from_smelting.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/hot_throwable_meteor_chunk_from_smelting.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:throwable_meteor_chunk" - ] + "items": "galacticraft:throwable_meteor_chunk" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/food/moon_cheese_block.json b/src/main/generated/data/galacticraft/advancement/recipes/food/moon_cheese_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/food/moon_cheese_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/food/moon_cheese_block.json index a808fe359..94e4fa534 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/food/moon_cheese_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/food/moon_cheese_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:cheese_curd" - ] + "items": "galacticraft:cheese_curd" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating.json b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/heavy_plating.json rename to src/main/generated/data/galacticraft/advancement/recipes/heavy_plating.json index 8a5c9140a..6eeed5ce3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_bronze" - ] + "items": "galacticraft:compressed_bronze" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_flipped.json index ff2fcb472..9de096445 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_bronze" - ] + "items": "galacticraft:compressed_bronze" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t2.json b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t2.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t2.json rename to src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t2.json index 92db2025e..f69af287e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t2.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t2.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_meteoric_iron" - ] + "items": "galacticraft:compressed_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t3.json b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t3.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t3.json rename to src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t3.json index 7a10a0456..7647deeca 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/heavy_plating_t3.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/heavy_plating_t3.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_meteoric_iron" - ] + "items": "galacticraft:compressed_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/advanced_solar_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/advanced_solar_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/advanced_solar_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/advanced_solar_panel.json index 29e0c50aa..f04465f47 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/advanced_solar_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/advanced_solar_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:advanced_wafer" - ] + "items": "galacticraft:advanced_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json index fdf6c29c3..8a9a58697 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_aluminum_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ore" - ] + "items": "galacticraft:aluminum_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json index 8248ddf05..3511eb82b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:deepslate_aluminum_ore" - ] + "items": "galacticraft:deepslate_aluminum_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json index f77dbf56c..299f569bc 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_blasting_raw_aluminum.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_aluminum" - ] + "items": "galacticraft:raw_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_nuggets.json index 7cb95cd91..09a14aa12 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_nuggets.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_nugget" - ] + "items": "galacticraft:aluminum_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json index f8ab09ac2..fd30401f1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_aluminum_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ore" - ] + "items": "galacticraft:aluminum_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json index 356258458..9ae3da8ab 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:deepslate_aluminum_ore" - ] + "items": "galacticraft:deepslate_aluminum_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json index 2e6a6353a..b879f4977 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_ingot_from_smelting_raw_aluminum.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_aluminum" - ] + "items": "galacticraft:raw_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_nugget.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_nugget.json index 554f51bf3..cda59bdd3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_nugget.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_wire.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_wire.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_wire.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_wire.json index c0f6bad3b..50fe433c3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/aluminum_wire.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/aluminum_wire.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:glass_pane" - ] + "items": "minecraft:glass_pane" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/ambient_thermal_controller.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/ambient_thermal_controller.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/ambient_thermal_controller.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/ambient_thermal_controller.json index 8cd934dbf..d1374508a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/ambient_thermal_controller.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/ambient_thermal_controller.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_vent" - ] + "items": "galacticraft:oxygen_vent" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/atmospheric_valve.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/atmospheric_valve.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/atmospheric_valve.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/atmospheric_valve.json index 6a8608c62..628187c85 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/atmospheric_valve.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/atmospheric_valve.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/basic_solar_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/basic_solar_panel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/basic_solar_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/basic_solar_panel.json index bdf25a91e..d9bc0a0ec 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/basic_solar_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/basic_solar_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:basic_wafer" - ] + "items": "galacticraft:basic_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/battery.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/battery.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/battery.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/battery.json index 41952bbc9..f96b6c469 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/battery.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/battery.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_tin" - ] + "items": "galacticraft:compressed_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/beam_core.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/beam_core.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/beam_core.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/beam_core.json index 61e4903bd..d9267f5f2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/beam_core.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/beam_core.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_iron" - ] + "items": "galacticraft:compressed_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/black_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/black_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/black_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/black_parachute.json index ba26e9a3e..03e8f24d3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/black_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/black_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/blue_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/blue_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/blue_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/blue_parachute.json index e93a4ee6a..2c239856b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/blue_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/blue_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/brown_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/brown_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/brown_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/brown_parachute.json index f2d54b553..9b2bbdd1f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/brown_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/brown_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/canvas.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/canvas.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/canvas.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/canvas.json index ec3a062d4..65f0f44d7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/canvas.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/canvas.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:string" - ] + "items": "minecraft:string" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_charcoal.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_charcoal.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_charcoal.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_charcoal.json index ffe0ad06b..f3ea202aa 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_charcoal.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_charcoal.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:charcoal" - ] + "items": "minecraft:charcoal" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_coal.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_coal.json similarity index 94% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_coal.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_coal.json index e27af979e..69f653df4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_coal.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_coal.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "tag": "c:coal" + "items": "#c:coal" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_smelting_planks.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_smelting_planks.json similarity index 93% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_smelting_planks.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_smelting_planks.json index 768f9ad60..b9ed0409b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/carbon_fragments_from_smelting_planks.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/carbon_fragments_from_smelting_planks.json @@ -5,7 +5,7 @@ "conditions": { "items": [ { - "tag": "minecraft:planks" + "items": "#minecraft:planks" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/circuit_fabricator.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/circuit_fabricator.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/circuit_fabricator.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/circuit_fabricator.json index 5a8700b9f..d0ea2d72d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/circuit_fabricator.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/circuit_fabricator.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/coal_generator.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/coal_generator.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/coal_generator.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/coal_generator.json index dc45853bc..38e0334f1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/coal_generator.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/coal_generator.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/compressor.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/compressor.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/compressor.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/compressor.json index ab7106fe1..7a99acff2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/compressor.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/compressor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_canister.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_canister.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/copper_canister.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/copper_canister.json index 9d3d675be..647062e0c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_canister.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_canister.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:copper_ingot" - ] + "items": "minecraft:copper_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json index 652e21950..27acdad6c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_lunaslate_copper_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate_copper_ore" - ] + "items": "galacticraft:lunaslate_copper_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json index ea6aba097..e0aaeee18 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_blasting_moon_copper_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_copper_ore" - ] + "items": "galacticraft:moon_copper_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json index 57ec2d72a..cb829509e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_lunaslate_copper_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunaslate_copper_ore" - ] + "items": "galacticraft:lunaslate_copper_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json index bdb309ad5..866f13801 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/copper_ingot_from_smelting_moon_copper_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_copper_ore" - ] + "items": "galacticraft:moon_copper_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/cyan_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/cyan_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/cyan_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/cyan_parachute.json index fde4a9a93..e5592fa32 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/cyan_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/cyan_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_boots.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_boots.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_boots.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_boots.json index 433076ae2..d5ba682ec 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_boots.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_boots.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_chestplate.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_chestplate.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_chestplate.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_chestplate.json index c9fc9fa15..405f2a0f5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_chestplate.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_chestplate.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_helmet.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_helmet.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_helmet.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_helmet.json index 23a460ec1..1ac2f0fdb 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_helmet.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_helmet.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_desh_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_desh_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_desh_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_desh_ore.json index 97d7579b7..ce72566c9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_desh_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_desh_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ore" - ] + "items": "galacticraft:desh_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_raw_desh.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_raw_desh.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_raw_desh.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_raw_desh.json index 1c61433f3..5ce05eb6d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_blasting_raw_desh.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_blasting_raw_desh.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_desh" - ] + "items": "galacticraft:raw_desh" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_block.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_block.json index f50f15c4c..881ff6850 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_block" - ] + "items": "galacticraft:desh_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_nuggets.json index 0aaad28f5..e9c1a71d7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_nuggets.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_nugget" - ] + "items": "galacticraft:desh_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_desh_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_desh_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_desh_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_desh_ore.json index 5c2e82f99..086463d4a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_desh_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_desh_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ore" - ] + "items": "galacticraft:desh_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_raw_desh.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_raw_desh.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_raw_desh.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_raw_desh.json index d4b505fa8..9069f5ef9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_ingot_from_smelting_raw_desh.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_ingot_from_smelting_raw_desh.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_desh" - ] + "items": "galacticraft:raw_desh" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_leggings.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_leggings.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_leggings.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_leggings.json index b5c75f783..31b485f6b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_leggings.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_leggings.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_nugget.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_nugget.json index 3e0c78fee..4c89c2314 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_nugget.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_stick.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_stick.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/desh_stick.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/desh_stick.json index 555af6f44..b1db94004 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/desh_stick.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/desh_stick.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_stick" - ] + "items": "galacticraft:desh_stick" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_arc_furnace.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_arc_furnace.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/electric_arc_furnace.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/electric_arc_furnace.json index d00617231..0c3de1372 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_arc_furnace.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_arc_furnace.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:advanced_wafer" - ] + "items": "galacticraft:advanced_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor.json index ec2d40afd..4c7746d5a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor_upgrade.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor_upgrade.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor_upgrade.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor_upgrade.json index 605501a83..8cd1621fe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_compressor_upgrade.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_compressor_upgrade.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_ingot" - ] + "items": "galacticraft:aluminum_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_furnace.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_furnace.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/electric_furnace.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/electric_furnace.json index 33c5cfc78..02d7f7013 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/electric_furnace.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/electric_furnace.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:basic_wafer" - ] + "items": "galacticraft:basic_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/energy_storage_module.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/energy_storage_module.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/energy_storage_module.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/energy_storage_module.json index bfcc0edbf..dd95863cd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/energy_storage_module.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/energy_storage_module.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:battery" - ] + "items": "galacticraft:battery" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_manipulator.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_manipulator.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_manipulator.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_manipulator.json index 8b1562ef8..cd9c3da9e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_manipulator.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_manipulator.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_ingot" - ] + "items": "galacticraft:meteoric_iron_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway.json index 7c33bb0c0..6ee36b617 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:walkway" - ] + "items": "galacticraft:walkway" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway_shapeless.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway_shapeless.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway_shapeless.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway_shapeless.json index d590aff8a..702efe056 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/fluid_pipe_walkway_shapeless.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/fluid_pipe_walkway_shapeless.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:walkway" - ] + "items": "galacticraft:walkway" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/frequency_module.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/frequency_module.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/frequency_module.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/frequency_module.json index 500182ccb..69fbdd65a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/frequency_module.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/frequency_module.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_aluminum" - ] + "items": "galacticraft:compressed_aluminum" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/fuel_loader.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/fuel_loader.json index 3c2fd2a05..71c66c277 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/fuel_loader.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/fuel_loader.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:fuel_bucket" - ] + "items": "galacticraft:fuel_bucket" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/full_solar_panel.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/full_solar_panel.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/full_solar_panel.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/full_solar_panel.json index 259dc4730..17296d153 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/full_solar_panel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/full_solar_panel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:single_solar_module" - ] + "items": "galacticraft:single_solar_module" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/glass_fluid_pipe.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/glass_fluid_pipe.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/glass_fluid_pipe.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/glass_fluid_pipe.json index ba8a9ae15..72ddaa419 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/glass_fluid_pipe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/glass_fluid_pipe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:glass_pane" - ] + "items": "minecraft:glass_pane" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/gray_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/gray_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/gray_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/gray_parachute.json index 18608f41a..b12a04688 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/gray_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/gray_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/green_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/green_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/green_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/green_parachute.json index 9b04d678e..34b80be47 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/green_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/green_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_blasting_iron_shard.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_shard.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_blasting_iron_shard.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_shard.json index 20a1fe878..f1eec292f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_blasting_iron_shard.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_blasting_iron_shard.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_shard" - ] + "items": "galacticraft:iron_shard" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_smelting_iron_shard.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_shard.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_smelting_iron_shard.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_shard.json index d8bdaea79..82944d893 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/iron_ingot_from_smelting_iron_shard.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/iron_ingot_from_smelting_iron_shard.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:iron_shard" - ] + "items": "galacticraft:iron_shard" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/isothermal_fabric.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/isothermal_fabric.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/isothermal_fabric.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/isothermal_fabric.json index b3d0eccbb..d0481a9dc 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/isothermal_fabric.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/isothermal_fabric.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/large_oxygen_tank.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/large_oxygen_tank.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/large_oxygen_tank.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/large_oxygen_tank.json index d78127948..bbf9f4844 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/large_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/large_oxygen_tank.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_galena_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_galena_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_galena_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_galena_ore.json index 4d25d5e7e..ee3d9416c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_galena_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_galena_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:galena_ore" - ] + "items": "galacticraft:galena_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_raw_lead.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_raw_lead.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_raw_lead.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_raw_lead.json index e78c2cd13..7c36eaa0f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_blasting_raw_lead.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_blasting_raw_lead.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_lead" - ] + "items": "galacticraft:raw_lead" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_block.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_block.json index f2219e7e4..9bced1194 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lead_block" - ] + "items": "galacticraft:lead_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_nuggets.json index ced4dc306..3596b34b3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_nuggets.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lead_nugget" - ] + "items": "galacticraft:lead_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_galena_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_galena_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_galena_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_galena_ore.json index c32722a41..d98780531 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_galena_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_galena_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:galena_ore" - ] + "items": "galacticraft:galena_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_raw_lead.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_raw_lead.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_raw_lead.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_raw_lead.json index 7fd3fb8bd..348724daf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_ingot_from_smelting_raw_lead.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_ingot_from_smelting_raw_lead.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_lead" - ] + "items": "galacticraft:raw_lead" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_nugget.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lead_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lead_nugget.json index 6ddb235c9..e774211ba 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lead_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lead_nugget.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lead_ingot" - ] + "items": "galacticraft:lead_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/light_blue_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/light_blue_parachute.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/light_blue_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/light_blue_parachute.json index 2da9cd348..809bf1f82 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/light_blue_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/light_blue_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/light_gray_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/light_gray_parachute.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/light_gray_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/light_gray_parachute.json index 98c8d7eb5..d25fb65ee 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/light_gray_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/light_gray_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lime_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lime_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lime_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lime_parachute.json index 80fab16bc..de809f49f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lime_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lime_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/lunar_sapphire_from_block.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/lunar_sapphire_from_block.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/lunar_sapphire_from_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/lunar_sapphire_from_block.json index fb3c4eae8..5a16ad80d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/lunar_sapphire_from_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/lunar_sapphire_from_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:lunar_sapphire_block" - ] + "items": "galacticraft:lunar_sapphire_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/magenta_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/magenta_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/magenta_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/magenta_parachute.json index b827b30c1..d729eca04 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/magenta_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/magenta_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/medium_oxygen_tank.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/medium_oxygen_tank.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/medium_oxygen_tank.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/medium_oxygen_tank.json index be7cc1334..7bdd48838 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/medium_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/medium_oxygen_tank.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json index c19a93257..9b76b635f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_meteoric_iron" - ] + "items": "galacticraft:raw_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_block.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_block.json index 032732711..11b6f1723 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_block.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_block" - ] + "items": "galacticraft:meteoric_iron_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_nuggets.json index 0fc72fb63..ac46074fe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_nuggets.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_nugget" - ] + "items": "galacticraft:meteoric_iron_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json index 1a2ed5b5e..ba6ae1835 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_meteoric_iron" - ] + "items": "galacticraft:raw_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_nugget.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_nugget.json index eebbf3a43..51b1191aa 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/meteoric_iron_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/meteoric_iron_nugget.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:meteoric_iron_ingot" - ] + "items": "galacticraft:meteoric_iron_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/nose_cone.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/nose_cone.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/nose_cone.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/nose_cone.json index 3175dcbeb..1e80d2ef6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/nose_cone.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/nose_cone.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/olivine_block_from_shards.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/olivine_block_from_shards.json index ab5022bde..351e23f16 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/olivine_block_from_shards.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/olivine_block_from_shards.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:olivine_shard" - ] + "items": "galacticraft:olivine_shard" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/orange_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/orange_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/orange_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/orange_parachute.json index b85581d93..894e2eb22 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/orange_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/orange_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/orion_drive.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/orion_drive.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/orion_drive.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/orion_drive.json index 9addcc46a..cbeebbf6c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/orion_drive.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/orion_drive.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ilmenite_ore" - ] + "items": "galacticraft:ilmenite_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_bubble_distributor.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_bubble_distributor.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_bubble_distributor.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_bubble_distributor.json index 8c0e5e7b0..47500505f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_bubble_distributor.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_bubble_distributor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_collector.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_collector.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_collector.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_collector.json index 37cdc322e..de1577c0d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_collector.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_collector.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_concentrator" - ] + "items": "galacticraft:oxygen_concentrator" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_compressor.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_compressor.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_compressor.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_compressor.json index 8becab622..2a035804f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_compressor.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_compressor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_concentrator" - ] + "items": "galacticraft:oxygen_concentrator" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_concentrator.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_concentrator.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_concentrator.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_concentrator.json index 401445053..d6f71120c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_concentrator.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_concentrator.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_vent" - ] + "items": "galacticraft:oxygen_vent" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_decompressor.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_decompressor.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_decompressor.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_decompressor.json index 9f8dec190..78be25a66 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_decompressor.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_decompressor.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_concentrator" - ] + "items": "galacticraft:oxygen_concentrator" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_fan.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_fan.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_fan.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_fan.json index e892116a7..30ae2fdaf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_fan.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_fan.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:basic_wafer" - ] + "items": "galacticraft:basic_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_gear.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_gear.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_gear.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_gear.json index 259ef5d44..e17d8ff08 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_gear.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_gear.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:glass_fluid_pipe" - ] + "items": "galacticraft:glass_fluid_pipe" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_mask.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_mask.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_mask.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_mask.json index 060963dec..49d3afccf 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_mask.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_mask.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:glass_pane" - ] + "items": "minecraft:glass_pane" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_sealer.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_sealer.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_sealer.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_sealer.json index c58eff3ef..ca7b4c650 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_sealer.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_sealer.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:oxygen_fan" - ] + "items": "galacticraft:oxygen_fan" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_storage_module.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_storage_module.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_storage_module.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_storage_module.json index df11530dd..71d669fe7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_storage_module.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_storage_module.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:large_oxygen_tank" - ] + "items": "galacticraft:large_oxygen_tank" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_vent.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_vent.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_vent.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_vent.json index ffdc66ef9..be08e9194 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/oxygen_vent.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/oxygen_vent.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_tin" - ] + "items": "galacticraft:compressed_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/pink_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/pink_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/pink_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/pink_parachute.json index 2f3b89913..0e5cb6310 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/pink_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/pink_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/purple_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/purple_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/purple_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/purple_parachute.json index aeb7dd5ad..0f6a93290 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/purple_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/purple_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/red_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/red_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/red_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/red_parachute.json index 042c515a3..c718e12a4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/red_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/red_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/refinery.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/refinery.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/refinery.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/refinery.json index 1e55273fd..0294e39c4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/refinery.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/refinery.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:crude_oil_bucket" - ] + "items": "galacticraft:crude_oil_bucket" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_engine.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_engine.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_engine.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_engine.json index 189f298be..89a3a6189 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_engine.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_engine.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_fin.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_fin.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_fin.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_fin.json index 29917ea7d..9412a1bf2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_fin.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_fin.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:heavy_plating" - ] + "items": "galacticraft:heavy_plating" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_workbench.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_workbench.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_workbench.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_workbench.json index 4105f9474..f7011cbe3 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/rocket_workbench.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/rocket_workbench.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:advanced_wafer" - ] + "items": "galacticraft:advanced_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/sealable_aluminum_wire.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/sealable_aluminum_wire.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/sealable_aluminum_wire.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/sealable_aluminum_wire.json index 2c09ac39e..a4892b478 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/sealable_aluminum_wire.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/sealable_aluminum_wire.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:aluminum_wire" - ] + "items": "galacticraft:aluminum_wire" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_glasses.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_glasses.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_glasses.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_glasses.json index 03d3beed6..74a910714 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_glasses.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_glasses.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:sensor_lens" - ] + "items": "galacticraft:sensor_lens" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_lens.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_lens.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_lens.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_lens.json index 3a67263d4..1e5b04139 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/sensor_lens.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/sensor_lens.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_meteoric_iron" - ] + "items": "galacticraft:compressed_meteoric_iron" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/single_solar_module.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/single_solar_module.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/single_solar_module.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/single_solar_module.json index 1abf57880..5b5830cad 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/single_solar_module.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/single_solar_module.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:solar_array_wafer" - ] + "items": "galacticraft:solar_array_wafer" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/small_oxygen_tank.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/small_oxygen_tank.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/small_oxygen_tank.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/small_oxygen_tank.json index 71e9ee51b..5e4a73e8f 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/small_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/small_oxygen_tank.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_canister" - ] + "items": "galacticraft:tin_canister" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/standard_wrench.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/standard_wrench.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/standard_wrench.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/standard_wrench.json index bf74fb52f..090981fa5 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/standard_wrench.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/standard_wrench.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/steel_pole.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/steel_pole.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/steel_pole.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/steel_pole.json index fe4015913..3d82694e7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/steel_pole.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/steel_pole.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_cloth.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_cloth.json similarity index 93% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_cloth.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_cloth.json index d80abdebc..18da7fee1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_cloth.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_cloth.json @@ -11,7 +11,7 @@ "conditions": { "items": [ { - "tag": "minecraft:wool" + "items": "#minecraft:wool" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_boots.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_boots.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_boots.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_boots.json index 9eef69ce1..47ad3f25a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_boots.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_boots.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:thermal_cloth" - ] + "items": "galacticraft:thermal_cloth" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_chestpiece.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_chestpiece.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_chestpiece.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_chestpiece.json index c0bea409b..2f7b2bda8 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_chestpiece.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_chestpiece.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:thermal_cloth" - ] + "items": "galacticraft:thermal_cloth" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_helmet.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_helmet.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_helmet.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_helmet.json index b497e66f7..b9cf01894 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_helmet.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_helmet.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:thermal_cloth" - ] + "items": "galacticraft:thermal_cloth" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_leggings.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_leggings.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_leggings.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_leggings.json index 5444f6342..057f34822 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/thermal_padding_leggings.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/thermal_padding_leggings.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:thermal_cloth" - ] + "items": "galacticraft:thermal_cloth" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_canister.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_canister.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_canister.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_canister.json index b121421b6..978d87832 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_canister.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_canister.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ingot" - ] + "items": "galacticraft:tin_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json index 6d6fc4266..9024aaf15 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_deepslate_tin_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:deepslate_tin_ore" - ] + "items": "galacticraft:deepslate_tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json index 9d6595ef7..c5fefe1d1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_moon_tin_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_tin_ore" - ] + "items": "galacticraft:moon_tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_raw_tin.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_raw_tin.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_raw_tin.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_raw_tin.json index 4db7e679f..891a36c23 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_raw_tin.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_raw_tin.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_tin" - ] + "items": "galacticraft:raw_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_tin_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_tin_ore.json index 7f17c19ff..914c125c0 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_blasting_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_blasting_tin_ore.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ore" - ] + "items": "galacticraft:tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_nuggets.json index 2d4c2f2ee..1ebafe3a2 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_nuggets.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_nugget" - ] + "items": "galacticraft:tin_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json index 86ef4d9a6..c392e48d6 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_deepslate_tin_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:deepslate_tin_ore" - ] + "items": "galacticraft:deepslate_tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json index b12b6f2c1..c1a09a2ad 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_moon_tin_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:moon_tin_ore" - ] + "items": "galacticraft:moon_tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_raw_tin.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_raw_tin.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_raw_tin.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_raw_tin.json index 8632d8008..b900869af 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_raw_tin.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_raw_tin.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_tin" - ] + "items": "galacticraft:raw_tin" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_tin_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_tin_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_tin_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_tin_ore.json index e46d9c367..78e36dc93 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_ingot_from_smelting_tin_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_ingot_from_smelting_tin_ore.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ore" - ] + "items": "galacticraft:tin_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_nugget.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/tin_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/tin_nugget.json index ef4f0086a..93a91128a 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/tin_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/tin_nugget.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:tin_ingot" - ] + "items": "galacticraft:tin_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json index 8a900c7c4..64b963e8c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_ilmenite_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ilmenite_ore" - ] + "items": "galacticraft:ilmenite_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json index 0da1d66c5..e416b841d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_blasting_raw_titanium.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_titanium" - ] + "items": "galacticraft:raw_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_block.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_block.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_block.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_block.json index 297fe7cd5..68e6b1e5b 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_block.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_block" - ] + "items": "galacticraft:titanium_block" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_nuggets.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_nuggets.json index 19997282b..a8d5e1811 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_nuggets.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_nugget" - ] + "items": "galacticraft:titanium_nugget" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json index d829425c6..5ffddf783 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_ilmenite_ore.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:ilmenite_ore" - ] + "items": "galacticraft:ilmenite_ore" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json index 62419d719..0b49ba3a9 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_ingot_from_smelting_raw_titanium.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:raw_titanium" - ] + "items": "galacticraft:raw_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_nugget.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_nugget.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_nugget.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_nugget.json index b37f736b0..4141df341 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/titanium_nugget.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/titanium_nugget.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:titanium_ingot" - ] + "items": "galacticraft:titanium_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/walkway.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/walkway.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/walkway.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/walkway.json index 90bf5eb79..48111576c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/walkway.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/walkway.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/white_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/white_parachute.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/white_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/white_parachute.json index 7691de55e..825377fd1 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/white_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/white_parachute.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:canvas" - ] + "items": "galacticraft:canvas" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway.json index da613b457..52f8a8bfe 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:walkway" - ] + "items": "galacticraft:walkway" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway_shapeless.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway_shapeless.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway_shapeless.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway_shapeless.json index 4e9abb91c..aae6dc460 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/wire_walkway_shapeless.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/wire_walkway_shapeless.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:walkway" - ] + "items": "galacticraft:walkway" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/misc/yellow_parachute.json b/src/main/generated/data/galacticraft/advancement/recipes/misc/yellow_parachute.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/misc/yellow_parachute.json rename to src/main/generated/data/galacticraft/advancement/recipes/misc/yellow_parachute.json index c42273fa9..08062f8dd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/misc/yellow_parachute.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/misc/yellow_parachute.json @@ -11,9 +11,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:white_parachute" - ] + "items": "galacticraft:white_parachute" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/solar_array_wafer.json b/src/main/generated/data/galacticraft/advancement/recipes/solar_array_wafer.json similarity index 100% rename from src/main/generated/data/galacticraft/advancements/recipes/solar_array_wafer.json rename to src/main/generated/data/galacticraft/advancement/recipes/solar_array_wafer.json diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe.json index e0809b9dd..11ec2b842 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe_flipped.json index c1e553dc8..d83aba7a0 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_axe_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_axe_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe.json index c6e152c11..7d8354393 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe_flipped.json index df601e6d8..31f7091cd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_hoe_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_hoe_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_pickaxe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_pickaxe.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_pickaxe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_pickaxe.json index c94fa55e9..757622848 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_pickaxe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_pickaxe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_shovel.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_shovel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/desh_shovel.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/desh_shovel.json index aaaa836ac..1b8429bed 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/desh_shovel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/desh_shovel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:desh_ingot" - ] + "items": "galacticraft:desh_ingot" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe.json index 7b60bd383..b70e4d672 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe_flipped.json index 776b58fff..2a4419dd8 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_axe_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_axe_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe.json index 300d7e017..fa7109ddd 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe_flipped.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe_flipped.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe_flipped.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe_flipped.json index 27734bea8..93a072c7c 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_hoe_flipped.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_hoe_flipped.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_pickaxe.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_pickaxe.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_pickaxe.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_pickaxe.json index 511aa6e9e..08fdb9577 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_pickaxe.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_pickaxe.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_shovel.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_shovel.json similarity index 87% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_shovel.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_shovel.json index 4574412bb..570415930 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/heavy_duty_shovel.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/heavy_duty_shovel.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_axe_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_axe_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_axe_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_axe_smithing.json index 505915c2b..d72925d29 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_axe_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_axe_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_hoe_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_hoe_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_hoe_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_hoe_smithing.json index 552fa6999..7cb2f3e23 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_hoe_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_hoe_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_pickaxe_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_pickaxe_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_pickaxe_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_pickaxe_smithing.json index b09702560..ffe5c948e 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_pickaxe_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_pickaxe_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_shovel_smithing.json b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_shovel_smithing.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_shovel_smithing.json rename to src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_shovel_smithing.json index d02a73412..d5d08cfb7 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/tools/titanium_shovel_smithing.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/tools/titanium_shovel_smithing.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_titanium" - ] + "items": "galacticraft:compressed_titanium" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/transportation/fueling_pad.json b/src/main/generated/data/galacticraft/advancement/recipes/transportation/fueling_pad.json similarity index 86% rename from src/main/generated/data/galacticraft/advancements/recipes/transportation/fueling_pad.json rename to src/main/generated/data/galacticraft/advancement/recipes/transportation/fueling_pad.json index 91880f5c8..7ce57161d 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/transportation/fueling_pad.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/transportation/fueling_pad.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "galacticraft:compressed_steel" - ] + "items": "galacticraft:compressed_steel" } ] }, diff --git a/src/main/generated/data/galacticraft/advancements/recipes/transportation/rocket_launch_pad.json b/src/main/generated/data/galacticraft/advancement/recipes/transportation/rocket_launch_pad.json similarity index 88% rename from src/main/generated/data/galacticraft/advancements/recipes/transportation/rocket_launch_pad.json rename to src/main/generated/data/galacticraft/advancement/recipes/transportation/rocket_launch_pad.json index b5b906130..69b116ef4 100644 --- a/src/main/generated/data/galacticraft/advancements/recipes/transportation/rocket_launch_pad.json +++ b/src/main/generated/data/galacticraft/advancement/recipes/transportation/rocket_launch_pad.json @@ -5,9 +5,7 @@ "conditions": { "items": [ { - "items": [ - "minecraft:iron_block" - ] + "items": "minecraft:iron_block" } ] }, diff --git a/src/main/generated/data/galacticraft/banner_pattern/rocket.json b/src/main/generated/data/galacticraft/banner_pattern/rocket.json new file mode 100644 index 000000000..a5457081b --- /dev/null +++ b/src/main/generated/data/galacticraft/banner_pattern/rocket.json @@ -0,0 +1,4 @@ +{ + "asset_id": "galacticraft:rocket", + "translation_key": "banner_pattern.galacticraft.rocket" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/dimension_type/moon.json b/src/main/generated/data/galacticraft/dimension_type/moon.json index 0123cdd3a..b4d2a56cf 100644 --- a/src/main/generated/data/galacticraft/dimension_type/moon.json +++ b/src/main/generated/data/galacticraft/dimension_type/moon.json @@ -13,10 +13,8 @@ "monster_spawn_block_light_limit": 0, "monster_spawn_light_level": { "type": "minecraft:uniform", - "value": { - "max_inclusive": 7, - "min_inclusive": 0 - } + "max_inclusive": 7, + "min_inclusive": 0 }, "natural": true, "piglin_safe": false, diff --git a/src/main/generated/data/galacticraft/dimension_type/venus.json b/src/main/generated/data/galacticraft/dimension_type/venus.json index d23582d50..44c647f05 100644 --- a/src/main/generated/data/galacticraft/dimension_type/venus.json +++ b/src/main/generated/data/galacticraft/dimension_type/venus.json @@ -13,10 +13,8 @@ "monster_spawn_block_light_limit": 0, "monster_spawn_light_level": { "type": "minecraft:uniform", - "value": { - "max_inclusive": 7, - "min_inclusive": 0 - } + "max_inclusive": 7, + "min_inclusive": 0 }, "natural": false, "piglin_safe": false, diff --git a/src/main/generated/data/galacticraft/celestial_body/asteroids.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/asteroids.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/asteroids.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/asteroids.json diff --git a/src/main/generated/data/galacticraft/celestial_body/earth.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/earth.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/earth.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/earth.json diff --git a/src/main/generated/data/galacticraft/celestial_body/jupiter.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/jupiter.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/jupiter.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/jupiter.json diff --git a/src/main/generated/data/galacticraft/celestial_body/mars.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/mars.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/mars.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/mars.json diff --git a/src/main/generated/data/galacticraft/celestial_body/mercury.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/mercury.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/mercury.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/mercury.json diff --git a/src/main/generated/data/galacticraft/celestial_body/moon.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/moon.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/moon.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/moon.json diff --git a/src/main/generated/data/galacticraft/celestial_body/neptune.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/neptune.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/neptune.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/neptune.json diff --git a/src/main/generated/data/galacticraft/celestial_body/saturn.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/saturn.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/saturn.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/saturn.json diff --git a/src/main/generated/data/galacticraft/celestial_body/sol.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/sol.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/sol.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/sol.json diff --git a/src/main/generated/data/galacticraft/celestial_body/uranus.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/uranus.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/uranus.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/uranus.json diff --git a/src/main/generated/data/galacticraft/celestial_body/venus.json b/src/main/generated/data/galacticraft/galacticraft/celestial_body/venus.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_body/venus.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_body/venus.json diff --git a/src/main/generated/data/galacticraft/celestial_teleporter/direct.json b/src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/direct.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_teleporter/direct.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/direct.json diff --git a/src/main/generated/data/galacticraft/celestial_teleporter/lander.json b/src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/lander.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_teleporter/lander.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/lander.json diff --git a/src/main/generated/data/galacticraft/celestial_teleporter/overworld.json b/src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/overworld.json similarity index 100% rename from src/main/generated/data/galacticraft/celestial_teleporter/overworld.json rename to src/main/generated/data/galacticraft/galacticraft/celestial_teleporter/overworld.json diff --git a/src/main/generated/data/galacticraft/galaxy/milky_way.json b/src/main/generated/data/galacticraft/galacticraft/galaxy/milky_way.json similarity index 100% rename from src/main/generated/data/galacticraft/galaxy/milky_way.json rename to src/main/generated/data/galacticraft/galacticraft/galaxy/milky_way.json diff --git a/src/main/generated/data/galacticraft/rocket_body/tier_1.json b/src/main/generated/data/galacticraft/galacticraft/rocket_body/tier_1.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_body/tier_1.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_body/tier_1.json diff --git a/src/main/generated/data/galacticraft/rocket_booster/tier_1.json b/src/main/generated/data/galacticraft/galacticraft/rocket_booster/tier_1.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_booster/tier_1.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_booster/tier_1.json diff --git a/src/main/generated/data/galacticraft/rocket_cone/advanced_cone.json b/src/main/generated/data/galacticraft/galacticraft/rocket_cone/advanced_cone.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_cone/advanced_cone.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_cone/advanced_cone.json diff --git a/src/main/generated/data/galacticraft/rocket_cone/sloped_cone.json b/src/main/generated/data/galacticraft/galacticraft/rocket_cone/sloped_cone.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_cone/sloped_cone.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_cone/sloped_cone.json diff --git a/src/main/generated/data/galacticraft/rocket_cone/tier_1.json b/src/main/generated/data/galacticraft/galacticraft/rocket_cone/tier_1.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_cone/tier_1.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_cone/tier_1.json diff --git a/src/main/generated/data/galacticraft/rocket_engine/tier_1.json b/src/main/generated/data/galacticraft/galacticraft/rocket_engine/tier_1.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_engine/tier_1.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_engine/tier_1.json diff --git a/src/main/generated/data/galacticraft/rocket_fin/tier_1.json b/src/main/generated/data/galacticraft/galacticraft/rocket_fin/tier_1.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_fin/tier_1.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_fin/tier_1.json diff --git a/src/main/generated/data/galacticraft/rocket_upgrade/storage.json b/src/main/generated/data/galacticraft/galacticraft/rocket_upgrade/storage.json similarity index 100% rename from src/main/generated/data/galacticraft/rocket_upgrade/storage.json rename to src/main/generated/data/galacticraft/galacticraft/rocket_upgrade/storage.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/advanced_solar_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/advanced_solar_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/advanced_solar_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/advanced_solar_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_controller.json b/src/main/generated/data/galacticraft/loot_table/blocks/air_lock_controller.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_controller.json rename to src/main/generated/data/galacticraft/loot_table/blocks/air_lock_controller.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_frame.json b/src/main/generated/data/galacticraft/loot_table/blocks/air_lock_frame.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_frame.json rename to src/main/generated/data/galacticraft/loot_table/blocks/air_lock_frame.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_seal.json b/src/main/generated/data/galacticraft/loot_table/blocks/air_lock_seal.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/air_lock_seal.json rename to src/main/generated/data/galacticraft/loot_table/blocks/air_lock_seal.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_ore.json index 81c65c522..c5eb4e17a 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_wire.json b/src/main/generated/data/galacticraft/loot_table/blocks/aluminum_wire.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/aluminum_wire.json rename to src/main/generated/data/galacticraft/loot_table/blocks/aluminum_wire.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock_block_1.json b/src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock_block_1.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock_block_1.json rename to src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock_block_1.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock_block_2.json b/src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock_block_2.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/asteroid_rock_block_2.json rename to src/main/generated/data/galacticraft/loot_table/blocks/asteroid_rock_block_2.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/basic_solar_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/basic_solar_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/basic_solar_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/basic_solar_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/black_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/black_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/black_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/black_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/blue_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/blue_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/blue_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/blue_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/bronze_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/brown_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/brown_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/brown_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/brown_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cavernous_vines.json b/src/main/generated/data/galacticraft/loot_table/blocks/cavernous_vines.json similarity index 84% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cavernous_vines.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cavernous_vines.json index 8f057dc74..61927b5f3 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/cavernous_vines.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/cavernous_vines.json @@ -7,9 +7,7 @@ { "condition": "minecraft:match_tool", "predicate": { - "items": [ - "minecraft:shears" - ] + "items": "minecraft:shears" } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/chiseled_moon_rock_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/chiseled_moon_rock_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/chiseled_moon_rock_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/circuit_fabricator.json b/src/main/generated/data/galacticraft/loot_table/blocks/circuit_fabricator.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/circuit_fabricator.json rename to src/main/generated/data/galacticraft/loot_table/blocks/circuit_fabricator.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/coal_generator.json b/src/main/generated/data/galacticraft/loot_table/blocks/coal_generator.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/coal_generator.json rename to src/main/generated/data/galacticraft/loot_table/blocks/coal_generator.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_lunaslate_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_lunaslate_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cobbled_moon_rock_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cobbled_moon_rock_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/compressor.json b/src/main/generated/data/galacticraft/loot_table/blocks/compressor.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/compressor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/compressor.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/copper_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/copper_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_basalt_brick_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cracked_moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cracked_moon_rock_brick_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cryogenic_chamber.json b/src/main/generated/data/galacticraft/loot_table/blocks/cryogenic_chamber.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cryogenic_chamber.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cryogenic_chamber.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/cyan_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/cyan_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/cyan_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/cyan_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/dark_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/dark_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/dashed_light_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/dashed_light_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/dashed_light_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/dashed_light_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_aluminum_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_aluminum_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_aluminum_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/deepslate_aluminum_ore.json index 81c65c522..c5eb4e17a 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_aluminum_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_silicon_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_silicon_ore.json similarity index 80% rename from src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_silicon_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/deepslate_silicon_ore.json index b082a675f..0f7bbb0ae 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_silicon_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_silicon_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_tin_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_tin_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_tin_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/deepslate_tin_ore.json index 5d9252386..c2b4a8bc0 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/deepslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/deepslate_tin_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/desh_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/desh_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/desh_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/desh_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/desh_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/desh_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/desh_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/desh_ore.json index 02eeaec61..2dacc6b8f 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/desh_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/desh_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_aluminum_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_bronze_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_copper_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_copper_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_dark_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_dark_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_iron_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_meteoric_iron_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_steel_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_steel_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_tin_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_tin_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/detailed_titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/detailed_titanium_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/diagonal_light_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/diagonal_light_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/diagonal_light_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/diagonal_light_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/electric_arc_furnace.json b/src/main/generated/data/galacticraft/loot_table/blocks/electric_arc_furnace.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/electric_arc_furnace.json rename to src/main/generated/data/galacticraft/loot_table/blocks/electric_arc_furnace.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/electric_compressor.json b/src/main/generated/data/galacticraft/loot_table/blocks/electric_compressor.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/electric_compressor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/electric_compressor.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/electric_furnace.json b/src/main/generated/data/galacticraft/loot_table/blocks/electric_furnace.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/electric_furnace.json rename to src/main/generated/data/galacticraft/loot_table/blocks/electric_furnace.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/energy_storage_module.json b/src/main/generated/data/galacticraft/loot_table/blocks/energy_storage_module.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/energy_storage_module.json rename to src/main/generated/data/galacticraft/loot_table/blocks/energy_storage_module.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/fallen_meteor.json b/src/main/generated/data/galacticraft/loot_table/blocks/fallen_meteor.json similarity index 77% rename from src/main/generated/data/galacticraft/loot_tables/blocks/fallen_meteor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/fallen_meteor.json index 1a352f9f1..159e64d07 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/fallen_meteor.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/fallen_meteor.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/fluid_pipe_walkway.json b/src/main/generated/data/galacticraft/loot_table/blocks/fluid_pipe_walkway.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/fluid_pipe_walkway.json rename to src/main/generated/data/galacticraft/loot_table/blocks/fluid_pipe_walkway.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/fuel_loader.json b/src/main/generated/data/galacticraft/loot_table/blocks/fuel_loader.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/fuel_loader.json rename to src/main/generated/data/galacticraft/loot_table/blocks/fuel_loader.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/fueling_pad.json b/src/main/generated/data/galacticraft/loot_table/blocks/fueling_pad.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/fueling_pad.json rename to src/main/generated/data/galacticraft/loot_table/blocks/fueling_pad.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/galena_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/galena_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/galena_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/galena_ore.json index 0acc90c06..26abbf31d 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/galena_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/galena_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/glass_fluid_pipe.json b/src/main/generated/data/galacticraft/loot_table/blocks/glass_fluid_pipe.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/glass_fluid_pipe.json rename to src/main/generated/data/galacticraft/loot_table/blocks/glass_fluid_pipe.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/glowstone_lantern.json b/src/main/generated/data/galacticraft/loot_table/blocks/glowstone_lantern.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/glowstone_lantern.json rename to src/main/generated/data/galacticraft/loot_table/blocks/glowstone_lantern.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/glowstone_torch.json b/src/main/generated/data/galacticraft/loot_table/blocks/glowstone_torch.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/glowstone_torch.json rename to src/main/generated/data/galacticraft/loot_table/blocks/glowstone_torch.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/grating.json b/src/main/generated/data/galacticraft/loot_table/blocks/grating.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/grating.json rename to src/main/generated/data/galacticraft/loot_table/blocks/grating.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/gray_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/gray_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/gray_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/gray_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/green_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/green_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/green_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/green_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/hard_venus_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/hard_venus_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/hard_venus_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/hard_venus_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/heavy_sealable_aluminum_wire.json b/src/main/generated/data/galacticraft/loot_table/blocks/heavy_sealable_aluminum_wire.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/heavy_sealable_aluminum_wire.json rename to src/main/generated/data/galacticraft/loot_table/blocks/heavy_sealable_aluminum_wire.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/ilmenite_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/ilmenite_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/ilmenite_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/ilmenite_ore.json index 6c7dbe4e0..e9c13151e 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/ilmenite_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/ilmenite_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/iron_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/iron_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lead_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/lead_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lead_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lead_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/light_blue_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/light_blue_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/light_blue_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/light_blue_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/light_gray_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/light_gray_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/light_gray_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/light_gray_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lime_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/lime_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lime_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lime_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/linear_light_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/linear_light_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/linear_light_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/linear_light_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunar_cartography_table.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunar_cartography_table.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunar_cartography_table.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunar_cartography_table.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunar_sapphire_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunar_sapphire_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunar_sapphire_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunar_sapphire_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate.json similarity index 71% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate.json index 19689f043..813e7e25d 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_copper_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_copper_ore.json similarity index 79% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_copper_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_copper_ore.json index 077224bed..7753d3093 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_copper_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_copper_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_tin_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_tin_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_tin_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_tin_ore.json index ec9800f26..70e2f04ce 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_tin_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/lunaslate_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/lunaslate_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/magenta_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/magenta_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/magenta_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/magenta_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_cobblestone_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_cobblestone_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_stone.json similarity index 71% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_stone.json index 34e702ea3..ba64e709f 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/mars_stone.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_stone_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_stone_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_sub_surface_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_sub_surface_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_sub_surface_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_sub_surface_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/mars_surface_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/mars_surface_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/mars_surface_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/mars_surface_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/meteoric_iron_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_brick_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_basalt_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_basalt_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_copper_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_copper_ore.json similarity index 79% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_copper_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_copper_ore.json index 077224bed..7753d3093 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_copper_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/moon_copper_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_dirt.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_dirt.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_dirt.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_dirt.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_dirt_path.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_dirt_path.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_dirt_path.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_dirt_path.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_dungeon_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_dungeon_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_dungeon_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_dungeon_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock.json similarity index 71% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock.json index 8a10197df..6a78d73d8 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_brick_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_pillar.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_pillar.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_pillar.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_rock_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_rock_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_surface_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_surface_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_surface_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_surface_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_tin_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_tin_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_tin_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_tin_ore.json index 6f06d4363..711799f69 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_tin_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/moon_tin_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/moon_turf.json b/src/main/generated/data/galacticraft/loot_table/blocks/moon_turf.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/moon_turf.json rename to src/main/generated/data/galacticraft/loot_table/blocks/moon_turf.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json b/src/main/generated/data/galacticraft/loot_table/blocks/olivine_basalt.json similarity index 81% rename from src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json rename to src/main/generated/data/galacticraft/loot_table/blocks/olivine_basalt.json index 84746e6bc..34e6dc1e6 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_basalt.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/olivine_basalt.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/olivine_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/olivine_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/olivine_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json b/src/main/generated/data/galacticraft/loot_table/blocks/olivine_cluster.json similarity index 83% rename from src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json rename to src/main/generated/data/galacticraft/loot_table/blocks/olivine_cluster.json index 9b37531a3..d6c7b8e47 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/olivine_cluster.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/olivine_cluster.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], @@ -35,7 +37,7 @@ { "condition": "minecraft:match_tool", "predicate": { - "tag": "minecraft:cluster_max_harvestables" + "items": "#minecraft:cluster_max_harvestables" } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/orange_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/orange_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/orange_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/orange_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_bubble_distributor.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_bubble_distributor.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_bubble_distributor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_bubble_distributor.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_collector.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_collector.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_collector.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_collector.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_compressor.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_compressor.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_compressor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_compressor.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_decompressor.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_decompressor.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_decompressor.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_decompressor.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_sealer.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_sealer.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_sealer.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_sealer.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_storage_module.json b/src/main/generated/data/galacticraft/loot_table/blocks/oxygen_storage_module.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/oxygen_storage_module.json rename to src/main/generated/data/galacticraft/loot_table/blocks/oxygen_storage_module.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/parachest.json b/src/main/generated/data/galacticraft/loot_table/blocks/parachest.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/parachest.json rename to src/main/generated/data/galacticraft/loot_table/blocks/parachest.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/pink_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/pink_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/pink_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/pink_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/player_transport_tube.json b/src/main/generated/data/galacticraft/loot_table/blocks/player_transport_tube.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/player_transport_tube.json rename to src/main/generated/data/galacticraft/loot_table/blocks/player_transport_tube.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/polished_moon_rock_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/polished_moon_rock_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/pumice.json b/src/main/generated/data/galacticraft/loot_table/blocks/pumice.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/pumice.json rename to src/main/generated/data/galacticraft/loot_table/blocks/pumice.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/purple_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/purple_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/purple_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/purple_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/red_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/red_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/red_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/red_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/refinery.json b/src/main/generated/data/galacticraft/loot_table/blocks/refinery.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/refinery.json rename to src/main/generated/data/galacticraft/loot_table/blocks/refinery.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json b/src/main/generated/data/galacticraft/loot_table/blocks/rich_olivine_basalt.json similarity index 81% rename from src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json rename to src/main/generated/data/galacticraft/loot_table/blocks/rich_olivine_basalt.json index 10c36b63a..d5f464494 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/rich_olivine_basalt.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/rich_olivine_basalt.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/rocket_launch_pad.json b/src/main/generated/data/galacticraft/loot_table/blocks/rocket_launch_pad.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/rocket_launch_pad.json rename to src/main/generated/data/galacticraft/loot_table/blocks/rocket_launch_pad.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/rocket_workbench.json b/src/main/generated/data/galacticraft/loot_table/blocks/rocket_workbench.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/rocket_workbench.json rename to src/main/generated/data/galacticraft/loot_table/blocks/rocket_workbench.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/scorched_venus_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/scorched_venus_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/scorched_venus_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/scorched_venus_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/sealable_aluminum_wire.json b/src/main/generated/data/galacticraft/loot_table/blocks/sealable_aluminum_wire.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/sealable_aluminum_wire.json rename to src/main/generated/data/galacticraft/loot_table/blocks/sealable_aluminum_wire.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/silicon_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/silicon_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/silicon_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/silicon_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/silicon_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/silicon_ore.json similarity index 79% rename from src/main/generated/data/galacticraft/loot_tables/blocks/silicon_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/silicon_ore.json index 9ee15d568..9168968f9 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/silicon_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/silicon_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/soft_venus_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/soft_venus_rock.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/soft_venus_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/soft_venus_rock.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/spotlight_light_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/spotlight_light_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/spotlight_light_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/spotlight_light_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/square_light_panel.json b/src/main/generated/data/galacticraft/loot_table/blocks/square_light_panel.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/square_light_panel.json rename to src/main/generated/data/galacticraft/loot_table/blocks/square_light_panel.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/steel_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/steel_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_ladder.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_ladder.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_ladder.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_ladder.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_ore.json b/src/main/generated/data/galacticraft/loot_table/blocks/tin_ore.json similarity index 75% rename from src/main/generated/data/galacticraft/loot_tables/blocks/tin_ore.json rename to src/main/generated/data/galacticraft/loot_table/blocks/tin_ore.json index 8a4ae02c5..6783d088b 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/tin_ore.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/tin_ore.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/titanium_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/titanium_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/titanium_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/titanium_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration.json b/src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration.json rename to src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_slab.json b/src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_slab.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_slab.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_stairs.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_stairs.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_wall.json b/src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_wall.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/loot_table/blocks/titanium_decoration_wall.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/unlit_lantern.json b/src/main/generated/data/galacticraft/loot_table/blocks/unlit_lantern.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/unlit_lantern.json rename to src/main/generated/data/galacticraft/loot_table/blocks/unlit_lantern.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/unlit_torch.json b/src/main/generated/data/galacticraft/loot_table/blocks/unlit_torch.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/unlit_torch.json rename to src/main/generated/data/galacticraft/loot_table/blocks/unlit_torch.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass.json b/src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass.json rename to src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass_clear.json b/src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass_clear.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass_clear.json rename to src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass_clear.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass_strong.json b/src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass_strong.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/vacuum_glass_strong.json rename to src/main/generated/data/galacticraft/loot_table/blocks/vacuum_glass_strong.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/vapor_spout.json b/src/main/generated/data/galacticraft/loot_table/blocks/vapor_spout.json similarity index 71% rename from src/main/generated/data/galacticraft/loot_tables/blocks/vapor_spout.json rename to src/main/generated/data/galacticraft/loot_table/blocks/vapor_spout.json index 05e56e5fd..026e5693d 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/vapor_spout.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/vapor_spout.json @@ -13,14 +13,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/volcanic_rock.json b/src/main/generated/data/galacticraft/loot_table/blocks/volcanic_rock.json similarity index 60% rename from src/main/generated/data/galacticraft/loot_tables/blocks/volcanic_rock.json rename to src/main/generated/data/galacticraft/loot_table/blocks/volcanic_rock.json index 0c42f393f..a29f52d3f 100644 --- a/src/main/generated/data/galacticraft/loot_tables/blocks/volcanic_rock.json +++ b/src/main/generated/data/galacticraft/loot_table/blocks/volcanic_rock.json @@ -7,14 +7,16 @@ { "condition": "minecraft:match_tool", "predicate": { - "enchantments": [ - { - "enchantment": "minecraft:silk_touch", - "levels": { - "min": 1 + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } } - } - ] + ] + } } } ], diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/walkway.json b/src/main/generated/data/galacticraft/loot_table/blocks/walkway.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/walkway.json rename to src/main/generated/data/galacticraft/loot_table/blocks/walkway.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/white_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/white_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/white_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/white_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/wire_walkway.json b/src/main/generated/data/galacticraft/loot_table/blocks/wire_walkway.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/wire_walkway.json rename to src/main/generated/data/galacticraft/loot_table/blocks/wire_walkway.json diff --git a/src/main/generated/data/galacticraft/loot_tables/blocks/yellow_candle_moon_cheese_block.json b/src/main/generated/data/galacticraft/loot_table/blocks/yellow_candle_moon_cheese_block.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/blocks/yellow_candle_moon_cheese_block.json rename to src/main/generated/data/galacticraft/loot_table/blocks/yellow_candle_moon_cheese_block.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/arch_grey.json b/src/main/generated/data/galacticraft/loot_table/entities/arch_grey.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/arch_grey.json rename to src/main/generated/data/galacticraft/loot_table/entities/arch_grey.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/comet_cube.json b/src/main/generated/data/galacticraft/loot_table/entities/comet_cube.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/comet_cube.json rename to src/main/generated/data/galacticraft/loot_table/entities/comet_cube.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_creeper.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_creeper.json similarity index 88% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_creeper.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_creeper.json index 17af7ebb2..084841c7c 100644 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_creeper.json +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_creeper.json @@ -22,7 +22,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:gunpowder" @@ -35,7 +36,7 @@ "conditions": [ { "condition": "minecraft:entity_properties", - "entity": "killer", + "entity": "attacker", "predicate": { "type": "#minecraft:skeletons" } diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_evoker.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_evoker.json similarity index 90% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_evoker.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_evoker.json index 021e72322..6f2d0f264 100644 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_evoker.json +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_evoker.json @@ -37,7 +37,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:emerald" diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_pillager.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_pillager.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_pillager.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_pillager.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_skeleton.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_skeleton.json similarity index 85% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_skeleton.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_skeleton.json index 9295f08df..8ec4cd34c 100644 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_skeleton.json +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_skeleton.json @@ -22,7 +22,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:arrow" @@ -51,7 +52,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:bone" diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_skeleton_boss.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_skeleton_boss.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_skeleton_boss.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_skeleton_boss.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_spider.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_spider.json similarity index 86% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_spider.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_spider.json index 4b5d91649..e9278aa9a 100644 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_spider.json +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_spider.json @@ -22,7 +22,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:string" @@ -56,7 +57,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:spider_eye" diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_vindicator.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_vindicator.json similarity index 88% rename from src/main/generated/data/galacticraft/loot_tables/entities/evolved_vindicator.json rename to src/main/generated/data/galacticraft/loot_table/entities/evolved_vindicator.json index a5c107e7c..1d75849ab 100644 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_vindicator.json +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_vindicator.json @@ -27,7 +27,8 @@ "max": 1.0, "min": 0.0 }, - "function": "minecraft:looting_enchant" + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" } ], "name": "minecraft:emerald" diff --git a/src/main/generated/data/galacticraft/loot_table/entities/evolved_zombie.json b/src/main/generated/data/galacticraft/loot_table/entities/evolved_zombie.json new file mode 100644 index 000000000..d2e5718d0 --- /dev/null +++ b/src/main/generated/data/galacticraft/loot_table/entities/evolved_zombie.json @@ -0,0 +1,107 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 2.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:rotten_flesh" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + }, + { + "condition": "minecraft:random_chance_with_enchanted_bonus", + "enchanted_chance": { + "type": "minecraft:linear", + "base": 0.035, + "per_level_above_first": 0.01 + }, + "enchantment": "minecraft:looting", + "unenchanted_chance": 0.025 + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:iron_ingot" + }, + { + "type": "minecraft:item", + "name": "minecraft:carrot" + }, + { + "type": "minecraft:item", + "functions": [ + { + "conditions": [ + { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "direct_attacker", + "predicate": { + "equipment": { + "mainhand": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "#minecraft:smelts_loot" + } + ] + } + } + } + } + } + ] + } + ], + "function": "minecraft:furnace_smelt" + } + ], + "name": "minecraft:potato" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "galacticraft:entities/evolved_zombie" +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/gazer.json b/src/main/generated/data/galacticraft/loot_table/entities/gazer.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/gazer.json rename to src/main/generated/data/galacticraft/loot_table/entities/gazer.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/grey.json b/src/main/generated/data/galacticraft/loot_table/entities/grey.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/grey.json rename to src/main/generated/data/galacticraft/loot_table/entities/grey.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/oli_grub.json b/src/main/generated/data/galacticraft/loot_table/entities/oli_grub.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/oli_grub.json rename to src/main/generated/data/galacticraft/loot_table/entities/oli_grub.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/rumbler.json b/src/main/generated/data/galacticraft/loot_table/entities/rumbler.json similarity index 100% rename from src/main/generated/data/galacticraft/loot_tables/entities/rumbler.json rename to src/main/generated/data/galacticraft/loot_table/entities/rumbler.json diff --git a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_zombie.json b/src/main/generated/data/galacticraft/loot_tables/entities/evolved_zombie.json deleted file mode 100644 index a97824711..000000000 --- a/src/main/generated/data/galacticraft/loot_tables/entities/evolved_zombie.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "type": "minecraft:entity", - "pools": [ - { - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "functions": [ - { - "add": false, - "count": { - "type": "minecraft:uniform", - "max": 2.0, - "min": 0.0 - }, - "function": "minecraft:set_count" - }, - { - "count": { - "type": "minecraft:uniform", - "max": 1.0, - "min": 0.0 - }, - "function": "minecraft:looting_enchant" - } - ], - "name": "minecraft:rotten_flesh" - } - ], - "rolls": 1.0 - }, - { - "bonus_rolls": 0.0, - "conditions": [ - { - "condition": "minecraft:killed_by_player" - }, - { - "chance": 0.025, - "condition": "minecraft:random_chance_with_looting", - "looting_multiplier": 0.01 - } - ], - "entries": [ - { - "type": "minecraft:item", - "name": "minecraft:iron_ingot" - }, - { - "type": "minecraft:item", - "name": "minecraft:carrot" - }, - { - "type": "minecraft:item", - "functions": [ - { - "conditions": [ - { - "condition": "minecraft:entity_properties", - "entity": "this", - "predicate": { - "flags": { - "is_on_fire": true - } - } - } - ], - "function": "minecraft:furnace_smelt" - } - ], - "name": "minecraft:potato" - } - ], - "rolls": 1.0 - } - ], - "random_sequence": "galacticraft:entities/evolved_zombie" -} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/advanced_solar_panel.json b/src/main/generated/data/galacticraft/recipe/advanced_solar_panel.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/advanced_solar_panel.json rename to src/main/generated/data/galacticraft/recipe/advanced_solar_panel.json index a2531f6c0..4c02d78b7 100644 --- a/src/main/generated/data/galacticraft/recipes/advanced_solar_panel.json +++ b/src/main/generated/data/galacticraft/recipe/advanced_solar_panel.json @@ -24,6 +24,7 @@ "WAW" ], "result": { - "item": "galacticraft:advanced_solar_panel" + "count": 1, + "id": "galacticraft:advanced_solar_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration.json index 4f092a14a..97aa3f025 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:aluminum_decoration" + "id": "galacticraft:aluminum_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab.json index e90cd51ba..4c85697a7 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:aluminum_decoration_slab" + "id": "galacticraft:aluminum_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json index 69fcabf07..276a19aec 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_slab_from_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:aluminum_decoration" }, - "result": "galacticraft:aluminum_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:aluminum_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs.json index c1f95b667..0a0490f97 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:aluminum_decoration_stairs" + "id": "galacticraft:aluminum_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json index e40af1ccb..74271b416 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_stairs_from_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:aluminum_decoration" }, - "result": "galacticraft:aluminum_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:aluminum_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall.json index 14e8f3bd9..a2fcc5815 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:aluminum_decoration_wall" + "id": "galacticraft:aluminum_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json index c69d684c8..f97cbdee4 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_decoration_wall_from_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:aluminum_decoration" }, - "result": "galacticraft:aluminum_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:aluminum_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_aluminum_ore.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_aluminum_ore.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_aluminum_ore.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_aluminum_ore.json index 2542ed360..e3b68c94d 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_aluminum_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:aluminum_ore" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json index 95865216a..f3ac629c7 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_deepslate_aluminum_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:deepslate_aluminum_ore" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_raw_aluminum.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_raw_aluminum.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_raw_aluminum.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_raw_aluminum.json index 206dd44a4..e7df33f4c 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_blasting_raw_aluminum.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_blasting_raw_aluminum.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_aluminum" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_nuggets.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_nuggets.json index 6a093f01f..044746110 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:aluminum_ingot" + "count": 1, + "id": "galacticraft:aluminum_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_aluminum_ore.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_aluminum_ore.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_aluminum_ore.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_aluminum_ore.json index dee62a439..03eed98cd 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_aluminum_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:aluminum_ore" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json index e4fd27e6b..f02d5234f 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_deepslate_aluminum_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:deepslate_aluminum_ore" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_raw_aluminum.json b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_raw_aluminum.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_raw_aluminum.json rename to src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_raw_aluminum.json index 46ba8f4f9..666d87361 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_ingot_from_smelting_raw_aluminum.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_ingot_from_smelting_raw_aluminum.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_aluminum" }, - "result": "galacticraft:aluminum_ingot" + "result": { + "id": "galacticraft:aluminum_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_nugget.json b/src/main/generated/data/galacticraft/recipe/aluminum_nugget.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/aluminum_nugget.json rename to src/main/generated/data/galacticraft/recipe/aluminum_nugget.json index ff549410f..138c800c1 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:aluminum_nugget" + "id": "galacticraft:aluminum_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/aluminum_wire.json b/src/main/generated/data/galacticraft/recipe/aluminum_wire.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/aluminum_wire.json rename to src/main/generated/data/galacticraft/recipe/aluminum_wire.json index 5261febd6..60303d6ff 100644 --- a/src/main/generated/data/galacticraft/recipes/aluminum_wire.json +++ b/src/main/generated/data/galacticraft/recipe/aluminum_wire.json @@ -16,6 +16,6 @@ ], "result": { "count": 6, - "item": "galacticraft:aluminum_wire" + "id": "galacticraft:aluminum_wire" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/ambient_thermal_controller.json b/src/main/generated/data/galacticraft/recipe/ambient_thermal_controller.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/ambient_thermal_controller.json rename to src/main/generated/data/galacticraft/recipe/ambient_thermal_controller.json index bea870f58..5977d9a88 100644 --- a/src/main/generated/data/galacticraft/recipes/ambient_thermal_controller.json +++ b/src/main/generated/data/galacticraft/recipe/ambient_thermal_controller.json @@ -6,7 +6,7 @@ "item": "galacticraft:compressed_bronze" }, "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" }, "S": { "item": "galacticraft:compressed_steel" @@ -24,6 +24,7 @@ "BWB" ], "result": { - "item": "galacticraft:ambient_thermal_controller" + "count": 1, + "id": "galacticraft:ambient_thermal_controller" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/atmospheric_valve.json b/src/main/generated/data/galacticraft/recipe/atmospheric_valve.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/atmospheric_valve.json rename to src/main/generated/data/galacticraft/recipe/atmospheric_valve.json index 252930f06..a864424dc 100644 --- a/src/main/generated/data/galacticraft/recipes/atmospheric_valve.json +++ b/src/main/generated/data/galacticraft/recipe/atmospheric_valve.json @@ -14,6 +14,7 @@ " D " ], "result": { - "item": "galacticraft:atmospheric_valve" + "count": 1, + "id": "galacticraft:atmospheric_valve" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/basic_solar_panel.json b/src/main/generated/data/galacticraft/recipe/basic_solar_panel.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/basic_solar_panel.json rename to src/main/generated/data/galacticraft/recipe/basic_solar_panel.json index 0a5613ef5..5ad5fab7a 100644 --- a/src/main/generated/data/galacticraft/recipes/basic_solar_panel.json +++ b/src/main/generated/data/galacticraft/recipe/basic_solar_panel.json @@ -24,6 +24,7 @@ "WBW" ], "result": { - "item": "galacticraft:basic_solar_panel" + "count": 1, + "id": "galacticraft:basic_solar_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/battery.json b/src/main/generated/data/galacticraft/recipe/battery.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/battery.json rename to src/main/generated/data/galacticraft/recipe/battery.json index 49168e568..9c49309b8 100644 --- a/src/main/generated/data/galacticraft/recipes/battery.json +++ b/src/main/generated/data/galacticraft/recipe/battery.json @@ -6,7 +6,7 @@ "tag": "c:coal" }, "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" }, "T": { "item": "galacticraft:compressed_tin" @@ -18,6 +18,7 @@ "TCT" ], "result": { - "item": "galacticraft:battery" + "count": 1, + "id": "galacticraft:battery" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/beam_core.json b/src/main/generated/data/galacticraft/recipe/beam_core.json similarity index 67% rename from src/main/generated/data/galacticraft/recipes/beam_core.json rename to src/main/generated/data/galacticraft/recipe/beam_core.json index 5492ab7bc..77f549964 100644 --- a/src/main/generated/data/galacticraft/recipes/beam_core.json +++ b/src/main/generated/data/galacticraft/recipe/beam_core.json @@ -6,10 +6,10 @@ "tag": "c:glass_panes" }, "I": { - "tag": "c:compressed_iron" + "tag": "c:plates/iron" }, "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" } }, "pattern": [ @@ -18,6 +18,7 @@ "RIR" ], "result": { - "item": "galacticraft:beam_core" + "count": 1, + "id": "galacticraft:beam_core" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/beef_patty_from_campfire_cooking.json b/src/main/generated/data/galacticraft/recipe/beef_patty_from_campfire_cooking.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/beef_patty_from_campfire_cooking.json rename to src/main/generated/data/galacticraft/recipe/beef_patty_from_campfire_cooking.json index 67d08732b..bbf5ec75f 100644 --- a/src/main/generated/data/galacticraft/recipes/beef_patty_from_campfire_cooking.json +++ b/src/main/generated/data/galacticraft/recipe/beef_patty_from_campfire_cooking.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:ground_beef" }, - "result": "galacticraft:beef_patty" + "result": { + "id": "galacticraft:beef_patty" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/beef_patty_from_smelting.json b/src/main/generated/data/galacticraft/recipe/beef_patty_from_smelting.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/beef_patty_from_smelting.json rename to src/main/generated/data/galacticraft/recipe/beef_patty_from_smelting.json index ac609843e..d66641f5d 100644 --- a/src/main/generated/data/galacticraft/recipes/beef_patty_from_smelting.json +++ b/src/main/generated/data/galacticraft/recipe/beef_patty_from_smelting.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:ground_beef" }, - "result": "galacticraft:beef_patty" + "result": { + "id": "galacticraft:beef_patty" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/beef_patty_from_smoking.json b/src/main/generated/data/galacticraft/recipe/beef_patty_from_smoking.json similarity index 74% rename from src/main/generated/data/galacticraft/recipes/beef_patty_from_smoking.json rename to src/main/generated/data/galacticraft/recipe/beef_patty_from_smoking.json index 6e22abde8..dd44ba9ce 100644 --- a/src/main/generated/data/galacticraft/recipes/beef_patty_from_smoking.json +++ b/src/main/generated/data/galacticraft/recipe/beef_patty_from_smoking.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:ground_beef" }, - "result": "galacticraft:beef_patty" + "result": { + "id": "galacticraft:beef_patty" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/black_parachute.json b/src/main/generated/data/galacticraft/recipe/black_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/black_parachute.json rename to src/main/generated/data/galacticraft/recipe/black_parachute.json index e8e73a64c..8e588a27a 100644 --- a/src/main/generated/data/galacticraft/recipes/black_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/black_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:black_parachute" + "count": 1, + "id": "galacticraft:black_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/blue_parachute.json b/src/main/generated/data/galacticraft/recipe/blue_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/blue_parachute.json rename to src/main/generated/data/galacticraft/recipe/blue_parachute.json index aa4a3de73..c481fa2af 100644 --- a/src/main/generated/data/galacticraft/recipes/blue_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/blue_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:blue_parachute" + "count": 1, + "id": "galacticraft:blue_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration.json index cefb2b5bb..5e43ee41f 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:bronze_decoration" + "id": "galacticraft:bronze_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_slab.json index 911a26b7d..1dcf6f37e 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:bronze_decoration_slab" + "id": "galacticraft:bronze_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_slab_from_bronze_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_slab_from_bronze_decoration_stonecutting.json index 18607d42a..68469cb9a 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_slab_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_slab_from_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:bronze_decoration" }, - "result": "galacticraft:bronze_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:bronze_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs.json index 72b43fd6e..e58fab3a6 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:bronze_decoration_stairs" + "id": "galacticraft:bronze_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json index ff8b2fe48..7e44c4909 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_stairs_from_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:bronze_decoration" }, - "result": "galacticraft:bronze_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:bronze_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_wall.json index dbd61400a..dcd5bef26 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:bronze_decoration_wall" + "id": "galacticraft:bronze_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/bronze_decoration_wall_from_bronze_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/bronze_decoration_wall_from_bronze_decoration_stonecutting.json index d2f9de806..dcf6a6b1a 100644 --- a/src/main/generated/data/galacticraft/recipes/bronze_decoration_wall_from_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/bronze_decoration_wall_from_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:bronze_decoration" }, - "result": "galacticraft:bronze_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:bronze_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/brown_parachute.json b/src/main/generated/data/galacticraft/recipe/brown_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/brown_parachute.json rename to src/main/generated/data/galacticraft/recipe/brown_parachute.json index 9b9a78602..90023268d 100644 --- a/src/main/generated/data/galacticraft/recipes/brown_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/brown_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:brown_parachute" + "count": 1, + "id": "galacticraft:brown_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/burger_bun.json b/src/main/generated/data/galacticraft/recipe/burger_bun.json similarity index 89% rename from src/main/generated/data/galacticraft/recipes/burger_bun.json rename to src/main/generated/data/galacticraft/recipe/burger_bun.json index 8d781b5a2..8aa2610a0 100644 --- a/src/main/generated/data/galacticraft/recipes/burger_bun.json +++ b/src/main/generated/data/galacticraft/recipe/burger_bun.json @@ -17,6 +17,6 @@ ], "result": { "count": 2, - "item": "galacticraft:burger_bun" + "id": "galacticraft:burger_bun" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canned_beef.json b/src/main/generated/data/galacticraft/recipe/canned_beef.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/canned_beef.json rename to src/main/generated/data/galacticraft/recipe/canned_beef.json index 3da5fe375..59ddc185b 100644 --- a/src/main/generated/data/galacticraft/recipes/canned_beef.json +++ b/src/main/generated/data/galacticraft/recipe/canned_beef.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:canned_beef" + "count": 1, + "id": "galacticraft:canned_beef" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_apple.json b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_apple.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/canned_dehydrated_apple.json rename to src/main/generated/data/galacticraft/recipe/canned_dehydrated_apple.json index 30db3e903..e279e33b0 100644 --- a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_apple.json +++ b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_apple.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:canned_dehydrated_apple" + "count": 1, + "id": "galacticraft:canned_dehydrated_apple" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_carrot.json b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_carrot.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/canned_dehydrated_carrot.json rename to src/main/generated/data/galacticraft/recipe/canned_dehydrated_carrot.json index c80bd8ade..a2d9a2cdc 100644 --- a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_carrot.json +++ b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_carrot.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:canned_dehydrated_carrot" + "count": 1, + "id": "galacticraft:canned_dehydrated_carrot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_melon.json b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_melon.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/canned_dehydrated_melon.json rename to src/main/generated/data/galacticraft/recipe/canned_dehydrated_melon.json index 77043b4c2..999071afe 100644 --- a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_melon.json +++ b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_melon.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:canned_dehydrated_melon" + "count": 1, + "id": "galacticraft:canned_dehydrated_melon" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_potato.json b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_potato.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/canned_dehydrated_potato.json rename to src/main/generated/data/galacticraft/recipe/canned_dehydrated_potato.json index 01d0ba042..bdebc20f3 100644 --- a/src/main/generated/data/galacticraft/recipes/canned_dehydrated_potato.json +++ b/src/main/generated/data/galacticraft/recipe/canned_dehydrated_potato.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:canned_dehydrated_potato" + "count": 1, + "id": "galacticraft:canned_dehydrated_potato" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/canvas.json b/src/main/generated/data/galacticraft/recipe/canvas.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/canvas.json rename to src/main/generated/data/galacticraft/recipe/canvas.json index 7f1cee7ee..4357dd274 100644 --- a/src/main/generated/data/galacticraft/recipes/canvas.json +++ b/src/main/generated/data/galacticraft/recipe/canvas.json @@ -15,6 +15,7 @@ "ISS" ], "result": { - "item": "galacticraft:canvas" + "count": 1, + "id": "galacticraft:canvas" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_charcoal.json b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_charcoal.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/carbon_fragments_from_charcoal.json rename to src/main/generated/data/galacticraft/recipe/carbon_fragments_from_charcoal.json index 99ed8dbbf..05c8307db 100644 --- a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_charcoal.json +++ b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_charcoal.json @@ -8,6 +8,6 @@ ], "result": { "count": 3, - "item": "galacticraft:carbon_fragments" + "id": "galacticraft:carbon_fragments" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_coal.json b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_coal.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/carbon_fragments_from_coal.json rename to src/main/generated/data/galacticraft/recipe/carbon_fragments_from_coal.json index 99fac6a00..ddbd8465c 100644 --- a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_coal.json +++ b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_coal.json @@ -8,6 +8,6 @@ ], "result": { "count": 3, - "item": "galacticraft:carbon_fragments" + "id": "galacticraft:carbon_fragments" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_smelting_planks.json b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_smelting_planks.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/carbon_fragments_from_smelting_planks.json rename to src/main/generated/data/galacticraft/recipe/carbon_fragments_from_smelting_planks.json index 04ca2527c..9a01ff91f 100644 --- a/src/main/generated/data/galacticraft/recipes/carbon_fragments_from_smelting_planks.json +++ b/src/main/generated/data/galacticraft/recipe/carbon_fragments_from_smelting_planks.json @@ -6,5 +6,7 @@ "ingredient": { "tag": "minecraft:planks" }, - "result": "galacticraft:carbon_fragments" + "result": { + "id": "galacticraft:carbon_fragments" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cheese_slice.json b/src/main/generated/data/galacticraft/recipe/cheese_slice.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/cheese_slice.json rename to src/main/generated/data/galacticraft/recipe/cheese_slice.json index 26478f6d5..8c1589afd 100644 --- a/src/main/generated/data/galacticraft/recipes/cheese_slice.json +++ b/src/main/generated/data/galacticraft/recipe/cheese_slice.json @@ -8,6 +8,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cheese_slice" + "id": "galacticraft:cheese_slice" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cheeseburger.json b/src/main/generated/data/galacticraft/recipe/cheeseburger.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/cheeseburger.json rename to src/main/generated/data/galacticraft/recipe/cheeseburger.json index 04eb2f3c9..8878aabba 100644 --- a/src/main/generated/data/galacticraft/recipes/cheeseburger.json +++ b/src/main/generated/data/galacticraft/recipe/cheeseburger.json @@ -13,6 +13,7 @@ } ], "result": { - "item": "galacticraft:cheeseburger" + "count": 1, + "id": "galacticraft:cheeseburger" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json rename to src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick.json index c9d08369c..166fd9655 100644 --- a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick.json @@ -11,6 +11,7 @@ "#" ], "result": { - "item": "galacticraft:chiseled_moon_rock_brick" + "count": 1, + "id": "galacticraft:chiseled_moon_rock_brick" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json index 7954318f1..662d944fe 100644 --- a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:chiseled_moon_rock_brick" + "result": { + "count": 1, + "id": "galacticraft:chiseled_moon_rock_brick" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json similarity index 54% rename from src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json index bbefb74f7..b31ca26e4 100644 --- a/src/main/generated/data/galacticraft/recipes/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/chiseled_moon_rock_brick_from_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock" }, - "result": "galacticraft:chiseled_moon_rock_brick" + "result": { + "count": 1, + "id": "galacticraft:chiseled_moon_rock_brick" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/circuit_fabricator.json b/src/main/generated/data/galacticraft/recipe/circuit_fabricator.json similarity index 89% rename from src/main/generated/data/galacticraft/recipes/circuit_fabricator.json rename to src/main/generated/data/galacticraft/recipe/circuit_fabricator.json index 53c61ce22..ca76e7a14 100644 --- a/src/main/generated/data/galacticraft/recipes/circuit_fabricator.json +++ b/src/main/generated/data/galacticraft/recipe/circuit_fabricator.json @@ -27,6 +27,7 @@ "WRW" ], "result": { - "item": "galacticraft:circuit_fabricator" + "count": 1, + "id": "galacticraft:circuit_fabricator" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/coal_generator.json b/src/main/generated/data/galacticraft/recipe/coal_generator.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/coal_generator.json rename to src/main/generated/data/galacticraft/recipe/coal_generator.json index fd3258a36..484aebfd7 100644 --- a/src/main/generated/data/galacticraft/recipes/coal_generator.json +++ b/src/main/generated/data/galacticraft/recipe/coal_generator.json @@ -6,7 +6,7 @@ "item": "galacticraft:aluminum_ingot" }, "C": { - "tag": "c:copper_ingots" + "tag": "c:ingots/copper" }, "F": { "item": "minecraft:furnace" @@ -21,6 +21,7 @@ "AWA" ], "result": { - "item": "galacticraft:coal_generator" + "count": 1, + "id": "galacticraft:coal_generator" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab.json index f8b7d05ee..f31600d28 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cobbled_lunaslate_slab" + "id": "galacticraft:cobbled_lunaslate_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json index 83a2f07b0..eda1e1617 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_slab_from_cobbled_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:cobbled_lunaslate" }, - "result": "galacticraft:cobbled_lunaslate_slab" + "result": { + "count": 2, + "id": "galacticraft:cobbled_lunaslate_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs.json index 4a2224b93..ab1f36ee6 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:cobbled_lunaslate_stairs" + "id": "galacticraft:cobbled_lunaslate_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json index a305b5e96..ef875e4f6 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_stairs_from_cobbled_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cobbled_lunaslate" }, - "result": "galacticraft:cobbled_lunaslate_stairs" + "result": { + "count": 1, + "id": "galacticraft:cobbled_lunaslate_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall.json index 9e0905f02..2c8fbe0db 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cobbled_lunaslate_wall" + "id": "galacticraft:cobbled_lunaslate_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json index 9e0c80795..4244800d1 100644 --- a/src/main/generated/data/galacticraft/recipes/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cobbled_lunaslate_wall_from_cobbled_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cobbled_lunaslate" }, - "result": "galacticraft:cobbled_lunaslate_wall" + "result": { + "count": 1, + "id": "galacticraft:cobbled_lunaslate_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipe/compressing/compressed_aluminum.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_aluminum.json new file mode 100644 index 000000000..304d3bac4 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_aluminum.json @@ -0,0 +1,15 @@ +{ + "type": "galacticraft:compressing_shapeless", + "ingredients": [ + { + "tag": "c:ingots/aluminum" + }, + { + "tag": "c:ingots/aluminum" + } + ], + "result": { + "count": 1, + "id": "galacticraft:compressed_aluminum" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_bronze.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_bronze.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_bronze.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_bronze.json index 135cda0f2..f9b5a8c3d 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_bronze.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_bronze.json @@ -9,6 +9,7 @@ } ], "result": { - "item": "galacticraft:compressed_bronze" + "count": 1, + "id": "galacticraft:compressed_bronze" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipe/compressing/compressed_copper.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_copper.json new file mode 100644 index 000000000..91ea5b343 --- /dev/null +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_copper.json @@ -0,0 +1,15 @@ +{ + "type": "galacticraft:compressing_shapeless", + "ingredients": [ + { + "tag": "c:ingots/copper" + }, + { + "tag": "c:ingots/copper" + } + ], + "result": { + "count": 1, + "id": "galacticraft:compressed_copper" + } +} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_desh.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_desh.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_desh.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_desh.json index 5f085da8e..b8ce2d078 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_desh.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_desh.json @@ -6,6 +6,7 @@ } ], "result": { - "item": "galacticraft:compressed_desh" + "count": 1, + "id": "galacticraft:compressed_desh" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_iron.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_iron.json similarity index 50% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_iron.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_iron.json index f62fcd8e0..f6ae7f5b6 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_iron.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_iron.json @@ -2,13 +2,14 @@ "type": "galacticraft:compressing_shapeless", "ingredients": [ { - "tag": "c:iron_ingots" + "tag": "c:ingots/iron" }, { - "tag": "c:iron_ingots" + "tag": "c:ingots/iron" } ], "result": { - "item": "galacticraft:compressed_iron" + "count": 1, + "id": "galacticraft:compressed_iron" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_meteoric_iron.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_meteoric_iron.json similarity index 70% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_meteoric_iron.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_meteoric_iron.json index 2b30cf968..a6d1fc2be 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_meteoric_iron.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_meteoric_iron.json @@ -6,6 +6,7 @@ } ], "result": { - "item": "galacticraft:compressed_meteoric_iron" + "count": 1, + "id": "galacticraft:compressed_meteoric_iron" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_steel.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_steel.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_steel.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_steel.json index f7c5c6a44..9e032e07c 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_steel.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_steel.json @@ -12,6 +12,7 @@ } ], "result": { - "item": "galacticraft:compressed_steel" + "count": 1, + "id": "galacticraft:compressed_steel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_steel_from_ingots.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_steel_from_ingots.json similarity index 50% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_steel_from_ingots.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_steel_from_ingots.json index 79eb65b72..f8655193b 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_steel_from_ingots.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_steel_from_ingots.json @@ -2,13 +2,14 @@ "type": "galacticraft:compressing_shapeless", "ingredients": [ { - "tag": "c:steel_ingots" + "tag": "c:ingots/steel" }, { - "tag": "c:steel_ingots" + "tag": "c:ingots/steel" } ], "result": { - "item": "galacticraft:compressed_steel" + "count": 1, + "id": "galacticraft:compressed_steel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_tin.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_tin.json similarity index 51% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_tin.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_tin.json index ab9a697fb..29eccb66b 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_tin.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_tin.json @@ -2,13 +2,14 @@ "type": "galacticraft:compressing_shapeless", "ingredients": [ { - "tag": "c:tin_ingots" + "tag": "c:ingots/tin" }, { - "tag": "c:tin_ingots" + "tag": "c:ingots/tin" } ], "result": { - "item": "galacticraft:compressed_tin" + "count": 1, + "id": "galacticraft:compressed_tin" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_titanium.json b/src/main/generated/data/galacticraft/recipe/compressing/compressed_titanium.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/compressing/compressed_titanium.json rename to src/main/generated/data/galacticraft/recipe/compressing/compressed_titanium.json index e120741cc..81503f121 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_titanium.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/compressed_titanium.json @@ -9,6 +9,7 @@ } ], "result": { - "item": "galacticraft:compressed_titanium" + "count": 1, + "id": "galacticraft:compressed_titanium" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating.json b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating.json similarity index 95% rename from src/main/generated/data/galacticraft/recipes/compressing/heavy_plating.json rename to src/main/generated/data/galacticraft/recipe/compressing/heavy_plating.json index 1ea4c1a22..8d66721b9 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating.json @@ -16,7 +16,7 @@ "BAS" ], "result": { - "Count": 2, + "count": 2, "id": "galacticraft:heavy_plating" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_flipped.json b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_flipped.json similarity index 95% rename from src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_flipped.json rename to src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_flipped.json index 293a1be51..3d1d5b8e8 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_flipped.json @@ -16,7 +16,7 @@ "SAB" ], "result": { - "Count": 2, + "count": 2, "id": "galacticraft:heavy_plating" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t2.json b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t2.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t2.json rename to src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t2.json index 9fe35a254..89d2fcfa0 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t2.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t2.json @@ -9,6 +9,7 @@ } ], "result": { - "item": "galacticraft:heavy_plating_t2" + "count": 1, + "id": "galacticraft:heavy_plating_t2" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t3.json b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t3.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t3.json rename to src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t3.json index 3fdc8ff55..45bb03349 100644 --- a/src/main/generated/data/galacticraft/recipes/compressing/heavy_plating_t3.json +++ b/src/main/generated/data/galacticraft/recipe/compressing/heavy_plating_t3.json @@ -9,6 +9,7 @@ } ], "result": { - "item": "galacticraft:heavy_plating_t3" + "count": 1, + "id": "galacticraft:heavy_plating_t3" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressor.json b/src/main/generated/data/galacticraft/recipe/compressor.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/compressor.json rename to src/main/generated/data/galacticraft/recipe/compressor.json index 94c77fca6..bfbeb906e 100644 --- a/src/main/generated/data/galacticraft/recipes/compressor.json +++ b/src/main/generated/data/galacticraft/recipe/compressor.json @@ -6,7 +6,7 @@ "item": "minecraft:anvil" }, "C": { - "tag": "c:copper_ingots" + "tag": "c:ingots/copper" }, "I": { "item": "galacticraft:aluminum_ingot" @@ -21,6 +21,7 @@ "IWI" ], "result": { - "item": "galacticraft:compressor" + "count": 1, + "id": "galacticraft:compressor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_canister.json b/src/main/generated/data/galacticraft/recipe/copper_canister.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/copper_canister.json rename to src/main/generated/data/galacticraft/recipe/copper_canister.json index b94cdf530..452edccec 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_canister.json +++ b/src/main/generated/data/galacticraft/recipe/copper_canister.json @@ -13,6 +13,6 @@ ], "result": { "count": 2, - "item": "galacticraft:copper_canister" + "id": "galacticraft:copper_canister" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration.json b/src/main/generated/data/galacticraft/recipe/copper_decoration.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/copper_decoration.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration.json index 875ef8566..d76be4597 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:copper_decoration" + "id": "galacticraft:copper_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_slab.json index 1f5282e4d..881b3924c 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:copper_decoration_slab" + "id": "galacticraft:copper_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_slab_from_copper_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_slab_from_copper_decoration_stonecutting.json index 73c5d9875..4b22f5274 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_slab_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_slab_from_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:copper_decoration" }, - "result": "galacticraft:copper_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:copper_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_stairs.json index 63a703a1f..bf5bd61c1 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:copper_decoration_stairs" + "id": "galacticraft:copper_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_stairs_from_copper_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_stairs_from_copper_decoration_stonecutting.json index def4d5a83..9b08d987b 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_stairs_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_stairs_from_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:copper_decoration" }, - "result": "galacticraft:copper_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:copper_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_wall.json index 6f3569dde..484fdc3ff 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:copper_decoration_wall" + "id": "galacticraft:copper_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/copper_decoration_wall_from_copper_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/copper_decoration_wall_from_copper_decoration_stonecutting.json index 523d23bfd..f446a737a 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_decoration_wall_from_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/copper_decoration_wall_from_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:copper_decoration" }, - "result": "galacticraft:copper_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:copper_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_lunaslate_copper_ore.json b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_lunaslate_copper_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_lunaslate_copper_ore.json rename to src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_lunaslate_copper_ore.json index baa83c9fe..6787798db 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_lunaslate_copper_ore.json +++ b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_lunaslate_copper_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:lunaslate_copper_ore" }, - "result": "minecraft:copper_ingot" + "result": { + "id": "minecraft:copper_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_moon_copper_ore.json b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_moon_copper_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_moon_copper_ore.json rename to src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_moon_copper_ore.json index 284ad8458..852913e1b 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_blasting_moon_copper_ore.json +++ b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_blasting_moon_copper_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:moon_copper_ore" }, - "result": "minecraft:copper_ingot" + "result": { + "id": "minecraft:copper_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_lunaslate_copper_ore.json b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_lunaslate_copper_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_lunaslate_copper_ore.json rename to src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_lunaslate_copper_ore.json index 55358ec57..a46be2cc0 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_lunaslate_copper_ore.json +++ b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_lunaslate_copper_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:lunaslate_copper_ore" }, - "result": "minecraft:copper_ingot" + "result": { + "id": "minecraft:copper_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_moon_copper_ore.json b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_moon_copper_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_moon_copper_ore.json rename to src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_moon_copper_ore.json index 5a9c8e6b9..1b46d79f1 100644 --- a/src/main/generated/data/galacticraft/recipes/copper_ingot_from_smelting_moon_copper_ore.json +++ b/src/main/generated/data/galacticraft/recipe/copper_ingot_from_smelting_moon_copper_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:moon_copper_ore" }, - "result": "minecraft:copper_ingot" + "result": { + "id": "minecraft:copper_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab.json index 6cc850217..b66c8ac34 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cracked_moon_basalt_brick_slab" + "id": "galacticraft:cracked_moon_basalt_brick_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json index 4e56e7f20..72eba0fff 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_slab_from_cracked_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:cracked_moon_basalt_brick" }, - "result": "galacticraft:cracked_moon_basalt_brick_slab" + "result": { + "count": 2, + "id": "galacticraft:cracked_moon_basalt_brick_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs.json index f425fc88b..fe49967fa 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:cracked_moon_basalt_brick_stairs" + "id": "galacticraft:cracked_moon_basalt_brick_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json index f4b569e8d..d15226b93 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_stairs_from_cracked_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cracked_moon_basalt_brick" }, - "result": "galacticraft:cracked_moon_basalt_brick_stairs" + "result": { + "count": 1, + "id": "galacticraft:cracked_moon_basalt_brick_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall.json index b6d204386..508d9753d 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cracked_moon_basalt_brick_wall" + "id": "galacticraft:cracked_moon_basalt_brick_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json index cc76af383..e0be91364 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_basalt_brick_wall_from_cracked_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cracked_moon_basalt_brick" }, - "result": "galacticraft:cracked_moon_basalt_brick_wall" + "result": { + "count": 1, + "id": "galacticraft:cracked_moon_basalt_brick_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick.json index 9c676cdeb..b7c5cd759 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:cracked_moon_rock_brick" + "result": { + "id": "galacticraft:cracked_moon_rock_brick" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab.json index c1cd8f22d..16988176f 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cracked_moon_rock_brick_slab" + "id": "galacticraft:cracked_moon_rock_brick_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json index f23525092..465e4d969 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_slab_from_cracked_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:cracked_moon_rock_brick" }, - "result": "galacticraft:cracked_moon_rock_brick_slab" + "result": { + "count": 2, + "id": "galacticraft:cracked_moon_rock_brick_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs.json index 94693a294..eeaabee85 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:cracked_moon_rock_brick_stairs" + "id": "galacticraft:cracked_moon_rock_brick_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json index 9e48027ee..05b58cf10 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_stairs_from_cracked_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cracked_moon_rock_brick" }, - "result": "galacticraft:cracked_moon_rock_brick_stairs" + "result": { + "count": 1, + "id": "galacticraft:cracked_moon_rock_brick_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall.json index 9a8490813..aed68a558 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:cracked_moon_rock_brick_wall" + "id": "galacticraft:cracked_moon_rock_brick_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json index 18b5ae037..2fee40f1a 100644 --- a/src/main/generated/data/galacticraft/recipes/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/cracked_moon_rock_brick_wall_from_cracked_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:cracked_moon_rock_brick" }, - "result": "galacticraft:cracked_moon_rock_brick_wall" + "result": { + "count": 1, + "id": "galacticraft:cracked_moon_rock_brick_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/cyan_parachute.json b/src/main/generated/data/galacticraft/recipe/cyan_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/cyan_parachute.json rename to src/main/generated/data/galacticraft/recipe/cyan_parachute.json index e7e3d50a7..32f143615 100644 --- a/src/main/generated/data/galacticraft/recipes/cyan_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/cyan_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:cyan_parachute" + "count": 1, + "id": "galacticraft:cyan_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_slab.json index 45762625d..e7d14c06f 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:dark_decoration_slab" + "id": "galacticraft:dark_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_slab_from_dark_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_slab_from_dark_decoration_stonecutting.json index 8f457ccfe..bebd9d63c 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_slab_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_slab_from_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:dark_decoration" }, - "result": "galacticraft:dark_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:dark_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_stairs.json index 2feb1b81e..8f78ea308 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:dark_decoration_stairs" + "id": "galacticraft:dark_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_stairs_from_dark_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_stairs_from_dark_decoration_stonecutting.json index c8337f6e2..25cdea962 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_stairs_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_stairs_from_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:dark_decoration" }, - "result": "galacticraft:dark_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:dark_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_wall.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_wall.json index 837bfe570..4bcba4874 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:dark_decoration_wall" + "id": "galacticraft:dark_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/dark_decoration_wall_from_dark_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/dark_decoration_wall_from_dark_decoration_stonecutting.json index d30ecd636..bebc55229 100644 --- a/src/main/generated/data/galacticraft/recipes/dark_decoration_wall_from_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/dark_decoration_wall_from_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:dark_decoration" }, - "result": "galacticraft:dark_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:dark_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/dashed_light_panel.json b/src/main/generated/data/galacticraft/recipe/dashed_light_panel.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/dashed_light_panel.json rename to src/main/generated/data/galacticraft/recipe/dashed_light_panel.json index c41564556..edb8d1572 100644 --- a/src/main/generated/data/galacticraft/recipes/dashed_light_panel.json +++ b/src/main/generated/data/galacticraft/recipe/dashed_light_panel.json @@ -17,6 +17,7 @@ " T " ], "result": { - "item": "galacticraft:dashed_light_panel" + "count": 1, + "id": "galacticraft:dashed_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_axe.json b/src/main/generated/data/galacticraft/recipe/desh_axe.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_axe.json rename to src/main/generated/data/galacticraft/recipe/desh_axe.json index 4d0c3dee2..d554cc0c9 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_axe.json +++ b/src/main/generated/data/galacticraft/recipe/desh_axe.json @@ -15,6 +15,7 @@ " S" ], "result": { - "item": "galacticraft:desh_axe" + "count": 1, + "id": "galacticraft:desh_axe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_axe_flipped.json b/src/main/generated/data/galacticraft/recipe/desh_axe_flipped.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_axe_flipped.json rename to src/main/generated/data/galacticraft/recipe/desh_axe_flipped.json index 3ee78a5ea..cc433cc4e 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_axe_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/desh_axe_flipped.json @@ -15,6 +15,7 @@ "S " ], "result": { - "item": "galacticraft:desh_axe" + "count": 1, + "id": "galacticraft:desh_axe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_block.json b/src/main/generated/data/galacticraft/recipe/desh_block.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/desh_block.json rename to src/main/generated/data/galacticraft/recipe/desh_block.json index 0f1e149a5..1dab2fdb9 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_block.json +++ b/src/main/generated/data/galacticraft/recipe/desh_block.json @@ -12,6 +12,7 @@ "###" ], "result": { - "item": "galacticraft:desh_block" + "count": 1, + "id": "galacticraft:desh_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_boots.json b/src/main/generated/data/galacticraft/recipe/desh_boots.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/desh_boots.json rename to src/main/generated/data/galacticraft/recipe/desh_boots.json index c807ab93f..4de53099b 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_boots.json +++ b/src/main/generated/data/galacticraft/recipe/desh_boots.json @@ -11,6 +11,7 @@ "D D" ], "result": { - "item": "galacticraft:desh_boots" + "count": 1, + "id": "galacticraft:desh_boots" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_chestplate.json b/src/main/generated/data/galacticraft/recipe/desh_chestplate.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/desh_chestplate.json rename to src/main/generated/data/galacticraft/recipe/desh_chestplate.json index 2dc6a80e1..8541efe7c 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_chestplate.json +++ b/src/main/generated/data/galacticraft/recipe/desh_chestplate.json @@ -12,6 +12,7 @@ "DDD" ], "result": { - "item": "galacticraft:desh_chestplate" + "count": 1, + "id": "galacticraft:desh_chestplate" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_helmet.json b/src/main/generated/data/galacticraft/recipe/desh_helmet.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/desh_helmet.json rename to src/main/generated/data/galacticraft/recipe/desh_helmet.json index 4d82a2469..2d7f239f7 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_helmet.json +++ b/src/main/generated/data/galacticraft/recipe/desh_helmet.json @@ -11,6 +11,7 @@ "D D" ], "result": { - "item": "galacticraft:desh_helmet" + "count": 1, + "id": "galacticraft:desh_helmet" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_hoe.json b/src/main/generated/data/galacticraft/recipe/desh_hoe.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_hoe.json rename to src/main/generated/data/galacticraft/recipe/desh_hoe.json index d44abc18b..d7ad6ef20 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_hoe.json +++ b/src/main/generated/data/galacticraft/recipe/desh_hoe.json @@ -15,6 +15,7 @@ " S" ], "result": { - "item": "galacticraft:desh_hoe" + "count": 1, + "id": "galacticraft:desh_hoe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_hoe_flipped.json b/src/main/generated/data/galacticraft/recipe/desh_hoe_flipped.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_hoe_flipped.json rename to src/main/generated/data/galacticraft/recipe/desh_hoe_flipped.json index 86dc39d16..537c5eb7b 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_hoe_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/desh_hoe_flipped.json @@ -15,6 +15,7 @@ "S " ], "result": { - "item": "galacticraft:desh_hoe" + "count": 1, + "id": "galacticraft:desh_hoe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_desh_ore.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_desh_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_desh_ore.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_desh_ore.json index e616d8d5c..cdb37e5d2 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_desh_ore.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_desh_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:desh_ore" }, - "result": "galacticraft:desh_ingot" + "result": { + "id": "galacticraft:desh_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_raw_desh.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_raw_desh.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_raw_desh.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_raw_desh.json index 4418a026c..769a5d2d7 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_blasting_raw_desh.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_blasting_raw_desh.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_desh" }, - "result": "galacticraft:desh_ingot" + "result": { + "id": "galacticraft:desh_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_block.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_block.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_block.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_block.json index 313e45db0..ca1f902fe 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_block.json @@ -9,6 +9,6 @@ ], "result": { "count": 9, - "item": "galacticraft:desh_ingot" + "id": "galacticraft:desh_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_nuggets.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_nuggets.json index a06758035..a4d27173a 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:desh_ingot" + "count": 1, + "id": "galacticraft:desh_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_desh_ore.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_desh_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_desh_ore.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_desh_ore.json index 6e225c978..1b3f16b58 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_desh_ore.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_desh_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:desh_ore" }, - "result": "galacticraft:desh_ingot" + "result": { + "id": "galacticraft:desh_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_raw_desh.json b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_raw_desh.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_raw_desh.json rename to src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_raw_desh.json index 55ad78b2c..c89623326 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_ingot_from_smelting_raw_desh.json +++ b/src/main/generated/data/galacticraft/recipe/desh_ingot_from_smelting_raw_desh.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_desh" }, - "result": "galacticraft:desh_ingot" + "result": { + "id": "galacticraft:desh_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_leggings.json b/src/main/generated/data/galacticraft/recipe/desh_leggings.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/desh_leggings.json rename to src/main/generated/data/galacticraft/recipe/desh_leggings.json index bb20043cb..d0f2773a5 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_leggings.json +++ b/src/main/generated/data/galacticraft/recipe/desh_leggings.json @@ -12,6 +12,7 @@ "D D" ], "result": { - "item": "galacticraft:desh_leggings" + "count": 1, + "id": "galacticraft:desh_leggings" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_nugget.json b/src/main/generated/data/galacticraft/recipe/desh_nugget.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/desh_nugget.json rename to src/main/generated/data/galacticraft/recipe/desh_nugget.json index 6eda4af38..928324f25 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/desh_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:desh_nugget" + "id": "galacticraft:desh_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_pickaxe.json b/src/main/generated/data/galacticraft/recipe/desh_pickaxe.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/desh_pickaxe.json rename to src/main/generated/data/galacticraft/recipe/desh_pickaxe.json index 4f612b276..76db84b72 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_pickaxe.json +++ b/src/main/generated/data/galacticraft/recipe/desh_pickaxe.json @@ -15,6 +15,7 @@ " S " ], "result": { - "item": "galacticraft:desh_pickaxe" + "count": 1, + "id": "galacticraft:desh_pickaxe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_shovel.json b/src/main/generated/data/galacticraft/recipe/desh_shovel.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/desh_shovel.json rename to src/main/generated/data/galacticraft/recipe/desh_shovel.json index 254ac7d09..07d8ce6aa 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_shovel.json +++ b/src/main/generated/data/galacticraft/recipe/desh_shovel.json @@ -15,6 +15,7 @@ "S" ], "result": { - "item": "galacticraft:desh_shovel" + "count": 1, + "id": "galacticraft:desh_shovel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_stick.json b/src/main/generated/data/galacticraft/recipe/desh_stick.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/desh_stick.json rename to src/main/generated/data/galacticraft/recipe/desh_stick.json index d94d77ed6..b2aba4c56 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_stick.json +++ b/src/main/generated/data/galacticraft/recipe/desh_stick.json @@ -12,6 +12,6 @@ ], "result": { "count": 4, - "item": "galacticraft:desh_stick" + "id": "galacticraft:desh_stick" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/desh_sword.json b/src/main/generated/data/galacticraft/recipe/desh_sword.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/desh_sword.json rename to src/main/generated/data/galacticraft/recipe/desh_sword.json index 35ad6b9cf..f5ebcd14d 100644 --- a/src/main/generated/data/galacticraft/recipes/desh_sword.json +++ b/src/main/generated/data/galacticraft/recipe/desh_sword.json @@ -15,6 +15,7 @@ "S" ], "result": { - "item": "galacticraft:desh_sword" + "count": 1, + "id": "galacticraft:desh_sword" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration.json index 98ba5b1e2..0fc1b1652 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_aluminum_decoration" + "id": "galacticraft:detailed_aluminum_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab.json index e5e079bb3..fabc64dd4 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_aluminum_decoration_slab" + "id": "galacticraft:detailed_aluminum_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json index 39d7521a9..84daad2d9 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_slab_from_detailed_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_aluminum_decoration" }, - "result": "galacticraft:detailed_aluminum_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_aluminum_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs.json index 99b3f0cf5..a4a7e62e9 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_aluminum_decoration_stairs" + "id": "galacticraft:detailed_aluminum_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json index 5b2a468d3..0e6c011e5 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_stairs_from_detailed_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_aluminum_decoration" }, - "result": "galacticraft:detailed_aluminum_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_aluminum_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall.json index f4d37ac05..6361a9d08 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_aluminum_decoration_wall" + "id": "galacticraft:detailed_aluminum_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json index fa449c53c..4b818b55e 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_aluminum_decoration_wall_from_detailed_aluminum_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_aluminum_decoration" }, - "result": "galacticraft:detailed_aluminum_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_aluminum_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration.json index 426729b93..ff5c19014 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_bronze_decoration" + "id": "galacticraft:detailed_bronze_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab.json index a0802cc5d..b827d41fd 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_bronze_decoration_slab" + "id": "galacticraft:detailed_bronze_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json index e49fd3f0f..7ac18a4cb 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_slab_from_detailed_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_bronze_decoration" }, - "result": "galacticraft:detailed_bronze_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_bronze_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs.json index 30a0a543e..40723c13f 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_bronze_decoration_stairs" + "id": "galacticraft:detailed_bronze_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json index a8aefaeb8..3cef4198b 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_stairs_from_detailed_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_bronze_decoration" }, - "result": "galacticraft:detailed_bronze_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_bronze_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall.json index 6aab3c31e..c29bfa523 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_bronze_decoration_wall" + "id": "galacticraft:detailed_bronze_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json index 9ab2a6e90..e85c5f959 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_bronze_decoration_wall_from_detailed_bronze_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_bronze_decoration" }, - "result": "galacticraft:detailed_bronze_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_bronze_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration.json index 7a47d0be6..6d6479c56 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_copper_decoration" + "id": "galacticraft:detailed_copper_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab.json index 934c58e56..9c59cfff7 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_copper_decoration_slab" + "id": "galacticraft:detailed_copper_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json index c65f56398..00e586f01 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_slab_from_detailed_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_copper_decoration" }, - "result": "galacticraft:detailed_copper_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_copper_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs.json index d79799939..dd04611e0 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_copper_decoration_stairs" + "id": "galacticraft:detailed_copper_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json index a2707b14f..ee223f0a9 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_stairs_from_detailed_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_copper_decoration" }, - "result": "galacticraft:detailed_copper_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_copper_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall.json index d4278d228..e56cfd978 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_copper_decoration_wall" + "id": "galacticraft:detailed_copper_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json index 0bcb19e84..9c87548ca 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_copper_decoration_wall_from_detailed_copper_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_copper_decoration" }, - "result": "galacticraft:detailed_copper_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_copper_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab.json index 11a761028..8a18a6ec1 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_dark_decoration_slab" + "id": "galacticraft:detailed_dark_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json index c8c6794f5..944fc1791 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_slab_from_detailed_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_dark_decoration" }, - "result": "galacticraft:detailed_dark_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_dark_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs.json index 71fd714bf..989a1f5b8 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_dark_decoration_stairs" + "id": "galacticraft:detailed_dark_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json index b6e0dae10..9b2987ee0 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_stairs_from_detailed_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_dark_decoration" }, - "result": "galacticraft:detailed_dark_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_dark_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall.json index a63d443fa..5f31c8423 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_dark_decoration_wall" + "id": "galacticraft:detailed_dark_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json index d99fcccb9..fdf10e28f 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_dark_decoration_wall_from_detailed_dark_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_dark_decoration" }, - "result": "galacticraft:detailed_dark_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_dark_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration.json index 66c34c7be..928fc4bd9 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_iron_decoration" + "id": "galacticraft:detailed_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab.json index c2e62873e..1ecc124ec 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_iron_decoration_slab" + "id": "galacticraft:detailed_iron_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json index a13a8b924..b16936116 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_slab_from_detailed_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_iron_decoration" }, - "result": "galacticraft:detailed_iron_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_iron_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs.json index b1b949cea..b6fb766b5 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_iron_decoration_stairs" + "id": "galacticraft:detailed_iron_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json index ff2b3428c..ffb028d5b 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_stairs_from_detailed_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_iron_decoration" }, - "result": "galacticraft:detailed_iron_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_iron_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall.json index 9f14bb933..45d2cc2da 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_iron_decoration_wall" + "id": "galacticraft:detailed_iron_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json index a1b06f1c4..0358fd2b1 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_iron_decoration_wall_from_detailed_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_iron_decoration" }, - "result": "galacticraft:detailed_iron_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_iron_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration.json index 51e6649c6..477987a55 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_meteoric_iron_decoration" + "id": "galacticraft:detailed_meteoric_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab.json index aaac00a6c..c09480d95 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_meteoric_iron_decoration_slab" + "id": "galacticraft:detailed_meteoric_iron_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json index e2be6a1d7..f28078523 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_meteoric_iron_decoration" }, - "result": "galacticraft:detailed_meteoric_iron_decoration_stairs" + "result": { + "count": 2, + "id": "galacticraft:detailed_meteoric_iron_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs.json index 3e4948332..7c903dbec 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_meteoric_iron_decoration_stairs" + "id": "galacticraft:detailed_meteoric_iron_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json index e38ab97c4..9ed1c948e 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_slab_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_stairs_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_meteoric_iron_decoration" }, - "result": "galacticraft:detailed_meteoric_iron_decoration_slab" + "result": { + "count": 1, + "id": "galacticraft:detailed_meteoric_iron_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall.json index 7f5bd65d8..13f6579f1 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_meteoric_iron_decoration_wall" + "id": "galacticraft:detailed_meteoric_iron_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json index 5ec6be95b..6e10ba45e 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_meteoric_iron_decoration_wall_from_detailed_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_meteoric_iron_decoration" }, - "result": "galacticraft:detailed_meteoric_iron_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_meteoric_iron_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration.json index fdc00f76a..41822d4c2 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_steel_decoration" + "id": "galacticraft:detailed_steel_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab.json index 6816a451c..b052f521f 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_steel_decoration_slab" + "id": "galacticraft:detailed_steel_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json index 5a660ec8f..9a766f0c2 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_slab_from_detailed_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_steel_decoration" }, - "result": "galacticraft:detailed_steel_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_steel_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs.json index b44aab370..12c202d21 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_steel_decoration_stairs" + "id": "galacticraft:detailed_steel_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json index e1173da2b..81f8ecb6c 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_stairs_from_detailed_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_steel_decoration" }, - "result": "galacticraft:detailed_steel_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_steel_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall.json index 8387e21c7..2dbd82a68 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_steel_decoration_wall" + "id": "galacticraft:detailed_steel_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json index 1284d4c0d..735c84968 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_steel_decoration_wall_from_detailed_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_steel_decoration" }, - "result": "galacticraft:detailed_steel_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_steel_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration.json index 920b667b7..576f563b6 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_tin_decoration" + "id": "galacticraft:detailed_tin_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab.json index 8c4911311..72bc5f402 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_tin_decoration_slab" + "id": "galacticraft:detailed_tin_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json index b1f353f5e..7e6e53a06 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_slab_from_detailed_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_tin_decoration" }, - "result": "galacticraft:detailed_tin_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_tin_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs.json index 0ca8755ce..a420181de 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_tin_decoration_stairs" + "id": "galacticraft:detailed_tin_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json index e21511d5e..97c16ea3a 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_stairs_from_detailed_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_tin_decoration" }, - "result": "galacticraft:detailed_tin_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_tin_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall.json index 60b798ae4..58e0310e5 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_tin_decoration_wall" + "id": "galacticraft:detailed_tin_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json index ef05322ff..a42d712ba 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_tin_decoration_wall_from_detailed_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_tin_decoration" }, - "result": "galacticraft:detailed_tin_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_tin_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration.json index bfb1517e5..4e721fc4a 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration.json @@ -16,6 +16,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_titanium_decoration" + "id": "galacticraft:detailed_titanium_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab.json index a3aa18559..a987d6463 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_titanium_decoration_slab" + "id": "galacticraft:detailed_titanium_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json index 62195a245..636e1bbdb 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_slab_from_detailed_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:detailed_titanium_decoration" }, - "result": "galacticraft:detailed_titanium_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:detailed_titanium_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs.json index 1a607f433..2c96be714 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:detailed_titanium_decoration_stairs" + "id": "galacticraft:detailed_titanium_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json index 7808bd924..b23464525 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_stairs_from_detailed_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_titanium_decoration" }, - "result": "galacticraft:detailed_titanium_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:detailed_titanium_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall.json index 1bd513004..578801747 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:detailed_titanium_decoration_wall" + "id": "galacticraft:detailed_titanium_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json index 4fc8f470c..65d775818 100644 --- a/src/main/generated/data/galacticraft/recipes/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/detailed_titanium_decoration_wall_from_detailed_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:detailed_titanium_decoration" }, - "result": "galacticraft:detailed_titanium_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:detailed_titanium_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/diagonal_light_panel.json b/src/main/generated/data/galacticraft/recipe/diagonal_light_panel.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/diagonal_light_panel.json rename to src/main/generated/data/galacticraft/recipe/diagonal_light_panel.json index cd681d6d9..5e88c7bac 100644 --- a/src/main/generated/data/galacticraft/recipes/diagonal_light_panel.json +++ b/src/main/generated/data/galacticraft/recipe/diagonal_light_panel.json @@ -18,6 +18,7 @@ " T" ], "result": { - "item": "galacticraft:diagonal_light_panel" + "count": 1, + "id": "galacticraft:diagonal_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/diagonal_light_panel_flipped.json b/src/main/generated/data/galacticraft/recipe/diagonal_light_panel_flipped.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/diagonal_light_panel_flipped.json rename to src/main/generated/data/galacticraft/recipe/diagonal_light_panel_flipped.json index cd681d6d9..5e88c7bac 100644 --- a/src/main/generated/data/galacticraft/recipes/diagonal_light_panel_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/diagonal_light_panel_flipped.json @@ -18,6 +18,7 @@ " T" ], "result": { - "item": "galacticraft:diagonal_light_panel" + "count": 1, + "id": "galacticraft:diagonal_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/electric_arc_furnace.json b/src/main/generated/data/galacticraft/recipe/electric_arc_furnace.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/electric_arc_furnace.json rename to src/main/generated/data/galacticraft/recipe/electric_arc_furnace.json index e4ea2d591..c7a4bbb1a 100644 --- a/src/main/generated/data/galacticraft/recipes/electric_arc_furnace.json +++ b/src/main/generated/data/galacticraft/recipe/electric_arc_furnace.json @@ -21,6 +21,7 @@ "MWM" ], "result": { - "item": "galacticraft:electric_arc_furnace" + "count": 1, + "id": "galacticraft:electric_arc_furnace" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/electric_compressor.json b/src/main/generated/data/galacticraft/recipe/electric_compressor.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/electric_compressor.json rename to src/main/generated/data/galacticraft/recipe/electric_compressor.json index 6cbfd459f..2b1d693b7 100644 --- a/src/main/generated/data/galacticraft/recipes/electric_compressor.json +++ b/src/main/generated/data/galacticraft/recipe/electric_compressor.json @@ -24,6 +24,7 @@ "IWI" ], "result": { - "item": "galacticraft:electric_compressor" + "count": 1, + "id": "galacticraft:electric_compressor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/electric_compressor_upgrade.json b/src/main/generated/data/galacticraft/recipe/electric_compressor_upgrade.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/electric_compressor_upgrade.json rename to src/main/generated/data/galacticraft/recipe/electric_compressor_upgrade.json index 53c484daf..4833259d8 100644 --- a/src/main/generated/data/galacticraft/recipes/electric_compressor_upgrade.json +++ b/src/main/generated/data/galacticraft/recipe/electric_compressor_upgrade.json @@ -24,6 +24,7 @@ "IWI" ], "result": { - "item": "galacticraft:electric_compressor" + "count": 1, + "id": "galacticraft:electric_compressor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/electric_furnace.json b/src/main/generated/data/galacticraft/recipe/electric_furnace.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/electric_furnace.json rename to src/main/generated/data/galacticraft/recipe/electric_furnace.json index 3b7f7c965..602bec559 100644 --- a/src/main/generated/data/galacticraft/recipes/electric_furnace.json +++ b/src/main/generated/data/galacticraft/recipe/electric_furnace.json @@ -21,6 +21,7 @@ "AWA" ], "result": { - "item": "galacticraft:electric_furnace" + "count": 1, + "id": "galacticraft:electric_furnace" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/energy_storage_module.json b/src/main/generated/data/galacticraft/recipe/energy_storage_module.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/energy_storage_module.json rename to src/main/generated/data/galacticraft/recipe/energy_storage_module.json index a3b96b5c3..a50f45c33 100644 --- a/src/main/generated/data/galacticraft/recipes/energy_storage_module.json +++ b/src/main/generated/data/galacticraft/recipe/energy_storage_module.json @@ -15,6 +15,7 @@ "SSS" ], "result": { - "item": "galacticraft:energy_storage_module" + "count": 1, + "id": "galacticraft:energy_storage_module" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fabrication/advanced_wafer.json b/src/main/generated/data/galacticraft/recipe/fabrication/advanced_wafer.json similarity index 90% rename from src/main/generated/data/galacticraft/recipes/fabrication/advanced_wafer.json rename to src/main/generated/data/galacticraft/recipe/fabrication/advanced_wafer.json index a048c3a2f..69570d488 100644 --- a/src/main/generated/data/galacticraft/recipes/fabrication/advanced_wafer.json +++ b/src/main/generated/data/galacticraft/recipe/fabrication/advanced_wafer.json @@ -4,7 +4,7 @@ "item": "minecraft:repeater" }, "result": { - "Count": 1, + "count": 1, "id": "galacticraft:advanced_wafer" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fabrication/basic_wafer.json b/src/main/generated/data/galacticraft/recipe/fabrication/basic_wafer.json similarity index 90% rename from src/main/generated/data/galacticraft/recipes/fabrication/basic_wafer.json rename to src/main/generated/data/galacticraft/recipe/fabrication/basic_wafer.json index fd65f6a47..299f62fe8 100644 --- a/src/main/generated/data/galacticraft/recipes/fabrication/basic_wafer.json +++ b/src/main/generated/data/galacticraft/recipe/fabrication/basic_wafer.json @@ -4,7 +4,7 @@ "item": "minecraft:redstone_torch" }, "result": { - "Count": 3, + "count": 3, "id": "galacticraft:basic_wafer" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fabrication/blue_solar_wafer.json b/src/main/generated/data/galacticraft/recipe/fabrication/blue_solar_wafer.json similarity index 90% rename from src/main/generated/data/galacticraft/recipes/fabrication/blue_solar_wafer.json rename to src/main/generated/data/galacticraft/recipe/fabrication/blue_solar_wafer.json index 571f1384b..66431e61b 100644 --- a/src/main/generated/data/galacticraft/recipes/fabrication/blue_solar_wafer.json +++ b/src/main/generated/data/galacticraft/recipe/fabrication/blue_solar_wafer.json @@ -4,7 +4,7 @@ "item": "minecraft:lapis_lazuli" }, "result": { - "Count": 9, + "count": 9, "id": "galacticraft:blue_solar_wafer" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fabrication/solar_array_wafer.json b/src/main/generated/data/galacticraft/recipe/fabrication/solar_array_wafer.json similarity index 91% rename from src/main/generated/data/galacticraft/recipes/fabrication/solar_array_wafer.json rename to src/main/generated/data/galacticraft/recipe/fabrication/solar_array_wafer.json index 73c9617f4..bec0cfa58 100644 --- a/src/main/generated/data/galacticraft/recipes/fabrication/solar_array_wafer.json +++ b/src/main/generated/data/galacticraft/recipe/fabrication/solar_array_wafer.json @@ -4,7 +4,7 @@ "item": "galacticraft:solar_dust" }, "result": { - "Count": 3, + "count": 3, "id": "galacticraft:solar_array_wafer" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fluid_manipulator.json b/src/main/generated/data/galacticraft/recipe/fluid_manipulator.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/fluid_manipulator.json rename to src/main/generated/data/galacticraft/recipe/fluid_manipulator.json index 1d7b2c675..7c0f45d08 100644 --- a/src/main/generated/data/galacticraft/recipes/fluid_manipulator.json +++ b/src/main/generated/data/galacticraft/recipe/fluid_manipulator.json @@ -21,6 +21,7 @@ "MFM" ], "result": { - "item": "galacticraft:fluid_manipulator" + "count": 1, + "id": "galacticraft:fluid_manipulator" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway.json b/src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway.json rename to src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway.json index 6ab9fef26..af3e4f24e 100644 --- a/src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway.json +++ b/src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway.json @@ -16,6 +16,6 @@ ], "result": { "count": 5, - "item": "galacticraft:fluid_pipe_walkway" + "id": "galacticraft:fluid_pipe_walkway" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway_shapeless.json b/src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway_shapeless.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway_shapeless.json rename to src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway_shapeless.json index 9ae4e1487..8fed9c8fe 100644 --- a/src/main/generated/data/galacticraft/recipes/fluid_pipe_walkway_shapeless.json +++ b/src/main/generated/data/galacticraft/recipe/fluid_pipe_walkway_shapeless.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:fluid_pipe_walkway" + "count": 1, + "id": "galacticraft:fluid_pipe_walkway" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/frequency_module.json b/src/main/generated/data/galacticraft/recipe/frequency_module.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/frequency_module.json rename to src/main/generated/data/galacticraft/recipe/frequency_module.json index 26f007d4e..4f919c94f 100644 --- a/src/main/generated/data/galacticraft/recipes/frequency_module.json +++ b/src/main/generated/data/galacticraft/recipe/frequency_module.json @@ -12,7 +12,7 @@ "item": "minecraft:repeater" }, "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" }, "W": { "item": "galacticraft:basic_wafer" @@ -24,6 +24,7 @@ "RWR" ], "result": { - "item": "galacticraft:frequency_module" + "count": 1, + "id": "galacticraft:frequency_module" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fuel_loader.json b/src/main/generated/data/galacticraft/recipe/fuel_loader.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/fuel_loader.json rename to src/main/generated/data/galacticraft/recipe/fuel_loader.json index 90aaed7fb..0b9238d3c 100644 --- a/src/main/generated/data/galacticraft/recipes/fuel_loader.json +++ b/src/main/generated/data/galacticraft/recipe/fuel_loader.json @@ -21,6 +21,7 @@ "TWT" ], "result": { - "item": "galacticraft:fuel_loader" + "count": 1, + "id": "galacticraft:fuel_loader" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/fueling_pad.json b/src/main/generated/data/galacticraft/recipe/fueling_pad.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/fueling_pad.json rename to src/main/generated/data/galacticraft/recipe/fueling_pad.json index e1535aedf..a0e1f9db3 100644 --- a/src/main/generated/data/galacticraft/recipes/fueling_pad.json +++ b/src/main/generated/data/galacticraft/recipe/fueling_pad.json @@ -15,6 +15,6 @@ ], "result": { "count": 9, - "item": "galacticraft:fueling_pad" + "id": "galacticraft:fueling_pad" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/full_solar_panel.json b/src/main/generated/data/galacticraft/recipe/full_solar_panel.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/full_solar_panel.json rename to src/main/generated/data/galacticraft/recipe/full_solar_panel.json index 699c20106..bf70f0925 100644 --- a/src/main/generated/data/galacticraft/recipes/full_solar_panel.json +++ b/src/main/generated/data/galacticraft/recipe/full_solar_panel.json @@ -15,6 +15,7 @@ "MMM" ], "result": { - "item": "galacticraft:full_solar_panel" + "count": 1, + "id": "galacticraft:full_solar_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/glass_fluid_pipe.json b/src/main/generated/data/galacticraft/recipe/glass_fluid_pipe.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/glass_fluid_pipe.json rename to src/main/generated/data/galacticraft/recipe/glass_fluid_pipe.json index 80d2eb923..a38f5db7a 100644 --- a/src/main/generated/data/galacticraft/recipes/glass_fluid_pipe.json +++ b/src/main/generated/data/galacticraft/recipe/glass_fluid_pipe.json @@ -13,6 +13,6 @@ ], "result": { "count": 6, - "item": "galacticraft:glass_fluid_pipe" + "id": "galacticraft:glass_fluid_pipe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/glowstone_lantern.json b/src/main/generated/data/galacticraft/recipe/glowstone_lantern.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/glowstone_lantern.json rename to src/main/generated/data/galacticraft/recipe/glowstone_lantern.json index efb54a80e..d3306b486 100644 --- a/src/main/generated/data/galacticraft/recipes/glowstone_lantern.json +++ b/src/main/generated/data/galacticraft/recipe/glowstone_lantern.json @@ -15,6 +15,7 @@ "III" ], "result": { - "item": "galacticraft:glowstone_lantern" + "count": 1, + "id": "galacticraft:glowstone_lantern" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/glowstone_torch.json b/src/main/generated/data/galacticraft/recipe/glowstone_torch.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/glowstone_torch.json rename to src/main/generated/data/galacticraft/recipe/glowstone_torch.json index 6165285fd..87b2262d2 100644 --- a/src/main/generated/data/galacticraft/recipes/glowstone_torch.json +++ b/src/main/generated/data/galacticraft/recipe/glowstone_torch.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:glowstone_torch" + "id": "galacticraft:glowstone_torch" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/grating.json b/src/main/generated/data/galacticraft/recipe/grating.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/grating.json rename to src/main/generated/data/galacticraft/recipe/grating.json index 346fe2bf2..968baefb3 100644 --- a/src/main/generated/data/galacticraft/recipes/grating.json +++ b/src/main/generated/data/galacticraft/recipe/grating.json @@ -12,6 +12,6 @@ ], "result": { "count": 4, - "item": "galacticraft:grating" + "id": "galacticraft:grating" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/gray_parachute.json b/src/main/generated/data/galacticraft/recipe/gray_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/gray_parachute.json rename to src/main/generated/data/galacticraft/recipe/gray_parachute.json index 575a261f5..bcd35314a 100644 --- a/src/main/generated/data/galacticraft/recipes/gray_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/gray_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:gray_parachute" + "count": 1, + "id": "galacticraft:gray_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/green_parachute.json b/src/main/generated/data/galacticraft/recipe/green_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/green_parachute.json rename to src/main/generated/data/galacticraft/recipe/green_parachute.json index d64e647a8..9c55aa59d 100644 --- a/src/main/generated/data/galacticraft/recipes/green_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/green_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:green_parachute" + "count": 1, + "id": "galacticraft:green_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/ground_beef.json b/src/main/generated/data/galacticraft/recipe/ground_beef.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/ground_beef.json rename to src/main/generated/data/galacticraft/recipe/ground_beef.json index 6b33bf17f..06c6f3104 100644 --- a/src/main/generated/data/galacticraft/recipes/ground_beef.json +++ b/src/main/generated/data/galacticraft/recipe/ground_beef.json @@ -8,6 +8,6 @@ ], "result": { "count": 2, - "item": "galacticraft:ground_beef" + "id": "galacticraft:ground_beef" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_axe.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_axe.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_axe.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_axe.json index 1a7524e85..5e76f1c23 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_axe.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_axe.json @@ -15,6 +15,7 @@ " W" ], "result": { - "item": "galacticraft:heavy_duty_axe" + "count": 1, + "id": "galacticraft:heavy_duty_axe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_axe_flipped.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_axe_flipped.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_axe_flipped.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_axe_flipped.json index 12c6c0a08..dce289c23 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_axe_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_axe_flipped.json @@ -15,6 +15,7 @@ "W " ], "result": { - "item": "galacticraft:heavy_duty_axe" + "count": 1, + "id": "galacticraft:heavy_duty_axe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_boots.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_boots.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_boots.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_boots.json index 125104446..b2cc80bf7 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_boots.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_boots.json @@ -11,6 +11,7 @@ "P P" ], "result": { - "item": "galacticraft:heavy_duty_boots" + "count": 1, + "id": "galacticraft:heavy_duty_boots" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_chestplate.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_chestplate.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_chestplate.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_chestplate.json index 4ac79fb3a..355fae7ce 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_chestplate.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_chestplate.json @@ -12,6 +12,7 @@ "PPP" ], "result": { - "item": "galacticraft:heavy_duty_chestplate" + "count": 1, + "id": "galacticraft:heavy_duty_chestplate" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_helmet.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_helmet.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_helmet.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_helmet.json index 920016b22..4c1d3e215 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_helmet.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_helmet.json @@ -11,6 +11,7 @@ "P P" ], "result": { - "item": "galacticraft:heavy_duty_helmet" + "count": 1, + "id": "galacticraft:heavy_duty_helmet" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_hoe.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_hoe.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_hoe.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_hoe.json index e7becb0f7..3480b3b3b 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_hoe.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_hoe.json @@ -15,6 +15,7 @@ " W" ], "result": { - "item": "galacticraft:heavy_duty_hoe" + "count": 1, + "id": "galacticraft:heavy_duty_hoe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_hoe_flipped.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_hoe_flipped.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_hoe_flipped.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_hoe_flipped.json index e31180fbf..c1f72fa9e 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_hoe_flipped.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_hoe_flipped.json @@ -15,6 +15,7 @@ "W " ], "result": { - "item": "galacticraft:heavy_duty_hoe" + "count": 1, + "id": "galacticraft:heavy_duty_hoe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_leggings.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_leggings.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_leggings.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_leggings.json index e4f409d94..159683d26 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_leggings.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_leggings.json @@ -12,6 +12,7 @@ "P P" ], "result": { - "item": "galacticraft:heavy_duty_leggings" + "count": 1, + "id": "galacticraft:heavy_duty_leggings" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_pickaxe.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_pickaxe.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_pickaxe.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_pickaxe.json index 4c8e10c2f..e8434418f 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_pickaxe.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_pickaxe.json @@ -15,6 +15,7 @@ " W " ], "result": { - "item": "galacticraft:heavy_duty_pickaxe" + "count": 1, + "id": "galacticraft:heavy_duty_pickaxe" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_shovel.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_shovel.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_shovel.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_shovel.json index 3535fc1df..7c4265f3e 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_shovel.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_shovel.json @@ -15,6 +15,7 @@ "W" ], "result": { - "item": "galacticraft:heavy_duty_shovel" + "count": 1, + "id": "galacticraft:heavy_duty_shovel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/heavy_duty_sword.json b/src/main/generated/data/galacticraft/recipe/heavy_duty_sword.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/heavy_duty_sword.json rename to src/main/generated/data/galacticraft/recipe/heavy_duty_sword.json index 7a10bbc77..f46a7c5f8 100644 --- a/src/main/generated/data/galacticraft/recipes/heavy_duty_sword.json +++ b/src/main/generated/data/galacticraft/recipe/heavy_duty_sword.json @@ -15,6 +15,7 @@ "W" ], "result": { - "item": "galacticraft:heavy_duty_sword" + "count": 1, + "id": "galacticraft:heavy_duty_sword" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_blasting.json b/src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_blasting.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_blasting.json rename to src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_blasting.json index 9366246e5..ed610e2a2 100644 --- a/src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_blasting.json +++ b/src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_blasting.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:throwable_meteor_chunk" }, - "result": "galacticraft:hot_throwable_meteor_chunk" + "result": { + "id": "galacticraft:hot_throwable_meteor_chunk" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_smelting.json b/src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_smelting.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_smelting.json rename to src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_smelting.json index 40bf36a2b..5f39b5b5f 100644 --- a/src/main/generated/data/galacticraft/recipes/hot_throwable_meteor_chunk_from_smelting.json +++ b/src/main/generated/data/galacticraft/recipe/hot_throwable_meteor_chunk_from_smelting.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:throwable_meteor_chunk" }, - "result": "galacticraft:hot_throwable_meteor_chunk" + "result": { + "id": "galacticraft:hot_throwable_meteor_chunk" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration.json b/src/main/generated/data/galacticraft/recipe/iron_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/iron_decoration.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration.json index 0d354b848..634a1d3ae 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:iron_decoration" + "id": "galacticraft:iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_slab.json index de2bb8e6c..0b903334f 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:iron_decoration_slab" + "id": "galacticraft:iron_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_slab_from_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_slab_from_iron_decoration_stonecutting.json index 84abda429..1b28ebd04 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_slab_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_slab_from_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:iron_decoration" }, - "result": "galacticraft:iron_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:iron_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_stairs.json index 1f1b94f33..8872b129b 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:iron_decoration_stairs" + "id": "galacticraft:iron_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_stairs_from_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_stairs_from_iron_decoration_stonecutting.json index 37681aecd..c461b1f7d 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_stairs_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_stairs_from_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:iron_decoration" }, - "result": "galacticraft:iron_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:iron_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_wall.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_wall.json index e87db7d19..a6933825e 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:iron_decoration_wall" + "id": "galacticraft:iron_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/iron_decoration_wall_from_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/iron_decoration_wall_from_iron_decoration_stonecutting.json index 359dc04c0..57a60ff43 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_decoration_wall_from_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/iron_decoration_wall_from_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:iron_decoration" }, - "result": "galacticraft:iron_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:iron_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_ingot_from_blasting_iron_shard.json b/src/main/generated/data/galacticraft/recipe/iron_ingot_from_blasting_iron_shard.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/iron_ingot_from_blasting_iron_shard.json rename to src/main/generated/data/galacticraft/recipe/iron_ingot_from_blasting_iron_shard.json index 784336392..ad172836a 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_ingot_from_blasting_iron_shard.json +++ b/src/main/generated/data/galacticraft/recipe/iron_ingot_from_blasting_iron_shard.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:iron_shard" }, - "result": "minecraft:iron_ingot" + "result": { + "id": "minecraft:iron_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/iron_ingot_from_smelting_iron_shard.json b/src/main/generated/data/galacticraft/recipe/iron_ingot_from_smelting_iron_shard.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/iron_ingot_from_smelting_iron_shard.json rename to src/main/generated/data/galacticraft/recipe/iron_ingot_from_smelting_iron_shard.json index 534657cca..0e8ca1297 100644 --- a/src/main/generated/data/galacticraft/recipes/iron_ingot_from_smelting_iron_shard.json +++ b/src/main/generated/data/galacticraft/recipe/iron_ingot_from_smelting_iron_shard.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:iron_shard" }, - "result": "minecraft:iron_ingot" + "result": { + "id": "minecraft:iron_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/isothermal_fabric.json b/src/main/generated/data/galacticraft/recipe/isothermal_fabric.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/isothermal_fabric.json rename to src/main/generated/data/galacticraft/recipe/isothermal_fabric.json index e2cba1c97..e1e0ef31d 100644 --- a/src/main/generated/data/galacticraft/recipes/isothermal_fabric.json +++ b/src/main/generated/data/galacticraft/recipe/isothermal_fabric.json @@ -13,6 +13,7 @@ "TDT" ], "result": { - "item": "galacticraft:isothermal_fabric" + "count": 1, + "id": "galacticraft:isothermal_fabric" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/large_oxygen_tank.json b/src/main/generated/data/galacticraft/recipe/large_oxygen_tank.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/large_oxygen_tank.json rename to src/main/generated/data/galacticraft/recipe/large_oxygen_tank.json index 78d1a26f2..afbac62a5 100644 --- a/src/main/generated/data/galacticraft/recipes/large_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/recipe/large_oxygen_tank.json @@ -18,6 +18,7 @@ "CCC" ], "result": { - "item": "galacticraft:large_oxygen_tank" + "count": 1, + "id": "galacticraft:large_oxygen_tank" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_block.json b/src/main/generated/data/galacticraft/recipe/lead_block.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/lead_block.json rename to src/main/generated/data/galacticraft/recipe/lead_block.json index 575af69b0..a679c2723 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_block.json +++ b/src/main/generated/data/galacticraft/recipe/lead_block.json @@ -12,6 +12,7 @@ "###" ], "result": { - "item": "galacticraft:lead_block" + "count": 1, + "id": "galacticraft:lead_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_galena_ore.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_galena_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_galena_ore.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_galena_ore.json index 2a65a68e5..dc9719953 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_galena_ore.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_galena_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:galena_ore" }, - "result": "galacticraft:lead_ingot" + "result": { + "id": "galacticraft:lead_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_raw_lead.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_raw_lead.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_raw_lead.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_raw_lead.json index d101c5bb8..28c9b662b 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_blasting_raw_lead.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_blasting_raw_lead.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_lead" }, - "result": "galacticraft:lead_ingot" + "result": { + "id": "galacticraft:lead_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_block.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_block.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_block.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_block.json index 450c0bb41..26854d91b 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_block.json @@ -9,6 +9,6 @@ ], "result": { "count": 9, - "item": "galacticraft:lead_ingot" + "id": "galacticraft:lead_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_nuggets.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_nuggets.json index 3f4617d24..7e51a437d 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:lead_ingot" + "count": 1, + "id": "galacticraft:lead_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_galena_ore.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_galena_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_galena_ore.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_galena_ore.json index 0a39ea5de..2ce563b96 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_galena_ore.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_galena_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:galena_ore" }, - "result": "galacticraft:lead_ingot" + "result": { + "id": "galacticraft:lead_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_raw_lead.json b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_raw_lead.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_raw_lead.json rename to src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_raw_lead.json index 73f394c3b..c06853a3c 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_ingot_from_smelting_raw_lead.json +++ b/src/main/generated/data/galacticraft/recipe/lead_ingot_from_smelting_raw_lead.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_lead" }, - "result": "galacticraft:lead_ingot" + "result": { + "id": "galacticraft:lead_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lead_nugget.json b/src/main/generated/data/galacticraft/recipe/lead_nugget.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/lead_nugget.json rename to src/main/generated/data/galacticraft/recipe/lead_nugget.json index 2f18f3bb2..05c31fce8 100644 --- a/src/main/generated/data/galacticraft/recipes/lead_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/lead_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:lead_nugget" + "id": "galacticraft:lead_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/light_blue_parachute.json b/src/main/generated/data/galacticraft/recipe/light_blue_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/light_blue_parachute.json rename to src/main/generated/data/galacticraft/recipe/light_blue_parachute.json index 59dd5687b..128be6a77 100644 --- a/src/main/generated/data/galacticraft/recipes/light_blue_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/light_blue_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:light_blue_parachute" + "count": 1, + "id": "galacticraft:light_blue_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/light_gray_parachute.json b/src/main/generated/data/galacticraft/recipe/light_gray_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/light_gray_parachute.json rename to src/main/generated/data/galacticraft/recipe/light_gray_parachute.json index 72b869f1d..01802f965 100644 --- a/src/main/generated/data/galacticraft/recipes/light_gray_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/light_gray_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:light_gray_parachute" + "count": 1, + "id": "galacticraft:light_gray_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lime_parachute.json b/src/main/generated/data/galacticraft/recipe/lime_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/lime_parachute.json rename to src/main/generated/data/galacticraft/recipe/lime_parachute.json index bfcfd001e..c9c9b9868 100644 --- a/src/main/generated/data/galacticraft/recipes/lime_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/lime_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:lime_parachute" + "count": 1, + "id": "galacticraft:lime_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/linear_light_panel.json b/src/main/generated/data/galacticraft/recipe/linear_light_panel.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/linear_light_panel.json rename to src/main/generated/data/galacticraft/recipe/linear_light_panel.json index 229c1b717..70726785e 100644 --- a/src/main/generated/data/galacticraft/recipes/linear_light_panel.json +++ b/src/main/generated/data/galacticraft/recipe/linear_light_panel.json @@ -18,6 +18,7 @@ "STS" ], "result": { - "item": "galacticraft:linear_light_panel" + "count": 1, + "id": "galacticraft:linear_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunar_sapphire_block.json b/src/main/generated/data/galacticraft/recipe/lunar_sapphire_block.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/lunar_sapphire_block.json rename to src/main/generated/data/galacticraft/recipe/lunar_sapphire_block.json index 6321bb528..b42b68f7f 100644 --- a/src/main/generated/data/galacticraft/recipes/lunar_sapphire_block.json +++ b/src/main/generated/data/galacticraft/recipe/lunar_sapphire_block.json @@ -12,6 +12,7 @@ "###" ], "result": { - "item": "galacticraft:lunar_sapphire_block" + "count": 1, + "id": "galacticraft:lunar_sapphire_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunar_sapphire_from_block.json b/src/main/generated/data/galacticraft/recipe/lunar_sapphire_from_block.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/lunar_sapphire_from_block.json rename to src/main/generated/data/galacticraft/recipe/lunar_sapphire_from_block.json index 454568e17..eda56816c 100644 --- a/src/main/generated/data/galacticraft/recipes/lunar_sapphire_from_block.json +++ b/src/main/generated/data/galacticraft/recipe/lunar_sapphire_from_block.json @@ -9,6 +9,6 @@ ], "result": { "count": 9, - "item": "galacticraft:lunar_sapphire" + "id": "galacticraft:lunar_sapphire" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_slab.json b/src/main/generated/data/galacticraft/recipe/lunaslate_slab.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/lunaslate_slab.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_slab.json index 93dbfadae..46896359e 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_slab.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:lunaslate_slab" + "id": "galacticraft:lunaslate_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/lunaslate_slab_from_lunaslate_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_slab_from_lunaslate_stonecutting.json index eb091a399..9025d9203 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_slab_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_slab_from_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:lunaslate" }, - "result": "galacticraft:lunaslate_slab" + "result": { + "count": 2, + "id": "galacticraft:lunaslate_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_stairs.json b/src/main/generated/data/galacticraft/recipe/lunaslate_stairs.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/lunaslate_stairs.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_stairs.json index 0adc3fd0f..034b2382d 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:lunaslate_stairs" + "id": "galacticraft:lunaslate_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/lunaslate_stairs_from_lunaslate_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_stairs_from_lunaslate_stonecutting.json index ad5063de9..fa35f21e2 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_stairs_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_stairs_from_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:lunaslate" }, - "result": "galacticraft:lunaslate_stairs" + "result": { + "count": 1, + "id": "galacticraft:lunaslate_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_wall.json b/src/main/generated/data/galacticraft/recipe/lunaslate_wall.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/lunaslate_wall.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_wall.json index 317b014cf..3d261aaa3 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_wall.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:lunaslate_wall" + "id": "galacticraft:lunaslate_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json b/src/main/generated/data/galacticraft/recipe/lunaslate_wall_from_lunaslate_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/lunaslate_wall_from_lunaslate_stonecutting.json index f6e097af2..838de8180 100644 --- a/src/main/generated/data/galacticraft/recipes/lunaslate_wall_from_lunaslate_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/lunaslate_wall_from_lunaslate_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:lunaslate" }, - "result": "galacticraft:lunaslate_wall" + "result": { + "count": 1, + "id": "galacticraft:lunaslate_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/magenta_parachute.json b/src/main/generated/data/galacticraft/recipe/magenta_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/magenta_parachute.json rename to src/main/generated/data/galacticraft/recipe/magenta_parachute.json index 491ecb166..d634220c3 100644 --- a/src/main/generated/data/galacticraft/recipes/magenta_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/magenta_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:magenta_parachute" + "count": 1, + "id": "galacticraft:magenta_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab.json index 9b85a5cb3..ccb8a44e9 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:mars_cobblestone_slab" + "id": "galacticraft:mars_cobblestone_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json index 7b0a17666..91eb7cbb7 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_slab_from_mars_cobblestone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:mars_cobblestone" }, - "result": "galacticraft:mars_cobblestone_slab" + "result": { + "count": 2, + "id": "galacticraft:mars_cobblestone_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs.json index c621803ec..adf98a2c5 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:mars_cobblestone_stairs" + "id": "galacticraft:mars_cobblestone_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json index 83abca8bc..460025316 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_stairs_from_mars_cobblestone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:mars_cobblestone" }, - "result": "galacticraft:mars_cobblestone_stairs" + "result": { + "count": 1, + "id": "galacticraft:mars_cobblestone_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall.json index d8507ab7f..5c95f4281 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:mars_cobblestone_wall" + "id": "galacticraft:mars_cobblestone_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json index 91752a80a..7a1fad272 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_cobblestone_wall_from_mars_cobblestone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:mars_cobblestone" }, - "result": "galacticraft:mars_cobblestone_wall" + "result": { + "count": 1, + "id": "galacticraft:mars_cobblestone_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_slab.json b/src/main/generated/data/galacticraft/recipe/mars_stone_slab.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/mars_stone_slab.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_slab.json index b54824dfd..78ac7faba 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_slab.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:mars_stone_slab" + "id": "galacticraft:mars_stone_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_stone_slab_from_mars_stone_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_slab_from_mars_stone_stonecutting.json index 717acf44e..5b251d15a 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_slab_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_slab_from_mars_stone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:mars_stone" }, - "result": "galacticraft:mars_stone_slab" + "result": { + "count": 2, + "id": "galacticraft:mars_stone_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_stairs.json b/src/main/generated/data/galacticraft/recipe/mars_stone_stairs.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/mars_stone_stairs.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_stairs.json index e9333d4d0..947e65d93 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:mars_stone_stairs" + "id": "galacticraft:mars_stone_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_stone_stairs_from_mars_stone_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_stairs_from_mars_stone_stonecutting.json index 89fa10c83..b08e3c5ce 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_stairs_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_stairs_from_mars_stone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:mars_stone" }, - "result": "galacticraft:mars_stone_stairs" + "result": { + "count": 1, + "id": "galacticraft:mars_stone_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_wall.json b/src/main/generated/data/galacticraft/recipe/mars_stone_wall.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/mars_stone_wall.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_wall.json index 74c2635c6..11fd0db63 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_wall.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:mars_stone_wall" + "id": "galacticraft:mars_stone_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json b/src/main/generated/data/galacticraft/recipe/mars_stone_wall_from_mars_stone_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/mars_stone_wall_from_mars_stone_stonecutting.json index 1243eb745..5b63e7691 100644 --- a/src/main/generated/data/galacticraft/recipes/mars_stone_wall_from_mars_stone_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/mars_stone_wall_from_mars_stone_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:mars_stone" }, - "result": "galacticraft:mars_stone_wall" + "result": { + "count": 1, + "id": "galacticraft:mars_stone_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/medium_oxygen_tank.json b/src/main/generated/data/galacticraft/recipe/medium_oxygen_tank.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/medium_oxygen_tank.json rename to src/main/generated/data/galacticraft/recipe/medium_oxygen_tank.json index 550e25d47..f0f58d481 100644 --- a/src/main/generated/data/galacticraft/recipes/medium_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/recipe/medium_oxygen_tank.json @@ -18,6 +18,7 @@ "CC" ], "result": { - "item": "galacticraft:medium_oxygen_tank" + "count": 1, + "id": "galacticraft:medium_oxygen_tank" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_block.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_block.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_block.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_block.json index 35da493d2..54338a550 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_block.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_block.json @@ -12,6 +12,7 @@ "###" ], "result": { - "item": "galacticraft:meteoric_iron_block" + "count": 1, + "id": "galacticraft:meteoric_iron_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration.json index b41d12f91..a4467fb2a 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:meteoric_iron_decoration" + "id": "galacticraft:meteoric_iron_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab.json index b0141ebc3..0be7de11b 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:meteoric_iron_decoration_slab" + "id": "galacticraft:meteoric_iron_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json index 676934c4b..659f721b8 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_slab_from_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:meteoric_iron_decoration" }, - "result": "galacticraft:meteoric_iron_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:meteoric_iron_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs.json index ab6d3d37f..caef44153 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:meteoric_iron_decoration_stairs" + "id": "galacticraft:meteoric_iron_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json index 8844c39c0..1fe1c6d77 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_stairs_from_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:meteoric_iron_decoration" }, - "result": "galacticraft:meteoric_iron_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:meteoric_iron_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall.json index 930851602..99cad5bfd 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:meteoric_iron_decoration_wall" + "id": "galacticraft:meteoric_iron_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json index fbe215712..6df5f53b6 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_decoration_wall_from_meteoric_iron_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:meteoric_iron_decoration" }, - "result": "galacticraft:meteoric_iron_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:meteoric_iron_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json index 74b068f2b..61d531d88 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_blasting_raw_meteoric_iron.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_meteoric_iron" }, - "result": "galacticraft:meteoric_iron_ingot" + "result": { + "id": "galacticraft:meteoric_iron_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_block.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_block.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_block.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_block.json index 62fbbf7f1..22d72b9c5 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_block.json @@ -9,6 +9,6 @@ ], "result": { "count": 9, - "item": "galacticraft:meteoric_iron_ingot" + "id": "galacticraft:meteoric_iron_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_nuggets.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_nuggets.json index 8b607f6fd..b82c353df 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:meteoric_iron_ingot" + "count": 1, + "id": "galacticraft:meteoric_iron_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json index 85f984b13..8e82bf583 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_ingot_from_smelting_raw_meteoric_iron.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_meteoric_iron" }, - "result": "galacticraft:meteoric_iron_ingot" + "result": { + "id": "galacticraft:meteoric_iron_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/meteoric_iron_nugget.json b/src/main/generated/data/galacticraft/recipe/meteoric_iron_nugget.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/meteoric_iron_nugget.json rename to src/main/generated/data/galacticraft/recipe/meteoric_iron_nugget.json index 965a503c3..f83aa87dc 100644 --- a/src/main/generated/data/galacticraft/recipes/meteoric_iron_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/meteoric_iron_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:meteoric_iron_nugget" + "id": "galacticraft:meteoric_iron_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab.json index a503a29d6..15bf987fd 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_basalt_brick_slab" + "id": "galacticraft:moon_basalt_brick_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json index ad6b3d4e5..9645dc725 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_slab_from_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:moon_basalt_brick" }, - "result": "galacticraft:moon_basalt_brick_slab" + "result": { + "count": 2, + "id": "galacticraft:moon_basalt_brick_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs.json index 83cc442a1..c6a57aa12 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:moon_basalt_brick_stairs" + "id": "galacticraft:moon_basalt_brick_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json index a9dd338fd..a7da2f81a 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_stairs_from_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_basalt_brick" }, - "result": "galacticraft:moon_basalt_brick_stairs" + "result": { + "count": 1, + "id": "galacticraft:moon_basalt_brick_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall.json index d50b503c5..9d7bd3635 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_basalt_brick_wall" + "id": "galacticraft:moon_basalt_brick_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json index ffe4921e9..966e0a494 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_brick_wall_from_moon_basalt_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_basalt_brick" }, - "result": "galacticraft:moon_basalt_brick_wall" + "result": { + "count": 1, + "id": "galacticraft:moon_basalt_brick_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_slab.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_slab.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_slab.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_slab.json index 331a3f9cc..1553e100f 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_slab.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_basalt_slab" + "id": "galacticraft:moon_basalt_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_slab_from_moon_basalt_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_slab_from_moon_basalt_stonecutting.json index b3b694adb..bd6a56097 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_slab_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_slab_from_moon_basalt_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:moon_basalt" }, - "result": "galacticraft:moon_basalt_slab" + "result": { + "count": 2, + "id": "galacticraft:moon_basalt_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_stairs.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_stairs.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_stairs.json index ab07abde1..dc877f1dc 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:moon_basalt_stairs" + "id": "galacticraft:moon_basalt_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_stairs_from_moon_basalt_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_stairs_from_moon_basalt_stonecutting.json index e9e3b594a..5c54b5b94 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_stairs_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_stairs_from_moon_basalt_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_basalt" }, - "result": "galacticraft:moon_basalt_stairs" + "result": { + "count": 1, + "id": "galacticraft:moon_basalt_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_wall.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_wall.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_wall.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_wall.json index 4e7c8b295..810b6f01f 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_wall.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_basalt_wall" + "id": "galacticraft:moon_basalt_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_basalt_wall_from_moon_basalt_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_basalt_wall_from_moon_basalt_stonecutting.json index 70918cc3b..29da8dba6 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_basalt_wall_from_moon_basalt_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_basalt_wall_from_moon_basalt_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_basalt" }, - "result": "galacticraft:moon_basalt_wall" + "result": { + "count": 1, + "id": "galacticraft:moon_basalt_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_cheese_block.json b/src/main/generated/data/galacticraft/recipe/moon_cheese_block.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/moon_cheese_block.json rename to src/main/generated/data/galacticraft/recipe/moon_cheese_block.json index 594c8f2e9..7d5556a07 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_cheese_block.json +++ b/src/main/generated/data/galacticraft/recipe/moon_cheese_block.json @@ -15,6 +15,7 @@ "CCC" ], "result": { - "item": "galacticraft:moon_cheese_block" + "count": 1, + "id": "galacticraft:moon_cheese_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock.json b/src/main/generated/data/galacticraft/recipe/moon_rock.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/moon_rock.json rename to src/main/generated/data/galacticraft/recipe/moon_rock.json index bd8ad828a..90a77f122 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock.json @@ -6,5 +6,7 @@ "ingredient": { "item": "galacticraft:cobbled_moon_rock" }, - "result": "galacticraft:moon_rock" + "result": { + "id": "galacticraft:moon_rock" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick.json index 035a38a52..df41ba596 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick.json @@ -12,6 +12,6 @@ ], "result": { "count": 4, - "item": "galacticraft:moon_rock_brick" + "id": "galacticraft:moon_rock_brick" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_from_moon_rock_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_from_moon_rock_stonecutting.json index 657b9155c..4351dcff3 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_from_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock" }, - "result": "galacticraft:moon_rock_brick" + "result": { + "count": 1, + "id": "galacticraft:moon_rock_brick" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab.json index d57b6ca65..f1699b5ad 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_rock_brick_slab" + "id": "galacticraft:moon_rock_brick_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json index da6caec3f..8e4b4c19e 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_slab_from_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:moon_rock_brick_slab" + "result": { + "count": 2, + "id": "galacticraft:moon_rock_brick_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs.json index 233a6632d..78973d139 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:moon_rock_brick_stairs" + "id": "galacticraft:moon_rock_brick_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json index 239b34287..2b02f428f 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_stairs_from_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:moon_rock_brick_stairs" + "result": { + "count": 1, + "id": "galacticraft:moon_rock_brick_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall.json index 13372e252..c87033e27 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_rock_brick_wall" + "id": "galacticraft:moon_rock_brick_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json index cd0cdd10f..02a21e1d8 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_brick_wall_from_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:moon_rock_brick_wall" + "result": { + "count": 1, + "id": "galacticraft:moon_rock_brick_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json b/src/main/generated/data/galacticraft/recipe/moon_rock_pillar.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_pillar.json index d34ce8b5f..07fa880eb 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_pillar.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_pillar.json @@ -12,6 +12,6 @@ ], "result": { "count": 2, - "item": "galacticraft:moon_rock_pillar" + "id": "galacticraft:moon_rock_pillar" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_slab.json b/src/main/generated/data/galacticraft/recipe/moon_rock_slab.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/moon_rock_slab.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_slab.json index 7e8ac1f75..0d7733ea3 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_slab.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_rock_slab" + "id": "galacticraft:moon_rock_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_slab_from_moon_rock_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_slab_from_moon_rock_stonecutting.json index e9f830980..a9387a024 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_slab_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_slab_from_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:moon_rock" }, - "result": "galacticraft:moon_rock_slab" + "result": { + "count": 2, + "id": "galacticraft:moon_rock_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json b/src/main/generated/data/galacticraft/recipe/moon_rock_stairs.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_stairs.json index 9519b40fd..5fe1a7a3f 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:moon_rock_stairs" + "id": "galacticraft:moon_rock_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_stairs_from_moon_rock_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_stairs_from_moon_rock_stonecutting.json index ef07259de..04106c89b 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_stairs_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_stairs_from_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock" }, - "result": "galacticraft:moon_rock_stairs" + "result": { + "count": 1, + "id": "galacticraft:moon_rock_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_wall.json b/src/main/generated/data/galacticraft/recipe/moon_rock_wall.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/moon_rock_wall.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_wall.json index 23f595b83..42a13b8ab 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_wall.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:moon_rock_wall" + "id": "galacticraft:moon_rock_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/moon_rock_wall_from_moon_rock_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/moon_rock_wall_from_moon_rock_stonecutting.json index 5c3f05c7c..791f62361 100644 --- a/src/main/generated/data/galacticraft/recipes/moon_rock_wall_from_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/moon_rock_wall_from_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock" }, - "result": "galacticraft:moon_rock_wall" + "result": { + "count": 1, + "id": "galacticraft:moon_rock_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/nose_cone.json b/src/main/generated/data/galacticraft/recipe/nose_cone.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/nose_cone.json rename to src/main/generated/data/galacticraft/recipe/nose_cone.json index 51b3b8a05..06413386a 100644 --- a/src/main/generated/data/galacticraft/recipes/nose_cone.json +++ b/src/main/generated/data/galacticraft/recipe/nose_cone.json @@ -15,6 +15,7 @@ "P P" ], "result": { - "item": "galacticraft:nose_cone" + "count": 1, + "id": "galacticraft:nose_cone" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json b/src/main/generated/data/galacticraft/recipe/olivine_block_from_shards.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json rename to src/main/generated/data/galacticraft/recipe/olivine_block_from_shards.json index 113a8ae90..9c1b56773 100644 --- a/src/main/generated/data/galacticraft/recipes/olivine_block_from_shards.json +++ b/src/main/generated/data/galacticraft/recipe/olivine_block_from_shards.json @@ -11,6 +11,7 @@ "##" ], "result": { - "item": "galacticraft:olivine_block" + "count": 1, + "id": "galacticraft:olivine_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/orange_parachute.json b/src/main/generated/data/galacticraft/recipe/orange_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/orange_parachute.json rename to src/main/generated/data/galacticraft/recipe/orange_parachute.json index faf7f419e..121f9a699 100644 --- a/src/main/generated/data/galacticraft/recipes/orange_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/orange_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:orange_parachute" + "count": 1, + "id": "galacticraft:orange_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/orion_drive.json b/src/main/generated/data/galacticraft/recipe/orion_drive.json similarity index 92% rename from src/main/generated/data/galacticraft/recipes/orion_drive.json rename to src/main/generated/data/galacticraft/recipe/orion_drive.json index 65c167207..17e935898 100644 --- a/src/main/generated/data/galacticraft/recipes/orion_drive.json +++ b/src/main/generated/data/galacticraft/recipe/orion_drive.json @@ -36,6 +36,7 @@ "ESI" ], "result": { - "item": "galacticraft:orion_drive" + "count": 1, + "id": "galacticraft:orion_drive" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_bubble_distributor.json b/src/main/generated/data/galacticraft/recipe/oxygen_bubble_distributor.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/oxygen_bubble_distributor.json rename to src/main/generated/data/galacticraft/recipe/oxygen_bubble_distributor.json index 0835415ca..2924a60ff 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_bubble_distributor.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_bubble_distributor.json @@ -21,6 +21,7 @@ "SFS" ], "result": { - "item": "galacticraft:oxygen_bubble_distributor" + "count": 1, + "id": "galacticraft:oxygen_bubble_distributor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_collector.json b/src/main/generated/data/galacticraft/recipe/oxygen_collector.json similarity index 90% rename from src/main/generated/data/galacticraft/recipes/oxygen_collector.json rename to src/main/generated/data/galacticraft/recipe/oxygen_collector.json index 73883aeb3..bc555ef20 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_collector.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_collector.json @@ -27,6 +27,7 @@ "ACA" ], "result": { - "item": "galacticraft:oxygen_collector" + "count": 1, + "id": "galacticraft:oxygen_collector" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_compressor.json b/src/main/generated/data/galacticraft/recipe/oxygen_compressor.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/oxygen_compressor.json rename to src/main/generated/data/galacticraft/recipe/oxygen_compressor.json index 586c20288..5f3685186 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_compressor.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_compressor.json @@ -21,6 +21,7 @@ "SBS" ], "result": { - "item": "galacticraft:oxygen_compressor" + "count": 1, + "id": "galacticraft:oxygen_compressor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_concentrator.json b/src/main/generated/data/galacticraft/recipe/oxygen_concentrator.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/oxygen_concentrator.json rename to src/main/generated/data/galacticraft/recipe/oxygen_concentrator.json index 3cfcc7fb1..6e00f8918 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_concentrator.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_concentrator.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "W": { - "tag": "c:compressed_tin" + "tag": "c:plates/tin" }, "X": { "item": "galacticraft:oxygen_vent" @@ -12,7 +12,7 @@ "item": "galacticraft:tin_canister" }, "Z": { - "tag": "c:compressed_steel" + "tag": "c:plates/steel" } }, "pattern": [ @@ -21,6 +21,7 @@ "ZXZ" ], "result": { - "item": "galacticraft:oxygen_concentrator" + "count": 1, + "id": "galacticraft:oxygen_concentrator" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_decompressor.json b/src/main/generated/data/galacticraft/recipe/oxygen_decompressor.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/oxygen_decompressor.json rename to src/main/generated/data/galacticraft/recipe/oxygen_decompressor.json index 2094da867..0fd28927e 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_decompressor.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_decompressor.json @@ -24,6 +24,7 @@ "SRS" ], "result": { - "item": "galacticraft:oxygen_decompressor" + "count": 1, + "id": "galacticraft:oxygen_decompressor" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_fan.json b/src/main/generated/data/galacticraft/recipe/oxygen_fan.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/oxygen_fan.json rename to src/main/generated/data/galacticraft/recipe/oxygen_fan.json index 12e17fce8..8e2bde7d3 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_fan.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_fan.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" }, "S": { "item": "galacticraft:compressed_steel" @@ -18,6 +18,7 @@ "SRS" ], "result": { - "item": "galacticraft:oxygen_fan" + "count": 1, + "id": "galacticraft:oxygen_fan" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_gear.json b/src/main/generated/data/galacticraft/recipe/oxygen_gear.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/oxygen_gear.json rename to src/main/generated/data/galacticraft/recipe/oxygen_gear.json index 8f508427d..fc6e53720 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_gear.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_gear.json @@ -15,6 +15,7 @@ "Y Y" ], "result": { - "item": "galacticraft:oxygen_gear" + "count": 1, + "id": "galacticraft:oxygen_gear" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_mask.json b/src/main/generated/data/galacticraft/recipe/oxygen_mask.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/oxygen_mask.json rename to src/main/generated/data/galacticraft/recipe/oxygen_mask.json index fd90fec83..dd097aff3 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_mask.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_mask.json @@ -15,6 +15,7 @@ "GGG" ], "result": { - "item": "galacticraft:oxygen_mask" + "count": 1, + "id": "galacticraft:oxygen_mask" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_sealer.json b/src/main/generated/data/galacticraft/recipe/oxygen_sealer.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/oxygen_sealer.json rename to src/main/generated/data/galacticraft/recipe/oxygen_sealer.json index ebd60648b..d681c8290 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_sealer.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_sealer.json @@ -21,6 +21,7 @@ "ASA" ], "result": { - "item": "galacticraft:oxygen_sealer" + "count": 1, + "id": "galacticraft:oxygen_sealer" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_storage_module.json b/src/main/generated/data/galacticraft/recipe/oxygen_storage_module.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/oxygen_storage_module.json rename to src/main/generated/data/galacticraft/recipe/oxygen_storage_module.json index cece3e684..7fbf8f5b9 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_storage_module.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_storage_module.json @@ -15,6 +15,7 @@ "SSS" ], "result": { - "item": "galacticraft:oxygen_storage_module" + "count": 1, + "id": "galacticraft:oxygen_storage_module" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/oxygen_vent.json b/src/main/generated/data/galacticraft/recipe/oxygen_vent.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/oxygen_vent.json rename to src/main/generated/data/galacticraft/recipe/oxygen_vent.json index 191b03916..d30206adf 100644 --- a/src/main/generated/data/galacticraft/recipes/oxygen_vent.json +++ b/src/main/generated/data/galacticraft/recipe/oxygen_vent.json @@ -14,6 +14,7 @@ "TS" ], "result": { - "item": "galacticraft:oxygen_vent" + "count": 1, + "id": "galacticraft:oxygen_vent" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/pink_parachute.json b/src/main/generated/data/galacticraft/recipe/pink_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/pink_parachute.json rename to src/main/generated/data/galacticraft/recipe/pink_parachute.json index 4c987d623..d93433ac2 100644 --- a/src/main/generated/data/galacticraft/recipes/pink_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/pink_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:pink_parachute" + "count": 1, + "id": "galacticraft:pink_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock.json index 1aecb04c6..12927ec9d 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock.json @@ -12,6 +12,6 @@ ], "result": { "count": 4, - "item": "galacticraft:polished_moon_rock" + "id": "galacticraft:polished_moon_rock" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_from_moon_rock_brick_stonecutting.json similarity index 57% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_from_moon_rock_brick_stonecutting.json index 096293254..166793a86 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_from_moon_rock_brick_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_from_moon_rock_brick_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:moon_rock_brick" }, - "result": "galacticraft:polished_moon_rock" + "result": { + "count": 1, + "id": "galacticraft:polished_moon_rock" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab.json index 68c9d1530..2f2306fa2 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:polished_moon_rock_slab" + "id": "galacticraft:polished_moon_rock_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json index f92fe791b..e6e26d07d 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_slab_from_polished_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:polished_moon_rock" }, - "result": "galacticraft:polished_moon_rock_slab" + "result": { + "count": 2, + "id": "galacticraft:polished_moon_rock_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs.json index 0a5ef39ec..b83676d22 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:polished_moon_rock_stairs" + "id": "galacticraft:polished_moon_rock_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json index 0bfb7aa96..5d7b4205b 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_stairs_from_polished_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:polished_moon_rock" }, - "result": "galacticraft:polished_moon_rock_stairs" + "result": { + "count": 1, + "id": "galacticraft:polished_moon_rock_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall.json index 5997c5ae9..04e62d0b6 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:polished_moon_rock_wall" + "id": "galacticraft:polished_moon_rock_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json index c80ba31c0..c32d9b470 100644 --- a/src/main/generated/data/galacticraft/recipes/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/polished_moon_rock_wall_from_polished_moon_rock_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:polished_moon_rock" }, - "result": "galacticraft:polished_moon_rock_wall" + "result": { + "count": 1, + "id": "galacticraft:polished_moon_rock_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/purple_parachute.json b/src/main/generated/data/galacticraft/recipe/purple_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/purple_parachute.json rename to src/main/generated/data/galacticraft/recipe/purple_parachute.json index 05753f75c..40c761679 100644 --- a/src/main/generated/data/galacticraft/recipes/purple_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/purple_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:purple_parachute" + "count": 1, + "id": "galacticraft:purple_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/red_parachute.json b/src/main/generated/data/galacticraft/recipe/red_parachute.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/red_parachute.json rename to src/main/generated/data/galacticraft/recipe/red_parachute.json index aa11d6b03..6746b31b5 100644 --- a/src/main/generated/data/galacticraft/recipes/red_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/red_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:red_parachute" + "count": 1, + "id": "galacticraft:red_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/refinery.json b/src/main/generated/data/galacticraft/recipe/refinery.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/refinery.json rename to src/main/generated/data/galacticraft/recipe/refinery.json index edd49b440..d05da1acb 100644 --- a/src/main/generated/data/galacticraft/recipes/refinery.json +++ b/src/main/generated/data/galacticraft/recipe/refinery.json @@ -18,6 +18,7 @@ "SFS" ], "result": { - "item": "galacticraft:refinery" + "count": 1, + "id": "galacticraft:refinery" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/rocket_engine.json b/src/main/generated/data/galacticraft/recipe/rocket_engine.json similarity index 89% rename from src/main/generated/data/galacticraft/recipes/rocket_engine.json rename to src/main/generated/data/galacticraft/recipe/rocket_engine.json index 4a74aaec4..003095556 100644 --- a/src/main/generated/data/galacticraft/recipes/rocket_engine.json +++ b/src/main/generated/data/galacticraft/recipe/rocket_engine.json @@ -24,6 +24,7 @@ "PVP" ], "result": { - "item": "galacticraft:rocket_engine" + "count": 1, + "id": "galacticraft:rocket_engine" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/rocket_fin.json b/src/main/generated/data/galacticraft/recipe/rocket_fin.json similarity index 73% rename from src/main/generated/data/galacticraft/recipes/rocket_fin.json rename to src/main/generated/data/galacticraft/recipe/rocket_fin.json index 049efe137..538be82eb 100644 --- a/src/main/generated/data/galacticraft/recipes/rocket_fin.json +++ b/src/main/generated/data/galacticraft/recipe/rocket_fin.json @@ -6,7 +6,7 @@ "item": "galacticraft:heavy_plating" }, "S": { - "tag": "c:compressed_steel" + "tag": "c:plates/steel" } }, "pattern": [ @@ -15,6 +15,7 @@ "P P" ], "result": { - "item": "galacticraft:rocket_fin" + "count": 1, + "id": "galacticraft:rocket_fin" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/rocket_launch_pad.json b/src/main/generated/data/galacticraft/recipe/rocket_launch_pad.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/rocket_launch_pad.json rename to src/main/generated/data/galacticraft/recipe/rocket_launch_pad.json index 022a91914..a76a77104 100644 --- a/src/main/generated/data/galacticraft/recipes/rocket_launch_pad.json +++ b/src/main/generated/data/galacticraft/recipe/rocket_launch_pad.json @@ -15,6 +15,6 @@ ], "result": { "count": 9, - "item": "galacticraft:rocket_launch_pad" + "id": "galacticraft:rocket_launch_pad" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/rocket_workbench.json b/src/main/generated/data/galacticraft/recipe/rocket_workbench.json similarity index 88% rename from src/main/generated/data/galacticraft/recipes/rocket_workbench.json rename to src/main/generated/data/galacticraft/recipe/rocket_workbench.json index 3a8c2e83f..a13bcf4a7 100644 --- a/src/main/generated/data/galacticraft/recipes/rocket_workbench.json +++ b/src/main/generated/data/galacticraft/recipe/rocket_workbench.json @@ -24,6 +24,7 @@ "SRS" ], "result": { - "item": "galacticraft:rocket_workbench" + "count": 1, + "id": "galacticraft:rocket_workbench" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/sealable_aluminum_wire.json b/src/main/generated/data/galacticraft/recipe/sealable_aluminum_wire.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/sealable_aluminum_wire.json rename to src/main/generated/data/galacticraft/recipe/sealable_aluminum_wire.json index de4441439..e0eb80394 100644 --- a/src/main/generated/data/galacticraft/recipes/sealable_aluminum_wire.json +++ b/src/main/generated/data/galacticraft/recipe/sealable_aluminum_wire.json @@ -14,6 +14,6 @@ ], "result": { "count": 6, - "item": "galacticraft:sealable_aluminum_wire" + "id": "galacticraft:sealable_aluminum_wire" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/sensor_glasses.json b/src/main/generated/data/galacticraft/recipe/sensor_glasses.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/sensor_glasses.json rename to src/main/generated/data/galacticraft/recipe/sensor_glasses.json index e7cb0cfa2..4c2d9b205 100644 --- a/src/main/generated/data/galacticraft/recipes/sensor_glasses.json +++ b/src/main/generated/data/galacticraft/recipe/sensor_glasses.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "D": { - "tag": "c:diamonds" + "tag": "c:gems/diamond" }, "L": { "item": "galacticraft:sensor_lens" @@ -21,6 +21,7 @@ "LML" ], "result": { - "item": "galacticraft:sensor_glasses" + "count": 1, + "id": "galacticraft:sensor_glasses" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/sensor_lens.json b/src/main/generated/data/galacticraft/recipe/sensor_lens.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/sensor_lens.json rename to src/main/generated/data/galacticraft/recipe/sensor_lens.json index 53d78b857..55cce0150 100644 --- a/src/main/generated/data/galacticraft/recipes/sensor_lens.json +++ b/src/main/generated/data/galacticraft/recipe/sensor_lens.json @@ -9,7 +9,7 @@ "tag": "c:glass_panes" }, "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" } }, "pattern": [ @@ -18,6 +18,7 @@ "RPR" ], "result": { - "item": "galacticraft:sensor_lens" + "count": 1, + "id": "galacticraft:sensor_lens" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/single_solar_module.json b/src/main/generated/data/galacticraft/recipe/single_solar_module.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/single_solar_module.json rename to src/main/generated/data/galacticraft/recipe/single_solar_module.json index 19a597679..118177f4d 100644 --- a/src/main/generated/data/galacticraft/recipes/single_solar_module.json +++ b/src/main/generated/data/galacticraft/recipe/single_solar_module.json @@ -19,6 +19,6 @@ ], "result": { "count": 2, - "item": "galacticraft:single_solar_module" + "id": "galacticraft:single_solar_module" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/small_oxygen_tank.json b/src/main/generated/data/galacticraft/recipe/small_oxygen_tank.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/small_oxygen_tank.json rename to src/main/generated/data/galacticraft/recipe/small_oxygen_tank.json index b320a32ac..8db162948 100644 --- a/src/main/generated/data/galacticraft/recipes/small_oxygen_tank.json +++ b/src/main/generated/data/galacticraft/recipe/small_oxygen_tank.json @@ -18,6 +18,7 @@ "C" ], "result": { - "item": "galacticraft:small_oxygen_tank" + "count": 1, + "id": "galacticraft:small_oxygen_tank" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/spotlight_light_panel.json b/src/main/generated/data/galacticraft/recipe/spotlight_light_panel.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/spotlight_light_panel.json rename to src/main/generated/data/galacticraft/recipe/spotlight_light_panel.json index d93278534..587d6e1f6 100644 --- a/src/main/generated/data/galacticraft/recipes/spotlight_light_panel.json +++ b/src/main/generated/data/galacticraft/recipe/spotlight_light_panel.json @@ -18,6 +18,7 @@ "STS" ], "result": { - "item": "galacticraft:spotlight_light_panel" + "count": 1, + "id": "galacticraft:spotlight_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/square_light_panel.json b/src/main/generated/data/galacticraft/recipe/square_light_panel.json similarity index 84% rename from src/main/generated/data/galacticraft/recipes/square_light_panel.json rename to src/main/generated/data/galacticraft/recipe/square_light_panel.json index d8f506d94..f4a5d05a7 100644 --- a/src/main/generated/data/galacticraft/recipes/square_light_panel.json +++ b/src/main/generated/data/galacticraft/recipe/square_light_panel.json @@ -18,6 +18,7 @@ "STS" ], "result": { - "item": "galacticraft:square_light_panel" + "count": 1, + "id": "galacticraft:square_light_panel" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/standard_wrench.json b/src/main/generated/data/galacticraft/recipe/standard_wrench.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/standard_wrench.json rename to src/main/generated/data/galacticraft/recipe/standard_wrench.json index 1fed6671d..0b6120d28 100644 --- a/src/main/generated/data/galacticraft/recipes/standard_wrench.json +++ b/src/main/generated/data/galacticraft/recipe/standard_wrench.json @@ -15,6 +15,7 @@ "B " ], "result": { - "item": "galacticraft:standard_wrench" + "count": 1, + "id": "galacticraft:standard_wrench" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration.json b/src/main/generated/data/galacticraft/recipe/steel_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/steel_decoration.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration.json index 6d2152a09..38af412a2 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:steel_decoration" + "id": "galacticraft:steel_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_slab.json index d39c8471d..cc70db3b6 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:steel_decoration_slab" + "id": "galacticraft:steel_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_slab_from_steel_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_slab_from_steel_decoration_stonecutting.json index 9a968087d..f75f813b0 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_slab_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_slab_from_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:steel_decoration" }, - "result": "galacticraft:steel_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:steel_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_stairs.json index 87b387655..13e36f662 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:steel_decoration_stairs" + "id": "galacticraft:steel_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_stairs_from_steel_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_stairs_from_steel_decoration_stonecutting.json index d087b3c88..afd1c4fdd 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_stairs_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_stairs_from_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:steel_decoration" }, - "result": "galacticraft:steel_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:steel_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_wall.json index fdfe2869a..94b9e0001 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:steel_decoration_wall" + "id": "galacticraft:steel_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/steel_decoration_wall_from_steel_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/steel_decoration_wall_from_steel_decoration_stonecutting.json index 33821465f..ad1444fc2 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_decoration_wall_from_steel_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/steel_decoration_wall_from_steel_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:steel_decoration" }, - "result": "galacticraft:steel_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:steel_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/steel_pole.json b/src/main/generated/data/galacticraft/recipe/steel_pole.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/steel_pole.json rename to src/main/generated/data/galacticraft/recipe/steel_pole.json index d5658ccc3..9c6b18e12 100644 --- a/src/main/generated/data/galacticraft/recipes/steel_pole.json +++ b/src/main/generated/data/galacticraft/recipe/steel_pole.json @@ -12,6 +12,7 @@ "I" ], "result": { - "item": "galacticraft:steel_pole" + "count": 1, + "id": "galacticraft:steel_pole" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/thermal_cloth.json b/src/main/generated/data/galacticraft/recipe/thermal_cloth.json similarity index 71% rename from src/main/generated/data/galacticraft/recipes/thermal_cloth.json rename to src/main/generated/data/galacticraft/recipe/thermal_cloth.json index 2343f37ee..3884f5d17 100644 --- a/src/main/generated/data/galacticraft/recipes/thermal_cloth.json +++ b/src/main/generated/data/galacticraft/recipe/thermal_cloth.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "R": { - "tag": "c:redstone_dusts" + "tag": "c:dusts/redstone" }, "W": { "tag": "minecraft:wool" @@ -15,6 +15,7 @@ " W " ], "result": { - "item": "galacticraft:thermal_cloth" + "count": 1, + "id": "galacticraft:thermal_cloth" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/thermal_padding_boots.json b/src/main/generated/data/galacticraft/recipe/thermal_padding_boots.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/thermal_padding_boots.json rename to src/main/generated/data/galacticraft/recipe/thermal_padding_boots.json index e84d58c86..1798b735b 100644 --- a/src/main/generated/data/galacticraft/recipes/thermal_padding_boots.json +++ b/src/main/generated/data/galacticraft/recipe/thermal_padding_boots.json @@ -11,6 +11,7 @@ "C C" ], "result": { - "item": "galacticraft:thermal_padding_boots" + "count": 1, + "id": "galacticraft:thermal_padding_boots" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/thermal_padding_chestpiece.json b/src/main/generated/data/galacticraft/recipe/thermal_padding_chestpiece.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/thermal_padding_chestpiece.json rename to src/main/generated/data/galacticraft/recipe/thermal_padding_chestpiece.json index 3f11e6dcb..d33f4544e 100644 --- a/src/main/generated/data/galacticraft/recipes/thermal_padding_chestpiece.json +++ b/src/main/generated/data/galacticraft/recipe/thermal_padding_chestpiece.json @@ -12,6 +12,7 @@ "CCC" ], "result": { - "item": "galacticraft:thermal_padding_chestpiece" + "count": 1, + "id": "galacticraft:thermal_padding_chestpiece" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/thermal_padding_helmet.json b/src/main/generated/data/galacticraft/recipe/thermal_padding_helmet.json similarity index 75% rename from src/main/generated/data/galacticraft/recipes/thermal_padding_helmet.json rename to src/main/generated/data/galacticraft/recipe/thermal_padding_helmet.json index e60ffce49..6881e5d8b 100644 --- a/src/main/generated/data/galacticraft/recipes/thermal_padding_helmet.json +++ b/src/main/generated/data/galacticraft/recipe/thermal_padding_helmet.json @@ -11,6 +11,7 @@ "C C" ], "result": { - "item": "galacticraft:thermal_padding_helmet" + "count": 1, + "id": "galacticraft:thermal_padding_helmet" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/thermal_padding_leggings.json b/src/main/generated/data/galacticraft/recipe/thermal_padding_leggings.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/thermal_padding_leggings.json rename to src/main/generated/data/galacticraft/recipe/thermal_padding_leggings.json index da2913553..0edbe0fe6 100644 --- a/src/main/generated/data/galacticraft/recipes/thermal_padding_leggings.json +++ b/src/main/generated/data/galacticraft/recipe/thermal_padding_leggings.json @@ -12,6 +12,7 @@ "C C" ], "result": { - "item": "galacticraft:thermal_padding_leggings" + "count": 1, + "id": "galacticraft:thermal_padding_leggings" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/throwable_meteor_chunk.json b/src/main/generated/data/galacticraft/recipe/throwable_meteor_chunk.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/throwable_meteor_chunk.json rename to src/main/generated/data/galacticraft/recipe/throwable_meteor_chunk.json index 3c28da598..a81710e1a 100644 --- a/src/main/generated/data/galacticraft/recipes/throwable_meteor_chunk.json +++ b/src/main/generated/data/galacticraft/recipe/throwable_meteor_chunk.json @@ -8,6 +8,6 @@ ], "result": { "count": 3, - "item": "galacticraft:throwable_meteor_chunk" + "id": "galacticraft:throwable_meteor_chunk" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_canister.json b/src/main/generated/data/galacticraft/recipe/tin_canister.json similarity index 72% rename from src/main/generated/data/galacticraft/recipes/tin_canister.json rename to src/main/generated/data/galacticraft/recipe/tin_canister.json index 8ba7e07e4..7eb5acccc 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_canister.json +++ b/src/main/generated/data/galacticraft/recipe/tin_canister.json @@ -3,7 +3,7 @@ "category": "misc", "key": { "X": { - "tag": "c:tin_ingots" + "tag": "c:ingots/tin" } }, "pattern": [ @@ -13,6 +13,6 @@ ], "result": { "count": 2, - "item": "galacticraft:tin_canister" + "id": "galacticraft:tin_canister" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration.json b/src/main/generated/data/galacticraft/recipe/tin_decoration.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/tin_decoration.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration.json index 98efbfa82..9aef63d4f 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:tin_decoration" + "id": "galacticraft:tin_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_slab.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_slab.json index 2102ac833..034d13695 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:tin_decoration_slab" + "id": "galacticraft:tin_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_slab_from_tin_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_slab_from_tin_decoration_stonecutting.json index 9bc8808c4..256448fbb 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_slab_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_slab_from_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:tin_decoration" }, - "result": "galacticraft:tin_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:tin_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_stairs.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_stairs.json index b5a8ab6ec..97a7fb39c 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:tin_decoration_stairs" + "id": "galacticraft:tin_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_stairs_from_tin_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_stairs_from_tin_decoration_stonecutting.json index affdfe77d..0847675f4 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_stairs_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_stairs_from_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:tin_decoration" }, - "result": "galacticraft:tin_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:tin_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_wall.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_wall.json index d338d8881..73148536e 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:tin_decoration_wall" + "id": "galacticraft:tin_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/tin_decoration_wall_from_tin_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/tin_decoration_wall_from_tin_decoration_stonecutting.json index 77c2d365f..94079b06f 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_decoration_wall_from_tin_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/tin_decoration_wall_from_tin_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:tin_decoration" }, - "result": "galacticraft:tin_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:tin_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_deepslate_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_deepslate_tin_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_deepslate_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_deepslate_tin_ore.json index 05a2f4d09..217ac69d9 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_deepslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_deepslate_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:deepslate_tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_moon_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_moon_tin_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_moon_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_moon_tin_ore.json index f5c495c24..d987bfb9e 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_moon_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_moon_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:moon_tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_raw_tin.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_raw_tin.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_raw_tin.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_raw_tin.json index 9afb9e80c..41eec5dc7 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_raw_tin.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_raw_tin.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_tin" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_tin_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_tin_ore.json index ac28f1975..2b52f3a7c 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_blasting_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_blasting_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_nuggets.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_nuggets.json index 429fca610..c43957ae4 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:tin_ingot" + "count": 1, + "id": "galacticraft:tin_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_deepslate_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_deepslate_tin_ore.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_deepslate_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_deepslate_tin_ore.json index 916a1e1dc..0a7efa8e6 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_deepslate_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_deepslate_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:deepslate_tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_moon_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_moon_tin_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_moon_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_moon_tin_ore.json index 3bd9c81bc..b908569ee 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_moon_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_moon_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:moon_tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_raw_tin.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_raw_tin.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_raw_tin.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_raw_tin.json index 40c083add..75a07bd18 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_raw_tin.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_raw_tin.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_tin" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_tin_ore.json b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_tin_ore.json similarity index 77% rename from src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_tin_ore.json rename to src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_tin_ore.json index 8f8be5ef4..36d82c4a2 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ingot_from_smelting_tin_ore.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ingot_from_smelting_tin_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:tin_ore" }, - "result": "galacticraft:tin_ingot" + "result": { + "id": "galacticraft:tin_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_ladder.json b/src/main/generated/data/galacticraft/recipe/tin_ladder.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/tin_ladder.json rename to src/main/generated/data/galacticraft/recipe/tin_ladder.json index f19839f38..e4abb023e 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_ladder.json +++ b/src/main/generated/data/galacticraft/recipe/tin_ladder.json @@ -13,6 +13,6 @@ ], "result": { "count": 6, - "item": "galacticraft:tin_ladder" + "id": "galacticraft:tin_ladder" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/tin_nugget.json b/src/main/generated/data/galacticraft/recipe/tin_nugget.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/tin_nugget.json rename to src/main/generated/data/galacticraft/recipe/tin_nugget.json index 790768ab5..d268b692e 100644 --- a/src/main/generated/data/galacticraft/recipes/tin_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/tin_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:tin_nugget" + "id": "galacticraft:tin_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_axe_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_axe_smithing.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/titanium_axe_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_axe_smithing.json index b7548cd56..c95c042a8 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_axe_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_axe_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_axe" }, "result": { - "item": "galacticraft:titanium_axe" + "count": 1, + "id": "galacticraft:titanium_axe" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_block.json b/src/main/generated/data/galacticraft/recipe/titanium_block.json similarity index 79% rename from src/main/generated/data/galacticraft/recipes/titanium_block.json rename to src/main/generated/data/galacticraft/recipe/titanium_block.json index f6a6f02c0..53348318f 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_block.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_block.json @@ -12,6 +12,7 @@ "###" ], "result": { - "item": "galacticraft:titanium_block" + "count": 1, + "id": "galacticraft:titanium_block" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_boots_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_boots_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_boots_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_boots_smithing.json index a0af9a8a3..bf562c51d 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_boots_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_boots_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_boots" }, "result": { - "item": "galacticraft:titanium_boots" + "count": 1, + "id": "galacticraft:titanium_boots" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_chestplate_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_chestplate_smithing.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/titanium_chestplate_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_chestplate_smithing.json index f9087588d..5ebd6ad65 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_chestplate_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_chestplate_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_chestplate" }, "result": { - "item": "galacticraft:titanium_chestplate" + "count": 1, + "id": "galacticraft:titanium_chestplate" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration.json similarity index 85% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration.json index f1b9591e3..c2f1e0dd6 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration.json @@ -15,6 +15,6 @@ ], "result": { "count": 4, - "item": "galacticraft:titanium_decoration" + "id": "galacticraft:titanium_decoration" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_slab.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_slab.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_slab.json index 710356235..867604244 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_slab.json @@ -11,6 +11,6 @@ ], "result": { "count": 6, - "item": "galacticraft:titanium_decoration_slab" + "id": "galacticraft:titanium_decoration_slab" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_slab_from_titanium_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_slab_from_titanium_decoration_stonecutting.json index 39d4eccce..dc88ed154 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_slab_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_slab_from_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 2, "ingredient": { "item": "galacticraft:titanium_decoration" }, - "result": "galacticraft:titanium_decoration_slab" + "result": { + "count": 2, + "id": "galacticraft:titanium_decoration_slab" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs.json index fe231ed99..8377d9ffd 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs.json @@ -13,6 +13,6 @@ ], "result": { "count": 4, - "item": "galacticraft:titanium_decoration_stairs" + "id": "galacticraft:titanium_decoration_stairs" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json similarity index 55% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json index fde9d22fe..208c1fc80 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_stairs_from_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:titanium_decoration" }, - "result": "galacticraft:titanium_decoration_stairs" + "result": { + "count": 1, + "id": "galacticraft:titanium_decoration_stairs" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_wall.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_wall.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_wall.json index db289e9ae..8961acd1d 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_wall.json @@ -12,6 +12,6 @@ ], "result": { "count": 6, - "item": "galacticraft:titanium_decoration_wall" + "id": "galacticraft:titanium_decoration_wall" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json b/src/main/generated/data/galacticraft/recipe/titanium_decoration_wall_from_titanium_decoration_stonecutting.json similarity index 56% rename from src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json rename to src/main/generated/data/galacticraft/recipe/titanium_decoration_wall_from_titanium_decoration_stonecutting.json index b625515dd..6caeeb2e2 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_decoration_wall_from_titanium_decoration_stonecutting.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_decoration_wall_from_titanium_decoration_stonecutting.json @@ -1,8 +1,10 @@ { "type": "minecraft:stonecutting", - "count": 1, "ingredient": { "item": "galacticraft:titanium_decoration" }, - "result": "galacticraft:titanium_decoration_wall" + "result": { + "count": 1, + "id": "galacticraft:titanium_decoration_wall" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_helmet_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_helmet_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_helmet_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_helmet_smithing.json index b62dfdcfc..e0dfc6cf8 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_helmet_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_helmet_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_helmet" }, "result": { - "item": "galacticraft:titanium_helmet" + "count": 1, + "id": "galacticraft:titanium_helmet" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_hoe_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_hoe_smithing.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/titanium_hoe_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_hoe_smithing.json index 5c3ab99aa..a94ac20d9 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_hoe_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_hoe_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_hoe" }, "result": { - "item": "galacticraft:titanium_hoe" + "count": 1, + "id": "galacticraft:titanium_hoe" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_ilmenite_ore.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_ilmenite_ore.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_ilmenite_ore.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_ilmenite_ore.json index d75ab28a3..daec66d9c 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_ilmenite_ore.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_ilmenite_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:ilmenite_ore" }, - "result": "galacticraft:titanium_ingot" + "result": { + "id": "galacticraft:titanium_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_raw_titanium.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_raw_titanium.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_raw_titanium.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_raw_titanium.json index 120396996..e27524e71 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_blasting_raw_titanium.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_blasting_raw_titanium.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_titanium" }, - "result": "galacticraft:titanium_ingot" + "result": { + "id": "galacticraft:titanium_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_block.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_block.json similarity index 83% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_block.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_block.json index b90e4a885..51421b3d4 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_block.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_block.json @@ -9,6 +9,6 @@ ], "result": { "count": 9, - "item": "galacticraft:titanium_ingot" + "id": "galacticraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_nuggets.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_nuggets.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_nuggets.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_nuggets.json index 2deb328e3..23de2068c 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_nuggets.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_nuggets.json @@ -13,6 +13,7 @@ "###" ], "result": { - "item": "galacticraft:titanium_ingot" + "count": 1, + "id": "galacticraft:titanium_ingot" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_ilmenite_ore.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_ilmenite_ore.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_ilmenite_ore.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_ilmenite_ore.json index ae4ec08d0..f3b1e0a6c 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_ilmenite_ore.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_ilmenite_ore.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:ilmenite_ore" }, - "result": "galacticraft:titanium_ingot" + "result": { + "id": "galacticraft:titanium_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_raw_titanium.json b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_raw_titanium.json similarity index 76% rename from src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_raw_titanium.json rename to src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_raw_titanium.json index 44413c4a3..cb6d37df1 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_ingot_from_smelting_raw_titanium.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_ingot_from_smelting_raw_titanium.json @@ -7,5 +7,7 @@ "ingredient": { "item": "galacticraft:raw_titanium" }, - "result": "galacticraft:titanium_ingot" + "result": { + "id": "galacticraft:titanium_ingot" + } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_leggings_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_leggings_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_leggings_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_leggings_smithing.json index 63749047a..dfbdb92a9 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_leggings_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_leggings_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_leggings" }, "result": { - "item": "galacticraft:titanium_leggings" + "count": 1, + "id": "galacticraft:titanium_leggings" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_nugget.json b/src/main/generated/data/galacticraft/recipe/titanium_nugget.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/titanium_nugget.json rename to src/main/generated/data/galacticraft/recipe/titanium_nugget.json index 8620c5735..0552cb54c 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_nugget.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_nugget.json @@ -8,6 +8,6 @@ ], "result": { "count": 9, - "item": "galacticraft:titanium_nugget" + "id": "galacticraft:titanium_nugget" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/titanium_pickaxe_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_pickaxe_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_pickaxe_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_pickaxe_smithing.json index 362056547..aa913b90f 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_pickaxe_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_pickaxe_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_pickaxe" }, "result": { - "item": "galacticraft:titanium_pickaxe" + "count": 1, + "id": "galacticraft:titanium_pickaxe" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_shovel_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_shovel_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_shovel_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_shovel_smithing.json index d7880fb62..4893343ff 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_shovel_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_shovel_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_shovel" }, "result": { - "item": "galacticraft:titanium_shovel" + "count": 1, + "id": "galacticraft:titanium_shovel" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/titanium_sword_smithing.json b/src/main/generated/data/galacticraft/recipe/titanium_sword_smithing.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/titanium_sword_smithing.json rename to src/main/generated/data/galacticraft/recipe/titanium_sword_smithing.json index a2b54b256..ac4b76990 100644 --- a/src/main/generated/data/galacticraft/recipes/titanium_sword_smithing.json +++ b/src/main/generated/data/galacticraft/recipe/titanium_sword_smithing.json @@ -7,7 +7,8 @@ "item": "galacticraft:desh_sword" }, "result": { - "item": "galacticraft:titanium_sword" + "count": 1, + "id": "galacticraft:titanium_sword" }, "template": { "item": "galacticraft:titanium_upgrade_smithing_template" diff --git a/src/main/generated/data/galacticraft/recipes/vacuum_glass.json b/src/main/generated/data/galacticraft/recipe/vacuum_glass.json similarity index 82% rename from src/main/generated/data/galacticraft/recipes/vacuum_glass.json rename to src/main/generated/data/galacticraft/recipe/vacuum_glass.json index 5cccc72cf..df121a57e 100644 --- a/src/main/generated/data/galacticraft/recipes/vacuum_glass.json +++ b/src/main/generated/data/galacticraft/recipe/vacuum_glass.json @@ -15,6 +15,7 @@ "TGT" ], "result": { - "item": "galacticraft:vacuum_glass" + "count": 1, + "id": "galacticraft:vacuum_glass" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/vacuum_glass_clear.json b/src/main/generated/data/galacticraft/recipe/vacuum_glass_clear.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/vacuum_glass_clear.json rename to src/main/generated/data/galacticraft/recipe/vacuum_glass_clear.json index 2977b773b..10bdd9f06 100644 --- a/src/main/generated/data/galacticraft/recipes/vacuum_glass_clear.json +++ b/src/main/generated/data/galacticraft/recipe/vacuum_glass_clear.json @@ -15,6 +15,7 @@ "AGA" ], "result": { - "item": "galacticraft:vacuum_glass_clear" + "count": 1, + "id": "galacticraft:vacuum_glass_clear" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/vacuum_glass_strong.json b/src/main/generated/data/galacticraft/recipe/vacuum_glass_strong.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/vacuum_glass_strong.json rename to src/main/generated/data/galacticraft/recipe/vacuum_glass_strong.json index e89639d17..5f98eab9a 100644 --- a/src/main/generated/data/galacticraft/recipes/vacuum_glass_strong.json +++ b/src/main/generated/data/galacticraft/recipe/vacuum_glass_strong.json @@ -15,6 +15,7 @@ "AGA" ], "result": { - "item": "galacticraft:vacuum_glass_strong" + "count": 1, + "id": "galacticraft:vacuum_glass_strong" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/walkway.json b/src/main/generated/data/galacticraft/recipe/walkway.json similarity index 86% rename from src/main/generated/data/galacticraft/recipes/walkway.json rename to src/main/generated/data/galacticraft/recipe/walkway.json index c2e9cd9c4..c5164c2ad 100644 --- a/src/main/generated/data/galacticraft/recipes/walkway.json +++ b/src/main/generated/data/galacticraft/recipe/walkway.json @@ -12,6 +12,6 @@ ], "result": { "count": 5, - "item": "galacticraft:walkway" + "id": "galacticraft:walkway" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/white_parachute.json b/src/main/generated/data/galacticraft/recipe/white_parachute.json similarity index 81% rename from src/main/generated/data/galacticraft/recipes/white_parachute.json rename to src/main/generated/data/galacticraft/recipe/white_parachute.json index 8dc29b669..31e77deb6 100644 --- a/src/main/generated/data/galacticraft/recipes/white_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/white_parachute.json @@ -15,6 +15,7 @@ " S " ], "result": { - "item": "galacticraft:white_parachute" + "count": 1, + "id": "galacticraft:white_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/wire_walkway.json b/src/main/generated/data/galacticraft/recipe/wire_walkway.json similarity index 87% rename from src/main/generated/data/galacticraft/recipes/wire_walkway.json rename to src/main/generated/data/galacticraft/recipe/wire_walkway.json index fd68c5a01..9fbae4b17 100644 --- a/src/main/generated/data/galacticraft/recipes/wire_walkway.json +++ b/src/main/generated/data/galacticraft/recipe/wire_walkway.json @@ -16,6 +16,6 @@ ], "result": { "count": 5, - "item": "galacticraft:wire_walkway" + "id": "galacticraft:wire_walkway" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/wire_walkway_shapeless.json b/src/main/generated/data/galacticraft/recipe/wire_walkway_shapeless.json similarity index 80% rename from src/main/generated/data/galacticraft/recipes/wire_walkway_shapeless.json rename to src/main/generated/data/galacticraft/recipe/wire_walkway_shapeless.json index 7f99394a5..cb131b92f 100644 --- a/src/main/generated/data/galacticraft/recipes/wire_walkway_shapeless.json +++ b/src/main/generated/data/galacticraft/recipe/wire_walkway_shapeless.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:wire_walkway" + "count": 1, + "id": "galacticraft:wire_walkway" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/yellow_parachute.json b/src/main/generated/data/galacticraft/recipe/yellow_parachute.json similarity index 78% rename from src/main/generated/data/galacticraft/recipes/yellow_parachute.json rename to src/main/generated/data/galacticraft/recipe/yellow_parachute.json index 64fb7d4b3..3057213fa 100644 --- a/src/main/generated/data/galacticraft/recipes/yellow_parachute.json +++ b/src/main/generated/data/galacticraft/recipe/yellow_parachute.json @@ -10,6 +10,7 @@ } ], "result": { - "item": "galacticraft:yellow_parachute" + "count": 1, + "id": "galacticraft:yellow_parachute" } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_aluminum.json b/src/main/generated/data/galacticraft/recipes/compressing/compressed_aluminum.json deleted file mode 100644 index b552da217..000000000 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_aluminum.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "galacticraft:compressing_shapeless", - "ingredients": [ - { - "tag": "c:aluminum_ingots" - }, - { - "tag": "c:aluminum_ingots" - } - ], - "result": { - "item": "galacticraft:compressed_aluminum" - } -} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/recipes/compressing/compressed_copper.json b/src/main/generated/data/galacticraft/recipes/compressing/compressed_copper.json deleted file mode 100644 index daebd240d..000000000 --- a/src/main/generated/data/galacticraft/recipes/compressing/compressed_copper.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "galacticraft:compressing_shapeless", - "ingredients": [ - { - "tag": "c:copper_ingots" - }, - { - "tag": "c:copper_ingots" - } - ], - "result": { - "item": "galacticraft:compressed_copper" - } -} \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/tags/blocks/base_stone_moon.json b/src/main/generated/data/galacticraft/tags/block/base_stone_moon.json similarity index 71% rename from src/main/generated/data/galacticraft/tags/blocks/base_stone_moon.json rename to src/main/generated/data/galacticraft/tags/block/base_stone_moon.json index de47b916d..7c4f7ef42 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/base_stone_moon.json +++ b/src/main/generated/data/galacticraft/tags/block/base_stone_moon.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock" ] diff --git a/src/main/generated/data/galacticraft/tags/blocks/footprints.json b/src/main/generated/data/galacticraft/tags/block/footprints.json similarity index 71% rename from src/main/generated/data/galacticraft/tags/blocks/footprints.json rename to src/main/generated/data/galacticraft/tags/block/footprints.json index 3f789cb87..a114c2333 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/footprints.json +++ b/src/main/generated/data/galacticraft/tags/block/footprints.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_turf" ] diff --git a/src/main/generated/data/galacticraft/tags/blocks/infiniburn_moon.json b/src/main/generated/data/galacticraft/tags/block/infiniburn_moon.json similarity index 74% rename from src/main/generated/data/galacticraft/tags/blocks/infiniburn_moon.json rename to src/main/generated/data/galacticraft/tags/block/infiniburn_moon.json index cdf6addde..b3a1c2a89 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/infiniburn_moon.json +++ b/src/main/generated/data/galacticraft/tags/block/infiniburn_moon.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_basalt_brick" ] diff --git a/src/main/generated/data/galacticraft/tags/blocks/lunaslate_ore_replaceables.json b/src/main/generated/data/galacticraft/tags/block/lunaslate_ore_replaceables.json similarity index 71% rename from src/main/generated/data/galacticraft/tags/blocks/lunaslate_ore_replaceables.json rename to src/main/generated/data/galacticraft/tags/block/lunaslate_ore_replaceables.json index 42d3ed74f..4c308aa61 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/lunaslate_ore_replaceables.json +++ b/src/main/generated/data/galacticraft/tags/block/lunaslate_ore_replaceables.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:lunaslate" ] diff --git a/src/main/generated/data/galacticraft/tags/blocks/machines.json b/src/main/generated/data/galacticraft/tags/block/machines.json similarity index 97% rename from src/main/generated/data/galacticraft/tags/blocks/machines.json rename to src/main/generated/data/galacticraft/tags/block/machines.json index 8526b455b..fcac30126 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/machines.json +++ b/src/main/generated/data/galacticraft/tags/block/machines.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:circuit_fabricator", "galacticraft:compressor", diff --git a/src/main/generated/data/galacticraft/tags/blocks/moon_carver_replaceables.json b/src/main/generated/data/galacticraft/tags/block/moon_carver_replaceables.json similarity index 90% rename from src/main/generated/data/galacticraft/tags/blocks/moon_carver_replaceables.json rename to src/main/generated/data/galacticraft/tags/block/moon_carver_replaceables.json index d2af7e353..9910c6801 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/moon_carver_replaceables.json +++ b/src/main/generated/data/galacticraft/tags/block/moon_carver_replaceables.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock", "galacticraft:moon_surface_rock", diff --git a/src/main/generated/data/galacticraft/tags/blocks/moon_crater_carver_replaceables.json b/src/main/generated/data/galacticraft/tags/block/moon_crater_carver_replaceables.json similarity index 90% rename from src/main/generated/data/galacticraft/tags/blocks/moon_crater_carver_replaceables.json rename to src/main/generated/data/galacticraft/tags/block/moon_crater_carver_replaceables.json index d2af7e353..9910c6801 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/moon_crater_carver_replaceables.json +++ b/src/main/generated/data/galacticraft/tags/block/moon_crater_carver_replaceables.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock", "galacticraft:moon_surface_rock", diff --git a/src/main/generated/data/galacticraft/tags/blocks/moon_stone_ore_replaceables.json b/src/main/generated/data/galacticraft/tags/block/moon_stone_ore_replaceables.json similarity index 71% rename from src/main/generated/data/galacticraft/tags/blocks/moon_stone_ore_replaceables.json rename to src/main/generated/data/galacticraft/tags/block/moon_stone_ore_replaceables.json index de47b916d..7c4f7ef42 100644 --- a/src/main/generated/data/galacticraft/tags/blocks/moon_stone_ore_replaceables.json +++ b/src/main/generated/data/galacticraft/tags/block/moon_stone_ore_replaceables.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock" ] diff --git a/src/main/generated/data/galacticraft/tags/dimension_type/footprints.json b/src/main/generated/data/galacticraft/tags/dimension_type/footprints.json index 7d9f74be1..5268a02a4 100644 --- a/src/main/generated/data/galacticraft/tags/dimension_type/footprints.json +++ b/src/main/generated/data/galacticraft/tags/dimension_type/footprints.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon" ] diff --git a/src/main/generated/data/galacticraft/tags/dimension_type/space.json b/src/main/generated/data/galacticraft/tags/dimension_type/space.json index 9641dbd16..1da6e9a7f 100644 --- a/src/main/generated/data/galacticraft/tags/dimension_type/space.json +++ b/src/main/generated/data/galacticraft/tags/dimension_type/space.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon", "galacticraft:venus" diff --git a/src/main/generated/data/galacticraft/tags/entity_types/has_footprints.json b/src/main/generated/data/galacticraft/tags/entity_type/has_footprints.json similarity index 68% rename from src/main/generated/data/galacticraft/tags/entity_types/has_footprints.json rename to src/main/generated/data/galacticraft/tags/entity_type/has_footprints.json index bf6dd51f3..42e185776 100644 --- a/src/main/generated/data/galacticraft/tags/entity_types/has_footprints.json +++ b/src/main/generated/data/galacticraft/tags/entity_type/has_footprints.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "minecraft:player" ] diff --git a/src/main/generated/data/galacticraft/tags/fluids/oxygen.json b/src/main/generated/data/galacticraft/tags/fluid/oxygen.json similarity index 70% rename from src/main/generated/data/galacticraft/tags/fluids/oxygen.json rename to src/main/generated/data/galacticraft/tags/fluid/oxygen.json index a1b938152..289d9479a 100644 --- a/src/main/generated/data/galacticraft/tags/fluids/oxygen.json +++ b/src/main/generated/data/galacticraft/tags/fluid/oxygen.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:oxygen" ] diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_boss.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_boss.json index e663077d8..e43fd436f 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_boss.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_boss.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "#galacticraft:moon" ] diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_pillager_base.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_pillager_base.json index 22d0bff0e..4b57bb312 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_pillager_base.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_pillager_base.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:basaltic_mare" ] diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_ruins.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_ruins.json index 22d0bff0e..4b57bb312 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_ruins.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_ruins.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:basaltic_mare" ] diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_village_highlands.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_village_highlands.json index 1f3bcff6d..0ba4c44be 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_village_highlands.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/has_structure/moon_village_highlands.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:lunar_highlands" ] diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/moon.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/moon.json index a819237f0..f33cf2908 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/moon.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/moon.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:comet_tundra", "galacticraft:basaltic_mare", diff --git a/src/main/generated/data/galacticraft/tags/worldgen/biome/venus.json b/src/main/generated/data/galacticraft/tags/worldgen/biome/venus.json index f6083e2a7..4bd2e1f59 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/biome/venus.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/biome/venus.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:venus_valley", "galacticraft:venus_flat", diff --git a/src/main/generated/data/galacticraft/tags/worldgen/structure/moon_ruins.json b/src/main/generated/data/galacticraft/tags/worldgen/structure/moon_ruins.json index e2a6be84a..21d13cc03 100644 --- a/src/main/generated/data/galacticraft/tags/worldgen/structure/moon_ruins.json +++ b/src/main/generated/data/galacticraft/tags/worldgen/structure/moon_ruins.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_ruins" ] diff --git a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_canyon_carver.json b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_canyon_carver.json index c62532ae3..1c83ac167 100644 --- a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_canyon_carver.json +++ b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_canyon_carver.json @@ -9,25 +9,19 @@ "shape": { "distance_factor": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.0, - "min_inclusive": 0.75 - } + "max_exclusive": 1.0, + "min_inclusive": 0.75 }, "horizontal_radius_factor": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.0, - "min_inclusive": 0.75 - } + "max_exclusive": 1.0, + "min_inclusive": 0.75 }, "thickness": { "type": "minecraft:trapezoid", - "value": { - "max": 6.0, - "min": 0.0, - "plateau": 2.0 - } + "max": 6.0, + "min": 0.0, + "plateau": 2.0 }, "vertical_radius_center_factor": 0.0, "vertical_radius_default_factor": 1.0, @@ -35,10 +29,8 @@ }, "vertical_rotation": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 0.125, - "min_inclusive": -0.125 - } + "max_exclusive": 0.125, + "min_inclusive": -0.125 }, "y": { "type": "minecraft:uniform", diff --git a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_crater_carver.json b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_crater_carver.json index 90ee59548..6e2166c3d 100644 --- a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_crater_carver.json +++ b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_crater_carver.json @@ -26,10 +26,8 @@ }, "y_scale": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 0.6, - "min_inclusive": 0.4 - } + "max_exclusive": 0.6, + "min_inclusive": 0.4 } } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_highlands_cave_carver.json b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_highlands_cave_carver.json index e919e7cf6..c4d4ad41d 100644 --- a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_highlands_cave_carver.json +++ b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_highlands_cave_carver.json @@ -3,17 +3,13 @@ "config": { "floor_level": { "type": "minecraft:uniform", - "value": { - "max_exclusive": -0.4, - "min_inclusive": -1.0 - } + "max_exclusive": -0.4, + "min_inclusive": -1.0 }, "horizontal_radius_multiplier": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.4, - "min_inclusive": 0.7 - } + "max_exclusive": 1.4, + "min_inclusive": 0.7 }, "lava_level": { "above_bottom": -64 @@ -22,10 +18,8 @@ "replaceable": [], "vertical_radius_multiplier": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.3, - "min_inclusive": 0.8 - } + "max_exclusive": 1.3, + "min_inclusive": 0.8 }, "y": { "type": "minecraft:uniform", @@ -38,10 +32,8 @@ }, "yScale": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 0.9, - "min_inclusive": 0.1 - } + "max_exclusive": 0.9, + "min_inclusive": 0.1 } } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_mare_cave_carver.json b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_mare_cave_carver.json index c441f3df3..421f09f46 100644 --- a/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_mare_cave_carver.json +++ b/src/main/generated/data/galacticraft/worldgen/configured_carver/moon_mare_cave_carver.json @@ -3,17 +3,13 @@ "config": { "floor_level": { "type": "minecraft:uniform", - "value": { - "max_exclusive": -0.4, - "min_inclusive": -1.0 - } + "max_exclusive": -0.4, + "min_inclusive": -1.0 }, "horizontal_radius_multiplier": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.4, - "min_inclusive": 0.7 - } + "max_exclusive": 1.4, + "min_inclusive": 0.7 }, "lava_level": { "above_bottom": -64 @@ -22,10 +18,8 @@ "replaceable": [], "vertical_radius_multiplier": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 1.3, - "min_inclusive": 0.8 - } + "max_exclusive": 1.3, + "min_inclusive": 0.8 }, "y": { "type": "minecraft:uniform", @@ -38,10 +32,8 @@ }, "yScale": { "type": "minecraft:uniform", - "value": { - "max_exclusive": 0.9, - "min_inclusive": 0.1 - } + "max_exclusive": 0.9, + "min_inclusive": 0.1 } } } \ No newline at end of file diff --git a/src/main/generated/data/galacticraft/worldgen/structure/moon_ruins.json b/src/main/generated/data/galacticraft/worldgen/structure/moon_ruins.json index cd9ba64a6..c9c8485e1 100644 --- a/src/main/generated/data/galacticraft/worldgen/structure/moon_ruins.json +++ b/src/main/generated/data/galacticraft/worldgen/structure/moon_ruins.json @@ -3,7 +3,6 @@ "config": { "biomes": "#galacticraft:has_structure/moon_ruins", "spawn_overrides": {}, - "step": "surface_structures", - "terrain_adaptation": "beard_thin" + "step": "surface_structures" } } \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/banner_pattern/no_item_required.json b/src/main/generated/data/minecraft/tags/banner_pattern/no_item_required.json index a341e925d..04d4662fa 100644 --- a/src/main/generated/data/minecraft/tags/banner_pattern/no_item_required.json +++ b/src/main/generated/data/minecraft/tags/banner_pattern/no_item_required.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:rocket" ] diff --git a/src/main/generated/data/minecraft/tags/blocks/candle_cakes.json b/src/main/generated/data/minecraft/tags/block/candle_cakes.json similarity index 97% rename from src/main/generated/data/minecraft/tags/blocks/candle_cakes.json rename to src/main/generated/data/minecraft/tags/block/candle_cakes.json index 845965541..45284a186 100644 --- a/src/main/generated/data/minecraft/tags/blocks/candle_cakes.json +++ b/src/main/generated/data/minecraft/tags/block/candle_cakes.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:candle_moon_cheese_block", "galacticraft:white_candle_moon_cheese_block", diff --git a/src/main/generated/data/minecraft/tags/blocks/climbable.json b/src/main/generated/data/minecraft/tags/block/climbable.json similarity index 86% rename from src/main/generated/data/minecraft/tags/blocks/climbable.json rename to src/main/generated/data/minecraft/tags/block/climbable.json index ca9512fbc..500d96695 100644 --- a/src/main/generated/data/minecraft/tags/blocks/climbable.json +++ b/src/main/generated/data/minecraft/tags/block/climbable.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:tin_ladder", "galacticraft:cavernous_vines", diff --git a/src/main/generated/data/minecraft/tags/blocks/dragon_immune.json b/src/main/generated/data/minecraft/tags/block/dragon_immune.json similarity index 72% rename from src/main/generated/data/minecraft/tags/blocks/dragon_immune.json rename to src/main/generated/data/minecraft/tags/block/dragon_immune.json index 964100382..e8540748e 100644 --- a/src/main/generated/data/minecraft/tags/blocks/dragon_immune.json +++ b/src/main/generated/data/minecraft/tags/block/dragon_immune.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:air_lock_seal" ] diff --git a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json similarity index 99% rename from src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json rename to src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json index 4ed791ade..92a0592b2 100644 --- a/src/main/generated/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/generated/data/minecraft/tags/block/mineable/pickaxe.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "#galacticraft:machines", "galacticraft:silicon_ore", diff --git a/src/main/generated/data/minecraft/tags/blocks/mineable/shovel.json b/src/main/generated/data/minecraft/tags/block/mineable/shovel.json similarity index 85% rename from src/main/generated/data/minecraft/tags/blocks/mineable/shovel.json rename to src/main/generated/data/minecraft/tags/block/mineable/shovel.json index a22846fa6..ad46c2cae 100644 --- a/src/main/generated/data/minecraft/tags/blocks/mineable/shovel.json +++ b/src/main/generated/data/minecraft/tags/block/mineable/shovel.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_turf", "galacticraft:moon_dirt", diff --git a/src/main/generated/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json similarity index 80% rename from src/main/generated/data/minecraft/tags/blocks/needs_diamond_tool.json rename to src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json index 7963d477e..956a59e9c 100644 --- a/src/main/generated/data/minecraft/tags/blocks/needs_diamond_tool.json +++ b/src/main/generated/data/minecraft/tags/block/needs_diamond_tool.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:desh_ore", "galacticraft:ilmenite_ore" diff --git a/src/main/generated/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/generated/data/minecraft/tags/block/needs_iron_tool.json similarity index 86% rename from src/main/generated/data/minecraft/tags/blocks/needs_iron_tool.json rename to src/main/generated/data/minecraft/tags/block/needs_iron_tool.json index bb246b889..ff9cfa24c 100644 --- a/src/main/generated/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/main/generated/data/minecraft/tags/block/needs_iron_tool.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:silicon_ore", "galacticraft:deepslate_silicon_ore", diff --git a/src/main/generated/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/generated/data/minecraft/tags/block/needs_stone_tool.json similarity index 95% rename from src/main/generated/data/minecraft/tags/blocks/needs_stone_tool.json rename to src/main/generated/data/minecraft/tags/block/needs_stone_tool.json index 9c585df58..3b52c47df 100644 --- a/src/main/generated/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/main/generated/data/minecraft/tags/block/needs_stone_tool.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:grating", "galacticraft:walkway", diff --git a/src/main/generated/data/minecraft/tags/blocks/replaceable.json b/src/main/generated/data/minecraft/tags/block/replaceable.json similarity index 84% rename from src/main/generated/data/minecraft/tags/blocks/replaceable.json rename to src/main/generated/data/minecraft/tags/block/replaceable.json index 01ca3d980..2602fc067 100644 --- a/src/main/generated/data/minecraft/tags/blocks/replaceable.json +++ b/src/main/generated/data/minecraft/tags/block/replaceable.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:crude_oil", "galacticraft:fuel", diff --git a/src/main/generated/data/minecraft/tags/blocks/slabs.json b/src/main/generated/data/minecraft/tags/block/slabs.json similarity index 98% rename from src/main/generated/data/minecraft/tags/blocks/slabs.json rename to src/main/generated/data/minecraft/tags/block/slabs.json index 181e2d9eb..ca01b89f6 100644 --- a/src/main/generated/data/minecraft/tags/blocks/slabs.json +++ b/src/main/generated/data/minecraft/tags/block/slabs.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock_slab", "galacticraft:moon_rock_brick_slab", diff --git a/src/main/generated/data/minecraft/tags/blocks/stairs.json b/src/main/generated/data/minecraft/tags/block/stairs.json similarity index 98% rename from src/main/generated/data/minecraft/tags/blocks/stairs.json rename to src/main/generated/data/minecraft/tags/block/stairs.json index 9eb744d83..d84adc1b8 100644 --- a/src/main/generated/data/minecraft/tags/blocks/stairs.json +++ b/src/main/generated/data/minecraft/tags/block/stairs.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock_stairs", "galacticraft:moon_rock_brick_stairs", diff --git a/src/main/generated/data/minecraft/tags/blocks/wall_post_override.json b/src/main/generated/data/minecraft/tags/block/wall_post_override.json similarity index 81% rename from src/main/generated/data/minecraft/tags/blocks/wall_post_override.json rename to src/main/generated/data/minecraft/tags/block/wall_post_override.json index 2d26afab5..e7c0687b0 100644 --- a/src/main/generated/data/minecraft/tags/blocks/wall_post_override.json +++ b/src/main/generated/data/minecraft/tags/block/wall_post_override.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:glowstone_torch", "galacticraft:unlit_torch" diff --git a/src/main/generated/data/minecraft/tags/blocks/walls.json b/src/main/generated/data/minecraft/tags/block/walls.json similarity index 98% rename from src/main/generated/data/minecraft/tags/blocks/walls.json rename to src/main/generated/data/minecraft/tags/block/walls.json index 1071540e3..c0fd378f9 100644 --- a/src/main/generated/data/minecraft/tags/blocks/walls.json +++ b/src/main/generated/data/minecraft/tags/block/walls.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:moon_rock_wall", "galacticraft:moon_rock_brick_wall", diff --git a/src/main/generated/data/minecraft/tags/blocks/wither_immune.json b/src/main/generated/data/minecraft/tags/block/wither_immune.json similarity index 72% rename from src/main/generated/data/minecraft/tags/blocks/wither_immune.json rename to src/main/generated/data/minecraft/tags/block/wither_immune.json index 964100382..e8540748e 100644 --- a/src/main/generated/data/minecraft/tags/blocks/wither_immune.json +++ b/src/main/generated/data/minecraft/tags/block/wither_immune.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:air_lock_seal" ] diff --git a/src/main/generated/data/minecraft/tags/items/axes.json b/src/main/generated/data/minecraft/tags/item/axes.json similarity index 85% rename from src/main/generated/data/minecraft/tags/items/axes.json rename to src/main/generated/data/minecraft/tags/item/axes.json index e505069e6..4e02a1690 100644 --- a/src/main/generated/data/minecraft/tags/items/axes.json +++ b/src/main/generated/data/minecraft/tags/item/axes.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_axe", "galacticraft:desh_axe", diff --git a/src/main/generated/data/minecraft/tags/items/cluster_max_harvestables.json b/src/main/generated/data/minecraft/tags/item/cluster_max_harvestables.json similarity index 86% rename from src/main/generated/data/minecraft/tags/items/cluster_max_harvestables.json rename to src/main/generated/data/minecraft/tags/item/cluster_max_harvestables.json index 9551af1f0..99f73f673 100644 --- a/src/main/generated/data/minecraft/tags/items/cluster_max_harvestables.json +++ b/src/main/generated/data/minecraft/tags/item/cluster_max_harvestables.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_pickaxe", "galacticraft:desh_pickaxe", diff --git a/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json b/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json new file mode 100644 index 000000000..f72d209df --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/creeper_drop_music_discs.json @@ -0,0 +1,3 @@ +{ + "values": [] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/items/hoes.json b/src/main/generated/data/minecraft/tags/item/hoes.json similarity index 85% rename from src/main/generated/data/minecraft/tags/items/hoes.json rename to src/main/generated/data/minecraft/tags/item/hoes.json index 4b996f1c2..918c90cdb 100644 --- a/src/main/generated/data/minecraft/tags/items/hoes.json +++ b/src/main/generated/data/minecraft/tags/item/hoes.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_hoe", "galacticraft:desh_hoe", diff --git a/src/main/generated/data/minecraft/tags/item/meat.json b/src/main/generated/data/minecraft/tags/item/meat.json new file mode 100644 index 000000000..1de0493c5 --- /dev/null +++ b/src/main/generated/data/minecraft/tags/item/meat.json @@ -0,0 +1,6 @@ +{ + "values": [ + "galacticraft:ground_beef", + "galacticraft:beef_patty" + ] +} \ No newline at end of file diff --git a/src/main/generated/data/minecraft/tags/items/pickaxes.json b/src/main/generated/data/minecraft/tags/item/pickaxes.json similarity index 86% rename from src/main/generated/data/minecraft/tags/items/pickaxes.json rename to src/main/generated/data/minecraft/tags/item/pickaxes.json index 9551af1f0..99f73f673 100644 --- a/src/main/generated/data/minecraft/tags/items/pickaxes.json +++ b/src/main/generated/data/minecraft/tags/item/pickaxes.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_pickaxe", "galacticraft:desh_pickaxe", diff --git a/src/main/generated/data/minecraft/tags/items/shovels.json b/src/main/generated/data/minecraft/tags/item/shovels.json similarity index 86% rename from src/main/generated/data/minecraft/tags/items/shovels.json rename to src/main/generated/data/minecraft/tags/item/shovels.json index 0b2d806d4..e2ed44cff 100644 --- a/src/main/generated/data/minecraft/tags/items/shovels.json +++ b/src/main/generated/data/minecraft/tags/item/shovels.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_shovel", "galacticraft:desh_shovel", diff --git a/src/main/generated/data/minecraft/tags/items/swords.json b/src/main/generated/data/minecraft/tags/item/swords.json similarity index 86% rename from src/main/generated/data/minecraft/tags/items/swords.json rename to src/main/generated/data/minecraft/tags/item/swords.json index 94536c3d7..c60c66739 100644 --- a/src/main/generated/data/minecraft/tags/items/swords.json +++ b/src/main/generated/data/minecraft/tags/item/swords.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_sword", "galacticraft:desh_sword", diff --git a/src/main/generated/data/minecraft/tags/items/trimmable_armor.json b/src/main/generated/data/minecraft/tags/item/trimmable_armor.json similarity index 95% rename from src/main/generated/data/minecraft/tags/items/trimmable_armor.json rename to src/main/generated/data/minecraft/tags/item/trimmable_armor.json index 95c914521..fdf192685 100644 --- a/src/main/generated/data/minecraft/tags/items/trimmable_armor.json +++ b/src/main/generated/data/minecraft/tags/item/trimmable_armor.json @@ -1,5 +1,4 @@ { - "replace": false, "values": [ "galacticraft:heavy_duty_helmet", "galacticraft:heavy_duty_chestplate", diff --git a/src/main/generated/data/minecraft/tags/items/creeper_drop_music_discs.json b/src/main/generated/data/minecraft/tags/items/creeper_drop_music_discs.json deleted file mode 100644 index 5e8aecc98..000000000 --- a/src/main/generated/data/minecraft/tags/items/creeper_drop_music_discs.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "replace": false, - "values": [] -} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/network/packets/OpenScreenPacket.java b/src/main/java/dev/galacticraft/api/accessor/LevelBodyAccessor.java similarity index 74% rename from src/main/java/dev/galacticraft/mod/network/packets/OpenScreenPacket.java rename to src/main/java/dev/galacticraft/api/accessor/LevelBodyAccessor.java index 2a1be95fa..c03d2b373 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/OpenScreenPacket.java +++ b/src/main/java/dev/galacticraft/api/accessor/LevelBodyAccessor.java @@ -20,7 +20,14 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.api.accessor; -public class OpenScreenPacket { +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import net.minecraft.core.Holder; +import org.jetbrains.annotations.Nullable; + +public interface LevelBodyAccessor { + default @Nullable Holder> galacticraft$getCelestialBody() { + throw new RuntimeException("This should be overridden by mixin!"); + } } diff --git a/src/main/java/dev/galacticraft/api/component/GCDataComponents.java b/src/main/java/dev/galacticraft/api/component/GCDataComponents.java new file mode 100644 index 000000000..9c8cb6738 --- /dev/null +++ b/src/main/java/dev/galacticraft/api/component/GCDataComponents.java @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.api.component; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import dev.galacticraft.api.rocket.part.*; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.util.StreamCodecs; +import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.ExtraCodecs; +import net.minecraft.world.item.EitherHolder; + +import java.util.function.UnaryOperator; + +public class GCDataComponents { + public static final DataComponentType>> ROCKET_CONE = register("rocket_cone", b -> b + .persistent(RocketCone.EITHER_CODEC).networkSynchronized(RocketCone.EITHER_STREAM_CODEC)); + public static final DataComponentType>> ROCKET_BODY = register("rocket_body", b -> b + .persistent(RocketBody.EITHER_CODEC).networkSynchronized(RocketBody.EITHER_STREAM_CODEC)); + public static final DataComponentType>> ROCKET_FIN = register("rocket_fin", b -> b + .persistent(RocketFin.EITHER_CODEC).networkSynchronized(RocketFin.EITHER_STREAM_CODEC)); + public static final DataComponentType>> ROCKET_BOOSTER = register("rocket_booster", b -> b + .persistent(RocketBooster.EITHER_CODEC).networkSynchronized(RocketBooster.EITHER_STREAM_CODEC)); + public static final DataComponentType>> ROCKET_ENGINE = register("rocket_engine", b -> b + .persistent(RocketEngine.EITHER_CODEC).networkSynchronized(RocketEngine.EITHER_STREAM_CODEC)); + public static final DataComponentType>> ROCKET_UPGRADE = register("rocket_upgrade", b -> b + .persistent(RocketUpgrade.EITHER_CODEC).networkSynchronized(RocketUpgrade.EITHER_STREAM_CODEC)); + public static final DataComponentType AMOUNT = register("amount", b -> b + .persistent(Codec.LONG).networkSynchronized(StreamCodecs.LONG)); + public static final DataComponentType COLOR = register("color", b -> b + .persistent(ExtraCodecs.NON_NEGATIVE_INT).networkSynchronized(ByteBufCodecs.INT)); + public static final DataComponentType TICKS_UNTIL_COOL = register("ticks_until_cool", b -> b + .persistent(ExtraCodecs.NON_NEGATIVE_INT).networkSynchronized(ByteBufCodecs.INT)); + public static final DataComponentType CREATIVE = register("creative", b -> b + .persistent(Codec.BOOL).networkSynchronized(ByteBufCodecs.BOOL)); + + public static final DataComponentType> KEY = register("key", b -> b + .persistent(RecordCodecBuilder.create(i -> + i.group( + ResourceLocation.CODEC.fieldOf("registry").forGetter(ResourceKey::registry), + ResourceLocation.CODEC.fieldOf("location").forGetter(ResourceKey::location) + ).apply(i, (r, l) -> ResourceKey.create(ResourceKey.createRegistryKey(r), l)) + )).networkSynchronized(StreamCodec.composite( + ResourceLocation.STREAM_CODEC, + ResourceKey::registry, + ResourceLocation.STREAM_CODEC, + ResourceKey::location, + (r, l) -> ResourceKey.create(ResourceKey.createRegistryKey(r), l) + ))); + + private static DataComponentType register(String id, UnaryOperator> op) { + return Registry.register(BuiltInRegistries.DATA_COMPONENT_TYPE, Constant.id(id), op.apply(DataComponentType.builder()).build()); + } + + public static void init() {} +} diff --git a/src/main/java/dev/galacticraft/api/data/TranslationProvider.java b/src/main/java/dev/galacticraft/api/data/TranslationProvider.java index 82c9f8232..86624e4ab 100644 --- a/src/main/java/dev/galacticraft/api/data/TranslationProvider.java +++ b/src/main/java/dev/galacticraft/api/data/TranslationProvider.java @@ -30,6 +30,7 @@ import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput; +import net.minecraft.network.chat.contents.TranslatableContents; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.effect.MobEffect; @@ -54,7 +55,7 @@ public abstract class TranslationProvider implements DataProvider { public TranslationProvider(FabricDataOutput output, CompletableFuture registriesFuture) { this.registriesFuture = registriesFuture; this.modId = output.getModId(); - this.path = output.createPathProvider(PackOutput.Target.RESOURCE_PACK, "lang").json(new ResourceLocation(modId, "en_us")); + this.path = output.createPathProvider(PackOutput.Target.RESOURCE_PACK, "lang").json(ResourceLocation.fromNamespaceAndPath(modId, "en_us")); } protected void generateDefaultTranslations(@NotNull HolderLookup.Provider registries) { @@ -99,7 +100,7 @@ protected void mobEffect(MobEffect effect, String translation) { } protected void enchantment(Enchantment enchantment, String translation) { - this.add(enchantment.getDescriptionId(), translation); + this.add(((TranslatableContents)enchantment.description().getContents()).getKey(), translation); } protected void addDefaulted(Holder.Reference reference) { diff --git a/src/main/java/dev/galacticraft/api/entity/attribute/GcApiEntityAttributes.java b/src/main/java/dev/galacticraft/api/entity/attribute/GcApiEntityAttributes.java index 414bce7a4..548b86e87 100644 --- a/src/main/java/dev/galacticraft/api/entity/attribute/GcApiEntityAttributes.java +++ b/src/main/java/dev/galacticraft/api/entity/attribute/GcApiEntityAttributes.java @@ -23,15 +23,14 @@ package dev.galacticraft.api.entity.attribute; import dev.galacticraft.mod.Constant; +import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.RangedAttribute; public final class GcApiEntityAttributes { - public static final Attribute CAN_BREATHE_IN_SPACE = Registry.register(BuiltInRegistries.ATTRIBUTE, Constant.id("can_breathe_in_space"), (new RangedAttribute("galacticraft.attribute.name.generic.can_breathe_in_space", 0.0D, 0.0D, 1.0D)).setSyncable(true)); - - public static final Attribute LOCAL_GRAVITY_LEVEL = Registry.register(BuiltInRegistries.ATTRIBUTE, Constant.id("local_gravity_level"), (new RangedAttribute("galacticraft.attribute.name.generic.local_gravity_level", 0.0D, 0.0D, 1.0D)).setSyncable(true)); + public static final Holder.Reference CAN_BREATHE_IN_SPACE = Registry.registerForHolder(BuiltInRegistries.ATTRIBUTE, Constant.id("can_breathe_in_space"), (new RangedAttribute("galacticraft.attribute.name.generic.can_breathe_in_space", 0.0D, 0.0D, 1.0D)).setSyncable(true)); private GcApiEntityAttributes() {} diff --git a/src/main/java/dev/galacticraft/api/gas/GasComposition.java b/src/main/java/dev/galacticraft/api/gas/GasComposition.java index b533c42e3..7084b2915 100644 --- a/src/main/java/dev/galacticraft/api/gas/GasComposition.java +++ b/src/main/java/dev/galacticraft/api/gas/GasComposition.java @@ -24,7 +24,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.galacticraft.impl.codec.MapCodec; +import dev.galacticraft.impl.codec.MapKvCodec; import dev.galacticraft.impl.gas.GasCompositionImpl; import it.unimi.dsi.fastutil.objects.Object2DoubleArrayMap; import it.unimi.dsi.fastutil.objects.Object2DoubleMap; @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; public interface GasComposition { - MapCodec, Double, Object2DoubleMap>> MAP_CODEC = MapCodec.create(Object2DoubleArrayMap::new, ResourceKey.codec(Registries.FLUID), Codec.DOUBLE); + MapKvCodec, Double, Object2DoubleMap>> MAP_CODEC = MapKvCodec.create(Object2DoubleArrayMap::new, ResourceKey.codec(Registries.FLUID), Codec.DOUBLE); Codec CODEC = RecordCodecBuilder.create(atmosphericInfoInstance -> atmosphericInfoInstance.group( MAP_CODEC.fieldOf("composition").forGetter(GasComposition::composition), Codec.DOUBLE.fieldOf("temperature").forGetter(GasComposition::temperature), diff --git a/src/main/java/dev/galacticraft/api/registry/AddonRegistries.java b/src/main/java/dev/galacticraft/api/registry/AddonRegistries.java index d76ce8e19..c91f85f1f 100644 --- a/src/main/java/dev/galacticraft/api/registry/AddonRegistries.java +++ b/src/main/java/dev/galacticraft/api/registry/AddonRegistries.java @@ -34,7 +34,6 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; public final class AddonRegistries { private AddonRegistries() {} diff --git a/src/main/java/dev/galacticraft/api/rocket/LaunchStage.java b/src/main/java/dev/galacticraft/api/rocket/LaunchStage.java index 684608d05..f9df09f62 100644 --- a/src/main/java/dev/galacticraft/api/rocket/LaunchStage.java +++ b/src/main/java/dev/galacticraft/api/rocket/LaunchStage.java @@ -22,6 +22,9 @@ package dev.galacticraft.api.rocket; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.util.StringRepresentable; import org.jetbrains.annotations.NotNull; @@ -53,6 +56,8 @@ public enum LaunchStage implements StringRepresentable { */ FAILED; + public static final StreamCodec STREAM_CODEC = StreamCodecs.ofEnum(LaunchStage.values()); + public LaunchStage next() { if (this.ordinal() < LAUNCHED.ordinal()) { return LaunchStage.values()[ordinal() + 1]; diff --git a/src/main/java/dev/galacticraft/api/rocket/RocketData.java b/src/main/java/dev/galacticraft/api/rocket/RocketData.java index 10e062ce6..61f76305d 100644 --- a/src/main/java/dev/galacticraft/api/rocket/RocketData.java +++ b/src/main/java/dev/galacticraft/api/rocket/RocketData.java @@ -22,120 +22,184 @@ package dev.galacticraft.api.rocket; -import dev.galacticraft.api.registry.RocketRegistries; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.api.rocket.part.*; import dev.galacticraft.api.rocket.travelpredicate.TravelPredicateType; import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.impl.rocket.RocketDataImpl; -import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; +import dev.galacticraft.mod.content.GCRocketParts; +import dev.galacticraft.mod.util.StreamCodecs; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.component.DataComponentPatch; +import net.minecraft.core.component.DataComponentType; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.util.FastColor; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.Unmodifiable; -public interface RocketData { +import java.util.Optional; + +public record RocketData(@Nullable EitherHolder> cone, @Nullable EitherHolder> body, + @Nullable EitherHolder> fin, + @Nullable EitherHolder> booster, + @Nullable EitherHolder> engine, + @Nullable EitherHolder> upgrade, int color +) { + public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + RocketCone.EITHER_CODEC.fieldOf("cone").forGetter(RocketData::cone), + RocketBody.EITHER_CODEC.fieldOf("body").forGetter(RocketData::body), + RocketFin.EITHER_CODEC.fieldOf("fin").forGetter(RocketData::fin), + RocketBooster.EITHER_CODEC.fieldOf("booster").forGetter(RocketData::booster), + RocketEngine.EITHER_CODEC.fieldOf("engine").forGetter(RocketData::engine), + RocketUpgrade.EITHER_CODEC.fieldOf("upgrade").forGetter(RocketData::upgrade), + Codec.INT.fieldOf("color").forGetter(RocketData::color) + ).apply(instance, RocketData::new)); + + public static final StreamCodec STREAM_CODEC = StreamCodecs.composite( + RocketCone.EITHER_STREAM_CODEC, + RocketData::cone, + RocketBody.EITHER_STREAM_CODEC, + RocketData::body, + RocketFin.EITHER_STREAM_CODEC, + RocketData::fin, + RocketBooster.EITHER_STREAM_CODEC, + RocketData::booster, + RocketEngine.EITHER_STREAM_CODEC, + RocketData::engine, + RocketUpgrade.EITHER_STREAM_CODEC, + RocketData::upgrade, + ByteBufCodecs.INT, + RocketData::color, + RocketData::new + ); + + public static final RocketData DEFAULT_ROCKET = new RocketData( + new EitherHolder<>(GCRocketParts.TIER_1_CONE), + new EitherHolder<>(GCRocketParts.TIER_1_BODY), + new EitherHolder<>(GCRocketParts.TIER_1_FIN), + null, + new EitherHolder<>(GCRocketParts.TIER_1_ENGINE), + null, + 0xFFFFFFFF + ); + + @Contract("_, _, _, _, _, _, _ -> new") + static @NotNull RocketData create(int color, @Nullable Holder> cone, @Nullable Holder> body, + @Nullable Holder> fin, @Nullable Holder> booster, + @Nullable Holder> engine, @Nullable Holder> upgrade) { + return new RocketData(maybeHolder(cone), maybeHolder(body), maybeHolder(fin), maybeHolder(booster), maybeHolder(engine), maybeHolder(upgrade), color); + } + @Contract("_, _, _, _, _, _, _ -> new") static @NotNull RocketData create(int color, @Nullable ResourceKey> cone, @Nullable ResourceKey> body, @Nullable ResourceKey> fin, @Nullable ResourceKey> booster, @Nullable ResourceKey> engine, @Nullable ResourceKey> upgrade) { - return new RocketDataImpl(color, cone, body, fin, booster, engine, upgrade); + return new RocketData(maybeHolder(cone), maybeHolder(body), maybeHolder(fin), maybeHolder(booster), maybeHolder(engine), maybeHolder(upgrade), color); } - @Unmodifiable - static RocketData fromNbt(@Nullable CompoundTag nbt) { - return RocketDataImpl.fromNbt(nbt == null ? RocketDataImpl.DEFAULT_ROCKET : nbt); + @Contract("_, _, _, _, _, _, _ -> new") + static @NotNull RocketData create(int color, @Nullable EitherHolder> cone, @Nullable EitherHolder> body, + @Nullable EitherHolder> fin, @Nullable EitherHolder> booster, + @Nullable EitherHolder> engine, @Nullable EitherHolder> upgrade) { + return new RocketData(cone, body, fin, booster, engine, upgrade, color); } - @Unmodifiable - static RocketData fromNetwork(FriendlyByteBuf buf) { - return RocketDataImpl.fromNetwork(buf); + public static RocketData fromPatch(DataComponentPatch patch) { + return new RocketData( + maybeOptional(patch.get(GCDataComponents.ROCKET_CONE)), + maybeOptional(patch.get(GCDataComponents.ROCKET_BODY)), + maybeOptional(patch.get(GCDataComponents.ROCKET_FIN)), + maybeOptional(patch.get(GCDataComponents.ROCKET_BOOSTER)), + maybeOptional(patch.get(GCDataComponents.ROCKET_ENGINE)), + maybeOptional(patch.get(GCDataComponents.ROCKET_UPGRADE)), + patch.get(GCDataComponents.COLOR) != null && patch.get(GCDataComponents.COLOR).isPresent() ? patch.get(GCDataComponents.COLOR).get() : 0xFFFFFFFF + ); } - int color(); - - default int red() { + //TODO: HSV? + public int red() { return FastColor.ARGB32.red(this.color()); } - default int green() { + public int green() { return FastColor.ARGB32.green(this.color()); } - default int blue() { + public int blue() { return FastColor.ARGB32.blue(this.color()); } - default int alpha() { + public int alpha() { return FastColor.ARGB32.alpha(this.color()); } - @Nullable ResourceKey> cone(); - - @Nullable ResourceKey> body(); - - @Nullable ResourceKey> fin(); + public boolean isValid() { + return this.cone() != null && this.body() != null && this.fin() != null && this.engine() != null; + } - @Nullable ResourceKey> booster(); + public DataComponentPatch asPatch() { + DataComponentPatch.Builder builder = DataComponentPatch.builder(); + maybeSet(builder, GCDataComponents.ROCKET_CONE, this.cone); + maybeSet(builder, GCDataComponents.ROCKET_BODY, this.body); + maybeSet(builder, GCDataComponents.ROCKET_FIN, this.fin); + maybeSet(builder, GCDataComponents.ROCKET_BOOSTER, this.booster); + maybeSet(builder, GCDataComponents.ROCKET_ENGINE, this.engine); + maybeSet(builder, GCDataComponents.ROCKET_UPGRADE, this.upgrade); + return builder.build(); + } - @Nullable ResourceKey> engine(); + public boolean canTravel(@NotNull HolderLookup.Provider lookup, CelestialBody from, CelestialBody to) { + Holder> cone = maybeGet(lookup, this.cone); + Holder> body = maybeGet(lookup, this.body); + Holder> fin = maybeGet(lookup, this.fin); + Holder> booster = maybeGet(lookup, this.booster); + Holder> engine = maybeGet(lookup, this.engine); + Holder> upgrade = maybeGet(lookup, this.upgrade); + + if (cone != null && body != null && fin != null && engine != null) { + TravelPredicateType.Result type = TravelPredicateType.Result.PASS; + type = type.merge(cone.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + type = type.merge(body.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + type = type.merge(fin.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + type = type.merge(booster == null ? TravelPredicateType.Result.PASS : booster.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + type = type.merge(engine.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + type = type.merge(upgrade == null ? TravelPredicateType.Result.PASS : upgrade.value().travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); + return type == TravelPredicateType.Result.ALLOW; + } + + return false; + } - @Nullable ResourceKey> upgrade(); + private static EitherHolder maybeHolder(@Nullable Holder holder) { + return holder == null ? null : new EitherHolder<>(holder); + } - default void toNbt(@NotNull CompoundTag nbt) { - nbt.putInt("Color", this.color()); - if (this.cone() != null) nbt.putString("Cone", this.cone().location().toString()); - if (this.body() != null) nbt.putString("Body", this.body().location().toString()); - if (this.fin() != null) nbt.putString("Fin", this.fin().location().toString()); - if (this.booster() != null) nbt.putString("Booster", this.booster().location().toString()); - if (this.engine() != null) nbt.putString("Engine", this.engine().location().toString()); - if (this.upgrade() != null) nbt.putString("Upgrade", this.upgrade().location().toString()); + private static EitherHolder maybeHolder(@Nullable ResourceKey key) { + return key == null ? null : new EitherHolder<>(key); } - default void toNetwork(FriendlyByteBuf buf) { - buf.writeVarInt(this.color()); - buf.writeBoolean(this.cone() != null); - buf.writeBoolean(this.body() != null); - buf.writeBoolean(this.fin() != null); - buf.writeBoolean(this.booster() != null); - buf.writeBoolean(this.engine() != null); - buf.writeBoolean(this.upgrade() != null); - if (this.cone() != null) buf.writeResourceLocation(this.cone().location()); - if (this.body() != null) buf.writeResourceLocation(this.body().location()); - if (this.fin() != null) buf.writeResourceLocation(this.fin().location()); - if (this.booster() != null) buf.writeResourceLocation(this.booster().location()); - if (this.engine() != null) buf.writeResourceLocation(this.engine().location()); - if (this.upgrade() != null) buf.writeResourceLocation(this.upgrade().location()); + private static @Nullable Holder maybeGet(@NotNull HolderLookup.Provider lookup, @Nullable EitherHolder holder) { + return holder == null ? null : holder.unwrap(lookup).orElse(null); } - default boolean isValid() { - return this.cone() != null && this.body() != null && this.fin() != null && this.engine() != null; + private void maybeSet(DataComponentPatch.Builder builder, DataComponentType type, @Nullable T value) { + if (value != null) { + builder.set(type, value); + } else { + builder.remove(type); + } } - default boolean canTravel(@NotNull RegistryAccess manager, CelestialBody from, CelestialBody to) { - if (!this.isValid()) return false; - TravelPredicateType.Result type = TravelPredicateType.Result.PASS; - RocketCone cone = manager.registryOrThrow(RocketRegistries.ROCKET_CONE).get(this.cone()); - RocketBody body = manager.registryOrThrow(RocketRegistries.ROCKET_BODY).get(this.body()); - RocketFin fin = manager.registryOrThrow(RocketRegistries.ROCKET_FIN).get(this.fin()); - RocketBooster booster = manager.registryOrThrow(RocketRegistries.ROCKET_BOOSTER).get(this.booster()); - RocketEngine engine = manager.registryOrThrow(RocketRegistries.ROCKET_ENGINE).get(this.engine()); - RocketUpgrade upgrade = manager.registryOrThrow(RocketRegistries.ROCKET_UPGRADE).get(this.upgrade()); - - assert cone != null; - assert body != null; - assert fin != null; - assert engine != null; - - type = type.merge(cone.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - type = type.merge(body.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - type = type.merge(fin.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - type = type.merge(booster == null ? TravelPredicateType.Result.PASS : booster.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - type = type.merge(engine.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - type = type.merge(upgrade == null ? TravelPredicateType.Result.PASS : upgrade.travelPredicate().canTravel(from, to, cone, body, fin, booster, engine, upgrade)); - - return type == TravelPredicateType.Result.ALLOW; - }} + private static T maybeOptional(@Nullable Optional value) { + // its a nullable optional value + //noinspection OptionalAssignedToNull + return value != null ? value.orElse(null) : null; + } +} diff --git a/src/main/java/dev/galacticraft/api/rocket/entity/Rocket.java b/src/main/java/dev/galacticraft/api/rocket/entity/Rocket.java index 5bd515c8d..2d86923f8 100644 --- a/src/main/java/dev/galacticraft/api/rocket/entity/Rocket.java +++ b/src/main/java/dev/galacticraft/api/rocket/entity/Rocket.java @@ -26,16 +26,13 @@ import dev.galacticraft.api.rocket.RocketData; import dev.galacticraft.api.rocket.part.*; import dev.galacticraft.mod.api.entity.Dockable; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.fabricmc.fabric.api.transfer.v1.storage.Storage; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.material.Fluid; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public interface Rocket extends RocketData, Dockable { +public interface Rocket extends Dockable { /** * Returns the launch stage of this rocket. * @return the launch stage of this rocket. @@ -44,17 +41,19 @@ public interface Rocket extends RocketData, Dockable { void setLaunchStage(LaunchStage stage); - @Nullable RocketCone getCone(); + @NotNull RocketData getData(); - @Nullable RocketBody getBody(); + @Nullable Holder> cone(); - @Nullable RocketFin getFin(); + @Nullable Holder> body(); - @Nullable RocketBooster getBooster(); + @Nullable Holder> fin(); - @Nullable RocketEngine getEngine(); + @Nullable Holder> booster(); - @Nullable RocketUpgrade getUpgrade(); + @Nullable Holder> engine(); + + @Nullable Holder> upgrade(); @NotNull BlockPos getLinkedPad(); diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketBody.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketBody.java index aa0c04643..fb388c86d 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketBody.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketBody.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketBodyConfig; import dev.galacticraft.api.rocket.part.type.RocketBodyType; import dev.galacticraft.impl.rocket.part.RocketBodyImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,6 +43,10 @@ public non-sealed interface RocketBody> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_BODY_TYPE.byNameCodec().dispatch(RocketBody::type, RocketBodyType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_BODY, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_BODY, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_BODY); + + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_BODY, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_BODY, STREAM_CODEC); @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketBody create(@NotNull C config, @NotNull T type) { diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketBooster.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketBooster.java index 49deaf3dd..b000a07ca 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketBooster.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketBooster.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketBoosterConfig; import dev.galacticraft.api.rocket.part.type.RocketBoosterType; import dev.galacticraft.impl.rocket.part.RocketBoosterImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,6 +43,10 @@ public non-sealed interface RocketBooster> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_BOOSTER_TYPE.byNameCodec().dispatch(RocketBooster::type, RocketBoosterType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_BOOSTER, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_BOOSTER, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_BOOSTER); + + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_BOOSTER, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_BOOSTER, STREAM_CODEC); @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketBooster create(@NotNull C config, @NotNull T type) { diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketCone.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketCone.java index 701c89db0..c4a201b7f 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketCone.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketCone.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketConeConfig; import dev.galacticraft.api.rocket.part.type.RocketConeType; import dev.galacticraft.impl.rocket.part.RocketConeImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,6 +43,10 @@ public non-sealed interface RocketCone> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_CONE_TYPE.byNameCodec().dispatch(RocketCone::type, RocketConeType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_CONE, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_CONE, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_CONE); + + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_CONE, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_CONE, STREAM_CODEC); @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketCone create(@NotNull C config, @NotNull T type) { diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketEngine.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketEngine.java index 41bf72882..2661192e8 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketEngine.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketEngine.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketEngineConfig; import dev.galacticraft.api.rocket.part.type.RocketEngineType; import dev.galacticraft.impl.rocket.part.RocketEngineImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,7 +43,11 @@ public non-sealed interface RocketEngine> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_ENGINE_TYPE.byNameCodec().dispatch(RocketEngine::type, RocketEngineType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_ENGINE, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_ENGINE, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_ENGINE); + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_ENGINE, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_ENGINE, STREAM_CODEC); + @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketEngine create(@NotNull C config, @NotNull T type) { return new RocketEngineImpl<>(config, type); diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketFin.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketFin.java index 63aad39b4..23810756b 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketFin.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketFin.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketFinConfig; import dev.galacticraft.api.rocket.part.type.RocketFinType; import dev.galacticraft.impl.rocket.part.RocketFinImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,6 +43,10 @@ public non-sealed interface RocketFin> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_FIN_TYPE.byNameCodec().dispatch(RocketFin::type, RocketFinType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_FIN, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_FIN, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_FIN); + + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_FIN, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_FIN, STREAM_CODEC); @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketFin create(@NotNull C config, @NotNull T type) { diff --git a/src/main/java/dev/galacticraft/api/rocket/part/RocketUpgrade.java b/src/main/java/dev/galacticraft/api/rocket/part/RocketUpgrade.java index 27ecd9c75..7e34ac227 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/RocketUpgrade.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/RocketUpgrade.java @@ -28,10 +28,14 @@ import dev.galacticraft.api.rocket.part.config.RocketUpgradeConfig; import dev.galacticraft.api.rocket.part.type.RocketUpgradeType; import dev.galacticraft.impl.rocket.part.RocketUpgradeImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.HolderSet; import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; +import net.minecraft.world.item.EitherHolder; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -39,6 +43,10 @@ public non-sealed interface RocketUpgrade> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_UPGRADE_TYPE.byNameCodec().dispatch(RocketUpgrade::type, RocketUpgradeType::codec); Codec>> CODEC = RegistryFileCodec.create(RocketRegistries.ROCKET_UPGRADE, DIRECT_CODEC); Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.ROCKET_UPGRADE, DIRECT_CODEC); + StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(RocketRegistries.ROCKET_UPGRADE); + + Codec>> EITHER_CODEC = EitherHolder.codec(RocketRegistries.ROCKET_UPGRADE, CODEC); + StreamCodec>> EITHER_STREAM_CODEC = EitherHolder.streamCodec(RocketRegistries.ROCKET_UPGRADE, STREAM_CODEC); @Contract(pure = true, value = "_, _ -> new") static @NotNull > RocketUpgrade create(@NotNull C config, @NotNull T type) { diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBodyType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBodyType.java index d4eea5857..992298ec2 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBodyType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBodyType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketBody; import dev.galacticraft.api.rocket.part.config.RocketBodyConfig; import org.jetbrains.annotations.Contract; @@ -32,10 +33,10 @@ * The body of a rocket. Controls the number of installable rocket upgrades and the maximum passenger count. */ public non-sealed abstract class RocketBodyType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketBodyType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketBody::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketBody::config); } @Override @@ -44,7 +45,7 @@ protected RocketBodyType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBoosterType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBoosterType.java index 5db1f2d17..796683a92 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBoosterType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketBoosterType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketBooster; import dev.galacticraft.api.rocket.part.config.RocketBoosterConfig; import org.jetbrains.annotations.Contract; @@ -32,10 +33,10 @@ * The booster of a rocket. Controls how fast the rocket accelerates, where the rocket can travel to, and how much fuel is consumed. */ public non-sealed abstract class RocketBoosterType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketBoosterType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketBooster::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketBooster::config); } public @NotNull RocketBooster> configure(@NotNull C config) { @@ -43,7 +44,7 @@ protected RocketBoosterType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketConeType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketConeType.java index c92fccb02..6415441c0 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketConeType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketConeType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketCone; import dev.galacticraft.api.rocket.part.config.RocketConeConfig; import org.jetbrains.annotations.NotNull; @@ -31,10 +32,10 @@ * The cone of a rocket. Controls how fast the rocket can accelerate. */ public non-sealed abstract class RocketConeType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; public RocketConeType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketCone::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketCone::config); } @Override @@ -43,7 +44,7 @@ public RocketConeType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketEngineType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketEngineType.java index 7473a0dac..b883d59ac 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketEngineType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketEngineType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketEngine; import dev.galacticraft.api.rocket.part.config.RocketEngineConfig; import org.jetbrains.annotations.NotNull; @@ -31,10 +32,10 @@ * The engine of a rocket. Controls how much fuel the rocket can hold. */ public non-sealed abstract class RocketEngineType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketEngineType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketEngine::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketEngine::config); } @Override @@ -43,7 +44,7 @@ protected RocketEngineType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketFinType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketFinType.java index 9963ea334..7aa73f4dc 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketFinType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketFinType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketFin; import dev.galacticraft.api.rocket.part.config.RocketFinConfig; import org.jetbrains.annotations.NotNull; @@ -31,10 +32,10 @@ * The fins of a rocket. Controls how fast the rocket can accelerate. */ public non-sealed abstract class RocketFinType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketFinType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketFin::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketFin::config); } @Override @@ -43,7 +44,7 @@ protected RocketFinType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketPartType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketPartType.java index 79bccb68c..91b233858 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketPartType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketPartType.java @@ -22,7 +22,7 @@ package dev.galacticraft.api.rocket.part.type; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.entity.Rocket; import dev.galacticraft.api.rocket.part.RocketPart; import dev.galacticraft.api.rocket.part.config.RocketPartConfig; @@ -46,7 +46,7 @@ public sealed interface RocketPartType permits Rocke */ void tick(@NotNull Rocket rocket, @NotNull C config); - @NotNull Codec>> codec(); + @NotNull MapCodec>> codec(); @NotNull ConfiguredTravelPredicate travelPredicate(@NotNull C config); diff --git a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketUpgradeType.java b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketUpgradeType.java index d40529205..f6c4f2c5d 100644 --- a/src/main/java/dev/galacticraft/api/rocket/part/type/RocketUpgradeType.java +++ b/src/main/java/dev/galacticraft/api/rocket/part/type/RocketUpgradeType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.part.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.part.RocketUpgrade; import dev.galacticraft.api.rocket.part.config.RocketUpgradeConfig; import org.jetbrains.annotations.NotNull; @@ -31,10 +32,10 @@ * An upgrade for a rocket. */ public non-sealed abstract class RocketUpgradeType implements RocketPartType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketUpgradeType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketUpgrade::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketUpgrade::config); } @Override @@ -43,7 +44,7 @@ protected RocketUpgradeType(@NotNull Codec configCodec) { } @Override - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } } diff --git a/src/main/java/dev/galacticraft/api/rocket/recipe/RocketPartRecipe.java b/src/main/java/dev/galacticraft/api/rocket/recipe/RocketPartRecipe.java index 6c3b6ae02..5826115a6 100644 --- a/src/main/java/dev/galacticraft/api/rocket/recipe/RocketPartRecipe.java +++ b/src/main/java/dev/galacticraft/api/rocket/recipe/RocketPartRecipe.java @@ -28,14 +28,14 @@ import dev.galacticraft.api.rocket.recipe.type.RocketPartRecipeType; import dev.galacticraft.impl.rocket.recipe.RocketPartRecipeImpl; import net.minecraft.core.NonNullList; -import net.minecraft.data.worldgen.BootstapContext; -import net.minecraft.world.Container; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeInput; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; -public interface RocketPartRecipe> extends Recipe { +public interface RocketPartRecipe> extends Recipe { Codec> DIRECT_CODEC = BuiltInRocketRegistries.ROCKET_PART_RECIPE_TYPE.byNameCodec().dispatch(RocketPartRecipe::type, RocketPartRecipeType::codec); @Contract("_, _ -> new") @@ -56,7 +56,7 @@ public interface RocketPartRecipe getIngredients(); - static void bootstrapRegistries(BootstapContext> context) { + static void bootstrapRegistries(BootstrapContext> context) { } } diff --git a/src/main/java/dev/galacticraft/api/rocket/recipe/type/RocketPartRecipeType.java b/src/main/java/dev/galacticraft/api/rocket/recipe/type/RocketPartRecipeType.java index 6778aaa56..232fae06d 100644 --- a/src/main/java/dev/galacticraft/api/rocket/recipe/type/RocketPartRecipeType.java +++ b/src/main/java/dev/galacticraft/api/rocket/recipe/type/RocketPartRecipeType.java @@ -23,24 +23,25 @@ package dev.galacticraft.api.rocket.recipe.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.rocket.recipe.RocketPartRecipe; import dev.galacticraft.api.rocket.recipe.config.RocketPartRecipeConfig; import dev.galacticraft.machinelib.api.filter.ResourceFilter; import net.minecraft.core.NonNullList; -import net.minecraft.world.Container; import net.minecraft.world.item.Item; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; public abstract class RocketPartRecipeType { - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; protected RocketPartRecipeType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketPartRecipe::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, RocketPartRecipe::config); } - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } @@ -56,7 +57,7 @@ protected RocketPartRecipeType(@NotNull Codec configCodec) { public abstract @NotNull NonNullList ingredients(C config); - public abstract boolean matches(Container container, Level level, C config); + public abstract boolean matches(RecipeInput input, Level level, C config); @FunctionalInterface public interface SlotConsumer { diff --git a/src/main/java/dev/galacticraft/api/rocket/travelpredicate/ConfiguredTravelPredicate.java b/src/main/java/dev/galacticraft/api/rocket/travelpredicate/ConfiguredTravelPredicate.java index 19d95133d..a513cdc62 100644 --- a/src/main/java/dev/galacticraft/api/rocket/travelpredicate/ConfiguredTravelPredicate.java +++ b/src/main/java/dev/galacticraft/api/rocket/travelpredicate/ConfiguredTravelPredicate.java @@ -37,7 +37,7 @@ public record ConfiguredTravelPredicate>> CODEC = RegistryFileCodec.create(RocketRegistries.TRAVEL_PREDICATE, DIRECT_CODEC); public static final Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(RocketRegistries.TRAVEL_PREDICATE, DIRECT_CODEC); - public TravelPredicateType.Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade) { + public TravelPredicateType.Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade) { return this.type.canTravel(from, to, cone, body, fin, booster, engine, upgrade, this.config); } } diff --git a/src/main/java/dev/galacticraft/api/rocket/travelpredicate/TravelPredicateType.java b/src/main/java/dev/galacticraft/api/rocket/travelpredicate/TravelPredicateType.java index e46089b79..feb707244 100644 --- a/src/main/java/dev/galacticraft/api/rocket/travelpredicate/TravelPredicateType.java +++ b/src/main/java/dev/galacticraft/api/rocket/travelpredicate/TravelPredicateType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.rocket.travelpredicate; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.registry.BuiltInRocketRegistries; import dev.galacticraft.api.rocket.part.*; import dev.galacticraft.api.universe.celestialbody.CelestialBody; @@ -35,19 +36,19 @@ public abstract class TravelPredicateType { private final @NotNull Holder.Reference> reference = BuiltInRocketRegistries.TRAVEL_PREDICATE_TYPE.createIntrusiveHolder(this); - private final @NotNull Codec>> codec; + private final @NotNull MapCodec>> codec; public TravelPredicateType(@NotNull Codec configCodec) { - this.codec = configCodec.fieldOf("config").xmap(this::configure, ConfiguredTravelPredicate::config).codec(); + this.codec = configCodec.fieldOf("config").xmap(this::configure, ConfiguredTravelPredicate::config); } public ConfiguredTravelPredicate> configure(C config) { return new ConfiguredTravelPredicate<>(config, this); } - public abstract Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, C config); + public abstract Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, C config); - public Codec>> codec() { + public MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/satellite/SatelliteRecipe.java b/src/main/java/dev/galacticraft/api/satellite/SatelliteRecipe.java index aa6e96dab..c9113efdc 100644 --- a/src/main/java/dev/galacticraft/api/satellite/SatelliteRecipe.java +++ b/src/main/java/dev/galacticraft/api/satellite/SatelliteRecipe.java @@ -42,15 +42,15 @@ public interface SatelliteRecipe extends Predicate { @Override public DataResult encode(Int2ObjectMap input, DynamicOps ops, T prefix) { RecordBuilder mapBuilder = ops.mapBuilder(); - input.forEach((amount, ingredient) -> mapBuilder.add(ops.createInt(amount).toString(), Ingredient.CODEC.encodeStart(ops, ingredient).get().orThrow())); + input.forEach((amount, ingredient) -> mapBuilder.add(ops.createInt(amount).toString(), Ingredient.CODEC.encodeStart(ops, ingredient).getOrThrow())); return mapBuilder.build(prefix); } @Override public DataResult, T>> decode(DynamicOps ops, T input) { - MapLike mapLike = ops.getMap(input).get().orThrow(); + MapLike mapLike = ops.getMap(input).getOrThrow(); Int2ObjectMap list = new Int2ObjectArrayMap<>(); - mapLike.entries().forEachOrdered(ttPair -> list.put(Integer.decode(ops.getStringValue(ttPair.getFirst()).get().orThrow()).intValue(), Ingredient.CODEC.decode(ops, ttPair.getSecond()).get().orThrow().getFirst())); + mapLike.entries().forEachOrdered(ttPair -> list.put(Integer.decode(ops.getStringValue(ttPair.getFirst()).getOrThrow()).intValue(), Ingredient.CODEC.decode(ops, ttPair.getSecond()).getOrThrow().getFirst())); return DataResult.success(new Pair<>(list, input)); } }.fieldOf("ingredients").forGetter(SatelliteRecipe::ingredients) diff --git a/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBody.java b/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBody.java index 714a0ab52..09c608c51 100644 --- a/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBody.java +++ b/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBody.java @@ -23,77 +23,41 @@ package dev.galacticraft.api.universe.celestialbody; import com.mojang.serialization.Codec; -import dev.galacticraft.api.entity.attribute.GcApiEntityAttributes; import dev.galacticraft.api.gas.GasComposition; import dev.galacticraft.api.registry.AddonRegistries; import dev.galacticraft.api.registry.BuiltInAddonRegistries; -import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.api.universe.display.CelestialDisplay; import dev.galacticraft.api.universe.display.ring.CelestialRingDisplay; import dev.galacticraft.api.universe.galaxy.Galaxy; import dev.galacticraft.api.universe.position.CelestialPosition; -import net.minecraft.core.*; +import dev.galacticraft.mod.util.StreamCodecs; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.RegistryCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.ai.attributes.AttributeInstance; +import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Optional; - public record CelestialBody>(T type, C config) { public static final Codec> DIRECT_CODEC = BuiltInAddonRegistries.CELESTIAL_BODY_TYPE.byNameCodec().dispatch(CelestialBody::type, CelestialBodyType::codec); public static final Codec>> CODEC = RegistryFileCodec.create(AddonRegistries.CELESTIAL_BODY, DIRECT_CODEC); public static final Codec>> LIST_CODEC = RegistryCodecs.homogeneousList(AddonRegistries.CELESTIAL_BODY, DIRECT_CODEC); + public static final StreamCodec>> STREAM_CODEC = StreamCodecs.ofHolder(AddonRegistries.CELESTIAL_BODY); - public static Registry> getRegistry(RegistryAccess manager) { - return manager.registryOrThrow(AddonRegistries.CELESTIAL_BODY); - } - - public static CelestialBody getById(RegistryAccess manager, ResourceLocation id) { - return getById(getRegistry(manager), id); - } - - public static ResourceLocation getId(RegistryAccess manager, CelestialBody celestialBody) { - return getId(getRegistry(manager), celestialBody); - } - - public static & Landable> Optional> getByDimension(RegistryAccess manager, ResourceKey key) { - return getByDimension(getRegistry(manager), key); - } - - public static & Landable> Optional> getByDimension(Level level) { - return getByDimension(level.registryAccess(), level.dimension()); - } - - public static CelestialBody getById(Registry> registry, ResourceLocation id) { - return registry.get(id); - } - - public static ResourceLocation getId(Registry> registry, CelestialBody celestialBody) { - return registry.getKey(celestialBody); - } - - public static & Landable> Optional> getByDimension(Registry> registry, ResourceKey key) { - for (CelestialBody body : registry) { - if (body.type() instanceof Landable landable && landable.world(body.config()).equals(key)) - return Optional.of((CelestialBody) body); - } - return Optional.empty(); + public static double getGravity(Entity entity) { + return modifyGravity(entity.level(), entity instanceof LivingEntity living ? living.getAttributeBaseValue(Attributes.GRAVITY) : 0.08d); } - public static double getGravity(Entity entity) { - if (entity instanceof LivingEntity living) { - AttributeInstance attribute = living.getAttribute(GcApiEntityAttributes.LOCAL_GRAVITY_LEVEL); - if (attribute != null && attribute.getValue() > 0) - return attribute.getValue() * 0.08d; - } - return CelestialBody.getByDimension(entity.level()).map(celestialBodyType -> celestialBodyType.gravity() * 0.08d).orElse(0.08); + public static double modifyGravity(Level level, double d) { + Holder> holder = level.galacticraft$getCelestialBody(); + return holder != null ? holder.value().gravity() * d : d; } /** diff --git a/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBodyType.java b/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBodyType.java index 3877add03..988a3cbbf 100644 --- a/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBodyType.java +++ b/src/main/java/dev/galacticraft/api/universe/celestialbody/CelestialBodyType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.universe.celestialbody; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.gas.GasComposition; import dev.galacticraft.api.universe.display.CelestialDisplay; import dev.galacticraft.api.universe.display.ring.CelestialRingDisplay; @@ -35,10 +36,10 @@ import org.jetbrains.annotations.Nullable; public abstract class CelestialBodyType { - private final Codec>> codec; + private final MapCodec>> codec; public CelestialBodyType(Codec codec) { - this.codec = codec.fieldOf("config").xmap((config) -> new CelestialBody<>(this, config), CelestialBody::config).codec(); + this.codec = codec.fieldOf("config").xmap((config) -> new CelestialBody<>(this, config), CelestialBody::config); } /** @@ -131,7 +132,7 @@ public long dayLength(C config) { * * @return a codec that will (de)serialize a fully-configured celestial body of this type. */ - public Codec>> codec() { + public MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/universe/celestialbody/landable/teleporter/type/CelestialTeleporterType.java b/src/main/java/dev/galacticraft/api/universe/celestialbody/landable/teleporter/type/CelestialTeleporterType.java index a03ba27af..55107d97a 100644 --- a/src/main/java/dev/galacticraft/api/universe/celestialbody/landable/teleporter/type/CelestialTeleporterType.java +++ b/src/main/java/dev/galacticraft/api/universe/celestialbody/landable/teleporter/type/CelestialTeleporterType.java @@ -23,6 +23,7 @@ package dev.galacticraft.api.universe.celestialbody.landable.teleporter.type; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.api.universe.celestialbody.landable.teleporter.CelestialTeleporter; import dev.galacticraft.api.universe.celestialbody.landable.teleporter.config.CelestialTeleporterConfig; @@ -31,13 +32,13 @@ import org.jetbrains.annotations.NotNull; public abstract class CelestialTeleporterType { - private final Codec>> codec; + private final MapCodec>> codec; public CelestialTeleporterType(Codec codec) { - this.codec = codec.fieldOf("config").xmap((config) -> new CelestialTeleporter<>(this, config), CelestialTeleporter::config).codec(); + this.codec = codec.fieldOf("config").xmap((config) -> new CelestialTeleporter<>(this, config), CelestialTeleporter::config); } - public @NotNull Codec>> codec() { + public @NotNull MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplay.java b/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplay.java index 3b92a9ad2..ccd792eb6 100644 --- a/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplay.java +++ b/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplay.java @@ -22,7 +22,7 @@ package dev.galacticraft.api.universe.display; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.serialization.Codec; import dev.galacticraft.api.registry.BuiltInAddonRegistries; import net.fabricmc.api.EnvType; @@ -34,7 +34,7 @@ public record CelestialDisplay> CODEC = BuiltInAddonRegistries.CELESTIAL_DISPLAY_TYPE.byNameCodec().dispatch(CelestialDisplay::type, CelestialDisplayType::codec); @Environment(EnvType.CLIENT) - public Vector4f render(GuiGraphics graphics, BufferBuilder buffer, int scale, double mouseX, double mouseY, float delta) { - return this.type().render(graphics, buffer, scale, mouseX, mouseY, delta, this.config()); + public Vector4f render(GuiGraphics graphics, Tesselator tesselator, int scale, double mouseX, double mouseY, float delta) { + return this.type().render(graphics, tesselator, scale, mouseX, mouseY, delta, this.config()); } } diff --git a/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplayType.java b/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplayType.java index 953d0970e..dd00e520d 100644 --- a/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplayType.java +++ b/src/main/java/dev/galacticraft/api/universe/display/CelestialDisplayType.java @@ -22,8 +22,9 @@ package dev.galacticraft.api.universe.display; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiGraphics; @@ -31,16 +32,16 @@ public abstract class CelestialDisplayType { public static final Vector4f NULL_VECTOR = new Vector4f(0, 0, 0, 0); - private final Codec>> codec; + private final MapCodec>> codec; public CelestialDisplayType(Codec codec) { - this.codec = codec.fieldOf("config").xmap((config) -> new CelestialDisplay<>(this, config), CelestialDisplay::config).codec(); + this.codec = codec.fieldOf("config").xmap((config) -> new CelestialDisplay<>(this, config), CelestialDisplay::config); } @Environment(EnvType.CLIENT) - public abstract Vector4f render(GuiGraphics graphics, BufferBuilder buffer, int size, double mouseX, double mouseY, float delta, C config); + public abstract Vector4f render(GuiGraphics graphics, Tesselator tesselator, int size, double mouseX, double mouseY, float delta, C config); - public Codec>> codec() { + public MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplay.java b/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplay.java index 4d9451385..d835e5087 100644 --- a/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplay.java +++ b/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplay.java @@ -28,17 +28,13 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.ShaderInstance; import org.joml.Vector3f; -import java.util.function.Consumer; -import java.util.function.Supplier; - public record CelestialRingDisplay>(T type, C config) { public static final Codec> CODEC = BuiltInAddonRegistries.CELESTIAL_RING_DISPLAY_TYPE.byNameCodec().dispatch(CelestialRingDisplay::type, CelestialRingDisplayType::codec); @Environment(EnvType.CLIENT) - public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float alpha, float lineScale, double mouseX, double mouseY, float delta, Consumer> shaderSetter) { - return this.type().render(body, graphics, count, systemOffset, lineScale, alpha, mouseX, mouseY, delta, shaderSetter, this.config()); + public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float alpha, float lineScale, double mouseX, double mouseY, float delta) { + return this.type().render(body, graphics, count, systemOffset, lineScale, alpha, mouseX, mouseY, delta, this.config()); } } diff --git a/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplayType.java b/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplayType.java index b6a9d2629..77b85d319 100644 --- a/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplayType.java +++ b/src/main/java/dev/galacticraft/api/universe/display/ring/CelestialRingDisplayType.java @@ -22,30 +22,25 @@ package dev.galacticraft.api.universe.display.ring; -import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.ShaderInstance; import org.joml.Vector3f; -import org.joml.Vector4f; - -import java.util.function.Consumer; -import java.util.function.Supplier; public abstract class CelestialRingDisplayType { - private final Codec>> codec; + private final MapCodec>> codec; public CelestialRingDisplayType(Codec codec) { - this.codec = codec.fieldOf("config").xmap((config) -> new CelestialRingDisplay<>(this, config), CelestialRingDisplay::config).codec(); + this.codec = codec.fieldOf("config").xmap((config) -> new CelestialRingDisplay<>(this, config), CelestialRingDisplay::config); } @Environment(EnvType.CLIENT) - public abstract boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, Consumer> shaderSetter, C config); + public abstract boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, C config); - public Codec>> codec() { + public MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/api/universe/galaxy/Galaxy.java b/src/main/java/dev/galacticraft/api/universe/galaxy/Galaxy.java index 4494c1575..406f98b7a 100644 --- a/src/main/java/dev/galacticraft/api/universe/galaxy/Galaxy.java +++ b/src/main/java/dev/galacticraft/api/universe/galaxy/Galaxy.java @@ -28,9 +28,12 @@ import dev.galacticraft.api.universe.display.CelestialDisplay; import dev.galacticraft.api.universe.position.CelestialPosition; import dev.galacticraft.impl.universe.galaxy.GalaxyImpl; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.*; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentSerialization; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.Contract; @@ -45,6 +48,7 @@ public interface Galaxy { ).apply(instance, Galaxy::create)); Codec> CODEC = RegistryFileCodec.create(AddonRegistries.GALAXY, DIRECT_CODEC); Codec> LIST_CODEC = RegistryCodecs.homogeneousList(AddonRegistries.GALAXY, DIRECT_CODEC); + StreamCodec STREAM_CODEC = StreamCodecs.ofRegistryEntry(AddonRegistries.GALAXY); @Contract("_, _, _, _ -> new") static @NotNull Galaxy create(@NotNull Component name, @NotNull Component description, CelestialPosition position, CelestialDisplay display) { diff --git a/src/main/java/dev/galacticraft/api/universe/position/CelestialPositionType.java b/src/main/java/dev/galacticraft/api/universe/position/CelestialPositionType.java index 983a38d77..b478fb16f 100644 --- a/src/main/java/dev/galacticraft/api/universe/position/CelestialPositionType.java +++ b/src/main/java/dev/galacticraft/api/universe/position/CelestialPositionType.java @@ -23,12 +23,13 @@ package dev.galacticraft.api.universe.position; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; public abstract class CelestialPositionType { - private final Codec>> codec; + private final MapCodec>> codec; public CelestialPositionType(Codec codec) { - this.codec = codec.fieldOf("config").xmap((config) -> new CelestialPosition<>(this, config), CelestialPosition::config).codec(); + this.codec = codec.fieldOf("config").xmap((config) -> new CelestialPosition<>(this, config), CelestialPosition::config); } public abstract double x(C config, long worldTime, float delta); @@ -39,7 +40,7 @@ public float lineScale(C config) { return Float.NaN; } - public Codec>> codec() { + public MapCodec>> codec() { return this.codec; } diff --git a/src/main/java/dev/galacticraft/impl/client/accessor/ClientResearchAccessor.java b/src/main/java/dev/galacticraft/impl/client/accessor/ClientResearchAccessor.java index b7e724c2f..b21b71d56 100644 --- a/src/main/java/dev/galacticraft/impl/client/accessor/ClientResearchAccessor.java +++ b/src/main/java/dev/galacticraft/impl/client/accessor/ClientResearchAccessor.java @@ -28,8 +28,10 @@ import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; +import java.util.List; + @Environment(EnvType.CLIENT) @ApiStatus.Internal public interface ClientResearchAccessor extends ResearchAccessor { - void galacticraft$updateResearch(boolean add, ResourceLocation[] ids); + void galacticraft$updateResearch(boolean add, List ids); } diff --git a/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java b/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java index 1fa6a69a1..3ab34ecd3 100644 --- a/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java +++ b/src/main/java/dev/galacticraft/impl/client/rocket/render/BakedModelRocketPartRenderer.java @@ -36,7 +36,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.*; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.TextureAtlas; import java.util.function.Supplier; @@ -51,7 +53,7 @@ public BakedModelRocketPartRenderer(Supplier model) { @Override public void renderGUI(GuiGraphics graphics, int x, int y, int mouseX, int mouseY, float delta) { - RenderSystem.setShader(GameRenderer::getPositionColorTexShader); + RenderSystem.setShader(GameRenderer::getPositionTexColorShader); PoseStack pose = graphics.pose(); pose.pushPose(); pose.translate(x, y-5, 10); //todo: add GUI model transforms to models @@ -91,14 +93,14 @@ public void renderGUI(GuiGraphics graphics, int x, int y, int mouseX, int mouseY @Override public void render(ClientLevel world, PoseStack matrices, Rocket rocket, MultiBufferSource vertices, float partialTick, int light, int overlay) { - RenderSystem.setShaderColor(rocket.red() / 255.0f, rocket.green() / 255.0f, rocket.blue() / 255.0f, rocket.alpha() / 255.0f); + int color = rocket.getData().color(); // matrices.translate(0.5D, 0.5D, 0.5D); // PoseStack.Pose entry = matrices.last(); // VertexConsumer vertexConsumer = vertices.getBuffer(layer.get()); // RenderSystem.setShader(GameRenderer::getPositionColorTexShader); VertexConsumer consumer = vertices.getBuffer(GCRenderTypes.obj(GCRenderTypes.OBJ_ATLAS)); - this.model.get().render(matrices, null, consumer, light, overlay); + this.model.get().render(matrices, null, consumer, light, overlay, color); // Minecraft.getInstance().getBlockRenderer().getModelRenderer().renderModel(entry, vertexConsumer, null, this.model.get(), 1, 1, 1, light, overlay); } } diff --git a/src/main/java/dev/galacticraft/impl/codec/MapCodec.java b/src/main/java/dev/galacticraft/impl/codec/MapKvCodec.java similarity index 62% rename from src/main/java/dev/galacticraft/impl/codec/MapCodec.java rename to src/main/java/dev/galacticraft/impl/codec/MapKvCodec.java index 2bf108627..09a326593 100644 --- a/src/main/java/dev/galacticraft/impl/codec/MapCodec.java +++ b/src/main/java/dev/galacticraft/impl/codec/MapKvCodec.java @@ -28,28 +28,28 @@ import java.util.Map; import java.util.function.Supplier; -public record MapCodec>(Supplier supplier, Encoder encoderA, Decoder decoderA, - Encoder encoderB, Decoder decoderB) implements Codec { +public record MapKvCodec>(Supplier supplier, Encoder encoderA, Decoder decoderA, + Encoder encoderB, Decoder decoderB) implements Codec { - public static > MapCodec create(Supplier supplier, Encoder encoderA, Decoder decoderA, Encoder encoderB, Decoder decoderB) { - return new MapCodec<>(supplier, encoderA, decoderA, encoderB, decoderB); + public static > MapKvCodec create(Supplier supplier, Encoder encoderA, Decoder decoderA, Encoder encoderB, Decoder decoderB) { + return new MapKvCodec<>(supplier, encoderA, decoderA, encoderB, decoderB); } - public static > MapCodec create(Supplier supplier, Codec codecA, Codec codecB) { - return new MapCodec<>(supplier, codecA, codecA, codecB, codecB); + public static > MapKvCodec create(Supplier supplier, Codec codecA, Codec codecB) { + return new MapKvCodec<>(supplier, codecA, codecA, codecB, codecB); } @Override public DataResult> decode(DynamicOps ops, T input) { M map = supplier.get(); - ops.getMap(input).get().orThrow().entries().forEach(pair -> map.put(this.decoderA.decode(ops, pair.getFirst()).get().orThrow().getFirst(), this.decoderB.decode(ops, pair.getSecond()).get().orThrow().getFirst())); + ops.getMap(input).getOrThrow().entries().forEach(pair -> map.put(this.decoderA.decode(ops, pair.getFirst()).getOrThrow().getFirst(), this.decoderB.decode(ops, pair.getSecond()).getOrThrow().getFirst())); return DataResult.success(new Pair<>(map, input)); } @Override public DataResult encode(M input, DynamicOps ops, T prefix) { RecordBuilder recordBuilder = ops.mapBuilder(); - input.forEach((a, b) -> recordBuilder.add(encoderA.encode(a, ops, prefix), encoderB.encode(b, ops, prefix))); + input.forEach((k, v) -> recordBuilder.add(encoderA.encode(k, ops, prefix), encoderB.encode(v, ops, prefix))); return recordBuilder.build(prefix); } } diff --git a/src/main/java/dev/galacticraft/impl/data/GCDynamicRegistryProvider.java b/src/main/java/dev/galacticraft/impl/data/GCDynamicRegistryProvider.java index 91f9d6c2b..f2c6ee444 100644 --- a/src/main/java/dev/galacticraft/impl/data/GCDynamicRegistryProvider.java +++ b/src/main/java/dev/galacticraft/impl/data/GCDynamicRegistryProvider.java @@ -22,31 +22,15 @@ package dev.galacticraft.impl.data; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - import com.google.gson.JsonElement; import com.mojang.serialization.Codec; import com.mojang.serialization.DynamicOps; import com.mojang.serialization.Encoder; import com.mojang.serialization.JsonOps; -import org.jetbrains.annotations.ApiStatus; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.event.registry.DynamicRegistries; import net.fabricmc.fabric.impl.registry.sync.DynamicRegistriesImpl; -import net.minecraft.core.Holder; -import net.minecraft.core.HolderGetter; -import net.minecraft.core.HolderLookup; -import net.minecraft.core.HolderOwner; -import net.minecraft.core.Registry; +import net.minecraft.core.*; import net.minecraft.core.registries.Registries; import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; @@ -57,6 +41,16 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver; import net.minecraft.world.level.levelgen.placement.PlacedFeature; +import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.nio.file.Path; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; /** * Modified version of {@link net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider} to support {@link RegistryDataLoader#DIMENSION_REGISTRIES} @@ -130,7 +124,7 @@ public HolderGetter> configuredCarvers() { */ public Holder ref(ResourceKey key) { RegistryEntries entries = getQueuedEntries(key); - return Holder.Reference.createStandAlone(entries.lookup, key); + return new UniversalReferenceHack<>(entries.lookup, key); } /** @@ -197,7 +191,7 @@ public Holder add(ResourceKey key, T value) { throw new IllegalArgumentException("Trying to add registry key " + key + " more than once."); } - return Holder.Reference.createStandAlone(lookup, key); + return new UniversalReferenceHack<>(lookup, key); } public Holder add(ResourceLocation id, T value) { @@ -206,25 +200,23 @@ public Holder add(ResourceLocation id, T value) { } @Override - public CompletableFuture run(CachedOutput writer) { - return registriesFuture.thenCompose(registries -> { - return CompletableFuture - .supplyAsync(() -> { - Entries entries = new Entries(registries, output.getModId()); - configure(registries, entries); - return entries; - }) - .thenCompose(entries -> { - final RegistryOps dynamicOps = RegistryOps.create(JsonOps.INSTANCE, registries); - ArrayList> futures = new ArrayList<>(); - - for (RegistryEntries registryEntries : entries.queuedEntries.values()) { - futures.add(writeRegistryEntries(writer, dynamicOps, registryEntries)); - } - - return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)); - }); - }); + public @NotNull CompletableFuture run(CachedOutput writer) { + return registriesFuture.thenCompose(registries -> CompletableFuture + .supplyAsync(() -> { + Entries entries = new Entries(registries, output.getModId()); + configure(registries, entries); + return entries; + }) + .thenCompose(entries -> { + final RegistryOps dynamicOps = registries.createSerializationContext(JsonOps.INSTANCE); + ArrayList> futures = new ArrayList<>(); + + for (RegistryEntries registryEntries : entries.queuedEntries.values()) { + futures.add(writeRegistryEntries(writer, dynamicOps, registryEntries)); + } + + return CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)); + })); } private CompletableFuture writeRegistryEntries(CachedOutput writer, RegistryOps ops, RegistryEntries entries) { @@ -253,4 +245,15 @@ private static CompletableFuture writeToPath(Path path, CachedOutput cach return CompletableFuture.completedFuture(null); } + + private static class UniversalReferenceHack extends Holder.Reference { + protected UniversalReferenceHack(HolderOwner holderOwner, @Nullable ResourceKey resourceKey) { + super(Holder.Reference.Type.STAND_ALONE, holderOwner, resourceKey, null); + } + + @Override + public boolean canSerializeIn(HolderOwner owner) { + return true; + } + } } diff --git a/src/main/java/dev/galacticraft/impl/data/GeneratingBootstrapContext.java b/src/main/java/dev/galacticraft/impl/data/GeneratingBootstrapContext.java index 3b5ecfeea..288264dbf 100644 --- a/src/main/java/dev/galacticraft/impl/data/GeneratingBootstrapContext.java +++ b/src/main/java/dev/galacticraft/impl/data/GeneratingBootstrapContext.java @@ -23,16 +23,15 @@ package dev.galacticraft.impl.data; import com.mojang.serialization.Lifecycle; -import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider; import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; import net.minecraft.core.HolderLookup; import net.minecraft.core.Registry; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import org.jetbrains.annotations.NotNull; -public record GeneratingBootstrapContext(HolderLookup.Provider registries, GCDynamicRegistryProvider.Entries entries) implements BootstapContext { +public record GeneratingBootstrapContext(HolderLookup.Provider registries, GCDynamicRegistryProvider.Entries entries) implements BootstrapContext { @Override public Holder.Reference register(ResourceKey resourceKey, T object, Lifecycle lifecycle) { return (Holder.Reference) this.entries.add(resourceKey, object); diff --git a/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkOxygenSyncer.java b/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkOxygenSyncer.java index bb210032e..1084956ce 100644 --- a/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkOxygenSyncer.java +++ b/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkOxygenSyncer.java @@ -22,15 +22,15 @@ package dev.galacticraft.impl.internal.accessor; -import net.minecraft.network.FriendlyByteBuf; +import dev.galacticraft.impl.network.s2c.OxygenUpdatePayload; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public interface ChunkOxygenSyncer { - default @Nullable FriendlyByteBuf galacticraft$syncOxygenPacketsToClient() { + default @Nullable OxygenUpdatePayload.OxygenData[] galacticraft$syncOxygenPacketsToClient() { return null; } - default void galacticraft$readOxygenUpdate(@NotNull FriendlyByteBuf buf) { + default void galacticraft$readOxygenUpdate(@NotNull OxygenUpdatePayload.OxygenData[] data) { } } diff --git a/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkSectionOxygenAccessor.java b/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkSectionOxygenAccessor.java index 7b1b07688..cf9e8a78f 100644 --- a/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkSectionOxygenAccessor.java +++ b/src/main/java/dev/galacticraft/impl/internal/accessor/ChunkSectionOxygenAccessor.java @@ -31,17 +31,23 @@ @ApiStatus.Internal public interface ChunkSectionOxygenAccessor { - boolean galacticraft$isInverted(int x, int y, int z); + default boolean galacticraft$isInverted(int x, int y, int z) { + return this.galacticraft$isInverted(x + (y << 4) + (z << 8)); + } - void galacticraft$setInverted(int x, int y, int z, boolean inverted); + boolean galacticraft$isInverted(int pos); - @Nullable BitSet galacticraft$inversionBits(); + default void galacticraft$setInverted(int x, int y, int z, boolean inverted) { + this.galacticraft$setInverted(x + (y << 4) + (z << 8), inverted); + } - void galacticraft$setInversionBits(@Nullable BitSet set); + void galacticraft$setInverted(int pos, boolean value); - short galacticraft$modifiedBlocks(); + boolean galacticraft$isEmpty(); - void galacticraft$setModifiedBlocks(short amount); + @Nullable BitSet galacticraft$getBits(); + + void galacticraft$setBits(@Nullable BitSet set); void galacticraft$writeOxygenPacket(@NotNull FriendlyByteBuf buf); diff --git a/src/main/java/dev/galacticraft/impl/internal/client/fabric/GalacticraftAPIClient.java b/src/main/java/dev/galacticraft/impl/internal/client/fabric/GalacticraftAPIClient.java index 0ba056f8d..83b0a478f 100644 --- a/src/main/java/dev/galacticraft/impl/internal/client/fabric/GalacticraftAPIClient.java +++ b/src/main/java/dev/galacticraft/impl/internal/client/fabric/GalacticraftAPIClient.java @@ -22,63 +22,20 @@ package dev.galacticraft.impl.internal.client.fabric; -import dev.galacticraft.api.accessor.GearInventoryProvider; -import dev.galacticraft.api.accessor.SatelliteAccessor; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.impl.client.accessor.ClientResearchAccessor; -import dev.galacticraft.impl.internal.accessor.ChunkOxygenSyncer; -import dev.galacticraft.impl.universe.celestialbody.type.SatelliteType; -import dev.galacticraft.impl.universe.position.config.SatelliteConfig; +import dev.galacticraft.impl.network.GCApiClientPacketReceivers; import dev.galacticraft.mod.Constant; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.ApiStatus; -import java.util.Objects; - @ApiStatus.Internal @Environment(EnvType.CLIENT) public class GalacticraftAPIClient implements ClientModInitializer { @Override public void onInitializeClient() { Constant.LOGGER.info("Loaded client module"); - ClientPlayNetworking.registerGlobalReceiver(Constant.id("research_update"), (client, networkHandler, buffer, sender) -> { - int len = buffer.readVarInt(); - boolean add = buffer.readBoolean(); - ResourceLocation[] ids = new ResourceLocation[len]; - for (int i = 0; i < len; i++) { - ids[i] = new ResourceLocation(buffer.readUtf()); - } - client.execute(() -> ((ClientResearchAccessor) Objects.requireNonNull(client.player)).galacticraft$updateResearch(add, ids)); - }); - ClientPlayNetworking.registerGlobalReceiver(Constant.id("add_satellite"), (client, networkHandler, buffer, sender) -> ((SatelliteAccessor) networkHandler).galacticraft$addSatellite(buffer.readResourceLocation(), new CelestialBody<>(SatelliteType.INSTANCE, SatelliteConfig.CODEC.decode(NbtOps.INSTANCE, buffer.readNbt()).get().orThrow().getFirst()))); - ClientPlayNetworking.registerGlobalReceiver(Constant.id("remove_satellite"), (client, networkHandler, buffer, sender) -> { - FriendlyByteBuf buf = new FriendlyByteBuf(buffer.copy()); - ((SatelliteAccessor) networkHandler).galacticraft$removeSatellite(buf.readResourceLocation()); - }); - ClientPlayNetworking.registerGlobalReceiver(Constant.id("oxygen_update"), (client, handler, buf, responseSender) -> { - int x = buf.readInt(); - int y = buf.readInt(); - ((ChunkOxygenSyncer) handler.getLevel().getChunk(x, y)).galacticraft$readOxygenUpdate(buf); - }); - ClientPlayNetworking.registerGlobalReceiver(Constant.id("gear_inv_sync"), (client, handler, buf, responseSender) -> { - int entity = buf.readInt(); - ItemStack[] stacks = new ItemStack[buf.readInt()]; - for (int i = 0; i < stacks.length; i++) { - stacks[i] = buf.readItem(); - } - client.execute(() -> { - for (int i = 0; i < stacks.length; i++) { - ((GearInventoryProvider) Objects.requireNonNull(client.level.getEntity(entity))).galacticraft$getGearInv().setItem(i, stacks[i]); - } - }); - }); + GCApiClientPacketReceivers.register(); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/fabric/GalacticraftAPI.java b/src/main/java/dev/galacticraft/impl/internal/fabric/GalacticraftAPI.java index dbcca64cb..f4f65dee5 100644 --- a/src/main/java/dev/galacticraft/impl/internal/fabric/GalacticraftAPI.java +++ b/src/main/java/dev/galacticraft/impl/internal/fabric/GalacticraftAPI.java @@ -25,14 +25,23 @@ import dev.galacticraft.api.accessor.SatelliteAccessor; import dev.galacticraft.api.entity.attribute.GcApiEntityAttributes; import dev.galacticraft.api.gas.Gases; +import dev.galacticraft.api.registry.AddonRegistries; import dev.galacticraft.api.registry.BuiltInRocketRegistries; +import dev.galacticraft.api.registry.RocketRegistries; +import dev.galacticraft.api.rocket.part.*; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.api.universe.celestialbody.landable.teleporter.CelestialTeleporter; +import dev.galacticraft.api.universe.galaxy.Galaxy; import dev.galacticraft.dynamicdimensions.api.event.DynamicDimensionLoadCallback; import dev.galacticraft.impl.internal.command.GCApiCommands; +import dev.galacticraft.impl.network.GCApiPackets; +import dev.galacticraft.impl.network.GCApiServerPacketReceivers; import dev.galacticraft.impl.universe.BuiltinObjects; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.data.gen.SatelliteChunkGenerator; import net.fabricmc.api.ModInitializer; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.fabricmc.fabric.api.event.registry.DynamicRegistries; +import net.fabricmc.fabric.api.event.registry.DynamicRegistrySetupCallback; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.SimpleContainer; @@ -46,24 +55,18 @@ public class GalacticraftAPI implements ModInitializer { public void onInitialize() { long startInitTime = System.currentTimeMillis(); GCApiCommands.register(); - ServerPlayNetworking.registerGlobalReceiver(Constant.id("flag_data"), (server, player, handler, buf, responseSender) -> { - int[] array = buf.readVarIntArray(); - for (int i = 0; i < array.length; i++) { - array[i] &= 0x00FFFFFF; - } - // FORMAT: [A - IGNORE]BGR - 48 width 32 height if it is not a 1536 int array then ignore - // since it is purely colour data, there isn't really much a malicious client could do - server.execute(() -> { - //todo: teams - }); - }); - ServerPlayNetworking.registerGlobalReceiver(Constant.id("team_name"), (server, player, handler, buf, responseSender) -> { - String s = buf.readUtf(); - server.execute(() -> { - //todo: teams - }); - }); + DynamicRegistries.registerSynced(AddonRegistries.CELESTIAL_BODY, CelestialBody.DIRECT_CODEC); + DynamicRegistries.registerSynced(AddonRegistries.GALAXY, Galaxy.DIRECT_CODEC); + + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_CONE, RocketCone.DIRECT_CODEC); + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_BODY, RocketBody.DIRECT_CODEC); + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_FIN, RocketFin.DIRECT_CODEC); + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_BOOSTER, RocketBooster.DIRECT_CODEC); + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_ENGINE, RocketEngine.DIRECT_CODEC); + DynamicRegistries.registerSynced(RocketRegistries.ROCKET_UPGRADE, RocketUpgrade.DIRECT_CODEC); + + DynamicRegistries.registerSynced(AddonRegistries.CELESTIAL_TELEPORTER, CelestialTeleporter.DIRECT_CODEC); Registry.register(BuiltInRegistries.CHUNK_GENERATOR, Constant.id("satellite"), SatelliteChunkGenerator.CODEC); BuiltinObjects.register(); @@ -73,7 +76,16 @@ public void onInitialize() { DynamicDimensionLoadCallback.register((minecraftServer, dynamicDimensionLoader) -> { ((SatelliteAccessor) minecraftServer).galacticraft$loadSatellites(dynamicDimensionLoader); }); + + // todo: update celestial body level cache + DynamicRegistrySetupCallback.EVENT.register(view -> { + view.registerEntryAdded(AddonRegistries.CELESTIAL_BODY, (rawId, id, object) -> { + + }); + }); Gases.init(); + GCApiPackets.register(); + GCApiServerPacketReceivers.register(); Constant.LOGGER.info("API Initialization Complete. (Took {}ms).", System.currentTimeMillis() - startInitTime); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/LevelCelestialBodyMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/LevelCelestialBodyMixin.java new file mode 100644 index 000000000..92c72621e --- /dev/null +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/LevelCelestialBodyMixin.java @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.impl.internal.mixin; + +import dev.galacticraft.api.accessor.LevelBodyAccessor; +import dev.galacticraft.api.registry.AddonRegistries; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.api.universe.celestialbody.landable.Landable; +import net.minecraft.core.Holder; +import net.minecraft.core.RegistryAccess; +import net.minecraft.resources.ResourceKey; +import net.minecraft.util.profiling.ProfilerFiller; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.dimension.DimensionType; +import net.minecraft.world.level.storage.WritableLevelData; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import java.util.function.Supplier; + +@Mixin(value = Level.class, priority = 100) // apply before oxygen level mixin +public class LevelCelestialBodyMixin implements LevelBodyAccessor { + @Unique + private Holder> celestialBody = null; + + @Inject(method = "(Lnet/minecraft/world/level/storage/WritableLevelData;Lnet/minecraft/resources/ResourceKey;Lnet/minecraft/core/RegistryAccess;Lnet/minecraft/core/Holder;Ljava/util/function/Supplier;ZZJI)V", at = @At("RETURN")) + private void init(WritableLevelData writableLevelData, + ResourceKey levelKey, + RegistryAccess registryAccess, + Holder holder, + Supplier supplier, + boolean bl, + boolean bl2, + long l, + int i, CallbackInfo ci) { + this.celestialBody = registryAccess.registryOrThrow(AddonRegistries.CELESTIAL_BODY).holders().filter( + b -> b.value().type() instanceof Landable landable && landable.world(b.value().config()).equals(levelKey) + ).findFirst().orElse(null); + } + + @Override + public @Nullable Holder> galacticraft$getCelestialBody() { + return this.celestialBody; + } +} diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/LevelTimeAccessMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/LevelTimeAccessMixin.java index 863a002dd..16f178b6d 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/LevelTimeAccessMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/LevelTimeAccessMixin.java @@ -22,7 +22,6 @@ package dev.galacticraft.impl.internal.mixin; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.mod.tag.GCTags; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.Level; @@ -43,10 +42,10 @@ private void getGalacticTimeOfDay(float partialTicks, CallbackInfoReturnable reference.is(GCTags.SPACE)).orElse(false)) { + var holder = level.galacticraft$getCelestialBody(); + if (holder != null && dimensionTypeRegistry.getHolder(dimensionTypeRegistry.getId(dimensionType())).map(reference -> reference.is(GCTags.SPACE)).orElse(false)) { long worldTime = this.dayTime(); - long dayLength = holder.get().dayLength(); + long dayLength = holder.value().dayLength(); int j = (int) (worldTime % dayLength); float f1 = (j + partialTicks) / dayLength - 0.25F; diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/MinecraftServerMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/MinecraftServerMixin.java index a42f8ec60..2c4677980 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/MinecraftServerMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/MinecraftServerMixin.java @@ -79,7 +79,7 @@ private void galacticraft_saveSatellites(boolean suppressLogs, boolean bl, boole Path path = this.storageSource.getLevelPath(LevelResource.ROOT); ListTag nbt = new ListTag(); for (Map.Entry> entry : this.satellites.entrySet()) { - CompoundTag compound = (CompoundTag) SatelliteConfig.CODEC.encode(entry.getValue().config(), NbtOps.INSTANCE, new CompoundTag()).get().orThrow(); + CompoundTag compound = (CompoundTag) SatelliteConfig.CODEC.encode(entry.getValue().config(), NbtOps.INSTANCE, new CompoundTag()).getOrThrow(); compound.putString("id", entry.getKey().toString()); nbt.add(compound); } @@ -100,13 +100,13 @@ private void galacticraft_loadSatellites(CallbackInfo ci) { ListTag nbt = NbtIo.readCompressed(worldFile.resolve("satellites.dat"), NbtAccounter.unlimitedHeap()).getList("satellites", NbtType.COMPOUND); for (Tag compound : nbt) { assert compound instanceof CompoundTag : "Not a compound?!"; - ResourceLocation id = new ResourceLocation(((CompoundTag) compound).getString("id")); + ResourceLocation id = ResourceLocation.parse(((CompoundTag) compound).getString("id")); DataResult> decode = SatelliteConfig.CODEC.decode(NbtOps.INSTANCE, compound); if (decode.error().isPresent()) { Constant.LOGGER.error("Skipping satellite '{}' - {}", id, decode.error().get().message()); continue; } - this.satellites.put(id, new CelestialBody<>(SatelliteType.INSTANCE, decode.get().orThrow().getFirst())); + this.satellites.put(id, new CelestialBody<>(SatelliteType.INSTANCE, decode.getOrThrow().getFirst())); } } catch (Throwable exception) { throw new RuntimeException("Failed to read satellite data!", exception); diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/client/AbstractClientPlayerEntityMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/client/AbstractClientPlayerEntityMixin.java index 43d15afb6..0abb26953 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/client/AbstractClientPlayerEntityMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/client/AbstractClientPlayerEntityMixin.java @@ -33,11 +33,13 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.core.Holder; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.Entity; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; @@ -45,6 +47,7 @@ import org.spongepowered.asm.mixin.Unique; import java.util.HashSet; +import java.util.List; import java.util.Set; @Mixin(AbstractClientPlayer.class) @@ -64,7 +67,8 @@ public abstract class AbstractClientPlayerEntityMixin implements ClientResearchA private SimpleContainer galacticraft_createGearInventory() { SimpleContainer inv = new GearInventory(); inv.addListener((inventory) -> { - float pressure = CelestialBody.getByDimension(this.clientLevel).map(body -> body.atmosphere().pressure()).orElse(1.0f); + Holder> holder = this.clientLevel.galacticraft$getCelestialBody(); + float pressure = holder != null ? holder.value().atmosphere().pressure() : 1.0f; if (pressure != 1.0f) { for (int i = 0; i < inventory.getContainerSize(); i++) { ItemStack stack = inventory.getItem(i); @@ -91,7 +95,7 @@ private SimpleContainer galacticraft_createGearInventory() { } @Override - public void galacticraft$updateResearch(boolean add, ResourceLocation[] ids) { + public void galacticraft$updateResearch(boolean add, List ids) { for (ResourceLocation id : ids) { if (add) { this.unlockedResearch.add(id); @@ -123,11 +127,11 @@ private SimpleContainer galacticraft_createGearInventory() { @Override public void galacticraft$writeGearToNbt(CompoundTag tag) { - tag.put(Constant.Nbt.GEAR_INV, this.galacticraft$getGearInv().createTag()); + tag.put(Constant.Nbt.GEAR_INV, this.galacticraft$getGearInv().createTag(((Entity)(Object)this).registryAccess())); } @Override public void galacticraft$readGearFromNbt(CompoundTag tag) { - this.galacticraft$getGearInv().fromTag(tag.getList(Constant.Nbt.GEAR_INV, Tag.TAG_COMPOUND)); + this.galacticraft$getGearInv().fromTag(tag.getList(Constant.Nbt.GEAR_INV, Tag.TAG_COMPOUND), ((Entity)(Object)this).registryAccess()); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/client/MinecraftClientMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/client/MinecraftClientMixin.java index e3cd24978..bee83e594 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/client/MinecraftClientMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/client/MinecraftClientMixin.java @@ -27,8 +27,10 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.ReceivingLevelScreen; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.sounds.SoundManager; +import net.minecraft.core.Holder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -42,9 +44,14 @@ public abstract class MinecraftClientMixin { public abstract SoundManager getSoundManager(); @Inject(method = "setLevel", at = @At("RETURN")) - private void galacticraft_updateSoundMultiplier(ClientLevel world, CallbackInfo ci) { - if (world != null) { - ((SoundSystemAccessor) ((SoundManagerAccessor) this.getSoundManager()).getSoundSystem()).galacticraft$updateAtmosphericVolumeMultiplier(CelestialBody.getByDimension(world).map(body -> body.atmosphere().pressure()).orElse(1.0f)); + private void updateSoundMultiplier(ClientLevel level, ReceivingLevelScreen.Reason reason, CallbackInfo ci) { + if (level != null) { + Holder> holder = level.galacticraft$getCelestialBody(); + if (holder != null) { + ((SoundSystemAccessor) ((SoundManagerAccessor) this.getSoundManager()).getSoundSystem()).galacticraft$updateAtmosphericVolumeMultiplier(holder.value().atmosphere().pressure()); + } else { + ((SoundSystemAccessor) ((SoundManagerAccessor) this.getSoundManager()).getSoundSystem()).galacticraft$updateAtmosphericVolumeMultiplier(1.0f); + } } else { ((SoundSystemAccessor) ((SoundManagerAccessor) this.getSoundManager()).getSoundSystem()).galacticraft$updateAtmosphericVolumeMultiplier(1.0f); } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/client/ParticleManagerMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/client/ParticleManagerMixin.java index b07c09a04..f86e6a890 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/client/ParticleManagerMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/client/ParticleManagerMixin.java @@ -28,6 +28,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleEngine; +import net.minecraft.core.Holder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -42,6 +43,7 @@ public abstract class ParticleManagerMixin { @Inject(method = "add(Lnet/minecraft/client/particle/Particle;)V", at = @At("RETURN")) protected void galacticraft_overrideGravity(Particle particle, CallbackInfo ci) { - CelestialBody.getByDimension(this.level).ifPresent(celestialBodyType -> ((ParticleAccessor) particle).setGravityStrength(((ParticleAccessor) particle).getGravityStrength() * celestialBodyType.gravity())); + Holder> holder = this.level.galacticraft$getCelestialBody(); + if (holder != null) ((ParticleAccessor) particle).setGravityStrength(((ParticleAccessor) particle).getGravityStrength() * holder.value().gravity()); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/LivingEntityMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/LivingEntityMixin.java index 2747c01f1..292ea4940 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/LivingEntityMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/LivingEntityMixin.java @@ -47,6 +47,7 @@ import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentEffectComponents; import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraft.world.level.GameRules; import net.minecraft.world.level.Level; @@ -69,7 +70,7 @@ public LivingEntityMixin(EntityType type, Level world) { @Redirect(method = "baseTick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;isEyeInFluid(Lnet/minecraft/tags/TagKey;)Z", ordinal = 0)) private boolean galacticraft_testForBreathability(LivingEntity entity, TagKey tag) { - return entity.isEyeInFluid(tag) || !entity.level().isBreathable(entity.blockPosition().relative(Direction.UP, (int) Math.floor(this.getEyeHeight(entity.getPose(), entity.getDimensions(entity.getPose()))))); + return entity.isEyeInFluid(tag) || !entity.level().isBreathable(entity.blockPosition().relative(Direction.UP, (int) Math.floor(this.getEyeHeight(entity.getPose())))); } @Inject(method = "tick", at = @At(value = "RETURN")) @@ -83,7 +84,7 @@ private void tickAccessories(CallbackInfo ci) { } } - @Inject(method = "decreaseAirSupply", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/item/enchantment/EnchantmentHelper;getRespiration(Lnet/minecraft/world/entity/LivingEntity;)I"), cancellable = true) + @Inject(method = "decreaseAirSupply", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getAttribute(Lnet/minecraft/core/Holder;)Lnet/minecraft/world/entity/ai/attributes/AttributeInstance;"), cancellable = true) private void galacticraft_modifyAirLevel(int air, CallbackInfoReturnable ci) { AttributeInstance attribute = ((LivingEntity) (Object) this).getAttribute(GcApiEntityAttributes.CAN_BREATHE_IN_SPACE); if (attribute != null && attribute.getValue() >= 0.99D) { @@ -127,7 +128,7 @@ private void galacticraft_dropGearInventory(CallbackInfo ci) { for (int i = 0; i < gearInv.getContainerSize(); ++i) { ItemStack itemStack = gearInv.getItem(i); gearInv.setItem(i, ItemStack.EMPTY); - if (!itemStack.isEmpty() && !EnchantmentHelper.hasVanishingCurse(itemStack)) { + if (!itemStack.isEmpty() && !EnchantmentHelper.has(itemStack, EnchantmentEffectComponents.PREVENT_EQUIPMENT_DROP)) { //noinspection ConstantConditions if (((Object) this) instanceof Player player) { player.drop(itemStack, true, false); diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/PlayerListMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/PlayerListMixin.java index 04b76c225..72b16531d 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/PlayerListMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/PlayerListMixin.java @@ -22,16 +22,15 @@ package dev.galacticraft.impl.internal.mixin.gear; -import dev.galacticraft.mod.Constant; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; +import dev.galacticraft.impl.network.s2c.GearInvPayload; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.network.Connection; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.network.CommonListenerCookie; import net.minecraft.server.players.PlayerList; import net.minecraft.world.Container; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; @@ -43,20 +42,19 @@ public abstract class PlayerListMixin { @Inject(method = "placeNewPlayer", at = @At("RETURN")) private void syncGearInventory(Connection connection, ServerPlayer player, CommonListenerCookie cookie, CallbackInfo ci) { - FriendlyByteBuf buf = PacketByteBufs.create(); Container inventory = player.galacticraft$getGearInv(); - buf.writeInt(player.getId()); - buf.writeInt(inventory.getContainerSize()); + ItemStack[] stacks = new ItemStack[inventory.getContainerSize()]; for (int i = 0; i < inventory.getContainerSize(); i++) { - buf.writeItem(inventory.getItem(i)); + stacks[i] = inventory.getItem(i); } + GearInvPayload gearInvPayload = new GearInvPayload(player.getId(), stacks); Collection tracking = PlayerLookup.tracking(player); if (!tracking.contains(player)) { - ServerPlayNetworking.send(player, Constant.id("gear_inv_sync"), buf); + ServerPlayNetworking.send(player, gearInvPayload); } - for (ServerPlayer pl : tracking) { - ServerPlayNetworking.send(pl, Constant.id("gear_inv_sync"), PacketByteBufs.copy(buf)); + for (ServerPlayer remote : tracking) { + ServerPlayNetworking.send(remote, gearInvPayload); } } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/ServerPlayerMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/ServerPlayerMixin.java index 10f82eea0..366c7bcc8 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gear/ServerPlayerMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/gear/ServerPlayerMixin.java @@ -24,18 +24,19 @@ import dev.galacticraft.api.accessor.GearInventoryProvider; import dev.galacticraft.impl.internal.inventory.MappedInventory; +import dev.galacticraft.impl.network.s2c.GearInvPayload; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.world.inventory.GearInventory; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; +import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; @@ -46,6 +47,8 @@ public abstract class ServerPlayerMixin implements GearInventoryProvider { @Shadow public ServerGamePacketListenerImpl connection; + @Shadow public abstract ServerLevel serverLevel(); + private final @Unique SimpleContainer gearInv = this.galacticraft_createGearInventory(); private final @Unique Container tankInv = MappedInventory.create(this.gearInv, 4, 5); private final @Unique Container thermalArmorInv = MappedInventory.create(this.gearInv, 0, 1, 2, 3); @@ -55,21 +58,20 @@ public abstract class ServerPlayerMixin implements GearInventoryProvider { private SimpleContainer galacticraft_createGearInventory() { SimpleContainer inv = new GearInventory(); inv.addListener((inventory) -> { - FriendlyByteBuf buf = PacketByteBufs.create(); - buf.writeInt(((ServerPlayer) (Object) this).getId()); - buf.writeInt(inventory.getContainerSize()); + ItemStack[] stacks = new ItemStack[inventory.getContainerSize()]; for (int i = 0; i < inventory.getContainerSize(); i++) { - buf.writeItem(inventory.getItem(i)); + stacks[i] = inventory.getItem(i); } + ServerPlayer player = (ServerPlayer) (Object) this; + GearInvPayload payload = new GearInvPayload(player.getId(), stacks); if (this.connection != null) { - Collection tracking = PlayerLookup.tracking(((ServerPlayer) (Object) this)); - //noinspection SuspiciousMethodCalls - if (!tracking.contains(this)) { - ServerPlayNetworking.send(((ServerPlayer) (Object) this), Constant.id("gear_inv_sync"), buf); + Collection tracking = PlayerLookup.tracking(player); + if (!tracking.contains(player)) { + ServerPlayNetworking.send(player, payload); } - for (ServerPlayer player : tracking) { - ServerPlayNetworking.send(player, Constant.id("gear_inv_sync"), PacketByteBufs.copy(buf)); + for (ServerPlayer remote : tracking) { + ServerPlayNetworking.send(remote, payload); } } }); @@ -98,11 +100,11 @@ private SimpleContainer galacticraft_createGearInventory() { @Override public void galacticraft$writeGearToNbt(CompoundTag tag) { - tag.put(Constant.Nbt.GEAR_INV, this.galacticraft$getGearInv().createTag()); + tag.put(Constant.Nbt.GEAR_INV, this.galacticraft$getGearInv().createTag(this.serverLevel().registryAccess())); } @Override public void galacticraft$readGearFromNbt(CompoundTag tag) { - this.galacticraft$getGearInv().fromTag(tag.getList(Constant.Nbt.GEAR_INV, Tag.TAG_COMPOUND)); + this.galacticraft$getGearInv().fromTag(tag.getList(Constant.Nbt.GEAR_INV, Tag.TAG_COMPOUND), this.serverLevel().registryAccess()); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/EntityGravityMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/EntityGravityMixin.java index 6730e3892..5e3f8d699 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/EntityGravityMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/EntityGravityMixin.java @@ -23,18 +23,23 @@ package dev.galacticraft.impl.internal.mixin.gravity; import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import net.minecraft.core.Holder; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.item.PrimedTnt; -import net.minecraft.world.entity.vehicle.AbstractMinecart; +import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Constant; -import org.spongepowered.asm.mixin.injection.ModifyConstant; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; -@Mixin({ItemEntity.class, PrimedTnt.class, AbstractMinecart.class}) +@Mixin(Entity.class) public abstract class EntityGravityMixin { - @ModifyConstant(method = "tick", constant = @Constant(doubleValue = -0.04D)) - private double galacticraft_changeEntityGravity(double defaultValue) { - return CelestialBody.getByDimension(((Entity) (Object) this).level()).map(celestialBody -> celestialBody.gravity() * defaultValue).orElse(defaultValue); + @Shadow protected abstract double getDefaultGravity(); + + @Shadow private Level level; + + @Redirect(method = "getGravity", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/Entity;getDefaultGravity()D")) + private double replaceGravity(Entity instance) { + Holder> holder = this.level.galacticraft$getCelestialBody(); + return (holder != null ? holder.value().gravity() : 1.0d) * this.getDefaultGravity(); } -} \ No newline at end of file +} diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/LivingEntityMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/LivingEntityMixin.java deleted file mode 100644 index 9660e37fd..000000000 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/LivingEntityMixin.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.impl.internal.mixin.gravity; - -import dev.galacticraft.api.entity.attribute.GcApiEntityAttributes; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import net.minecraft.util.Mth; -import net.minecraft.world.effect.MobEffect; -import net.minecraft.world.effect.MobEffectInstance; -import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.ai.attributes.AttributeInstance; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Constant; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.ModifyConstant; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(LivingEntity.class) -public abstract class LivingEntityMixin extends Entity { - @Shadow @Nullable public abstract MobEffectInstance getEffect(MobEffect mobEffect); - - public LivingEntityMixin(EntityType type, Level level) { - super(type, level); - } - - @ModifyConstant(method = "travel", constant = @Constant(doubleValue = 0.08)) - private double galacticraft_modifyGravity(double d) { - AttributeInstance attribute = ((LivingEntity) (Object) this).getAttribute(GcApiEntityAttributes.LOCAL_GRAVITY_LEVEL); - if (attribute != null && attribute.getValue() > 0) { - return attribute.getValue() * 0.08d; - } else { - return CelestialBody.getByDimension(this.level()).map(celestialBodyType -> celestialBodyType.gravity() * 0.08d).orElse(0.08); - } - } - - @ModifyConstant(method = "travel", constant = @Constant(doubleValue = 0.01)) - private double galacticraft_modifySlowFallingGravity(double d) { - AttributeInstance attribute = ((LivingEntity) (Object) this).getAttribute(GcApiEntityAttributes.LOCAL_GRAVITY_LEVEL); - if (attribute != null && attribute.getValue() > 0) { - return attribute.getValue() * 0.01d; - } else { - return CelestialBody.getByDimension(this.level()).map(celestialBodyType -> celestialBodyType.gravity() * 0.01d).orElse(0.01); - } - } - - @Inject(method = "calculateFallDamage", at = @At("HEAD"), cancellable = true) - protected void galacticraft_modifyFallDamage(float fallDistance, float damageMultiplier, CallbackInfoReturnable cir) { - MobEffectInstance effectInstance = this.getEffect(MobEffects.JUMP); - AttributeInstance attribute = ((LivingEntity) (Object) this).getAttribute(GcApiEntityAttributes.LOCAL_GRAVITY_LEVEL); - float ff = effectInstance == null ? 0.0F : (float) (effectInstance.getAmplifier() + 6); - if (attribute != null && attribute.getValue() > 0) { - cir.setReturnValue((int) (Mth.ceil((fallDistance * attribute.getValue()) - 3.0F - ff) * damageMultiplier)); - } else { - CelestialBody.getByDimension(this.level()).ifPresent(celestialBodyType -> cir.setReturnValue((int) (Mth.ceil((fallDistance * celestialBodyType.gravity()) - 3.0F - ff) * damageMultiplier))); - } - } -} diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkHolderMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkHolderMixin.java index e2e8d1658..4d20384bc 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkHolderMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkHolderMixin.java @@ -23,11 +23,11 @@ package dev.galacticraft.impl.internal.mixin.oxygen; import dev.galacticraft.impl.internal.accessor.ChunkOxygenSyncer; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.impl.network.s2c.OxygenUpdatePayload; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.Packet; import net.minecraft.server.level.ChunkHolder; +import net.minecraft.server.level.GenerationChunkHolder; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.chunk.LevelChunk; @@ -46,11 +46,12 @@ public abstract class ChunkHolderMixin { @Shadow @Final private ChunkHolder.PlayerProvider playerProvider; - @Shadow @Final ChunkPos pos; - @Inject(method = "broadcastChanges", at = @At("HEAD")) private void galacticraft_flushOxygenPackets(LevelChunk chunk, CallbackInfo ci) { - FriendlyByteBuf buf = ((ChunkOxygenSyncer) chunk).galacticraft$syncOxygenPacketsToClient(); - if (buf != null) this.broadcast(this.playerProvider.getPlayers(this.pos, false), ServerPlayNetworking.createS2CPacket(Constant.id("oxygen_update"), buf)); + OxygenUpdatePayload.OxygenData[] data = ((ChunkOxygenSyncer) chunk).galacticraft$syncOxygenPacketsToClient(); + if (data != null) { + ChunkPos pos = ((GenerationChunkHolder) (Object) this).getPos(); + this.broadcast(this.playerProvider.getPlayers(pos, false), ServerPlayNetworking.createS2CPacket(new OxygenUpdatePayload(pos.toLong(), data))); + } } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkSerializerMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkSerializerMixin.java index 6bbfca6f3..4bec52e4d 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkSerializerMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/ChunkSerializerMixin.java @@ -27,14 +27,17 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.Holder; import net.minecraft.core.Registry; +import net.minecraft.core.SectionPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.ai.village.poi.PoiManager; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.chunk.*; import net.minecraft.world.level.chunk.storage.ChunkSerializer; +import net.minecraft.world.level.chunk.storage.RegionStorageInfo; import net.minecraft.world.level.levelgen.BelowZeroRetrogen; import net.minecraft.world.level.levelgen.blending.BlendingData; import net.minecraft.world.level.lighting.LevelLightEngine; @@ -45,31 +48,27 @@ import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import java.util.BitSet; +import java.util.Objects; @Mixin(ChunkSerializer.class) public abstract class ChunkSerializerMixin { @Inject(method = "write", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/chunk/LevelChunkSection;getStates()Lnet/minecraft/world/level/chunk/PalettedContainer;"), locals = LocalCapture.CAPTURE_FAILHARD) private static void galacticraft_serializeOxygen(ServerLevel world, ChunkAccess chunk, CallbackInfoReturnable cir, ChunkPos chunkPos, CompoundTag nbtCompound, BlendingData blendingData, BelowZeroRetrogen belowZeroRetrogen, UpgradeData upgradeData, LevelChunkSection[] chunkSections, ListTag nbtList, LevelLightEngine lightingProvider, Registry registry, Codec>> codec, boolean bl, int i, int j, boolean bl2, DataLayer chunkNibbleArray, DataLayer chunkNibbleArray2, CompoundTag nbtCompound2, LevelChunkSection section) { var accessor = (ChunkSectionOxygenAccessor) section; - if (accessor.galacticraft$modifiedBlocks() > 0) { + if (!accessor.galacticraft$isEmpty()) { CompoundTag nbt = new CompoundTag(); - nbt.putShort(Constant.Nbt.CHANGE_COUNT, ((ChunkSectionOxygenAccessor) section).galacticraft$modifiedBlocks()); - if (((ChunkSectionOxygenAccessor) section).galacticraft$modifiedBlocks() > 0) { - BitSet bits = ((ChunkSectionOxygenAccessor) section).galacticraft$inversionBits(); - assert bits != null; - nbt.putLongArray(Constant.Nbt.OXYGEN, bits.toLongArray()); - } + nbt.putByteArray(Constant.Nbt.OXYGEN, Objects.requireNonNull(accessor.galacticraft$getBits()).toByteArray()); nbtCompound2.put(Constant.Nbt.GC_API, nbt); } } @Inject(method = "read", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/ai/village/poi/PoiManager;checkConsistencyWithBlocks(Lnet/minecraft/core/SectionPos;Lnet/minecraft/world/level/chunk/LevelChunkSection;)V"), locals = LocalCapture.CAPTURE_FAILHARD) - private static void galacticraft_deserializeOxygen(ServerLevel world, PoiManager poiStorage, ChunkPos chunkPos, CompoundTag nbt, CallbackInfoReturnable cir, ChunkPos chunkPos2, UpgradeData upgradeData, boolean bl, ListTag nbtList, int i, LevelChunkSection[] chunkSections, boolean bl2, ChunkSource chunkManager, LevelLightEngine lightingProvider, Registry registry, Codec>> codec, boolean bl3, int j, CompoundTag nbtCompound, int k, int l, PalettedContainer palettedContainer, PalettedContainerRO readableContainer, LevelChunkSection section) { - CompoundTag apiCompound = nbtCompound.getCompound(Constant.Nbt.GC_API); - short changedCount = apiCompound.getShort(Constant.Nbt.CHANGE_COUNT); - ((ChunkSectionOxygenAccessor) section).galacticraft$setModifiedBlocks(changedCount); - if (changedCount > 0) { - ((ChunkSectionOxygenAccessor) section).galacticraft$setInversionBits(BitSet.valueOf(apiCompound.getLongArray(Constant.Nbt.OXYGEN))); + private static void galacticraft_deserializeOxygen(ServerLevel world, PoiManager poiStorage, RegionStorageInfo key, ChunkPos chunkPos, CompoundTag nbt, CallbackInfoReturnable cir, ChunkPos chunkPos2, UpgradeData upgradeData, boolean bl, ListTag listTag, int i, LevelChunkSection[] levelChunkSections, boolean bl2, ChunkSource chunkSource, LevelLightEngine levelLightEngine, Registry registry, Codec codec, boolean bl3, int j, CompoundTag compoundTag, int k, int l, PalettedContainer palettedContainer, PalettedContainerRO palettedContainerRO, LevelChunkSection levelChunkSection, SectionPos sectionPos) { + CompoundTag apiCompound = compoundTag.getCompound(Constant.Nbt.GC_API); + if (apiCompound.contains(Constant.Nbt.OXYGEN, Tag.TAG_BYTE_ARRAY)) { + ((ChunkSectionOxygenAccessor) levelChunkSection).galacticraft$setBits(BitSet.valueOf(apiCompound.getByteArray(Constant.Nbt.OXYGEN))); + } else { + ((ChunkSectionOxygenAccessor) levelChunkSection).galacticraft$setBits(null); } } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkMixin.java index 8065f8d78..8f415474f 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkMixin.java @@ -25,10 +25,9 @@ import dev.galacticraft.impl.internal.accessor.ChunkOxygenAccessor; import dev.galacticraft.impl.internal.accessor.ChunkOxygenSyncer; import dev.galacticraft.impl.internal.accessor.ChunkSectionOxygenAccessor; -import io.netty.buffer.Unpooled; +import dev.galacticraft.impl.network.s2c.OxygenUpdatePayload; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelHeightAccessor; @@ -49,6 +48,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import java.util.BitSet; + @Mixin(LevelChunk.class) public abstract class LevelChunkMixin extends ChunkAccess implements ChunkOxygenAccessor, ChunkOxygenSyncer { @Shadow @Final Level level; @@ -69,38 +70,42 @@ private LevelChunkMixin(ChunkPos pos, UpgradeData upgradeData, LevelHeightAccess if (inverted != accessor.galacticraft$isInverted(x, y & 15, z)) { if (!this.level.isClientSide) { this.unsaved = true; - this.dirtySections |= (0b1 << this.getSectionIndex(y)); + this.dirtySections |= (short) (0b1 << this.getSectionIndex(y)); } accessor.galacticraft$setInverted(x, y & 15, z, inverted); } } @Override - public @Nullable FriendlyByteBuf galacticraft$syncOxygenPacketsToClient() { + public @Nullable OxygenUpdatePayload.OxygenData[] galacticraft$syncOxygenPacketsToClient() { assert !this.level.isClientSide; - if (this.dirtySections != 0) { - FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer(Integer.BYTES * 2 + Short.BYTES + (Short.BYTES + 1))); - buf.writeInt(this.getPos().x); - buf.writeInt(this.getPos().z); - buf.writeShort(this.dirtySections); + if (this.dirtySections != 0b0) { + int count = 0; for (int i = 0; i < this.sections.length; i++) { if ((this.dirtySections & (0b1 << i++)) != 0) { - ((ChunkSectionOxygenAccessor) this.sections[i]).galacticraft$writeOxygenPacket(buf); + count++; + } + } + + OxygenUpdatePayload.OxygenData[] data = new OxygenUpdatePayload.OxygenData[count]; + + int idx = 0; + for (byte i = 0; i < this.sections.length; i++) { + if ((this.dirtySections & (0b1 << i++)) != 0) { + BitSet data1 = ((ChunkSectionOxygenAccessor) this.sections[i]).galacticraft$getBits(); + data[idx++] = new OxygenUpdatePayload.OxygenData(i, data1 == null ? new BitSet(0) : data1); } } this.dirtySections = 0; - return buf; + return data; } return null; } @Override - public void galacticraft$readOxygenUpdate(@NotNull FriendlyByteBuf buf) { - short dirty = buf.readShort(); - for (int i = 0; i < this.sections.length; i++) { - if ((dirty & (0b1 << i++)) != 0) { - ((ChunkSectionOxygenAccessor) this.sections[i]).galacticraft$readOxygenPacket(buf); - } + public void galacticraft$readOxygenUpdate(@NotNull OxygenUpdatePayload.OxygenData[] buf) { + for (OxygenUpdatePayload.@NotNull OxygenData oxygenData : buf) { + ((ChunkSectionOxygenAccessor) this.sections[oxygenData.section()]).galacticraft$setBits(oxygenData.data()); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkSectionMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkSectionMixin.java index 03f0006f6..c217624c1 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkSectionMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelChunkSectionMixin.java @@ -23,8 +23,8 @@ package dev.galacticraft.impl.internal.mixin.oxygen; import dev.galacticraft.impl.internal.accessor.ChunkSectionOxygenAccessor; -import dev.galacticraft.mod.Constant; import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.VarInt; import net.minecraft.world.level.chunk.LevelChunkSection; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -39,47 +39,36 @@ @Mixin(LevelChunkSection.class) public abstract class LevelChunkSectionMixin implements ChunkSectionOxygenAccessor { - private @Unique @Nullable BitSet inversionBits = null; - private @Unique short modifiedBlocks = 0; + private @Unique @Nullable BitSet bits = null; @Override - public boolean galacticraft$isInverted(int x, int y, int z) { - if (this.modifiedBlocks == 0) return false; - assert this.inversionBits != null; // if modifiedBlocks > 0 inverted should not be null. - return this.inversionBits.get(x + (y << 4) + (z << 8)); + public boolean galacticraft$isInverted(int pos) { + return this.bits != null && this.bits.get(pos); } @Override - public void galacticraft$setInverted(int x, int y, int z, boolean inverted) { - int bitIndex = x + (y << 4) + (z << 8); - if (inverted) { - if (this.inversionBits == null) { - assert this.modifiedBlocks == 0; - this.inversionBits = new BitSet(bitIndex); // do not allocate a full bitset if not necessary - this.inversionBits.set(bitIndex); - this.modifiedBlocks = 1; - } else { - if (!this.inversionBits.get(bitIndex)) { - this.inversionBits.set(bitIndex); - this.modifiedBlocks++; - } - } - } else if (this.inversionBits != null && this.inversionBits.get(bitIndex)) { - this.inversionBits.clear(bitIndex); - if (--this.modifiedBlocks == 0) { - this.inversionBits = null; - } + public void galacticraft$setInverted(int pos, boolean value) { + if (value) { + if (this.bits == null) this.bits = new BitSet(pos); + this.bits.set(pos); + } else if (this.bits != null) { + this.bits.clear(pos); } } @Inject(method = "getSerializedSize", at = @At("RETURN"), cancellable = true) private void increaseChunkPacketSize(CallbackInfoReturnable cir) { - cir.setReturnValue(cir.getReturnValueI() + (this.modifiedBlocks == 0 ? 0 : (Constant.Chunk.CHUNK_SECTION_AREA / Byte.SIZE)) + 2 + 1); + if (this.bits == null) { + cir.setReturnValue(cir.getReturnValueI() + VarInt.getByteSize(0)); + } else { + byte[] byteArray = this.bits.toByteArray(); + cir.setReturnValue(cir.getReturnValueI() + (VarInt.getByteSize(byteArray.length) + byteArray.length)); + } } @Inject(method = "hasOnlyAir()Z", at = @At("RETURN"), cancellable = true) private void verifyOxygenEmpty(CallbackInfoReturnable cir) { - cir.setReturnValue(cir.getReturnValueZ() && this.modifiedBlocks == 0); + cir.setReturnValue(cir.getReturnValueZ() && this.galacticraft$isEmpty()); } @Inject(method = "write", at = @At("RETURN")) @@ -93,42 +82,37 @@ private void galacticraft_fromPacket(FriendlyByteBuf buf, CallbackInfo ci) { } @Override - public BitSet galacticraft$inversionBits() { - return this.inversionBits; + public boolean galacticraft$isEmpty() { + return this.bits == null || this.bits.isEmpty(); } @Override - public void galacticraft$setInversionBits(BitSet set) { - this.inversionBits = set; + public BitSet galacticraft$getBits() { + return this.bits; } @Override - public short galacticraft$modifiedBlocks() { - return this.modifiedBlocks; - } - - @Override - public void galacticraft$setModifiedBlocks(short amount) { - this.modifiedBlocks = amount; + public void galacticraft$setBits(@Nullable BitSet set) { + this.bits = set; } @Override public void galacticraft$writeOxygenPacket(@NotNull FriendlyByteBuf buf) { - buf.writeShort(this.galacticraft$modifiedBlocks()); - - if (this.galacticraft$modifiedBlocks() > 0) { - assert this.inversionBits != null; - buf.writeLongArray(this.inversionBits.toLongArray()); + if (this.bits != null) { + byte[] bytes = this.bits.toByteArray(); + buf.writeByteArray(bytes); + } else { + buf.writeVarInt(0); } } @Override public void galacticraft$readOxygenPacket(@NotNull FriendlyByteBuf buf) { - this.galacticraft$setModifiedBlocks(buf.readShort()); - if (this.galacticraft$modifiedBlocks() > 0) { - this.galacticraft$setInversionBits(BitSet.valueOf(buf.readLongArray())); + byte[] bytes = buf.readByteArray(); + if (bytes.length != 0) { + this.bits = BitSet.valueOf(bytes); } else { - this.galacticraft$setInversionBits(null); + this.bits = null; } } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelMixin.java index e70cdc208..97a78ce90 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/oxygen/LevelMixin.java @@ -22,6 +22,7 @@ package dev.galacticraft.impl.internal.mixin.oxygen; +import dev.galacticraft.api.accessor.LevelBodyAccessor; import dev.galacticraft.api.accessor.LevelOxygenAccessor; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.impl.internal.accessor.ChunkOxygenAccessor; @@ -52,7 +53,8 @@ public abstract class LevelMixin implements LevelOxygenAccessor, InternalLevelOx @Inject(method = "", at = @At("RETURN")) private void initializeOxygenValues(WritableLevelData writableLevelData, ResourceKey resourceKey, RegistryAccess registryAccess, Holder holder, Supplier supplier, boolean bl, boolean bl2, long l, int i, CallbackInfo ci) { - this.setDefaultBreathable(CelestialBody.getByDimension(registryAccess, resourceKey).map(c -> c.atmosphere().breathable()).orElse(true)); + Holder> holder1 = ((LevelBodyAccessor) this).galacticraft$getCelestialBody(); + this.setDefaultBreathable(holder1 != null ? holder1.value().atmosphere().breathable() : this.breathable); } @Override diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistryDataLoaderMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistryDataLoaderMixin.java deleted file mode 100644 index 7855940d1..000000000 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistryDataLoaderMixin.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.impl.internal.mixin.registry; - -import dev.galacticraft.api.registry.AddonRegistries; -import dev.galacticraft.api.registry.RocketRegistries; -import dev.galacticraft.api.rocket.part.*; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.landable.teleporter.CelestialTeleporter; -import dev.galacticraft.api.universe.galaxy.Galaxy; -import net.minecraft.resources.RegistryDataLoader; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Mutable; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -import java.util.ArrayList; -import java.util.List; - -@Mixin(RegistryDataLoader.class) -public abstract class RegistryDataLoaderMixin { - @Mutable - @Shadow @Final public static List> WORLDGEN_REGISTRIES; - - @Inject(method = "", at = @At("RETURN")) - private static void addGalacticraftAPIDynamicRegistries(CallbackInfo ci) { - WORLDGEN_REGISTRIES = new ArrayList<>(WORLDGEN_REGISTRIES); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(AddonRegistries.GALAXY, Galaxy.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(AddonRegistries.CELESTIAL_BODY, CelestialBody.DIRECT_CODEC)); - - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_CONE, RocketCone.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_BODY, RocketBody.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_FIN, RocketFin.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_BOOSTER, RocketBooster.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_ENGINE, RocketEngine.DIRECT_CODEC)); - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(RocketRegistries.ROCKET_UPGRADE, RocketUpgrade.DIRECT_CODEC)); - - WORLDGEN_REGISTRIES.add(new RegistryDataLoader.RegistryData<>(AddonRegistries.CELESTIAL_TELEPORTER, CelestialTeleporter.DIRECT_CODEC)); - } -} diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistrySynchronizationMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistrySynchronizationMixin.java deleted file mode 100644 index b7f3befdb..000000000 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/registry/RegistrySynchronizationMixin.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.impl.internal.mixin.registry; - -import com.google.common.collect.ImmutableMap; -import com.mojang.serialization.Codec; -import dev.galacticraft.api.registry.AddonRegistries; -import dev.galacticraft.api.registry.RocketRegistries; -import dev.galacticraft.api.rocket.part.*; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.landable.teleporter.CelestialTeleporter; -import dev.galacticraft.api.universe.galaxy.Galaxy; -import net.minecraft.core.Registry; -import net.minecraft.core.RegistrySynchronization; -import net.minecraft.resources.ResourceKey; -import org.spongepowered.asm.mixin.Dynamic; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -@Mixin(RegistrySynchronization.class) -public abstract class RegistrySynchronizationMixin { - @Shadow - private static void put(ImmutableMap.Builder>, RegistrySynchronization.NetworkedRegistryData> builder, ResourceKey> resourceKey, Codec codec) { - } - - @Dynamic("1.19.4 synthetic") - @Inject(method = "method_45958", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableMap$Builder;build()Lcom/google/common/collect/ImmutableMap;", remap = false), locals = LocalCapture.CAPTURE_FAILEXCEPTION) - private static void addRegistries(CallbackInfoReturnable>, RegistrySynchronization.NetworkedRegistryData>> cir, ImmutableMap.Builder>, RegistrySynchronization.NetworkedRegistryData> builder) { - put(builder, AddonRegistries.CELESTIAL_BODY, CelestialBody.DIRECT_CODEC); - put(builder, AddonRegistries.GALAXY, Galaxy.DIRECT_CODEC); - - put(builder, RocketRegistries.ROCKET_CONE, RocketCone.DIRECT_CODEC); - put(builder, RocketRegistries.ROCKET_BODY, RocketBody.DIRECT_CODEC); - put(builder, RocketRegistries.ROCKET_FIN, RocketFin.DIRECT_CODEC); - put(builder, RocketRegistries.ROCKET_BOOSTER, RocketBooster.DIRECT_CODEC); - put(builder, RocketRegistries.ROCKET_ENGINE, RocketEngine.DIRECT_CODEC); - put(builder, RocketRegistries.ROCKET_UPGRADE, RocketUpgrade.DIRECT_CODEC); - - put(builder, AddonRegistries.CELESTIAL_TELEPORTER, CelestialTeleporter.DIRECT_CODEC); - } -} diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/research/AdvancementRewardsMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/research/AdvancementRewardsMixin.java index 5ef7b3fc2..65d1714b5 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/research/AdvancementRewardsMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/research/AdvancementRewardsMixin.java @@ -22,9 +22,6 @@ package dev.galacticraft.impl.internal.mixin.research; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import dev.galacticraft.api.accessor.ServerResearchAccessor; import dev.galacticraft.impl.internal.accessor.AdvancementRewardsAccessor; import net.minecraft.advancements.AdvancementRewards; @@ -54,7 +51,7 @@ public abstract class AdvancementRewardsMixin implements AdvancementRewardsAcces // JsonArray array = json.get("rocket_parts").getAsJsonArray(); // ResourceLocation[] ids = new ResourceLocation[array.size()]; // for (int i = 0; i < array.size(); i++) { -// ids[i] = new ResourceLocation(array.get(i).getAsString()); +// ids[i] = ResourceLocation.parse(array.get(i).getAsString()); // } // ((AdvancementRewardsAccessor) rewards).setRocketPartRecipeRewards(ids); // } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/research/ServerPlayerMixin.java b/src/main/java/dev/galacticraft/impl/internal/mixin/research/ServerPlayerMixin.java index 240e2ebab..2b7af86ce 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/research/ServerPlayerMixin.java +++ b/src/main/java/dev/galacticraft/impl/internal/mixin/research/ServerPlayerMixin.java @@ -23,16 +23,13 @@ package dev.galacticraft.impl.internal.mixin.research; import dev.galacticraft.api.accessor.ServerResearchAccessor; -import dev.galacticraft.mod.Constant; -import io.netty.buffer.Unpooled; +import dev.galacticraft.impl.network.s2c.ResearchUpdatePayload; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.StringTag; import net.minecraft.nbt.Tag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -43,12 +40,11 @@ import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; @Mixin(ServerPlayer.class) public abstract class ServerPlayerMixin implements ServerResearchAccessor { - @Shadow public abstract ServerLevel serverLevel(); - @Shadow public abstract boolean isCreative(); private final @Unique Set unlockedRecipes = new HashSet<>(); @@ -63,15 +59,7 @@ public abstract class ServerPlayerMixin implements ServerResearchAccessor { public void galacticraft$unlockRocketPartRecipes(ResourceLocation... ids) { Collections.addAll(this.unlockedRecipes, ids); - FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer()); - buf.writeVarInt(ids.length); - buf.writeBoolean(true); - for (ResourceLocation id : ids) { - buf.writeUtf(id.toString()); - } - ServerPlayNetworking.send((ServerPlayer) (Object)this, - Constant.id("research_update"), - buf); + ServerPlayNetworking.send((ServerPlayer) (Object)this, new ResearchUpdatePayload(true, List.of(ids))); } @Override @@ -80,15 +68,7 @@ public abstract class ServerPlayerMixin implements ServerResearchAccessor { this.unlockedRecipes.remove(id); } - FriendlyByteBuf buf = new FriendlyByteBuf(Unpooled.buffer()); - buf.writeVarInt(ids.length); - buf.writeBoolean(false); - for (ResourceLocation id : ids) { - buf.writeUtf(id.toString()); - } - ServerPlayNetworking.send((ServerPlayer) (Object)this, - Constant.id("research_update"), - buf); + ServerPlayNetworking.send((ServerPlayer) (Object)this, new ResearchUpdatePayload(false, List.of(ids))); } @Inject(method = "readAdditionalSaveData", at = @At("RETURN")) @@ -96,7 +76,7 @@ private void galacticraft_readCustomDataFromNbt(CompoundTag nbt, CallbackInfo ci this.unlockedRecipes.clear(); ListTag list = nbt.getList("gcResearch", Tag.TAG_STRING); for (int i = 0; i < list.size(); i++) { - this.unlockedRecipes.add(new ResourceLocation(list.getString(i))); + this.unlockedRecipes.add(ResourceLocation.parse(list.getString(i))); } } diff --git a/src/main/java/dev/galacticraft/mod/particle/ComplexParticleType.java b/src/main/java/dev/galacticraft/impl/network/GCApiClientPacketReceivers.java similarity index 57% rename from src/main/java/dev/galacticraft/mod/particle/ComplexParticleType.java rename to src/main/java/dev/galacticraft/impl/network/GCApiClientPacketReceivers.java index 91b02a3a5..b886544ca 100644 --- a/src/main/java/dev/galacticraft/mod/particle/ComplexParticleType.java +++ b/src/main/java/dev/galacticraft/impl/network/GCApiClientPacketReceivers.java @@ -20,22 +20,25 @@ * SOFTWARE. */ -package dev.galacticraft.mod.particle; +package dev.galacticraft.impl.network; -import com.mojang.serialization.Codec; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.ParticleType; +import dev.galacticraft.impl.network.s2c.*; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -public class ComplexParticleType extends ParticleType { - private final Codec codec; - - protected ComplexParticleType(boolean overrideLimiter, ParticleOptions.Deserializer deserializer, Codec codec) { - super(overrideLimiter, deserializer); - this.codec = codec; +/** + * Handles server-bound (C2S) packets. + */ +public class GCApiClientPacketReceivers { + public static void register() { + registerPacket(AddSatellitePayload.TYPE); + registerPacket(GearInvPayload.TYPE); + registerPacket(OxygenUpdatePayload.TYPE); + registerPacket(RemoveSatellitePayload.TYPE); + registerPacket(ResearchUpdatePayload.TYPE); } - @Override - public Codec codec() { - return this.codec; + public static

void registerPacket(CustomPacketPayload.Type

type) { + ClientPlayNetworking.registerGlobalReceiver(type, (payload, context) -> context.client().execute(payload.handle(context))); } } diff --git a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/ArrowGravityMixin.java b/src/main/java/dev/galacticraft/impl/network/GCApiPackets.java similarity index 52% rename from src/main/java/dev/galacticraft/impl/internal/mixin/gravity/ArrowGravityMixin.java rename to src/main/java/dev/galacticraft/impl/network/GCApiPackets.java index daeb7487c..77b9448e8 100644 --- a/src/main/java/dev/galacticraft/impl/internal/mixin/gravity/ArrowGravityMixin.java +++ b/src/main/java/dev/galacticraft/impl/network/GCApiPackets.java @@ -20,19 +20,22 @@ * SOFTWARE. */ -package dev.galacticraft.impl.internal.mixin.gravity; +package dev.galacticraft.impl.network; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.projectile.AbstractArrow; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.Constant; -import org.spongepowered.asm.mixin.injection.ModifyConstant; +import dev.galacticraft.impl.network.c2s.FlagDataPayload; +import dev.galacticraft.impl.network.c2s.TeamNamePayload; +import dev.galacticraft.impl.network.s2c.*; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; -@Mixin(AbstractArrow.class) -public class ArrowGravityMixin { - @ModifyConstant(method = "tick", constant = @Constant(doubleValue = 0.05000000074505806)) // that's what it is in the bytecode - private double galacticraft_changeArrowGravity(double defaultValue) { - return CelestialBody.getByDimension(((Entity) (Object) this).level()).map(celestialBody -> celestialBody.gravity() * defaultValue).orElse(defaultValue); +public class GCApiPackets { + public static void register() { + PayloadTypeRegistry.playS2C().register(AddSatellitePayload.TYPE, AddSatellitePayload.CODEC); + PayloadTypeRegistry.playS2C().register(GearInvPayload.TYPE, GearInvPayload.CODEC); + PayloadTypeRegistry.playS2C().register(OxygenUpdatePayload.TYPE, OxygenUpdatePayload.CODEC); + PayloadTypeRegistry.playS2C().register(RemoveSatellitePayload.TYPE, RemoveSatellitePayload.CODEC); + PayloadTypeRegistry.playS2C().register(ResearchUpdatePayload.TYPE, ResearchUpdatePayload.CODEC); + + PayloadTypeRegistry.playC2S().register(FlagDataPayload.TYPE, FlagDataPayload.CODEC); + PayloadTypeRegistry.playC2S().register(TeamNamePayload.TYPE, TeamNamePayload.CODEC); } } diff --git a/src/main/java/dev/galacticraft/mod/client/gl/GlVertexArray.java b/src/main/java/dev/galacticraft/impl/network/GCApiServerPacketReceivers.java similarity index 60% rename from src/main/java/dev/galacticraft/mod/client/gl/GlVertexArray.java rename to src/main/java/dev/galacticraft/impl/network/GCApiServerPacketReceivers.java index 63115c3fa..a63e9b00c 100644 --- a/src/main/java/dev/galacticraft/mod/client/gl/GlVertexArray.java +++ b/src/main/java/dev/galacticraft/impl/network/GCApiServerPacketReceivers.java @@ -20,31 +20,24 @@ * SOFTWARE. */ -package dev.galacticraft.mod.client.gl; +package dev.galacticraft.impl.network; -import static org.lwjgl.opengl.GL45.*; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.impl.network.c2s.FlagDataPayload; +import dev.galacticraft.impl.network.c2s.TeamNamePayload; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -public class GlVertexArray extends GlObject { - - public GlVertexArray() { - super(glGenVertexArrays()); - } - - public void draw(int count) { - this.bind(); - glDrawArrays(GL_TRIANGLES, 0, count); - this.unbind(); - } - - public void bind() { - glBindVertexArray(this.handle); - } - - public void unbind() { - glBindVertexArray(0); +/** + * Handles server-bound (C2S) packets. + */ +public class GCApiServerPacketReceivers { + public static void register() { + registerPacket(FlagDataPayload.TYPE); + registerPacket(TeamNamePayload.TYPE); } - public void delete() { - glDeleteVertexArrays(this.handle); + public static

void registerPacket(CustomPacketPayload.Type

type) { + ServerPlayNetworking.registerGlobalReceiver(type, C2SPayload::handle); } } diff --git a/src/main/java/dev/galacticraft/mod/network/packets/GCPacket.java b/src/main/java/dev/galacticraft/impl/network/c2s/C2SPayload.java similarity index 76% rename from src/main/java/dev/galacticraft/mod/network/packets/GCPacket.java rename to src/main/java/dev/galacticraft/impl/network/c2s/C2SPayload.java index 2c78fe365..69fc5f826 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/GCPacket.java +++ b/src/main/java/dev/galacticraft/impl/network/c2s/C2SPayload.java @@ -20,12 +20,12 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.impl.network.c2s; -import net.fabricmc.fabric.api.networking.v1.FabricPacket; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.minecraft.world.entity.player.Player; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import org.jetbrains.annotations.NotNull; -public interface GCPacket extends FabricPacket { - void handle(Player player, PacketSender responseSender); +public interface C2SPayload extends CustomPacketPayload { + void handle(@NotNull ServerPlayNetworking.Context context); } diff --git a/src/main/java/dev/galacticraft/mod/network/packets/PlanetTpPacket.java b/src/main/java/dev/galacticraft/impl/network/c2s/FlagDataPayload.java similarity index 57% rename from src/main/java/dev/galacticraft/mod/network/packets/PlanetTpPacket.java rename to src/main/java/dev/galacticraft/impl/network/c2s/FlagDataPayload.java index 1fe64d9ea..c5a04a94d 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/PlanetTpPacket.java +++ b/src/main/java/dev/galacticraft/impl/network/c2s/FlagDataPayload.java @@ -20,34 +20,32 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.impl.network.c2s; import dev.galacticraft.mod.Constant; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.network.FriendlyByteBuf; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; -public record PlanetTpPacket(ResourceLocation body) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Constant.Packet.PLANET_TP, PlanetTpPacket::new); +public record FlagDataPayload(byte[] data) implements C2SPayload { + public static final ResourceLocation ID = Constant.id("flag_data"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = ByteBufCodecs.BYTE_ARRAY.map(FlagDataPayload::new, FlagDataPayload::data); - public PlanetTpPacket(FriendlyByteBuf buf) { - this(buf.readResourceLocation()); + public FlagDataPayload { + if (data.length != 48 * 32 * 3) throw new IllegalArgumentException(); } @Override - public void handle(Player player, PacketSender responseSender) { - - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeResourceLocation(body); + public @NotNull Type type() { + return TYPE; } @Override - public PacketType getType() { - return TYPE; + public void handle(ServerPlayNetworking.@NotNull Context context) { } } diff --git a/src/main/java/dev/galacticraft/mod/screen/sync/BooleanMenuSyncHandler.java b/src/main/java/dev/galacticraft/impl/network/c2s/TeamNamePayload.java similarity index 53% rename from src/main/java/dev/galacticraft/mod/screen/sync/BooleanMenuSyncHandler.java rename to src/main/java/dev/galacticraft/impl/network/c2s/TeamNamePayload.java index db1753297..cfb37d359 100644 --- a/src/main/java/dev/galacticraft/mod/screen/sync/BooleanMenuSyncHandler.java +++ b/src/main/java/dev/galacticraft/impl/network/c2s/TeamNamePayload.java @@ -20,39 +20,33 @@ * SOFTWARE. */ -package dev.galacticraft.mod.screen.sync; - -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import it.unimi.dsi.fastutil.booleans.BooleanConsumer; -import net.minecraft.network.FriendlyByteBuf; +package dev.galacticraft.impl.network.c2s; + +import dev.galacticraft.mod.Constant; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; -import java.util.function.BooleanSupplier; - -public class BooleanMenuSyncHandler implements MenuSyncHandler { - private final BooleanSupplier supplier; - private final BooleanConsumer consumer; - private boolean value; +public record TeamNamePayload(String name) implements C2SPayload { + public static final ResourceLocation ID = Constant.id("team_name"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = ByteBufCodecs.STRING_UTF8.map(TeamNamePayload::new, TeamNamePayload::name); - public BooleanMenuSyncHandler(BooleanSupplier supplier, BooleanConsumer consumer) { - this.supplier = supplier; - this.consumer = consumer; + public TeamNamePayload { + if (name.length() > 32) throw new IllegalArgumentException("Team name cannot be longer than 32 characters"); //todo: actual constraints } @Override - public boolean needsSyncing() { - return this.value != this.supplier.getAsBoolean(); + public @NotNull Type type() { + return TYPE; } @Override - public void sync(@NotNull FriendlyByteBuf buf) { - this.value = this.supplier.getAsBoolean(); - buf.writeBoolean(this.value); - } + public void handle(ServerPlayNetworking.@NotNull Context context) { - @Override - public void read(@NotNull FriendlyByteBuf buf) { - this.value = buf.readBoolean(); - this.consumer.accept(this.value); } } diff --git a/src/main/java/dev/galacticraft/impl/network/s2c/AddSatellitePayload.java b/src/main/java/dev/galacticraft/impl/network/s2c/AddSatellitePayload.java new file mode 100644 index 000000000..77b14b9d3 --- /dev/null +++ b/src/main/java/dev/galacticraft/impl/network/s2c/AddSatellitePayload.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.impl.network.s2c; + +import dev.galacticraft.api.client.accessor.ClientSatelliteAccessor; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.impl.universe.celestialbody.type.SatelliteType; +import dev.galacticraft.impl.universe.position.config.SatelliteConfig; +import dev.galacticraft.mod.Constant; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public record AddSatellitePayload(ResourceLocation id, SatelliteConfig config) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("add_satellite"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = StreamCodec.composite( + ResourceLocation.STREAM_CODEC, + p -> p.id, + SatelliteConfig.STREAM_CODEC, + p -> p.config, + AddSatellitePayload::new); + + @Override + public @NotNull Type type() { + return TYPE; + } + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> ((ClientSatelliteAccessor) context.client().player.connection).galacticraft$addSatellite(this.id, new CelestialBody<>(SatelliteType.INSTANCE, this.config)); + } +} diff --git a/src/main/java/dev/galacticraft/impl/network/s2c/GearInvPayload.java b/src/main/java/dev/galacticraft/impl/network/s2c/GearInvPayload.java new file mode 100644 index 000000000..1bba2ec53 --- /dev/null +++ b/src/main/java/dev/galacticraft/impl/network/s2c/GearInvPayload.java @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.impl.network.s2c; + +import dev.galacticraft.api.accessor.GearInventoryProvider; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.util.StreamCodecs; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.Container; +import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Objects; + +public record GearInvPayload(int entityId, ItemStack[] items) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("gear_inv"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = StreamCodec.composite( + ByteBufCodecs.VAR_INT, + GearInvPayload::entityId, + StreamCodecs.array(ItemStack.OPTIONAL_STREAM_CODEC, ItemStack[]::new), + GearInvPayload::items, + GearInvPayload::new + ); + + @Override + public @NotNull Type type() { + return TYPE; + } + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> { + Container container = ((GearInventoryProvider) Objects.requireNonNull(context.client().level.getEntity(this.entityId))).galacticraft$getGearInv(); + for (int i = 0; i < this.items.length; i++) { + container.setItem(i, this.items[i]); + } + }; + } +} diff --git a/src/main/java/dev/galacticraft/impl/network/s2c/OxygenUpdatePayload.java b/src/main/java/dev/galacticraft/impl/network/s2c/OxygenUpdatePayload.java new file mode 100644 index 000000000..6f7c35176 --- /dev/null +++ b/src/main/java/dev/galacticraft/impl/network/s2c/OxygenUpdatePayload.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.impl.network.s2c; + +import dev.galacticraft.impl.internal.accessor.ChunkSectionOxygenAccessor; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.chunk.LevelChunk; +import org.jetbrains.annotations.NotNull; + +import java.util.BitSet; + +public record OxygenUpdatePayload(long chunk, OxygenData[] data) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("oxygen_update"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = StreamCodec.composite( + StreamCodecs.LONG, + d -> d.chunk, + StreamCodecs.array(OxygenData.CODEC, OxygenData[]::new), + d -> d.data, + OxygenUpdatePayload::new + ); + + @Override + public @NotNull Type type() { + return TYPE; + } + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> { + LevelChunk chunk = context.client().level.getChunk(ChunkPos.getX(this.chunk), ChunkPos.getZ(this.chunk)); + for (OxygenData datum : this.data) { + ChunkSectionOxygenAccessor accessor = (ChunkSectionOxygenAccessor) chunk.getSection(datum.section); + accessor.galacticraft$setBits(datum.data); + } + }; + } + + public record OxygenData(byte section, @NotNull BitSet data) { + private static final StreamCodec BIT_SET_CODEC = ByteBufCodecs.BYTE_ARRAY.map(BitSet::valueOf, BitSet::toByteArray); + public static final StreamCodec CODEC = StreamCodec.composite( + ByteBufCodecs.BYTE, + d -> d.section, + BIT_SET_CODEC, + d -> d.data, + OxygenData::new + ); + } +} diff --git a/src/main/java/dev/galacticraft/mod/screen/sync/DoubleMenuSyncHandler.java b/src/main/java/dev/galacticraft/impl/network/s2c/RemoveSatellitePayload.java similarity index 52% rename from src/main/java/dev/galacticraft/mod/screen/sync/DoubleMenuSyncHandler.java rename to src/main/java/dev/galacticraft/impl/network/s2c/RemoveSatellitePayload.java index 88aeacc68..d8b933886 100644 --- a/src/main/java/dev/galacticraft/mod/screen/sync/DoubleMenuSyncHandler.java +++ b/src/main/java/dev/galacticraft/impl/network/s2c/RemoveSatellitePayload.java @@ -20,39 +20,29 @@ * SOFTWARE. */ -package dev.galacticraft.mod.screen.sync; - -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import net.minecraft.network.FriendlyByteBuf; +package dev.galacticraft.impl.network.s2c; + +import dev.galacticraft.api.accessor.SatelliteAccessor; +import dev.galacticraft.mod.Constant; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; -import java.util.function.DoubleConsumer; -import java.util.function.DoubleSupplier; - -public class DoubleMenuSyncHandler implements MenuSyncHandler { - private final DoubleSupplier supplier; - private final DoubleConsumer consumer; - private double value; - - public DoubleMenuSyncHandler(DoubleSupplier supplier, DoubleConsumer consumer) { - this.supplier = supplier; - this.consumer = consumer; - } - - @Override - public boolean needsSyncing() { - return this.value != this.supplier.getAsDouble(); - } +public record RemoveSatellitePayload(ResourceLocation id) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("remove_satellite"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = ResourceLocation.STREAM_CODEC.map(RemoveSatellitePayload::new, RemoveSatellitePayload::id); @Override - public void sync(@NotNull FriendlyByteBuf buf) { - this.value = this.supplier.getAsDouble(); - buf.writeDouble(this.value); + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> ((SatelliteAccessor) context.client().getConnection()).galacticraft$removeSatellite(this.id); } @Override - public void read(@NotNull FriendlyByteBuf buf) { - this.value = buf.readDouble(); - this.consumer.accept(this.value); + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/dev/galacticraft/impl/network/s2c/ResearchUpdatePayload.java b/src/main/java/dev/galacticraft/impl/network/s2c/ResearchUpdatePayload.java new file mode 100644 index 000000000..db56b68b4 --- /dev/null +++ b/src/main/java/dev/galacticraft/impl/network/s2c/ResearchUpdatePayload.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.impl.network.s2c; + +import dev.galacticraft.impl.client.accessor.ClientResearchAccessor; +import dev.galacticraft.mod.Constant; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public record ResearchUpdatePayload(boolean add, List ids) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("research_update"); + public static final Type TYPE = new Type<>(ID); + public static final StreamCodec CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL, + p -> p.add, + ByteBufCodecs.list().apply(ResourceLocation.STREAM_CODEC), + p -> p.ids, + ResearchUpdatePayload::new + ); + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> ((ClientResearchAccessor)context.player()).galacticraft$updateResearch(this.add, this.ids); + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/client/gl/GlObject.java b/src/main/java/dev/galacticraft/impl/network/s2c/S2CPayload.java similarity index 75% rename from src/main/java/dev/galacticraft/mod/client/gl/GlObject.java rename to src/main/java/dev/galacticraft/impl/network/s2c/S2CPayload.java index 2e26f316f..1bb4a0096 100644 --- a/src/main/java/dev/galacticraft/mod/client/gl/GlObject.java +++ b/src/main/java/dev/galacticraft/impl/network/s2c/S2CPayload.java @@ -20,16 +20,12 @@ * SOFTWARE. */ -package dev.galacticraft.mod.client.gl; +package dev.galacticraft.impl.network.s2c; -public abstract class GlObject { - protected final int handle; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import org.jetbrains.annotations.NotNull; - public GlObject(int handle) { - this.handle = handle; - } - - public int getHandle() { - return handle; - } +public interface S2CPayload extends CustomPacketPayload { + Runnable handle(@NotNull ClientPlayNetworking.Context context); } diff --git a/src/main/java/dev/galacticraft/impl/rocket/RocketDataImpl.java b/src/main/java/dev/galacticraft/impl/rocket/RocketDataImpl.java deleted file mode 100644 index 9f5b8fa19..000000000 --- a/src/main/java/dev/galacticraft/impl/rocket/RocketDataImpl.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.impl.rocket; - -import dev.galacticraft.api.registry.RocketRegistries; -import dev.galacticraft.api.rocket.RocketData; -import dev.galacticraft.api.rocket.part.*; -import dev.galacticraft.mod.content.GCRocketParts; -import net.minecraft.Util; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import org.jetbrains.annotations.ApiStatus; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.annotations.Unmodifiable; - -@ApiStatus.Internal -public record RocketDataImpl(int color, @Nullable ResourceKey> cone, @Nullable ResourceKey> body, - @Nullable ResourceKey> fin, @Nullable ResourceKey> booster, - @Nullable ResourceKey> engine, @Nullable ResourceKey> upgrade) implements RocketData { - - public static final CompoundTag DEFAULT_ROCKET = Util.make(new CompoundTag(), tag -> { - RocketData.create(0xFFFFFFFF, - GCRocketParts.TIER_1_CONE, - GCRocketParts.TIER_1_BODY, - GCRocketParts.TIER_1_FIN, - null, - GCRocketParts.TIER_1_ENGINE, - null) - .toNbt(tag); - }); - - @Contract("_ -> new") - public static @NotNull RocketDataImpl fromNbt(CompoundTag nbt) { - return new RocketDataImpl( - nbt.getInt("Color"), - nbt.contains("Cone") ? ResourceKey.create(RocketRegistries.ROCKET_CONE, new ResourceLocation(nbt.getString("Cone"))) : null, - nbt.contains("Body") ? ResourceKey.create(RocketRegistries.ROCKET_BODY, new ResourceLocation(nbt.getString("Body"))) : null, - nbt.contains("Fin") ? ResourceKey.create(RocketRegistries.ROCKET_FIN, new ResourceLocation(nbt.getString("Fin"))) : null, - nbt.contains("Booster") ? ResourceKey.create(RocketRegistries.ROCKET_BOOSTER, new ResourceLocation(nbt.getString("Booster"))) : null, - nbt.contains("Engine") ? ResourceKey.create(RocketRegistries.ROCKET_ENGINE, new ResourceLocation(nbt.getString("Engine"))) : null, - nbt.contains("Upgrade") ? ResourceKey.create(RocketRegistries.ROCKET_UPGRADE, new ResourceLocation(nbt.getString("Upgrade"))) : null - ); - } - - @Contract("_ -> new") - public static @NotNull RocketDataImpl fromNetwork(FriendlyByteBuf buf) { - int color = buf.readVarInt(); - boolean hasCone = buf.readBoolean(); - boolean hasBody = buf.readBoolean(); - boolean hasFin = buf.readBoolean(); - boolean hasBooster = buf.readBoolean(); - boolean hasEngine = buf.readBoolean(); - boolean hasUpgrade = buf.readBoolean(); - return new RocketDataImpl( - color, - hasCone ? ResourceKey.create(RocketRegistries.ROCKET_CONE, buf.readResourceLocation()) : null, - hasBody ? ResourceKey.create(RocketRegistries.ROCKET_BODY, buf.readResourceLocation()) : null, - hasFin ? ResourceKey.create(RocketRegistries.ROCKET_FIN, buf.readResourceLocation()) : null, - hasBooster ? ResourceKey.create(RocketRegistries.ROCKET_BOOSTER, buf.readResourceLocation()) : null, - hasEngine ? ResourceKey.create(RocketRegistries.ROCKET_ENGINE, buf.readResourceLocation()) : null, - hasUpgrade ? ResourceKey.create(RocketRegistries.ROCKET_UPGRADE, buf.readResourceLocation()) : null - ); - } -} diff --git a/src/main/java/dev/galacticraft/impl/rocket/recipe/RocketPartRecipeImpl.java b/src/main/java/dev/galacticraft/impl/rocket/recipe/RocketPartRecipeImpl.java index 329f8621e..2270b8afc 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/recipe/RocketPartRecipeImpl.java +++ b/src/main/java/dev/galacticraft/impl/rocket/recipe/RocketPartRecipeImpl.java @@ -25,12 +25,11 @@ import dev.galacticraft.api.rocket.recipe.RocketPartRecipe; import dev.galacticraft.api.rocket.recipe.config.RocketPartRecipeConfig; import dev.galacticraft.api.rocket.recipe.type.RocketPartRecipeType; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.RecipeType; import net.minecraft.world.level.Level; @@ -58,12 +57,12 @@ public void place(@NotNull RocketPartRecipeType.SlotConsumer consumer, int leftE } @Override - public boolean matches(Container container, Level level) { - return this.type.matches(container, level, this.config); + public boolean matches(RecipeInput input, Level level) { + return this.type.matches(input, level, this.config); } @Override - public @NotNull ItemStack assemble(Container container, RegistryAccess registryAccess) { + public @NotNull ItemStack assemble(RecipeInput input, HolderLookup.Provider lookup) { return ItemStack.EMPTY; } @@ -73,7 +72,7 @@ public boolean canCraftInDimensions(int width, int height) { } @Override - public @NotNull ItemStack getResultItem(RegistryAccess registryAccess) { + public @NotNull ItemStack getResultItem(HolderLookup.Provider registriesLookup) { return ItemStack.EMPTY; } diff --git a/src/main/java/dev/galacticraft/impl/rocket/recipe/config/CenteredPatternedRocketPartRecipeConfig.java b/src/main/java/dev/galacticraft/impl/rocket/recipe/config/CenteredPatternedRocketPartRecipeConfig.java index 626fdfa3d..2822b8c45 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/recipe/config/CenteredPatternedRocketPartRecipeConfig.java +++ b/src/main/java/dev/galacticraft/impl/rocket/recipe/config/CenteredPatternedRocketPartRecipeConfig.java @@ -76,7 +76,7 @@ public record CenteredPatternedRocketPartRecipeConfig(int height, @NotNull List< if (element.isJsonPrimitive()) { spacing.put(key, element.getAsInt()); } else { - Ingredient.CODEC.decode(JsonOps.INSTANCE, element).get().ifLeft(pair -> ingredients.put(key, pair.getFirst())); + ingredients.put(key, Ingredient.CODEC.decode(JsonOps.INSTANCE, element).getOrThrow().getFirst()); } } diff --git a/src/main/java/dev/galacticraft/impl/rocket/recipe/config/PatternedRocketPartRecipeConfig.java b/src/main/java/dev/galacticraft/impl/rocket/recipe/config/PatternedRocketPartRecipeConfig.java index ae290c46c..edaa91044 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/recipe/config/PatternedRocketPartRecipeConfig.java +++ b/src/main/java/dev/galacticraft/impl/rocket/recipe/config/PatternedRocketPartRecipeConfig.java @@ -76,7 +76,7 @@ public record PatternedRocketPartRecipeConfig(int height, @NotNull List ingredients.put(key, pair.getFirst())); + ingredients.put(key, Ingredient.CODEC.decode(JsonOps.INSTANCE, element).getOrThrow().getFirst()); } }); diff --git a/src/main/java/dev/galacticraft/impl/rocket/recipe/type/CenteredPatternedRocketPartRecipeType.java b/src/main/java/dev/galacticraft/impl/rocket/recipe/type/CenteredPatternedRocketPartRecipeType.java index aa171d104..7108a2e41 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/recipe/type/CenteredPatternedRocketPartRecipeType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/recipe/type/CenteredPatternedRocketPartRecipeType.java @@ -26,9 +26,9 @@ import dev.galacticraft.api.rocket.recipe.type.RocketPartRecipeType; import dev.galacticraft.impl.rocket.recipe.config.CenteredPatternedRocketPartRecipeConfig; import net.minecraft.core.NonNullList; -import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; @@ -61,7 +61,7 @@ public void place(@NotNull SlotConsumer consumer, int leftEdge, int rightEdge, i if (item == null) return true; ItemStack stack = new ItemStack(item, 1); - stack.setTag(tag); + stack.applyComponents(tag); return slot.ingredient().test(stack); }); } @@ -73,10 +73,10 @@ public void place(@NotNull SlotConsumer consumer, int leftEdge, int rightEdge, i } @Override - public boolean matches(Container container, Level level, CenteredPatternedRocketPartRecipeConfig config) { + public boolean matches(RecipeInput input, Level level, CenteredPatternedRocketPartRecipeConfig config) { List slots = config.slots(); for (int i = 0, n = slots.size(); i < n; i++) { - ItemStack stack = container.getItem(i); + ItemStack stack = input.getItem(i); if (stack.isEmpty() || !slots.get(i).ingredient().test(stack)) { return false; } diff --git a/src/main/java/dev/galacticraft/impl/rocket/recipe/type/PatternedRocketPartRecipeType.java b/src/main/java/dev/galacticraft/impl/rocket/recipe/type/PatternedRocketPartRecipeType.java index 95a6cbffd..0e4971551 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/recipe/type/PatternedRocketPartRecipeType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/recipe/type/PatternedRocketPartRecipeType.java @@ -26,9 +26,9 @@ import dev.galacticraft.api.rocket.recipe.type.RocketPartRecipeType; import dev.galacticraft.impl.rocket.recipe.config.PatternedRocketPartRecipeConfig; import net.minecraft.core.NonNullList; -import net.minecraft.world.Container; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.level.Level; import org.jetbrains.annotations.NotNull; @@ -56,11 +56,11 @@ public void place(@NotNull SlotConsumer consumer, int leftEdge, int rightEdge, i List slots = config.left(); for (int i = 0; i < slots.size(); i++) { RocketPartRecipeSlot slot = slots.get(i); - consumer.createSlot(i, leftEdge + slot.x(), bottomEdge - this.height(config) + slot.y(), (item, tag) -> { + consumer.createSlot(i, leftEdge + slot.x(), bottomEdge - this.height(config) + slot.y(), (item, patch) -> { if (item == null) return true; ItemStack stack = new ItemStack(item, 1); - stack.setTag(tag); + stack.applyComponents(patch); return slot.ingredient().test(stack); }); } @@ -68,11 +68,11 @@ public void place(@NotNull SlotConsumer consumer, int leftEdge, int rightEdge, i slots = config.right(); for (int i = 0; i < slots.size(); i++) { RocketPartRecipeSlot slot = slots.get(i); - consumer.createSlot(i + size, rightEdge + slot.x(), bottomEdge - this.height(config) + slot.y(), (item, tag) -> { + consumer.createSlot(i + size, rightEdge + slot.x(), bottomEdge - this.height(config) + slot.y(), (item, patch) -> { if (item == null) return true; ItemStack stack = new ItemStack(item, 1); - stack.setTag(tag); + stack.applyComponents(patch); return slot.ingredient().test(stack); }); } @@ -84,17 +84,17 @@ public void place(@NotNull SlotConsumer consumer, int leftEdge, int rightEdge, i } @Override - public boolean matches(Container container, Level level, PatternedRocketPartRecipeConfig config) { + public boolean matches(RecipeInput input, Level level, PatternedRocketPartRecipeConfig config) { List left = config.left(); for (int i = 0, leftSize = left.size(); i < leftSize; i++) { - ItemStack stack = container.getItem(i); + ItemStack stack = input.getItem(i); if (stack.isEmpty() || !left.get(i).ingredient().test(stack)) { return false; } } List right = config.right(); for (int i = 0, rightSize = right.size(); i < rightSize; i++) { - ItemStack stack = container.getItem(left.size() + i); + ItemStack stack = input.getItem(left.size() + i); if (stack.isEmpty() || !left.get(i).ingredient().test(stack)) { return false; } diff --git a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AccessWeightTravelPredicateType.java b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AccessWeightTravelPredicateType.java index 14c04a271..6ac3df6de 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AccessWeightTravelPredicateType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AccessWeightTravelPredicateType.java @@ -28,6 +28,7 @@ import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.api.universe.celestialbody.Tiered; import dev.galacticraft.impl.rocket.travelpredicate.config.AccessWeightTravelPredicateConfig; +import net.minecraft.core.Holder; public final class AccessWeightTravelPredicateType extends TravelPredicateType { public static final AccessWeightTravelPredicateType INSTANCE = new AccessWeightTravelPredicateType(AccessWeightTravelPredicateConfig.CODEC); @@ -37,7 +38,7 @@ private AccessWeightTravelPredicateType(Codec } @Override - public Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, AccessWeightTravelPredicateConfig config) { + public Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, AccessWeightTravelPredicateConfig config) { if (to.type() instanceof Tiered tiered) { int weight = tiered.accessWeight(to.config()); if (weight <= config.weight()) { diff --git a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AndTravelPredicateType.java b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AndTravelPredicateType.java index c8dbba82e..a9eef98b1 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AndTravelPredicateType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/AndTravelPredicateType.java @@ -28,6 +28,7 @@ import dev.galacticraft.api.rocket.travelpredicate.TravelPredicateType; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.impl.rocket.travelpredicate.config.AndTravelPredicateConfig; +import net.minecraft.core.Holder; public final class AndTravelPredicateType extends TravelPredicateType { public static final AndTravelPredicateType INSTANCE = new AndTravelPredicateType(AndTravelPredicateConfig.CODEC); @@ -37,7 +38,7 @@ private AndTravelPredicateType(Codec configCodec) { } @Override - public Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, AndTravelPredicateConfig config) { + public Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, AndTravelPredicateConfig config) { Result result = Result.PASS; for (ConfiguredTravelPredicate predicate : config.predicates()) { result = result.merge(predicate.canTravel(from, to, cone, body, fin, booster, engine, upgrade)); diff --git a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/ConstantTravelPredicateType.java b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/ConstantTravelPredicateType.java index a585e0401..0250917ad 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/ConstantTravelPredicateType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/ConstantTravelPredicateType.java @@ -26,6 +26,7 @@ import dev.galacticraft.api.rocket.travelpredicate.TravelPredicateType; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.impl.rocket.travelpredicate.config.ConstantTravelPredicateConfig; +import net.minecraft.core.Holder; public final class ConstantTravelPredicateType extends TravelPredicateType { public static final ConstantTravelPredicateType INSTANCE = new ConstantTravelPredicateType(); @@ -35,7 +36,7 @@ private ConstantTravelPredicateType() { } @Override - public Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, ConstantTravelPredicateConfig config) { + public Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, ConstantTravelPredicateConfig config) { return config.type(); } } diff --git a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/DefaultTravelPredicateType.java b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/DefaultTravelPredicateType.java index 52499f4a7..6a1c6143b 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/DefaultTravelPredicateType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/DefaultTravelPredicateType.java @@ -27,6 +27,7 @@ import dev.galacticraft.api.rocket.travelpredicate.TravelPredicateType; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.impl.rocket.travelpredicate.config.DefaultTravelPredicateConfig; +import net.minecraft.core.Holder; public final class DefaultTravelPredicateType extends TravelPredicateType { public static final DefaultTravelPredicateType INSTANCE = new DefaultTravelPredicateType(); @@ -37,7 +38,7 @@ private DefaultTravelPredicateType() { } @Override - public Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, DefaultTravelPredicateConfig config) { + public Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, DefaultTravelPredicateConfig config) { return Result.PASS; } } diff --git a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/OrTravelPredicateType.java b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/OrTravelPredicateType.java index e0419f422..cf45b902e 100644 --- a/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/OrTravelPredicateType.java +++ b/src/main/java/dev/galacticraft/impl/rocket/travelpredicate/type/OrTravelPredicateType.java @@ -28,6 +28,7 @@ import dev.galacticraft.api.rocket.travelpredicate.TravelPredicateType; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.impl.rocket.travelpredicate.config.OrTravelPredicateConfig; +import net.minecraft.core.Holder; public final class OrTravelPredicateType extends TravelPredicateType { public static final OrTravelPredicateType INSTANCE = new OrTravelPredicateType(OrTravelPredicateConfig.CODEC); @@ -36,7 +37,7 @@ private OrTravelPredicateType(Codec configCodec) { } @Override - public Result canTravel(CelestialBody from, CelestialBody to, RocketCone cone, RocketBody body, RocketFin fin, RocketBooster booster, RocketEngine engine, RocketUpgrade upgrade, OrTravelPredicateConfig config) { + public Result canTravel(CelestialBody from, CelestialBody to, Holder> cone, Holder> body, Holder> fin, Holder> booster, Holder> engine, Holder> upgrade, OrTravelPredicateConfig config) { for (ConfiguredTravelPredicate predicate : config.predicates()) { Result result = predicate.canTravel(from, to, cone, body, fin, booster, engine, upgrade); if (result != Result.PASS) return result; diff --git a/src/main/java/dev/galacticraft/impl/universe/BuiltinObjects.java b/src/main/java/dev/galacticraft/impl/universe/BuiltinObjects.java index 801cec485..9fd871636 100644 --- a/src/main/java/dev/galacticraft/impl/universe/BuiltinObjects.java +++ b/src/main/java/dev/galacticraft/impl/universe/BuiltinObjects.java @@ -43,7 +43,6 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.Registry; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; public class BuiltinObjects { public static final ResourceKey MILKY_WAY_KEY = ResourceKey.create(AddonRegistries.GALAXY, Constant.id("milky_way")); diff --git a/src/main/java/dev/galacticraft/impl/universe/celestialbody/type/SatelliteType.java b/src/main/java/dev/galacticraft/impl/universe/celestialbody/type/SatelliteType.java index 80f7c8a91..c6609190a 100644 --- a/src/main/java/dev/galacticraft/impl/universe/celestialbody/type/SatelliteType.java +++ b/src/main/java/dev/galacticraft/impl/universe/celestialbody/type/SatelliteType.java @@ -37,6 +37,7 @@ import dev.galacticraft.api.universe.galaxy.Galaxy; import dev.galacticraft.api.universe.position.CelestialPosition; import dev.galacticraft.dynamicdimensions.api.DynamicDimensionRegistry; +import dev.galacticraft.impl.network.s2c.AddSatellitePayload; import dev.galacticraft.impl.universe.BuiltinObjects; import dev.galacticraft.impl.universe.display.config.IconCelestialDisplayConfig; import dev.galacticraft.impl.universe.display.config.ring.DefaultCelestialRingDisplayConfig; @@ -49,14 +50,10 @@ import dev.galacticraft.mod.data.gen.SatelliteChunkGenerator; import dev.galacticraft.mod.util.Translations; import dev.galacticraft.mod.world.biome.GCBiomes; -import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; import net.minecraft.core.registries.Registries; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -68,7 +65,7 @@ import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.chunk.ChunkGenerator; -import net.minecraft.world.level.chunk.ChunkStatus; +import net.minecraft.world.level.chunk.status.ChunkStatus; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; @@ -108,8 +105,8 @@ protected SatelliteType(Codec codec) { } @ApiStatus.Internal - public static CelestialBody registerSatellite(@NotNull MinecraftServer server, @NotNull ServerPlayer player, Holder.Reference> parent, StructureTemplate structure) { - ResourceLocation id = new ResourceLocation(parent.key().location() + "_" + player.getScoreboardName().toLowerCase(Locale.ROOT)); + public static CelestialBody registerSatellite(@NotNull MinecraftServer server, @NotNull ServerPlayer player, Holder> parent, StructureTemplate structure) { + ResourceLocation id = ResourceLocation.parse(parent.unwrapKey().get().location() + "_" + player.getScoreboardName().toLowerCase(Locale.ROOT)); DimensionType type = new DimensionType(OptionalLong.empty(), true, false, false, true, 1, false, false, 0, 256, 256, TagKey.create(Registries.BLOCK, Constant.id("infiniburn_space")), Constant.id("space_sky"), 0, new DimensionType.MonsterSettings(false, true, UniformInt.of(0, 7), 0)); SatelliteChunkGenerator chunkGenerator = new SatelliteChunkGenerator(server.registryAccess().registryOrThrow(Registries.BIOME).getHolderOrThrow(GCBiomes.SPACE), structure); SatelliteOwnershipData ownershipData = SatelliteOwnershipData.create(player.getUUID(), player.getScoreboardName(), new LinkedList<>(), false); @@ -124,7 +121,7 @@ public static CelestialBody registerSatellite(@N } @ApiStatus.Internal - public static CelestialBody create(ResourceLocation id, MinecraftServer server, Holder.Reference> parent, CelestialPosition position, CelestialDisplay display, CelestialRingDisplay ring, + public static CelestialBody create(ResourceLocation id, MinecraftServer server, Holder> parent, CelestialPosition position, CelestialDisplay display, CelestialRingDisplay ring, ChunkGenerator generator, DimensionType type, SatelliteOwnershipData ownershipData, String name) { Constant.LOGGER.debug("Attempting to create a world dynamically ({})", id); @@ -138,8 +135,7 @@ public static CelestialBody create(ResourceLocat ((SatelliteAccessor) server).galacticraft$addSatellite(id, satellite); for (ServerPlayer player : server.getPlayerList().getPlayers()) { - CompoundTag compound = (CompoundTag) SatelliteConfig.CODEC.encode(satellite.config(), NbtOps.INSTANCE, new CompoundTag()).get().orThrow(); - ServerPlayNetworking.send(player, Constant.id("add_satellite"), new FriendlyByteBuf(Unpooled.buffer()).writeResourceLocation(id).writeNbt(compound)); + ServerPlayNetworking.send(player, new AddSatellitePayload(id, satellite.config())); } return satellite; } diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/EmptyCelestialDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/EmptyCelestialDisplayType.java index 38d3804d8..feacf3ef4 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/EmptyCelestialDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/EmptyCelestialDisplayType.java @@ -22,7 +22,7 @@ package dev.galacticraft.impl.universe.display.type; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.Tesselator; import dev.galacticraft.api.universe.display.CelestialDisplayType; import dev.galacticraft.impl.universe.display.config.EmptyCelestialDisplayConfig; import net.minecraft.client.gui.GuiGraphics; @@ -36,7 +36,7 @@ private EmptyCelestialDisplayType() { } @Override - public Vector4f render(GuiGraphics graphics, BufferBuilder buffer, int size, double mouseX, double mouseY, float delta, EmptyCelestialDisplayConfig config) { + public Vector4f render(GuiGraphics graphics, Tesselator tesselator, int size, double mouseX, double mouseY, float delta, EmptyCelestialDisplayConfig config) { return NULL_VECTOR; } } diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/IconCelestialDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/IconCelestialDisplayType.java index a822bc758..bc9b46ab7 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/IconCelestialDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/IconCelestialDisplayType.java @@ -23,7 +23,7 @@ package dev.galacticraft.impl.universe.display.type; import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.serialization.Codec; import dev.galacticraft.api.universe.display.CelestialDisplayType; import dev.galacticraft.impl.universe.display.config.IconCelestialDisplayConfig; @@ -42,7 +42,7 @@ protected IconCelestialDisplayType(Codec codec) { } @Override - public Vector4f render(GuiGraphics graphics, BufferBuilder buffer, int size, double mouseX, double mouseY, float delta, IconCelestialDisplayConfig config) { + public Vector4f render(GuiGraphics graphics, Tesselator tesselator, int size, double mouseX, double mouseY, float delta, IconCelestialDisplayConfig config) { float realSize = config.scale() * size; AbstractTexture texture = Minecraft.getInstance().getTextureManager().getTexture(config.texture()); texture.bind(); diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/SpinningIconCelestialDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/SpinningIconCelestialDisplayType.java index 3d55f3274..c868f7737 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/SpinningIconCelestialDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/SpinningIconCelestialDisplayType.java @@ -22,7 +22,7 @@ package dev.galacticraft.impl.universe.display.type; -import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.math.Axis; import com.mojang.serialization.Codec; import dev.galacticraft.impl.universe.display.config.IconCelestialDisplayConfig; @@ -37,10 +37,10 @@ protected SpinningIconCelestialDisplayType(Codec cod } @Override - public Vector4f render(GuiGraphics graphics, BufferBuilder buffer, int size, double mouseX, double mouseY, float delta, IconCelestialDisplayConfig config) { + public Vector4f render(GuiGraphics graphics, Tesselator tesselator, int size, double mouseX, double mouseY, float delta, IconCelestialDisplayConfig config) { float degrees = Minecraft.getInstance().level.getGameTime() * 66.666666666666F / 10.0F % 360.0f; graphics.pose().mulPose(Axis.ZP.rotationDegrees(degrees)); - Vector4f render = super.render(graphics, buffer, size, mouseX, mouseY, delta, config); + Vector4f render = super.render(graphics, tesselator, size, mouseX, mouseY, delta, config); graphics.pose().mulPose(Axis.ZN.rotationDegrees(degrees)); // revert changes to the pose for position tracking return render; } diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/AsteroidCelestialRingDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/AsteroidCelestialRingDisplayType.java index eee6ceebf..734e99843 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/AsteroidCelestialRingDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/AsteroidCelestialRingDisplayType.java @@ -33,14 +33,10 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.util.Mth; import org.joml.Matrix4f; import org.joml.Vector3f; -import java.util.function.Consumer; -import java.util.function.Supplier; - public class AsteroidCelestialRingDisplayType extends CelestialRingDisplayType { public static final AsteroidCelestialRingDisplayType INSTANCE = new AsteroidCelestialRingDisplayType(DefaultCelestialRingDisplayConfig.CODEC); @@ -49,15 +45,13 @@ public AsteroidCelestialRingDisplayType(Codec } @Override - public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, Consumer> shaderSetter, DefaultCelestialRingDisplayConfig config) { - shaderSetter.accept(GameRenderer::getRendertypeLinesShader); + public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, DefaultCelestialRingDisplayConfig config) { + RenderSystem.setShader(GameRenderer::getRendertypeLinesShader); PoseStack matrices = graphics.pose(); matrices.pushPose(); Screen screen = Minecraft.getInstance().screen; float[] color = screen instanceof CelestialSelectionScreen ? new float[]{0.7F, 0.0F, 0.0F, alpha / 2.0F} : new float[]{0.3F, 0.1F, 0.1F, 1.0F}; - Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder buffer = tesselator.getBuilder(); - buffer.begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); final float theta = Mth.TWO_PI / 90; final float cos = Mth.cos(theta); @@ -77,42 +71,38 @@ public boolean render(CelestialBody body, GuiGraphics graphics, int count, float y1 = y; Matrix4f model = matrices.last().pose(); for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos * x - sin * y; y = sin * temp + cos * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone x = x1; y = y1; for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos2 * x - sin2 * y; y = sin2 * temp + cos2 * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone - tesselator.end(); - buffer.begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); + BufferUploader.drawWithShader(buffer.buildOrThrow()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); x = min * body.position().lineScale(); y = 0; @@ -121,43 +111,38 @@ public boolean render(CelestialBody body, GuiGraphics graphics, int count, y1 = y; for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos * x - sin * y; y = sin * temp + cos * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone x = x1; y = y1; for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos2 * x - sin2 * y; y = sin2 * temp + cos2 * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone - tesselator.end(); - RenderSystem.setShader(GameRenderer::getPositionColorShader); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + BufferUploader.drawWithShader(buffer.buildOrThrow()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); x = min * body.position().lineScale(); y = 0; @@ -165,8 +150,8 @@ public boolean render(CelestialBody body, GuiGraphics graphics, int count, float y2 = 0; for (int i = 0; i < 90; i++) { - buffer.vertex(model, x2, y2, 0).color(0.7F, 0.0F, 0.0F, alpha / 10.0F).endVertex(); - buffer.vertex(model, x, y, 0).color(0.7F, 0.0F, 0.0F, alpha / 10.0F).endVertex(); + buffer.addVertex(model, x2, y2, 0).setColor(0.7F, 0.0F, 0.0F, alpha / 10.0F); + buffer.addVertex(model, x, y, 0).setColor(0.7F, 0.0F, 0.0F, alpha / 10.0F); temp = x; x = cos * x - sin * y; @@ -175,11 +160,12 @@ public boolean render(CelestialBody body, GuiGraphics graphics, int count, x2 = cos * x2 - sin * y2; y2 = sin * temp + cos * y2; - buffer.vertex(model, x, y, 0).color(0.7F, 0.0F, 0.0F, alpha / 10.0F).endVertex(); - buffer.vertex(model, x2, y2, 0).color(0.7F, 0.0F, 0.0F, alpha / 10.0F).endVertex(); + buffer.addVertex(model, x, y, 0).setColor(0.7F, 0.0F, 0.0F, alpha / 10.0F); + buffer.addVertex(model, x2, y2, 0).setColor(0.7F, 0.0F, 0.0F, alpha / 10.0F); } - tesselator.end(); + RenderSystem.setShader(GameRenderer::getPositionColorShader); + BufferUploader.drawWithShader(buffer.buildOrThrow()); matrices.popPose(); return false; } diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/DefaultCelestialRingDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/DefaultCelestialRingDisplayType.java index da49115fd..5fc6183e7 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/DefaultCelestialRingDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/DefaultCelestialRingDisplayType.java @@ -22,6 +22,7 @@ package dev.galacticraft.impl.universe.display.type.ring; +import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import com.mojang.serialization.Codec; import dev.galacticraft.api.universe.celestialbody.CelestialBody; @@ -29,14 +30,10 @@ import dev.galacticraft.impl.universe.display.config.ring.DefaultCelestialRingDisplayConfig; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.client.renderer.ShaderInstance; import net.minecraft.util.Mth; import org.joml.Matrix4f; import org.joml.Vector3f; -import java.util.function.Consumer; -import java.util.function.Supplier; - public class DefaultCelestialRingDisplayType extends CelestialRingDisplayType { public static final DefaultCelestialRingDisplayType INSTANCE = new DefaultCelestialRingDisplayType(DefaultCelestialRingDisplayConfig.CODEC); @@ -45,8 +42,8 @@ public DefaultCelestialRingDisplayType(Codec } @Override - public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, Consumer> shaderSetter, DefaultCelestialRingDisplayConfig config) { - shaderSetter.accept(GameRenderer::getRendertypeLinesShader); + public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, DefaultCelestialRingDisplayConfig config) { + RenderSystem.setShader(GameRenderer::getRendertypeLinesShader); PoseStack matrices = graphics.pose(); @@ -72,49 +69,43 @@ public boolean render(CelestialBody body, GuiGraphics graphics, int count, default -> throw new IllegalStateException("Unexpected value: " + count % 2); }; - Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder buffer = tesselator.getBuilder(); - buffer.begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.LINE_STRIP, DefaultVertexFormat.POSITION_COLOR_NORMAL); float temp; float x1 = x; float y1 = y; Matrix4f model = matrices.last().pose(); for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos * x - sin * y; y = sin * temp + cos * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone x = x1; y = y1; for (int i = 0; i < 180; i++) { - buffer.vertex(model, x, y, 0).color(color[0], color[1], color[2], color[3]); + buffer.addVertex(model, x, y, 0).setColor(color[0], color[1], color[2], color[3]); if (i < 90) { - buffer.normal(1, 1, 1); + buffer.setNormal(1, 1, 1); } else { - buffer.normal(1, -1, -1); + buffer.setNormal(1, -1, -1); } - buffer.endVertex(); - temp = x; x = cos2 * x - sin2 * y; y = sin2 * temp + cos2 * y; } - buffer.vertex(model, x1, y1, 0).color(color[0], color[1], color[2], color[3]).normal(1, 1, 1).endVertex(); //LINE_LOOP is gone + buffer.addVertex(model, x1, y1, 0).setColor(color[0], color[1], color[2], color[3]).setNormal(1, 1, 1); //LINE_LOOP is gone - tesselator.end(); + BufferUploader.drawWithShader(buffer.buildOrThrow()); matrices.popPose(); return true; diff --git a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/EmptyCelestialRingDisplayType.java b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/EmptyCelestialRingDisplayType.java index 426eab1cc..8bdd05857 100644 --- a/src/main/java/dev/galacticraft/impl/universe/display/type/ring/EmptyCelestialRingDisplayType.java +++ b/src/main/java/dev/galacticraft/impl/universe/display/type/ring/EmptyCelestialRingDisplayType.java @@ -27,12 +27,8 @@ import dev.galacticraft.api.universe.display.ring.CelestialRingDisplayType; import dev.galacticraft.impl.universe.display.config.ring.DefaultCelestialRingDisplayConfig; import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.ShaderInstance; import org.joml.Vector3f; -import java.util.function.Consumer; -import java.util.function.Supplier; - public class EmptyCelestialRingDisplayType extends CelestialRingDisplayType { public static final EmptyCelestialRingDisplayType INSTANCE = new EmptyCelestialRingDisplayType(DefaultCelestialRingDisplayConfig.CODEC); @@ -41,7 +37,7 @@ public EmptyCelestialRingDisplayType(Codec co } @Override - public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, Consumer> shaderSetter, DefaultCelestialRingDisplayConfig config) { + public boolean render(CelestialBody body, GuiGraphics graphics, int count, Vector3f systemOffset, float lineScale, float alpha, double mouseX, double mouseY, float delta, DefaultCelestialRingDisplayConfig config) { return false; } } diff --git a/src/main/java/dev/galacticraft/impl/universe/galaxy/GalaxyImpl.java b/src/main/java/dev/galacticraft/impl/universe/galaxy/GalaxyImpl.java index 2e72a6e15..342d832a4 100644 --- a/src/main/java/dev/galacticraft/impl/universe/galaxy/GalaxyImpl.java +++ b/src/main/java/dev/galacticraft/impl/universe/galaxy/GalaxyImpl.java @@ -31,7 +31,7 @@ import dev.galacticraft.impl.universe.position.config.StaticCelestialPositionConfig; import dev.galacticraft.impl.universe.position.type.StaticCelestialPositionType; import dev.galacticraft.mod.util.Translations; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.network.chat.Component; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -43,7 +43,7 @@ public record GalaxyImpl(@NotNull Component name, CelestialPosition position, CelestialDisplay display) implements Galaxy { - public static void bootstrapRegistries(@NotNull BootstapContext context) { + public static void bootstrapRegistries(@NotNull BootstrapContext context) { context.register(BuiltinObjects.MILKY_WAY_KEY, createMilkyWay()); } diff --git a/src/main/java/dev/galacticraft/impl/universe/position/config/SatelliteConfig.java b/src/main/java/dev/galacticraft/impl/universe/position/config/SatelliteConfig.java index e9d9f4b55..5977543e2 100644 --- a/src/main/java/dev/galacticraft/impl/universe/position/config/SatelliteConfig.java +++ b/src/main/java/dev/galacticraft/impl/universe/position/config/SatelliteConfig.java @@ -34,9 +34,12 @@ import dev.galacticraft.api.universe.display.ring.CelestialRingDisplay; import dev.galacticraft.api.universe.galaxy.Galaxy; import dev.galacticraft.api.universe.position.CelestialPosition; +import dev.galacticraft.mod.util.StreamCodecs; import net.minecraft.core.Holder; import net.minecraft.core.registries.Registries; +import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.RegistryFileCodec; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.Level; @@ -59,6 +62,7 @@ public final class SatelliteConfig implements CelestialBodyConfig { Codec.INT.fieldOf("accessWeight").forGetter(SatelliteConfig::accessWeight), LevelStem.CODEC.fieldOf("dimension_options").forGetter(SatelliteConfig::dimensionOptions) ).apply(instance, SatelliteConfig::new)); + public static final StreamCodec STREAM_CODEC = StreamCodecs.wrapCodec(CODEC); private final Holder> parent; private final Holder galaxy; diff --git a/src/main/java/dev/galacticraft/mod/Constant.java b/src/main/java/dev/galacticraft/mod/Constant.java index 8861b584c..4bc34e87a 100644 --- a/src/main/java/dev/galacticraft/mod/Constant.java +++ b/src/main/java/dev/galacticraft/mod/Constant.java @@ -48,7 +48,7 @@ public interface Constant { @Contract(value = "_ -> new", pure = true) static @NotNull ResourceLocation id(String id) { - return new ResourceLocation(MOD_ID, id); + return ResourceLocation.fromNamespaceAndPath(MOD_ID, id); } @Contract(value = "_, _ -> new", pure = true) @@ -203,7 +203,6 @@ interface Block { String UNLIT_LANTERN = "unlit_lantern"; String CAVERNOUS_VINES = "cavernous_vines"; String CAVERNOUS_VINES_PLANT = "cavernous_vines_plant"; - String MOON_BERRY_BUSH = "moon_berry_bush"; String WEB_TORCH = "web_torch"; String FALLEN_METEOR = "fallen_meteor"; String SLIMELING_EGG = "slimeling_egg"; @@ -391,7 +390,6 @@ interface Item { String AMBIENT_THERMAL_CONTROLLER = "ambient_thermal_controller"; String LIQUID_CANISTER = "liquid_canister"; //FOOD - String MOON_BERRIES = "moon_berries"; String CHEESE_CURD = "cheese_curd"; String CHEESE_SLICE = "cheese_slice"; String BURGER_BUN = "burger_bun"; @@ -766,7 +764,7 @@ interface Energy { @ApiStatus.Internal interface Misc { ResourceLocation INVALID = Constant.id("invalid"); - ResourceLocation EMPTY = new ResourceLocation("empty"); + ResourceLocation EMPTY = ResourceLocation.withDefaultNamespace("empty"); Direction[] DIRECTIONS = Direction.values(); Direction[] HORIZONTALS = {Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST}; Direction[] VERTICALS = {Direction.UP, Direction.DOWN}; @@ -826,7 +824,7 @@ interface Carver { } interface Packet { - ResourceLocation BUBBLE_SIZE = id("bubble_size"); + ResourceLocation STREAM_CODECBUBBLE_SIZE = id("bubble_size"); ResourceLocation BUBBLE_MAX = id("bubble_max"); ResourceLocation BUBBLE_VISIBLE = id("bubble_visible"); ResourceLocation OPEN_GC_INVENTORY = id("open_gc_inv"); diff --git a/src/main/java/dev/galacticraft/mod/Galacticraft.java b/src/main/java/dev/galacticraft/mod/Galacticraft.java index 31e5ef4ac..b9ac01674 100644 --- a/src/main/java/dev/galacticraft/mod/Galacticraft.java +++ b/src/main/java/dev/galacticraft/mod/Galacticraft.java @@ -33,7 +33,7 @@ import dev.galacticraft.mod.events.GCEventHandlers; import dev.galacticraft.mod.lookup.GCApiLookupProviders; import dev.galacticraft.mod.machine.GCMachineStatuses; -import dev.galacticraft.mod.misc.banner.GCBannerPatterns; +import dev.galacticraft.mod.network.GCPackets; import dev.galacticraft.mod.network.GCServerPacketReceivers; import dev.galacticraft.mod.particle.GCParticleTypes; import dev.galacticraft.mod.recipe.GCRecipes; @@ -48,7 +48,7 @@ import dev.galacticraft.mod.world.gen.feature.GCOrePlacedFeatures; import dev.galacticraft.mod.world.gen.feature.GCPlacedFeatures; import dev.galacticraft.mod.world.gen.structure.GCStructureTypes; -import dev.galacticraft.mod.world.gen.surfacebuilder.MoonSurfaceRules; +import dev.galacticraft.mod.world.gen.surfacerule.MoonSurfaceRules; import dev.galacticraft.mod.world.poi.GCPointOfInterestTypes; import net.fabricmc.api.ModInitializer; import net.fabricmc.loader.api.FabricLoader; @@ -72,7 +72,6 @@ public void onInitialize() { GCRecipes.register(); GCEntityDataSerializers.register(); GCEntityTypes.register(); - GCLootTables.register(); GCGases.register(); GCOrePlacedFeatures.register(); GCPlacedFeatures.register(); @@ -85,13 +84,13 @@ public void onInitialize() { GCParticleTypes.register(); GCCommands.register(); GCLightSources.register(); + GCPackets.register(); GCServerPacketReceivers.register(); GCSounds.register(); GCPointOfInterestTypes.register(); MoonVillagerTypes.register(); GCVillagerProfessions.register(); GCMachineStatuses.register(); - GCBannerPatterns.register(); GCTeleporterTypes.register(); GCStats.register(); GCCelestialHandlers.register(); diff --git a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java index e941e3535..63946bb47 100644 --- a/src/main/java/dev/galacticraft/mod/GalacticraftClient.java +++ b/src/main/java/dev/galacticraft/mod/GalacticraftClient.java @@ -49,11 +49,12 @@ import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.events.ClientEventHandler; import dev.galacticraft.mod.misc.cape.CapesLoader; +import dev.galacticraft.mod.network.c2s.OpenGcInventoryPayload; +import dev.galacticraft.mod.network.c2s.OpenRocketPayload; import dev.galacticraft.mod.particle.GCParticleTypes; import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.screen.GCPlayerInventoryMenu; import dev.galacticraft.mod.screen.RocketMenu; -import io.netty.buffer.Unpooled; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; @@ -70,7 +71,6 @@ import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.ThrownItemRenderer; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.packs.PackType; import net.minecraft.world.level.material.Fluids; @@ -131,7 +131,6 @@ public void onInitializeClient() { GCClientPacketReceiver.register(); GCEntityModelLayer.register(); GalacticraftRocketPartRenderers.register(); - GalacticraftRocketPartRenderers.registerModelLoader(); GCKeyBinds.register(); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.TIN_LADDER, RenderType.cutout()); @@ -139,7 +138,6 @@ public void onInitializeClient() { BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.WALKWAY, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.WIRE_WALKWAY, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.FLUID_PIPE_WALKWAY, RenderType.cutout()); - BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.MOON_BERRY_BUSH, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.GLOWSTONE_TORCH, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.GLOWSTONE_WALL_TORCH, RenderType.cutout()); BlockRenderLayerMap.INSTANCE.putBlock(GCBlocks.UNLIT_TORCH, RenderType.cutout()); @@ -172,12 +170,8 @@ public void onInitializeClient() { ColorProviderRegistry.BLOCK.register((state, world, pos, tintIndex) -> FallenMeteorBlock.colorMultiplier(state, world, pos), GCBlocks.FALLEN_METEOR); BuiltinItemRendererRegistry.INSTANCE.register(GCItems.ROCKET, new RocketItemRenderer()); - InventoryTabRegistry.INSTANCE.register(GCItems.OXYGEN_MASK.getDefaultInstance(), () -> { - ClientPlayNetworking.send(Constant.Packet.OPEN_GC_INVENTORY, new FriendlyByteBuf(Unpooled.buffer(0))); - }, GCPlayerInventoryMenu.class); - InventoryTabRegistry.INSTANCE.register(GCItems.ROCKET.getDefaultInstance(), () -> { - ClientPlayNetworking.send(Constant.Packet.OPEN_GC_ROCKET, new FriendlyByteBuf(Unpooled.buffer(0))); - }, player -> player.getVehicle() instanceof RocketEntity, RocketMenu.class); + InventoryTabRegistry.INSTANCE.register(GCItems.OXYGEN_MASK.getDefaultInstance(), () -> ClientPlayNetworking.send(new OpenGcInventoryPayload()), GCPlayerInventoryMenu.class); + InventoryTabRegistry.INSTANCE.register(GCItems.ROCKET.getDefaultInstance(), () -> ClientPlayNetworking.send(new OpenRocketPayload()), player -> player.getVehicle() instanceof RocketEntity, RocketMenu.class); LivingEntityFeatureRendererRegistrationCallback.EVENT.register((entityType, entityRenderer, registrationHelper, context) -> { diff --git a/src/main/java/dev/galacticraft/mod/api/block/FluidLoggable.java b/src/main/java/dev/galacticraft/mod/api/block/FluidLoggable.java index c96645c25..c88571390 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/FluidLoggable.java +++ b/src/main/java/dev/galacticraft/mod/api/block/FluidLoggable.java @@ -49,7 +49,7 @@ public interface FluidLoggable extends BucketPickup, LiquidBlockContainer { FluidState EMPTY_STATE = Fluids.EMPTY.defaultFluidState(); - ResourceLocation INVALID = new ResourceLocation("invalid"); + ResourceLocation INVALID = ResourceLocation.withDefaultNamespace("invalid"); String DOT_REP = "_gc_dot_"; String DASH_REP = "_gc_dash_"; // yes this is bad.... but who's going to name a mod/fluid something like that String COLON_REP = "_gc_colon_"; @@ -75,7 +75,7 @@ public Collection getPossibleValues() { @Override public Optional getValue(String name) { - return Optional.of(new ResourceLocation(name.replace(DOT_REP, ".").replace(DASH_REP, "-").replace(COLON_REP, ":"))); + return Optional.of(ResourceLocation.parse(name.replace(DOT_REP, ".").replace(DASH_REP, "-").replace(COLON_REP, ":"))); } @Override diff --git a/src/main/java/dev/galacticraft/mod/api/block/FluidPipe.java b/src/main/java/dev/galacticraft/mod/api/block/FluidPipe.java index b05b690fd..70f371fbb 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/FluidPipe.java +++ b/src/main/java/dev/galacticraft/mod/api/block/FluidPipe.java @@ -29,7 +29,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -47,15 +46,14 @@ public FluidPipe(Properties settings) { } @Override - @Deprecated - public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (!world.isClientSide() && Galacticraft.CONFIG.isDebugLogEnabled() && FabricLoader.getInstance().isDevelopmentEnvironment()) { - BlockEntity entity = world.getBlockEntity(pos); + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + if (!level.isClientSide() && Galacticraft.CONFIG.isDebugLogEnabled() && FabricLoader.getInstance().isDevelopmentEnvironment()) { + BlockEntity entity = level.getBlockEntity(pos); if (entity instanceof Pipe pipe) { Constant.LOGGER.info("Network: {}", pipe.getNetwork()); } } - return super.use(state, world, pos, player, hand, hit); + return super.useWithoutItem(state, level, pos, player, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockBase.java b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockBase.java index b09074f0e..a9a7deff7 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockBase.java +++ b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockBase.java @@ -23,13 +23,11 @@ package dev.galacticraft.mod.api.block; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.BlockHitResult; import org.jetbrains.annotations.Unmodifiable; import java.util.List; @@ -50,7 +48,7 @@ default void onPartDestroyed(Level level, Player player, BlockState blockState, void onMultiBlockPlaced(Level level, BlockPos blockPos, BlockState blockState); - default InteractionResult onMultiBlockUse(BlockState blockState, Level level, BlockPos basePos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + default InteractionResult multiBlockUseWithoutItem(BlockState baseState, Level level, BlockPos basePos, Player player) { return InteractionResult.PASS; } } diff --git a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java index a5781207f..9fc13195b 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java +++ b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java @@ -22,8 +22,7 @@ package dev.galacticraft.mod.api.block; -import dev.galacticraft.machinelib.api.block.MachineBlock; -import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.block.SimpleMachineBlock; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.LivingEntity; @@ -36,7 +35,7 @@ import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; -public abstract class MultiBlockMachineBlock extends MachineBlock implements MultiBlockBase { +public abstract class MultiBlockMachineBlock extends SimpleMachineBlock implements MultiBlockBase { protected MultiBlockMachineBlock(Properties settings, ResourceLocation factory) { super(settings, factory); } diff --git a/src/main/java/dev/galacticraft/mod/api/block/WireBlock.java b/src/main/java/dev/galacticraft/mod/api/block/WireBlock.java index 0d3825a79..b64ece3c5 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/WireBlock.java +++ b/src/main/java/dev/galacticraft/mod/api/block/WireBlock.java @@ -29,7 +29,6 @@ import net.fabricmc.loader.api.FabricLoader; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -47,15 +46,14 @@ public WireBlock(Properties settings) { } @Override - @Deprecated - public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { - if (!world.isClientSide() && Galacticraft.CONFIG.isDebugLogEnabled() && FabricLoader.getInstance().isDevelopmentEnvironment()) { - BlockEntity entity = world.getBlockEntity(pos); + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + if (!level.isClientSide() && Galacticraft.CONFIG.isDebugLogEnabled() && FabricLoader.getInstance().isDevelopmentEnvironment()) { + BlockEntity entity = level.getBlockEntity(pos); if (entity instanceof Wire wire) { Constant.LOGGER.info("Network: {}", wire.getNetwork()); } } - return super.use(state, world, pos, player, hand, hit); + return super.useWithoutItem(state, level, pos, player, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/api/block/entity/AbstractSolarPanelBlockEntity.java b/src/main/java/dev/galacticraft/mod/api/block/entity/AbstractSolarPanelBlockEntity.java index c08b17c47..afce2ccaf 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/entity/AbstractSolarPanelBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/api/block/entity/AbstractSolarPanelBlockEntity.java @@ -25,35 +25,31 @@ import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; -import dev.galacticraft.machinelib.api.machine.MachineType; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.util.EnergySource; import dev.galacticraft.mod.machine.GCMachineStatuses; -import dev.galacticraft.mod.screen.SolarPanelMenu; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; public abstract class AbstractSolarPanelBlockEntity extends MachineBlockEntity implements SolarPanel { public static final int CHARGE_SLOT = 0; protected final boolean[] blockage = new boolean[9]; protected int blocked = 0; public long currentEnergyGeneration = 0; + private final EnergySource energySource = new EnergySource(this); - public AbstractSolarPanelBlockEntity(MachineType> type, BlockPos pos, BlockState state) { - super(type, pos, state); + public AbstractSolarPanelBlockEntity(BlockEntityType type, BlockPos pos, BlockState state, StorageSpec spec) { + super(type, pos, state, spec); } @Override public void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { profiler.push("charge"); - this.drainPowerToStack(CHARGE_SLOT); + this.drainPowerToSlot(CHARGE_SLOT); profiler.popPush("blockage"); this.blocked = 0; for (int x = -1; x < 2; x++) { //todo: cache? @@ -70,7 +66,7 @@ public void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @Not @Override public @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { profiler.push("push_energy"); - this.trySpreadEnergy(level, state); + this.energySource.trySpreadEnergy(level, pos, state); profiler.pop(); if (this.blocked >= 9) return GCMachineStatuses.BLOCKED; if (this.energyStorage().isFull()) return MachineStatuses.CAPACITOR_FULL; @@ -94,29 +90,6 @@ public void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @Not protected abstract long calculateEnergyProduction(long time, double multiplier); - @Nullable - @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new SolarPanelMenu<>( - syncId, - ((ServerPlayer) player), - this - ); - } - return null; - } - - @Override - public void writeScreenOpeningData(ServerPlayer player, @NotNull FriendlyByteBuf buf) { - super.writeScreenOpeningData(player, buf); - - buf.writeBoolean(this.followsSun()); - buf.writeBoolean(this.nightCollection()); - buf.writeByte(this.getSource().ordinal()); - buf.writeVarLong(this.getCurrentEnergyGeneration()); - } - @Override public boolean @NotNull [] getBlockage() { return this.blockage; diff --git a/src/main/java/dev/galacticraft/mod/api/block/entity/Walkway.java b/src/main/java/dev/galacticraft/mod/api/block/entity/Walkway.java index 410bcb27a..7f2afa358 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/entity/Walkway.java +++ b/src/main/java/dev/galacticraft/mod/api/block/entity/Walkway.java @@ -23,13 +23,12 @@ package dev.galacticraft.mod.api.block.entity; import dev.galacticraft.mod.Constant; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; import org.jetbrains.annotations.NotNull; import java.util.Objects; -import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; - public interface Walkway extends Connected { Direction getDirection(); diff --git a/src/main/java/dev/galacticraft/mod/api/data/recipe/GCRecipeBuilder.java b/src/main/java/dev/galacticraft/mod/api/data/recipe/GCRecipeBuilder.java index 1aaad93dd..1ed33fa90 100644 --- a/src/main/java/dev/galacticraft/mod/api/data/recipe/GCRecipeBuilder.java +++ b/src/main/java/dev/galacticraft/mod/api/data/recipe/GCRecipeBuilder.java @@ -77,7 +77,7 @@ public void save(RecipeOutput output, ResourceLocation id) { .rewards(AdvancementRewards.Builder.recipe(id)) .requirements(AdvancementRequirements.Strategy.OR); this.criteria.forEach(builder::addCriterion); - output.accept(new ResourceLocation(id.getNamespace(), this.subPath + '/' + id.getPath()), createRecipe(id), builder.build(id.withPrefix("recipes/"))); + output.accept(ResourceLocation.fromNamespaceAndPath(id.getNamespace(), this.subPath + '/' + id.getPath()), createRecipe(id), builder.build(id.withPrefix("recipes/"))); } public abstract Recipe createRecipe(ResourceLocation id); diff --git a/src/main/java/dev/galacticraft/mod/api/data/recipe/ShapelessCompressorRecipeBuilder.java b/src/main/java/dev/galacticraft/mod/api/data/recipe/ShapelessCompressorRecipeBuilder.java index 5dc733994..dd3459c4d 100644 --- a/src/main/java/dev/galacticraft/mod/api/data/recipe/ShapelessCompressorRecipeBuilder.java +++ b/src/main/java/dev/galacticraft/mod/api/data/recipe/ShapelessCompressorRecipeBuilder.java @@ -115,6 +115,6 @@ public void save(RecipeOutput output, ResourceLocation recipeId) { .rewards(AdvancementRewards.Builder.recipe(recipeId)) .requirements(AdvancementRequirements.Strategy.OR); this.criteria.forEach(builder::addCriterion); - output.accept(new ResourceLocation(recipeId.getNamespace(), "compressing/" + recipeId.getPath()), new ShapelessCompressingRecipe(this.group == null ? "" : this.group, new ItemStack(this.result, count), this.ingredients, 200), builder.build(recipeId.withPrefix("recipes/"))); + output.accept(ResourceLocation.fromNamespaceAndPath(recipeId.getNamespace(), "compressing/" + recipeId.getPath()), new ShapelessCompressingRecipe(this.group == null ? "" : this.group, new ItemStack(this.result, count), this.ingredients, 200), builder.build(recipeId.withPrefix("recipes/"))); } } diff --git a/src/main/java/dev/galacticraft/mod/api/wire/WireConnectionType.java b/src/main/java/dev/galacticraft/mod/api/wire/WireConnectionType.java index 648f5c000..f4304c51c 100644 --- a/src/main/java/dev/galacticraft/mod/api/wire/WireConnectionType.java +++ b/src/main/java/dev/galacticraft/mod/api/wire/WireConnectionType.java @@ -36,7 +36,7 @@ public enum WireConnectionType implements StringRepresentable { WIRE, /** - * The wire is connected to an output face of an energy holding block. + * The wire is connected to an result face of an energy holding block. */ ENERGY_INPUT, diff --git a/src/main/java/dev/galacticraft/mod/attachments/GCServerPlayer.java b/src/main/java/dev/galacticraft/mod/attachments/GCServerPlayer.java index db92ae041..eb56a2383 100644 --- a/src/main/java/dev/galacticraft/mod/attachments/GCServerPlayer.java +++ b/src/main/java/dev/galacticraft/mod/attachments/GCServerPlayer.java @@ -26,7 +26,6 @@ import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.galacticraft.api.rocket.RocketData; import net.minecraft.core.NonNullList; -import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.item.ItemStack; @@ -39,17 +38,10 @@ public class GCServerPlayer { public long fuel; public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - CompoundTag.CODEC.optionalFieldOf("rocket_data").forGetter(o -> { - if (o.rocketData != null) { - CompoundTag tag = new CompoundTag(); - o.rocketData.toNbt(tag); - return Optional.of(tag); - } - return Optional.empty(); - }), + RocketData.CODEC.optionalFieldOf("rocket_data").forGetter(o -> Optional.ofNullable(o.rocketData)), Codec.LONG.fieldOf("fuel").forGetter(GCServerPlayer::getFuel), ItemStack.CODEC.listOf().fieldOf("rocket_stacks").forGetter(GCServerPlayer::getRocketStacks) - ).apply(instance, GCServerPlayer::new)); + ).apply(instance, (data, fuel, stacks) -> new GCServerPlayer(data.orElse(null), fuel, stacks))); public static GCServerPlayer get(ServerPlayer player) { return player.getAttachedOrCreate(GCAttachments.SERVER_PLAYER, () -> new GCServerPlayer(player)); @@ -59,8 +51,8 @@ public static GCServerPlayer get(ServerPlayer player) { public GCServerPlayer(ServerPlayer player) { } - public GCServerPlayer(Optional data, long fuel, List stacks) { - this.rocketData = data.map(RocketData::fromNbt).orElse(null); + public GCServerPlayer(RocketData data, long fuel, List stacks) { + this.rocketData = data; this.fuel = fuel; this.stacks = NonNullList.of(ItemStack.EMPTY, stacks.toArray(ItemStack[]::new)); } diff --git a/src/main/java/dev/galacticraft/mod/client/gl/BufferWriter.java b/src/main/java/dev/galacticraft/mod/client/gl/BufferWriter.java deleted file mode 100644 index 041ee54dd..000000000 --- a/src/main/java/dev/galacticraft/mod/client/gl/BufferWriter.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.gl; - -import com.google.common.collect.ImmutableList; -import com.mojang.blaze3d.vertex.BufferVertexConsumer; -import com.mojang.blaze3d.vertex.DefaultedVertexConsumer; -import com.mojang.blaze3d.vertex.VertexFormat; -import com.mojang.blaze3d.vertex.VertexFormatElement; -import com.mojang.logging.LogUtils; -import org.jetbrains.annotations.Nullable; -import org.joml.Vector3fc; -import org.joml.Vector4fc; -import org.lwjgl.system.MemoryUtil; -import org.slf4j.Logger; - -import java.nio.ByteBuffer; - -public class BufferWriter extends DefaultedVertexConsumer implements BufferVertexConsumer { - private static final Logger LOGGER = LogUtils.getLogger(); - private static final int FLOAT32_SIZE = 4; - private static final int INT16_SIZE = 2; - private static final int INT32_SIZE = 4; - - private int nextElementByte; - private int vertices; - @Nullable - private VertexFormatElement currentElement; - private int elementIndex; - private VertexFormat format; - ByteBuffer data; - - public BufferWriter(VertexFormat format, int initialSize) { - this.data = MemoryUtil.memAlloc(initialSize); - this.format = format; - this.currentElement = format.getElements().get(0); - } - - public BufferWriter(VertexFormat format) { - this(format, 64); - } - - public void rewind() { - this.data.rewind(); - } - - public void int3(int a, int b, int c) { - this.ensureCapacity(INT32_SIZE * 3); - this.data.putInt(a).putInt(b).putInt(c); - } - - public void free() { - MemoryUtil.memFree(this.data); - } - - private void ensureCapacity(int bytes) { - if (this.data.remaining() >= bytes) return; - this.data = MemoryUtil.memRealloc(this.data, this.data.capacity() * 2); - - LOGGER.debug("Resizing buffer from " + this.data.capacity() + " bytes to " + this.data.capacity() * 2); - } - - @Override - public VertexFormatElement currentElement() { - if (this.currentElement == null) { - throw new IllegalStateException("BufferWriter not started"); - } else { - return this.currentElement; - } - } - - @Override - public void nextElement() { - ImmutableList elements = this.format.getElements(); - this.elementIndex = (this.elementIndex + 1) % elements.size(); - this.nextElementByte += this.currentElement.getByteSize(); - VertexFormatElement vertexFormatElement = elements.get(this.elementIndex); - this.currentElement = vertexFormatElement; - if (vertexFormatElement.getUsage() == VertexFormatElement.Usage.PADDING) { // Why does mojank have this? - this.nextElement(); - } - - if (this.defaultColorSet && this.currentElement.getUsage() == VertexFormatElement.Usage.COLOR) { - BufferVertexConsumer.super.color(this.defaultR, this.defaultG, this.defaultB, this.defaultA); - } - } - - @Override - public void putByte(int index, byte byteValue) { -// this.ensureCapacity(1); - this.data.put(byteValue); - } - - @Override - public void putShort(int index, short shortValue) { -// this.ensureCapacity(INT16_SIZE); - this.data.putShort(shortValue); - } - - @Override - public void putFloat(int index, float floatValue) { -// this.ensureCapacity(FLOAT32_SIZE); - this.data.putFloat(floatValue); - } - - @Override - public void endVertex() { - if (this.elementIndex != 0) { - throw new IllegalStateException("Not filled all elements of the vertex"); - } else { - ++this.vertices; - this.ensureCapacity(format.getVertexSize()); - } - } -} diff --git a/src/main/java/dev/galacticraft/mod/client/gl/GlElementArrayBuffer.java b/src/main/java/dev/galacticraft/mod/client/gl/GlElementArrayBuffer.java deleted file mode 100644 index e6bcc4035..000000000 --- a/src/main/java/dev/galacticraft/mod/client/gl/GlElementArrayBuffer.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.gl; - -import static org.lwjgl.opengl.GL45.*; - -public class GlElementArrayBuffer extends GlObject { - - private int eboSize = 0; - - public GlElementArrayBuffer() { - super(glGenBuffers()); - } - - public void bind() { - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, this.handle); - } - - public void unbind() { - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - } - - public void upload(BufferWriter writer, boolean dynamic) { - this.bind(); - - if (writer.data.position() > this.eboSize) { - glBufferData(GL_ELEMENT_ARRAY_BUFFER, writer.data.slice(0, writer.data.position()), dynamic ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); - this.eboSize = writer.data.position(); - } else { - glBufferSubData(GL_ELEMENT_ARRAY_BUFFER, 0, writer.data.slice(0, writer.data.position())); - } - - this.unbind(); - } - - public void delete() { - glDeleteBuffers(this.handle); - } -} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/gl/GlVertexBuffer.java b/src/main/java/dev/galacticraft/mod/client/gl/GlVertexBuffer.java deleted file mode 100644 index 677f18482..000000000 --- a/src/main/java/dev/galacticraft/mod/client/gl/GlVertexBuffer.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.gl; - -import static org.lwjgl.opengl.GL45.*; - -public class GlVertexBuffer extends GlObject { - - private int vboSize = 0; - - public GlVertexBuffer() { - super(glGenBuffers()); - } - - public void bind() { - glBindBuffer(GL_ARRAY_BUFFER, this.handle); - } - - public void unbind() { - glBindBuffer(GL_ARRAY_BUFFER, 0); - } - - public void upload(BufferWriter writer, boolean dynamic) { - this.bind(); - - if (writer.data.position() > this.vboSize) { - glBufferData(GL_ARRAY_BUFFER, writer.data.slice(0, writer.data.position()), dynamic ? GL_DYNAMIC_DRAW : GL_STATIC_DRAW); - this.vboSize = writer.data.position(); - } else { - glBufferSubData(GL_ARRAY_BUFFER, 0, writer.data.slice(0, writer.data.position())); - } - - this.unbind(); - } - - public void delete() { - glDeleteBuffers(this.handle); - } -} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/gl/MeshBuffer.java b/src/main/java/dev/galacticraft/mod/client/gl/MeshBuffer.java deleted file mode 100644 index ec739e2f5..000000000 --- a/src/main/java/dev/galacticraft/mod/client/gl/MeshBuffer.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.gl; - -import com.mojang.blaze3d.platform.GlConst; -import com.mojang.blaze3d.platform.GlStateManager; -import com.mojang.blaze3d.platform.Window; -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferUploader; -import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.VertexBuffer; -import com.mojang.blaze3d.vertex.VertexFormat; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.ShaderInstance; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL30; - -/** - * More flexible version of {@link com.mojang.blaze3d.vertex.VertexBuffer} - */ -public class MeshBuffer { - private GlVertexBuffer vbo; - private GlElementArrayBuffer ebo; - private GlVertexArray vao; - private final VertexFormat format; - public final BufferWriter buffer; - public final BufferWriter indicesBuffer; - - public MeshBuffer(VertexFormat format) { - RenderSystem.assertOnRenderThread(); - this.vbo = new GlVertexBuffer(); - this.vao = new GlVertexArray(); - this.ebo = new GlElementArrayBuffer(); - - this.format = format; - - this.buffer = new BufferWriter(format, 786432); - this.indicesBuffer = new BufferWriter(format, 786432); - } - - public void upload(boolean dynamic) { - this.vbo.bind(); - this.vao.bind(); - this.ebo.bind(); - format.setupBufferState(); - - this.vbo.upload(this.buffer, dynamic); - this.ebo.upload(this.indicesBuffer, dynamic); - } - - /** - * Render this mesh to the screen. - * @param mode The current vertex mode to use (avoid using {@link GL11#GL_QUADS} and {@link GL11#GL_QUAD_STRIP} as they are deprecated) - * @param modelMatrix The models transform to use in the shader - */ - public void draw(int mode, PoseStack modelMatrix, ShaderInstance shader) { - this.vao.bind(); - for(int i = 0; i < 12; ++i) { - int j = RenderSystem.getShaderTexture(i); - shader.setSampler("Sampler" + i, j); - } - - if (shader.MODEL_VIEW_MATRIX != null) { - shader.MODEL_VIEW_MATRIX.set(modelMatrix.last().pose()); - } - - if (shader.PROJECTION_MATRIX != null) { - shader.PROJECTION_MATRIX.set(RenderSystem.getProjectionMatrix()); - } - - if (shader.INVERSE_VIEW_ROTATION_MATRIX != null) { - shader.INVERSE_VIEW_ROTATION_MATRIX.set(RenderSystem.getInverseViewRotationMatrix()); - } - - if (shader.COLOR_MODULATOR != null) { - shader.COLOR_MODULATOR.set(RenderSystem.getShaderColor()); - } - - if (shader.GLINT_ALPHA != null) { - shader.GLINT_ALPHA.set(RenderSystem.getShaderGlintAlpha()); - } - - if (shader.FOG_START != null) { - shader.FOG_START.set(RenderSystem.getShaderFogStart()); - } - - if (shader.FOG_END != null) { - shader.FOG_END.set(RenderSystem.getShaderFogEnd()); - } - - if (shader.FOG_COLOR != null) { - shader.FOG_COLOR.set(RenderSystem.getShaderFogColor()); - } - - if (shader.FOG_SHAPE != null) { - shader.FOG_SHAPE.set(RenderSystem.getShaderFogShape().getIndex()); - } - - if (shader.TEXTURE_MATRIX != null) { - shader.TEXTURE_MATRIX.set(RenderSystem.getTextureMatrix()); - } - - if (shader.GAME_TIME != null) { - shader.GAME_TIME.set(RenderSystem.getShaderGameTime()); - } - - if (shader.SCREEN_SIZE != null) { - Window window = Minecraft.getInstance().getWindow(); - shader.SCREEN_SIZE.set((float)window.getWidth(), (float)window.getHeight()); - } - - if (shader.LINE_WIDTH != null && (mode == GlConst.GL_LINES || mode == GlConst.GL_LINE_STRIP)) { - shader.LINE_WIDTH.set(RenderSystem.getShaderLineWidth()); - } - - RenderSystem.setupShaderLights(shader); - shader.apply(); - - this.ebo.bind(); - RenderSystem.drawElements(mode, this.indicesBuffer.data.position() / 4, GlConst.GL_UNSIGNED_INT); - shader.clear(); - this.vao.unbind(); - } - - /** - * Render this mesh to the screen. - * @param modelMatrix The models transform to use in the shader - */ - public void draw(PoseStack modelMatrix, ShaderInstance shader) { -// RenderSystem.setShader(() -> shader); - draw(GlConst.GL_TRIANGLES, modelMatrix, shader); - } - - public void delete() { - this.vao.delete(); - this.ebo.delete(); - this.vbo.delete(); - this.buffer.free(); - this.indicesBuffer.free(); - } -} diff --git a/src/main/java/dev/galacticraft/mod/client/gui/overlay/CountdownOverlay.java b/src/main/java/dev/galacticraft/mod/client/gui/overlay/CountdownOverlay.java index 8726d186f..64de610d6 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/overlay/CountdownOverlay.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/overlay/CountdownOverlay.java @@ -24,12 +24,13 @@ import dev.galacticraft.api.rocket.LaunchStage; import dev.galacticraft.mod.content.entity.orbital.RocketEntity; +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.util.FastColor; public class CountdownOverlay { - public static void renderCountdown(GuiGraphics graphics, float tickDelta) { + public static void renderCountdown(GuiGraphics graphics, DeltaTracker delta) { Minecraft mc = Minecraft.getInstance(); if (mc.player.getVehicle() instanceof RocketEntity rocket && rocket.getLaunchStage() == LaunchStage.IGNITED) { int count = (int) Math.floor(((float) rocket.getTimeAsState()) / 20.0f); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/overlay/LanderOverlay.java b/src/main/java/dev/galacticraft/mod/client/gui/overlay/LanderOverlay.java index 893770034..0198285ee 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/overlay/LanderOverlay.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/overlay/LanderOverlay.java @@ -25,6 +25,7 @@ import com.mojang.blaze3d.platform.Window; import dev.galacticraft.mod.content.entity.orbital.lander.LanderEntity; import dev.galacticraft.mod.util.Translations; +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; @@ -33,7 +34,7 @@ public class LanderOverlay { private static long tickCount; - public static void onRenderHud(GuiGraphics graphics, float tickDelta) { + public static void onRenderHud(GuiGraphics graphics, DeltaTracker delta) { Minecraft mc = Minecraft.getInstance(); final Window scaledresolution = mc.getWindow(); final int width = scaledresolution.getGuiScaledWidth(); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/overlay/OxygenOverlay.java b/src/main/java/dev/galacticraft/mod/client/gui/overlay/OxygenOverlay.java index e69b29748..4452c9c60 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/overlay/OxygenOverlay.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/overlay/OxygenOverlay.java @@ -24,8 +24,6 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyConfig; -import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.machinelib.api.util.StorageHelper; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.util.DrawableUtil; @@ -33,16 +31,18 @@ import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.fabricmc.fabric.api.transfer.v1.storage.Storage; +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.core.Holder; import net.minecraft.world.Container; public class OxygenOverlay { - public static void onHudRender(GuiGraphics graphics, float tickDelta) { + public static void onHudRender(GuiGraphics graphics, DeltaTracker delta) { Minecraft mc = Minecraft.getInstance(); if (mc.level != null && mc.player != null && !mc.player.isSpectator()) { - CelestialBody> body = CelestialBody.getByDimension(mc.level).orElse(null); - if (body != null && !body.atmosphere().breathable()) { + Holder> body = mc.level.galacticraft$getCelestialBody(); + if (body != null && !body.value().atmosphere().breathable()) { Container inv = mc.player.galacticraft$getOxygenTanks(); final int y = 4; for (int i = 0; i < inv.getContainerSize(); i++) { @@ -55,8 +55,8 @@ public static void onHudRender(GuiGraphics graphics, float tickDelta) { long capacity = 1; if (storage != null) { - amount = StorageHelper.calculateAmount(FluidVariant.of(Gases.OXYGEN), storage, null); - capacity = StorageHelper.calculateCapacity(FluidVariant.of(Gases.OXYGEN), storage, null); + amount = StorageHelper.calculateAmount(FluidVariant.of(Gases.OXYGEN), storage); + capacity = StorageHelper.theoreticalCapacity(storage); } else if (mc.player.isCreative()) { amount = capacity; } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/overlay/RocketOverlay.java b/src/main/java/dev/galacticraft/mod/client/gui/overlay/RocketOverlay.java index 1f3c93cca..a3da95fb3 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/overlay/RocketOverlay.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/overlay/RocketOverlay.java @@ -27,6 +27,7 @@ import com.mojang.math.Axis; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.entity.orbital.RocketEntity; +import net.minecraft.client.DeltaTracker; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.renderer.GameRenderer; @@ -58,7 +59,7 @@ protected static int getPlayerPositionY(Player player) return (int) Math.floor(player.getY()); } - public static void onHudRender(GuiGraphics graphics, float tickDelta) { + public static void onHudRender(GuiGraphics graphics, DeltaTracker delta) { Minecraft mc = Minecraft.getInstance(); if (playerHead == null) { playerHead = mc.getSkinManager().getInsecureSkin(mc.player.getGameProfile()).texture(); @@ -80,15 +81,13 @@ public static void onHudRender(GuiGraphics graphics, float tickDelta) { float var8 = 1.0F; float sizeScale = 0.65F; - final Tesselator tess = Tesselator.getInstance(); - BufferBuilder worldRenderer = tess.getBuilder(); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); RenderSystem.setShader(GameRenderer::getPositionTexShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer.vertex(var1 + 0, var2 + 242.0F * sizeScale, 0.0).uv((var3 + 0) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + 20.0F * sizeScale, var2 + 242.0F * sizeScale, 0.0).uv((var3 + var5) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + 20.0F * sizeScale, var2 + 0, 0.0).uv((var3 + var5) * var7, (var4 + 0) * var8).endVertex(); - worldRenderer.vertex(var1 + 0, var2 + 0, 0.0).uv((var3 + 0) * var7, (var4 + 0) * var8).endVertex(); - BufferUploader.drawWithShader(worldRenderer.end()); + buffer.addVertex(var1 + 0, var2 + 242.0F * sizeScale, 0.0F).setUv((var3 + 0) * var7, (var4 + var6) * var8) + .addVertex(var1 + 20.0F * sizeScale, var2 + 242.0F * sizeScale, 0.0F).setUv((var3 + var5) * var7, (var4 + var6) * var8) + .addVertex(var1 + 20.0F * sizeScale, var2 + 0, 0.0F).setUv((var3 + var5) * var7, (var4 + 0) * var8) + .addVertex(var1 + 0, var2 + 0, 0.0F).setUv((var3 + 0) * var7, (var4 + 0) * var8); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); @@ -118,7 +117,7 @@ public static void onHudRender(GuiGraphics graphics, float tickDelta) { try { MultiBufferSource.BufferSource source = Minecraft.getInstance().renderBuffers().bufferSource(); - spaceshipRender.render(rocketEntity, rocketEntity.getYRot(), tickDelta, graphics.pose(), source, LightTexture.FULL_BRIGHT); + spaceshipRender.render(rocketEntity, rocketEntity.getYRot(), delta.getGameTimeDeltaTicks(), graphics.pose(), source, LightTexture.FULL_BRIGHT); source.endBatch(); } catch (Exception e) { e.printStackTrace(); @@ -132,20 +131,20 @@ public static void onHudRender(GuiGraphics graphics, float tickDelta) { graphics.pose().translate(0F, -12F + headOffset, 60F); RenderSystem.setShader(GameRenderer::getPositionTexShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer.vertex(var1 + 0, var2 + var6 - 10, 0.0).uv((var3 + 0) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + var5, var2 + var6 - 10, 0.0).uv((var3 + var5) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + var5, var2 - 10, 0.0).uv((var3 + var5) * var7, (var4 + 0) * var8).endVertex(); - worldRenderer.vertex(var1 + 0, var2 - 10, 0.0).uv((var3 + 0) * var7, (var4 + 0) * var8).endVertex(); - BufferUploader.drawWithShader(worldRenderer.end()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(var1 + 0, var2 + var6 - 10, 0.0F).setUv((var3 + 0) * var7, (var4 + var6) * var8) + .addVertex(var1 + var5, var2 + var6 - 10, 0.0F).setUv((var3 + var5) * var7, (var4 + var6) * var8) + .addVertex(var1 + var5, var2 - 10, 0.0F).setUv((var3 + var5) * var7, (var4 + 0) * var8) + .addVertex(var1 + 0, var2 - 10, 0.0F).setUv((var3 + 0) * var7, (var4 + 0) * var8); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShader(GameRenderer::getPositionTexShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer.vertex(var1 + 0, var2 + var6, 0.0).uv((var3b + 0) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + var5, var2 + var6, 0.0).uv((var3b + var5) * var7, (var4 + var6) * var8).endVertex(); - worldRenderer.vertex(var1 + var5, var2 + 0, 0.0).uv((var3b + var5) * var7, (var4 + 0) * var8).endVertex(); - worldRenderer.vertex(var1 + 0, var2 + 0, 0.0).uv((var3b + 0) * var7, (var4 + 0) * var8).endVertex(); - BufferUploader.drawWithShader(worldRenderer.end()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(var1 + 0, var2 + var6, 0.0F).setUv((var3b + 0) * var7, (var4 + var6) * var8) + .addVertex(var1 + var5, var2 + var6, 0.0F).setUv((var3b + var5) * var7, (var4 + var6) * var8) + .addVertex(var1 + var5, var2 + 0, 0.0F).setUv((var3b + var5) * var7, (var4 + 0) * var8) + .addVertex(var1 + 0, var2 + 0, 0.0F).setUv((var3b + 0) * var7, (var4 + 0) * var8); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.disableBlend(); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialScreen.java index 1fcc17a85..9f846cc6c 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialScreen.java @@ -530,7 +530,7 @@ public void drawCelestialBodies(GuiGraphics graphics, double mouseX, double mous this.setupMatrix(body, matrices, moon ? 0.25F : 1.0F, delta); CelestialDisplay display = body.display(); RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, alpha); - Vector4f vector4f = display.render(graphics, Tesselator.getInstance().getBuilder(), getWidthForCelestialBody(body), mouseX, mouseY, delta); + Vector4f vector4f = display.render(graphics, Tesselator.getInstance(), getWidthForCelestialBody(body), mouseX, mouseY, delta); Matrix4f planetMatrix = matrices.last().pose(); Matrix4f matrix0 = RenderSystem.getProjectionMatrix().mul(planetMatrix, planetMatrix); @@ -597,18 +597,17 @@ public void setIsometric(float delta, PoseStack matrices) { */ public void drawGrid(GuiGraphics graphics, float gridSize, float gridScale) { RenderSystem.depthMask(false); - VertexConsumer vertexConsumer = graphics.bufferSource().getBuffer(RenderType.LINES); + VertexConsumer buffer = graphics.bufferSource().getBuffer(RenderType.LINES); Matrix4f model = graphics.pose().last().pose(); RenderSystem.lineWidth(2.0f); gridSize += gridScale / 2.0f; for (float v = -gridSize; v <= gridSize; v += gridScale) { - vertexConsumer.vertex(model, v, -gridSize, 0).color(0, 51, 127, 140).normal(1.0f, 1.0f, 1.0f).endVertex(); - vertexConsumer.vertex(model, v, gridSize, 0).color(0, 51, 127, 140).normal(1.0f, 1.0f, 1.0f).endVertex(); - - vertexConsumer.vertex(model, -gridSize, v, 0).color(0, 51, 127, 140).normal(1.0f, 0.0f, 1.0f).endVertex(); - vertexConsumer.vertex(model, gridSize, v, 0).color(0, 51, 127, 140).normal(1.0f, 0.0f, 1.0f).endVertex(); + buffer.addVertex(model, v, -gridSize, 0).setColor(0, 51, 127, 140).setNormal(1.0f, 1.0f, 1.0f) + .addVertex(model, v, gridSize, 0).setColor(0, 51, 127, 140).setNormal(1.0f, 1.0f, 1.0f) + .addVertex(model, -gridSize, v, 0).setColor(0, 51, 127, 140).setNormal(1.0f, 0.0f, 1.0f) + .addVertex(model, gridSize, v, 0).setColor(0, 51, 127, 140).setNormal(1.0f, 0.0f, 1.0f); } graphics.bufferSource().endBatch(); @@ -627,7 +626,7 @@ public void drawOrbitRings(GuiGraphics graphics, double mouseX, double mouseY, f if (body.parent() != null) { systemOffset = getCelestialBodyPosition(body.parent().value(), delta); } - if (body.ring().render(body, graphics, count, systemOffset, getAlpha(body), lineScale(body), mouseX, mouseY, delta, RenderSystem::setShader)) + if (body.ring().render(body, graphics, count, systemOffset, getAlpha(body), lineScale(body), mouseX, mouseY, delta)) count++; } RenderSystem.lineWidth(1.0f); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialSelectionScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialSelectionScreen.java index f4f39096f..7b100eb56 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialSelectionScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CelestialSelectionScreen.java @@ -36,13 +36,13 @@ import dev.galacticraft.impl.universe.position.config.SatelliteConfig; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.client.util.Graphics; +import dev.galacticraft.mod.network.c2s.PlanetTeleportPayload; +import dev.galacticraft.mod.network.c2s.SatelliteCreationPayload; import dev.galacticraft.mod.util.Translations; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; -import net.minecraft.SharedConstants; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.resources.language.I18n; @@ -50,6 +50,7 @@ import net.minecraft.network.chat.contents.TranslatableContents; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FastColor; +import net.minecraft.util.StringUtil; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Ingredient; import org.jetbrains.annotations.Nullable; @@ -267,7 +268,7 @@ public boolean keyPressed(int key, int scanCode, int modifiers) { @Override public boolean charTyped(char character, int modifiers) { - if (this.renamingSpaceStation && SharedConstants.isAllowedChatCharacter(character)) { + if (this.renamingSpaceStation && StringUtil.isAllowedChatCharacter(character)) { this.renamingString = this.renamingString + character; this.renamingString = this.renamingString.substring(0, Math.min(this.renamingString.length(), MAX_SPACE_STATION_NAME_LENGTH)); return true; @@ -277,7 +278,7 @@ public boolean charTyped(char character, int modifiers) { } public boolean isValid(String string) { - return !string.isEmpty() && SharedConstants.isAllowedChatCharacter(string.charAt(string.length() - 1)); + return !string.isEmpty() && StringUtil.isAllowedChatCharacter(string.charAt(string.length() - 1)); } protected boolean canCreateSpaceStation(CelestialBody atBody) { @@ -321,7 +322,7 @@ protected void teleportToSelectedBody() { if (this.data == null || this.data.canTravel(manager, this.fromBody, this.selectedBody)) { try { assert this.minecraft != null; - ClientPlayNetworking.send(Constant.Packet.PLANET_TP, PacketByteBufs.create().writeResourceLocation(celestialBodies.getKey(this.selectedBody))); + ClientPlayNetworking.send(new PlanetTeleportPayload(celestialBodies.getKey(this.selectedBody))); this.minecraft.setScreen(new SpaceTravelScreen(isSatellite(selectedBody) ? ((Satellite) this.selectedBody.type()).getCustomName(this.selectedBody.config()).getString() : ((TranslatableContents)this.selectedBody.name().getContents()).getKey(), ((Landable) this.selectedBody.type()).world(this.selectedBody.config()))); } catch (Exception e) { e.printStackTrace(); @@ -361,7 +362,7 @@ public boolean mouseClicked(double x, double y, int button) { if (recipe.test(this.minecraft.player.getInventory()) || this.minecraft.player.getAbilities().instabuild) { // GalacticraftCore.packetPipeline.sendToServer(new PacketSimple(EnumSimplePacket.S_BIND_SPACE_STATION_ID, GCCoreUtil.getWorld(this.minecraft.level), new Object[]{this.selectedBody.getWorld()})); - ClientPlayNetworking.send(Constant.Packet.CREATE_SATELLITE, PacketByteBufs.create().writeResourceLocation(celestialBodies.getKey(this.selectedBody))); + ClientPlayNetworking.send(new SatelliteCreationPayload(celestialBodies.getHolderOrThrow(celestialBodies.getResourceKey(this.selectedBody).get()))); //Zoom in on planet to show the new SpaceStation if not already zoomed if (!this.isZoomed()) { diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CircuitFabricatorScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CircuitFabricatorScreen.java index fec778019..5c96fa28b 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CircuitFabricatorScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/CircuitFabricatorScreen.java @@ -34,11 +34,11 @@ import net.fabricmc.api.Environment; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.crafting.RecipeInput; @Environment(EnvType.CLIENT) -public class CircuitFabricatorScreen extends MachineScreen> { +public class CircuitFabricatorScreen extends MachineScreen> { private static final int PROGRESS_SIZE = 4; private static final int INITIAL_PROGRESS_U = 0; private static final int INITIAL_PROGRESS_V = 186; @@ -74,7 +74,7 @@ public class CircuitFabricatorScreen extends MachineScreen handler, Inventory inv, Component title) { + public CircuitFabricatorScreen(RecipeMachineMenu handler, Inventory inv, Component title) { super(handler, title, Constant.ScreenTexture.CIRCUIT_FABRICATOR_SCREEN); this.imageHeight = 176; diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricArcFurnaceScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricArcFurnaceScreen.java index db94c2723..a62b30160 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricArcFurnaceScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricArcFurnaceScreen.java @@ -29,11 +29,11 @@ import dev.galacticraft.mod.util.DrawableUtil; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.item.crafting.BlastingRecipe; +import net.minecraft.world.item.crafting.SingleRecipeInput; -public class ElectricArcFurnaceScreen extends MachineScreen> { +public class ElectricArcFurnaceScreen extends MachineScreen> { private static final int ARROW_X = 68; private static final int ARROW_Y = 35; private static final int ARROW_U = 176; @@ -41,7 +41,7 @@ public class ElectricArcFurnaceScreen extends MachineScreen handler, Inventory inv, Component title) { + public ElectricArcFurnaceScreen(RecipeMachineMenu handler, Inventory inv, Component title) { super(handler, title, Constant.ScreenTexture.ELECTRIC_ARC_FURNACE_SCREEN); } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricCompressorScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricCompressorScreen.java index 92499e211..3368e1707 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricCompressorScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricCompressorScreen.java @@ -34,10 +34,10 @@ import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.crafting.CraftingInput; @Environment(EnvType.CLIENT) -public class ElectricCompressorScreen extends MachineScreen> { +public class ElectricCompressorScreen extends MachineScreen> { private static final int PROGRESS_U = 177; private static final int PROGRESS_V = 0; private static final int PROGRESS_X = 87; @@ -45,7 +45,7 @@ public class ElectricCompressorScreen extends MachineScreen handler, Inventory inv, Component title) { + public ElectricCompressorScreen(RecipeMachineMenu handler, Inventory inv, Component title) { super(handler, title, Constant.ScreenTexture.ELECTRIC_COMPRESSOR_SCREEN); } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricFurnaceScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricFurnaceScreen.java index 780756256..579bef18f 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricFurnaceScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/ElectricFurnaceScreen.java @@ -29,11 +29,11 @@ import dev.galacticraft.mod.util.DrawableUtil; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.network.chat.Component; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.item.crafting.SmeltingRecipe; -public class ElectricFurnaceScreen extends MachineScreen> { +public class ElectricFurnaceScreen extends MachineScreen> { private static final int ARROW_X = 74; private static final int ARROW_Y = 34; private static final int ARROW_U = 176; @@ -41,7 +41,7 @@ public class ElectricFurnaceScreen extends MachineScreen handler, Inventory inv, Component title) { + public ElectricFurnaceScreen(RecipeMachineMenu handler, Inventory inv, Component title) { super(handler, title, Constant.ScreenTexture.ELECTRIC_FURNACE_SCREEN); } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/FuelLoaderScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/FuelLoaderScreen.java index 577a82b7f..a98566d62 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/FuelLoaderScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/FuelLoaderScreen.java @@ -67,9 +67,9 @@ public FuelLoaderScreen(FuelLoaderMenu handler, Inventory inv, Component title) protected void renderMachineBackground(GuiGraphics graphics, int mouseX, int mouseY, float delta) { super.renderMachineBackground(graphics, mouseX, mouseY, delta); - FluidResourceSlot slot = this.menu.fluidStorage.getSlot(FuelLoaderBlockEntity.FUEL_TANK); + FluidResourceSlot slot = this.menu.fluidStorage.slot(FuelLoaderBlockEntity.FUEL_TANK); if (!slot.isEmpty()) { - GraphicsUtil.drawFluid(graphics, this.leftPos + 69, this.topPos + 8, TANK_OVERLAY_WIDTH, TANK_OVERLAY_HEIGHT, slot.getCapacity(), FluidVariant.of(slot.getResource(), slot.getTag()), slot.getAmount()); + GraphicsUtil.drawFluid(graphics, this.leftPos + 69, this.topPos + 8, TANK_OVERLAY_WIDTH, TANK_OVERLAY_HEIGHT, slot.getCapacity(), FluidVariant.of(slot.getResource(), slot.getComponents()), slot.getAmount()); graphics.blit(Constant.ScreenTexture.FUEL_LOADER_SCREEN, this.leftPos + 69, this.topPos + 8, TANK_OVERLAY_U, TANK_OVERLAY_V, TANK_OVERLAY_WIDTH, TANK_OVERLAY_HEIGHT); } @@ -89,8 +89,8 @@ public void renderTooltip(GuiGraphics graphics, int mouseX, int mouseY) { super.renderTooltip(graphics, mouseX, mouseY); List list = new ArrayList<>(); if (DrawableUtil.isWithin(mouseX, mouseY, this.leftPos + 69, this.topPos + 17, TANK_OVERLAY_WIDTH, TANK_OVERLAY_HEIGHT)) { - FluidResourceSlot slot = this.menu.fluidStorage.getSlot(FuelLoaderBlockEntity.FUEL_TANK); - DisplayUtil.createFluidTooltip(list, slot.getResource(), slot.getTag(), slot.getAmount(), slot.getCapacity()); + FluidResourceSlot slot = this.menu.fluidStorage.slot(FuelLoaderBlockEntity.FUEL_TANK); + DisplayUtil.createFluidTooltip(list, slot.getResource(), slot.getComponents(), slot.getAmount(), slot.getCapacity()); } else if (DrawableUtil.isWithin(mouseX, mouseY, this.leftPos + 145, this.topPos + 37, ROCKET_FACE_WIDTH, ROCKET_FACE_HEIGHT)) { DisplayUtil.createFluidTooltip(list, GCFluids.FUEL, null, this.menu.rocketAmount, this.menu.rocketCapacity); } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenBubbleDistributorScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenBubbleDistributorScreen.java index 80f2a8e54..1f54a4427 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenBubbleDistributorScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenBubbleDistributorScreen.java @@ -26,8 +26,8 @@ import dev.galacticraft.machinelib.client.api.screen.MachineScreen; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; -import dev.galacticraft.mod.network.packets.BubbleMaxPacket; -import dev.galacticraft.mod.network.packets.ToggleBubbleVisibilityPacket; +import dev.galacticraft.mod.network.c2s.BubbleMaxPayload; +import dev.galacticraft.mod.network.c2s.BubbleVisibilityPayload; import dev.galacticraft.mod.screen.OxygenBubbleDistributorMenu; import dev.galacticraft.mod.util.DrawableUtil; import dev.galacticraft.mod.util.Translations; @@ -138,7 +138,7 @@ private boolean checkClick(double mouseX, double mouseY, int button) { if (button == 0) { if (DrawableUtil.isWithin(mouseX, mouseY, this.leftPos + 156, this.topPos + 16, Constant.TextureCoordinate.BUTTON_WIDTH, Constant.TextureCoordinate.BUTTON_HEIGHT)) { this.menu.bubbleVisible = ! this.menu.bubbleVisible; - ClientPlayNetworking.send(new ToggleBubbleVisibilityPacket(this.menu.bubbleVisible)); + ClientPlayNetworking.send(new BubbleVisibilityPayload(this.menu.bubbleVisible)); return true; } @@ -146,7 +146,7 @@ private boolean checkClick(double mouseX, double mouseY, int button) { if (this.menu.targetSize != Byte.MAX_VALUE) { this.menu.targetSize = ((byte) (this.menu.targetSize + 1)); textField.setValue(String.valueOf(this.menu.targetSize)); - ClientPlayNetworking.send(new BubbleMaxPacket(this.menu.targetSize)); + ClientPlayNetworking.send(new BubbleMaxPayload(this.menu.targetSize)); return true; } } @@ -155,7 +155,7 @@ private boolean checkClick(double mouseX, double mouseY, int button) { if (this.menu.targetSize > 1) { this.menu.targetSize = (byte) (this.menu.targetSize - 1); textField.setValue(String.valueOf(this.menu.targetSize)); - ClientPlayNetworking.send(new BubbleMaxPacket(this.menu.targetSize)); + ClientPlayNetworking.send(new BubbleMaxPayload(this.menu.targetSize)); return true; } } diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenStorageModuleScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenStorageModuleScreen.java index db34d79ce..78b44f8c8 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenStorageModuleScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/OxygenStorageModuleScreen.java @@ -46,12 +46,12 @@ protected void renderMachineBackground(GuiGraphics graphics, int mouseX, int mou super.renderMachineBackground(graphics, mouseX, mouseY, delta); this.drawOxygenBufferBar(graphics); - graphics.drawCenteredString(font, Component.translatable(Translations.Ui.CURRENT_OXYGEN, this.menu.fluidStorage.getSlot(OxygenStorageModuleBlockEntity.OXYGEN_TANK).getAmount()), width / 2, topPos + 33, ChatFormatting.DARK_GRAY.getColor()); - graphics.drawCenteredString(font, Component.translatable(Translations.Ui.MAX_OXYGEN, this.menu.fluidStorage.getSlot(OxygenStorageModuleBlockEntity.OXYGEN_TANK).getCapacity()), width / 2, topPos + 45, ChatFormatting.DARK_GRAY.getColor()); + graphics.drawCenteredString(font, Component.translatable(Translations.Ui.CURRENT_OXYGEN, this.menu.fluidStorage.slot(OxygenStorageModuleBlockEntity.OXYGEN_TANK).getAmount()), width / 2, topPos + 33, ChatFormatting.DARK_GRAY.getColor()); + graphics.drawCenteredString(font, Component.translatable(Translations.Ui.MAX_OXYGEN, this.menu.fluidStorage.slot(OxygenStorageModuleBlockEntity.OXYGEN_TANK).getCapacity()), width / 2, topPos + 45, ChatFormatting.DARK_GRAY.getColor()); } private void drawOxygenBufferBar(GuiGraphics graphics) { - FluidResourceSlot slot = this.menu.fluidStorage.getSlot(OxygenStorageModuleBlockEntity.OXYGEN_TANK); + FluidResourceSlot slot = this.menu.fluidStorage.slot(OxygenStorageModuleBlockEntity.OXYGEN_TANK); double oxygenScale = (double)slot.getAmount() / (double)slot.getCapacity(); graphics.blit(Constant.ScreenTexture.OXYGEN_STORAGE_MODULE_SCREEN, this.leftPos + 52, this.topPos + 57, 176, 0, (int) (72.0D * oxygenScale), 3); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/RocketWorkbenchScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/RocketWorkbenchScreen.java index 328cc5f13..eedbc298d 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/RocketWorkbenchScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/RocketWorkbenchScreen.java @@ -30,13 +30,13 @@ import dev.galacticraft.api.rocket.part.RocketPart; import dev.galacticraft.api.rocket.part.RocketPartTypes; import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.client.util.BatchedRenderer; +import dev.galacticraft.mod.client.util.Graphics; import dev.galacticraft.mod.content.GCEntityTypes; import dev.galacticraft.mod.content.GCRocketParts; import dev.galacticraft.mod.content.block.entity.RocketWorkbenchBlockEntity; import dev.galacticraft.mod.content.entity.orbital.RocketEntity; import dev.galacticraft.mod.machine.storage.VariableSizedContainer; -import dev.galacticraft.mod.network.packets.SelectPartPacket; +import dev.galacticraft.mod.network.c2s.SelectPartPayload; import dev.galacticraft.mod.screen.RocketWorkbenchMenu; import dev.galacticraft.mod.util.Translations; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; @@ -170,40 +170,37 @@ protected void containerTick() { this.menu.upgradeRecipes.calculateCraftable(contents); } - this.entity.setCone(this.menu.cone.selection != null ? this.menu.cone.selection : null); - this.entity.setBody(this.menu.body.selection != null ? this.menu.body.selection : null); - this.entity.setFin(this.menu.fins.selection != null ? this.menu.fins.selection : null); - this.entity.setBooster(this.menu.booster.selection != null ? this.menu.booster.selection : null); - this.entity.setEngine(this.menu.engine.selection != null ? this.menu.engine.selection : null); - this.entity.setUpgrade(this.menu.upgrade.selection != null ? this.menu.upgrade.selection : null); + this.entity.setData(this.menu.createData()); this.entity.setXRot(0.0f); this.entity.setYRot(90.0f - 20.0f); } @Override - protected void renderBg(GuiGraphics graphics, float delta, int mouseX, int mouseY) { + protected void renderBg(GuiGraphics guiGraphics, float delta, int mouseX, int mouseY) { this.inventoryLabelY = this.imageHeight - 96 + this.menu.additionalHeight; - drawSelection(graphics, mouseX, mouseY, delta); + drawSelection(guiGraphics, mouseX, mouseY, delta); - try (BatchedRenderer render = new BatchedRenderer(graphics, Constant.ScreenTexture.ROCKET_WORKBENCH_SCREEN, 512, 256)) { - render.blit(this.leftPos, this.topPos + this.menu.additionalHeight + CAP_HEIGHT, 0, 0, BASE_UI_WIDTH, BASE_UI_HEIGHT); + try (Graphics graphics = Graphics.managed(guiGraphics, this.font)) { + try (Graphics.Texture texture = graphics.texture(Constant.ScreenTexture.ROCKET_WORKBENCH_SCREEN, 512, 512)) { + texture.blit(this.leftPos, this.topPos + this.menu.additionalHeight + CAP_HEIGHT, 0, 0, BASE_UI_WIDTH, BASE_UI_HEIGHT); - if (this.menu.additionalHeight > 0) { - render.blit(this.leftPos, this.topPos + CAP_HEIGHT, HEIGHT_EXT_U, 0, MAIN_UI_WIDTH, this.menu.additionalHeight); - } + if (this.menu.additionalHeight > 0) { + texture.blit(this.leftPos, this.topPos + CAP_HEIGHT, HEIGHT_EXT_U, 0, MAIN_UI_WIDTH, this.menu.additionalHeight); + } - render.blit(this.leftPos, this.topPos, 0, BASE_UI_HEIGHT, BASE_UI_WIDTH, CAP_HEIGHT); + texture.blit(this.leftPos, this.topPos, 0, BASE_UI_HEIGHT, BASE_UI_WIDTH, CAP_HEIGHT); - for (Slot slot : this.menu.slots) { - if (slot.container instanceof VariableSizedContainer) { - render.blit(this.leftPos + slot.x - 1, this.topPos + slot.y - 1, NORMAL_SLOT_U, NORMAL_SLOT_V, NORMAL_SLOT_SIZE, NORMAL_SLOT_SIZE); + for (Slot slot : this.menu.slots) { + if (slot.container instanceof VariableSizedContainer) { + texture.blit(this.leftPos + slot.x - 1, this.topPos + slot.y - 1, NORMAL_SLOT_U, NORMAL_SLOT_V, NORMAL_SLOT_SIZE, NORMAL_SLOT_SIZE); + } } } } - renderEntityInInventory(graphics, this.leftPos + ROCKET_PREVIEW_X, this.topPos + ROCKET_PREVIEW_Y, 15, SmithingScreen.ARMOR_STAND_ANGLE, null, this.entity); + renderEntityInInventory(guiGraphics, this.leftPos + ROCKET_PREVIEW_X, this.topPos + ROCKET_PREVIEW_Y, 15, SmithingScreen.ARMOR_STAND_ANGLE, null, this.entity); } @Override @@ -245,7 +242,7 @@ public boolean clickSelection(double mouseX, double mouseY, int button) { if (button == GLFW.GLFW_MOUSE_BUTTON_1) { Holder.Reference> ref = this.recipes.get(i); this.getSelection().setSelection(ref != null ? ref.key().location() : null); - ClientPlayNetworking.send(new SelectPartPacket(this.openTab.type, ref != null ? ref.key() : null)); + ClientPlayNetworking.send(new SelectPartPayload(this.openTab.type, ref != null ? ref.key().location() : null)); return true; } else if (button == GLFW.GLFW_MOUSE_BUTTON_2) { //todo @@ -279,52 +276,54 @@ private void setOpenTab(Tab openTab) { } } - private void drawSelection(GuiGraphics graphics, int mouseX, int mouseY, float delta) { - PoseStack pose = graphics.pose(); + private void drawSelection(GuiGraphics guiGraphics, int mouseX, int mouseY, float delta) { + PoseStack pose = guiGraphics.pose(); pose.pushPose(); pose.translate(this.leftPos - SELECTION_SCREEN_WIDTH - SCREEN_SPACING, this.topPos, 0); mouseX -= this.leftPos - SELECTION_SCREEN_WIDTH - SCREEN_SPACING; mouseY -= this.topPos; int size = this.recipes != null ? this.recipes.size() : 0; - try (BatchedRenderer render = new BatchedRenderer(graphics, Constant.ScreenTexture.ROCKET_SELECTION, 256, 256)) { - render.blit(0, 0, 0, 0, SELECTION_SCREEN_WIDTH, SELECTION_SCREEN_HEIGHT); - - { - int y = 4; - for (Tab tab : Tab.values()) { - if (tab == Tab.COLOR) continue; - if (tab == this.openTab) { - render.blit(-(TAB_SELECTED_WIDTH - 3), y, TAB_SELECTED_U, TAB_SELECTED_V, TAB_SELECTED_WIDTH, TAB_HEIGHT); - } else { - render.blit(-TAB_WIDTH, y, TAB_U, TAB_V, TAB_WIDTH, TAB_HEIGHT); + try (Graphics graphics = Graphics.managed(guiGraphics, this.font)) { + try (Graphics.Texture texture = graphics.texture(Constant.ScreenTexture.ROCKET_WORKBENCH_SCREEN, 512, 512)) { + texture.blit(0, 0, 0, 0, SELECTION_SCREEN_WIDTH, SELECTION_SCREEN_HEIGHT); + + { + int y = 4; + for (Tab tab : Tab.values()) { + if (tab == Tab.COLOR) continue; + if (tab == this.openTab) { + texture.blit(-(TAB_SELECTED_WIDTH - 3), y, TAB_SELECTED_U, TAB_SELECTED_V, TAB_SELECTED_WIDTH, TAB_HEIGHT); + } else { + texture.blit(-TAB_WIDTH, y, TAB_U, TAB_V, TAB_WIDTH, TAB_HEIGHT); + } + y += TAB_SPACING + TAB_HEIGHT; } - y += TAB_SPACING + TAB_HEIGHT; } - } - if (this.openTab != Tab.COLOR) { - assert this.recipes != null; - final int pages = Math.floorDiv(size, RECIPES_PER_PAGE) + size % RECIPES_PER_PAGE == 0 ? 0 : 1; + if (this.openTab != Tab.COLOR) { + assert this.recipes != null; + final int pages = Math.floorDiv(size, RECIPES_PER_PAGE) + size % RECIPES_PER_PAGE == 0 ? 0 : 1; - if (this.page >= pages) { - this.page = 0; - } - int i = this.page * 5 * 7; - for (int y = 0; y < 7 && i < size; y++) { - for (int x = 0; x < 5 && i < size; x++) { - Holder.Reference> part = this.recipes.get(i); - int uOffset = isCraftable(part) ? RECIPE_CRAFTABLE_U : RECIPE_UNCRAFTABLE_U; - int vOffset = Objects.equals(this.getSelection().selection, part == null ? null : part.key().location()) ? RECIPE_SELECTED_V : RECIPE_V; - render.blit(11 + x * RECIPE_WIDTH, 29 + y * RECIPE_HEIGHT, uOffset, vOffset, RECIPE_WIDTH, RECIPE_HEIGHT); - if (part != null && mouseIn(mouseX, mouseY, 11 + x * RECIPE_WIDTH, 29 + y * RECIPE_HEIGHT, RECIPE_WIDTH, RECIPE_HEIGHT)) { - setTooltipForNextRenderPass(RocketPart.getName(part.key())); + if (this.page >= pages) { + this.page = 0; + } + int i = this.page * 5 * 7; + for (int y = 0; y < 7 && i < size; y++) { + for (int x = 0; x < 5 && i < size; x++) { + Holder.Reference> part = this.recipes.get(i); + int uOffset = isCraftable(part) ? RECIPE_CRAFTABLE_U : RECIPE_UNCRAFTABLE_U; + int vOffset = Objects.equals(this.getSelection().selection, part == null ? null : part.key().location()) ? RECIPE_SELECTED_V : RECIPE_V; + texture.blit(11 + x * RECIPE_WIDTH, 29 + y * RECIPE_HEIGHT, uOffset, vOffset, RECIPE_WIDTH, RECIPE_HEIGHT); + if (part != null && mouseIn(mouseX, mouseY, 11 + x * RECIPE_WIDTH, 29 + y * RECIPE_HEIGHT, RECIPE_WIDTH, RECIPE_HEIGHT)) { + setTooltipForNextRenderPass(RocketPart.getName(part.key())); + } + i++; } - i++; } + } else { + //todo color } - } else { - //todo color } } @@ -335,7 +334,7 @@ private void drawSelection(GuiGraphics graphics, int mouseX, int mouseY, float d continue; // graphics.renderFakeItem(new ItemStack(Items.RED_DYE), -TAB_WIDTH + TAB_ICON_OFFSET, y); } else { - RocketPartRendererRegistry.INSTANCE.getRenderer(tab.part).renderGUI(graphics, -TAB_WIDTH + TAB_ICON_OFFSET, y, mouseX, mouseY, delta); + RocketPartRendererRegistry.INSTANCE.getRenderer(tab.part).renderGUI(guiGraphics, -TAB_WIDTH + TAB_ICON_OFFSET, y, mouseX, mouseY, delta); } y += TAB_SPACING + TAB_HEIGHT; } @@ -349,7 +348,7 @@ private void drawSelection(GuiGraphics graphics, int mouseX, int mouseY, float d Holder.Reference> recipe = this.recipes.get(i); if (recipe != null) { RocketPartRenderer renderer = RocketPartRendererRegistry.INSTANCE.getRenderer(recipe.key()); - renderer.renderGUI(graphics, 15 + x * RECIPE_WIDTH, 33 + y * RECIPE_HEIGHT, mouseX, mouseY, delta); + renderer.renderGUI(guiGraphics, 15 + x * RECIPE_WIDTH, 33 + y * RECIPE_HEIGHT, mouseX, mouseY, delta); } i++; } @@ -357,7 +356,7 @@ private void drawSelection(GuiGraphics graphics, int mouseX, int mouseY, float d } else { } - graphics.drawString(this.font, this.openTab.name, 12, 14, 0xEEEEEE, true); + guiGraphics.drawString(this.font, this.openTab.name, 12, 14, 0xEEEEEE, true); pose.popPose(); } @@ -366,7 +365,7 @@ public static void renderEntityInInventory( ) { guiGraphics.pose().pushPose(); guiGraphics.pose().translate(x, y, 50.0); - guiGraphics.pose().mulPoseMatrix(new Matrix4f().scaling((float)scale, (float)scale, (float)(-scale))); + guiGraphics.pose().mulPose(new Matrix4f().scaling((float)scale, (float)scale, (float)(-scale))); guiGraphics.pose().mulPose(pose); Lighting.setupForEntityInInventory(); EntityRenderDispatcher entityRenderDispatcher = Minecraft.getInstance().getEntityRenderDispatcher(); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java index b1b7d5642..920edce4c 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java @@ -41,7 +41,7 @@ import java.util.LinkedList; import java.util.List; -public class SolarPanelScreen> extends MachineScreen { +public class SolarPanelScreen> extends MachineScreen { private static final int DAY_SOURCE_U = 0; private static final int DAY_SOURCE_V = 0; private static final int OVERCAST_SOURCE_U = 32; @@ -77,9 +77,9 @@ public class SolarPanelScreen paths) { this.minecraft.getTextureManager().register(location, texture); this.minecraft.setScreen(new ConfirmFlagScreen(yes -> { if (yes) { - int[] array = new int[48 * 32]; + ByteBuf buf = ByteBufAllocator.DEFAULT.buffer(48 * 32 * 3, 48 * 32 * 3); for (int y = 0; y < 32; y++) { for (int x = 0; x < 48; x++) { - array[y * 48 + x] = (finalImage.getPixelRGBA(x, y) /*& 0x00FFFFFF will be done on server (don't trust clients, so why do extra work?)*/); //ignore alpha channel + int color = finalImage.getPixelRGBA(x, y); + //ignore alpha channel + buf.writeByte((color >> 16) & 0xFF) + .writeByte((color >> 8) & 0xFF) + .writeByte(color & 0xFF); } } - ClientPlayNetworking.send(Constant.id("flag_data"), PacketByteBufs.create().writeVarIntArray(array)); + ClientPlayNetworking.send(new FlagDataPayload(buf.array())); this.minecraft.getTextureManager().register(this.teamFlag, texture); } else { finalImage.close(); diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SpaceTravelScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SpaceTravelScreen.java index 75d7501d0..d25157eb2 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SpaceTravelScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SpaceTravelScreen.java @@ -23,10 +23,7 @@ package dev.galacticraft.mod.client.gui.screen.ingame; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.*; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.util.Translations; import net.minecraft.client.GameNarrator; @@ -66,17 +63,16 @@ public boolean shouldCloseOnEsc() { @Override public void render(GuiGraphics graphics, int mouseX, int mouseY, float delta) { - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder bufferBuilder = tessellator.getBuilder(); - RenderSystem.setShader(GameRenderer::getPositionColorTexShader); + RenderSystem.setShader(GameRenderer::getPositionTexColorShader); this.minecraft.getTextureManager().bindForSetup(TEXTURE); RenderSystem.setShaderTexture(0, TEXTURE); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX); - bufferBuilder.vertex(0.0D, this.height, 0.0D).color(200, 200, 200, 255).uv(0.0F, (float)this.height / 32.0F).endVertex(); - bufferBuilder.vertex(this.width, this.height, 0.0D).color(200, 200, 200, 255).uv((float)this.width / 32.0F, (float)this.height / 32.0F).endVertex(); - bufferBuilder.vertex(this.width, 0.0D, 0.0D).color(200, 200, 200, 255).uv((float)this.width / 32.0F, 0.0F).endVertex(); - bufferBuilder.vertex(0.0D, 0.0D, 0.0D).color(200, 200, 200, 255).uv(0.0F, 0.0F).endVertex(); - tessellator.end(); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); + buffer.addVertex(0.0F, this.height, 0.0F).setUv(0.0F, (float)this.height / 32.0F).setColor(200, 200, 200, 255) + .addVertex(this.width, this.height, 0.0F).setUv((float)this.width / 32.0F, (float)this.height / 32.0F).setColor(200, 200, 200, 255) + .addVertex(this.width, 0.0F, 0.0F).setUv((float)this.width / 32.0F, 0.0F).setColor(200, 200, 200, 255) + .addVertex(0.0F, 0.0F, 0.0F).setUv(0.0F, 0.0F).setColor(200, 200, 200, 255); + BufferUploader.drawWithShader(buffer.buildOrThrow()); + if (minecraft.level.random.nextInt(30) == 1) { if (dots.equals("...")) { dots = "."; diff --git a/src/main/java/dev/galacticraft/mod/client/model/BakedObjModel.java b/src/main/java/dev/galacticraft/mod/client/model/BakedObjModel.java index b0f5117d4..9f15b55ca 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/BakedObjModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/BakedObjModel.java @@ -27,7 +27,6 @@ import de.javagl.obj.*; import dev.galacticraft.mod.client.model.types.ObjModel; import org.jetbrains.annotations.Nullable; -import org.joml.Matrix4f; import java.util.List; @@ -44,38 +43,37 @@ public BakedObjModel(Obj obj, List materials) { } @Override - public void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay) { + public void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay, int color) { ObjModel.BakedMaterial lastMaterial = null; if (state == null) { for (int index = 0; index < obj.getNumFaces(); index++) { ObjFace face = obj.getFace(index); - lastMaterial = renderFace(lastMaterial, face, consumer, modelStack, light, overlay); + lastMaterial = renderFace(lastMaterial, face, consumer, modelStack, light, overlay, color); } } else { ObjGroup group = obj.getGroup(state.getName()); for (int index = 0; index < group.getNumFaces(); index++) { ObjFace face = group.getFace(index); - lastMaterial = renderFace(lastMaterial, face, consumer, modelStack, light, overlay); + lastMaterial = renderFace(lastMaterial, face, consumer, modelStack, light, overlay, color); } } } - protected ObjModel.BakedMaterial renderFace(ObjModel.BakedMaterial lastMaterial, ObjFace face, VertexConsumer consumer, PoseStack matrices, int light, int overlay) { + protected ObjModel.BakedMaterial renderFace(ObjModel.BakedMaterial lastMaterial, ObjFace face, VertexConsumer consumer, PoseStack matrices, int light, int overlay, int color) { ObjModel.BakedMaterial material = findMaterial(this.obj.getActivatedMaterialGroupName(face), lastMaterial); consumer = (material != null ? material.sprite() : GCModelLoader.INSTANCE.getDefaultSprite()).wrap(consumer); PoseStack.Pose last = matrices.last(); for (int vtx = 0; vtx < face.getNumVertices(); vtx++) { FloatTuple pos = obj.getVertex(face.getVertexIndex(vtx)); - consumer.vertex(last.pose(), pos.getX(), pos.getY(), pos.getZ()); - consumer.color(255, 255, 255, 255); + consumer.addVertex(last.pose(), pos.getX(), pos.getY(), pos.getZ()); + consumer.setColor(color); FloatTuple uv = obj.getTexCoord(face.getTexCoordIndex(vtx)); - consumer.uv(uv.getX(), 1 - uv.getY()); + consumer.setUv(uv.getX(), 1 - uv.getY()); - consumer.overlayCoords(overlay); - consumer.uv2(light); + consumer.setOverlay(overlay); + consumer.setLight(light); FloatTuple normals = obj.getNormal(face.getNormalIndex(vtx)); - consumer.normal(last.normal(), normals.getX(), normals.getY(), normals.getZ()); - consumer.endVertex(); + consumer.setNormal(last, normals.getX(), normals.getY(), normals.getZ()); } return material; diff --git a/src/main/java/dev/galacticraft/mod/client/model/FluidPipeWalkwayBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/FluidPipeWalkwayBakedModel.java index af08e4943..f9378132d 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/FluidPipeWalkwayBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/FluidPipeWalkwayBakedModel.java @@ -81,46 +81,46 @@ protected FluidPipeWalkwayBakedModel(ModelBaker loader, Function getDependencies() { public void resolveParents(Function function) { } + @Nullable @Override - public BakedModel bake(ModelBaker loader, Function spriteFunction, ModelState rotationContainer, ResourceLocation modelId) { - return FluidPipeWalkwayBakedModel.getInstance(loader, spriteFunction, rotationContainer); + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { + return FluidPipeWalkwayBakedModel.getInstance(baker, textureGetter, state); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/GCBakedModel.java index d672553c7..6e5683ac5 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCBakedModel.java @@ -24,9 +24,12 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.minecraft.client.renderer.MultiBufferSource; import org.jetbrains.annotations.Nullable; public interface GCBakedModel extends AutoCloseable { - void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay); + default void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay) { + this.render(modelStack, state, consumer, light, overlay, 0xFFFFFFFF); + } + + void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay, int color); } diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCMissingModel.java b/src/main/java/dev/galacticraft/mod/client/model/GCMissingModel.java index cad7db410..05bb5347f 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCMissingModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCMissingModel.java @@ -24,16 +24,16 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import org.jetbrains.annotations.Nullable; public class GCMissingModel implements GCBakedModel { - @Override - public void render(PoseStack modelStack, GCModelState state, VertexConsumer vertexConsumer, int light, int overlay) { + public void render(PoseStack modelStack, @Nullable GCModelState state, VertexConsumer consumer, int light, int overlay, int color) { } @Override - public void close() throws Exception { + public void close() { } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCModel.java b/src/main/java/dev/galacticraft/mod/client/model/GCModel.java index 2a1cb6f8f..2cdf1e041 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCModel.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.client.model; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.Material; import net.minecraft.resources.ResourceLocation; @@ -39,7 +39,7 @@ public interface GCModel { GCBakedModel bake(ResourceManager resourceManager, Function spriteGetter); interface GCModelType { - Codec codec(); + MapCodec codec(); ResourceLocation getId(); } diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java b/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java index 8246868d8..2820ad628 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCModelLoader.java @@ -35,6 +35,7 @@ import com.mojang.serialization.JsonOps; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.client.event.RocketAtlasCallback; +import dev.galacticraft.mod.client.render.rocket.GalacticraftRocketPartRenderers; import dev.galacticraft.mod.client.resources.RocketTextureManager; import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin; import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener; @@ -111,6 +112,17 @@ public void onInitializeModelLoader(Context pluginContext) { } return null; }); + + pluginContext.addModels( + GalacticraftRocketPartRenderers.DEFAULT_CONE, + GalacticraftRocketPartRenderers.SLOPED_CONE, + GalacticraftRocketPartRenderers.ADVANCED_CONE, + GalacticraftRocketPartRenderers.DEFAULT_BODY, + GalacticraftRocketPartRenderers.DEFAULT_ENGINE, + GalacticraftRocketPartRenderers.DEFAULT_FIN, + GalacticraftRocketPartRenderers.BOOSTER_TIER_1, + GalacticraftRocketPartRenderers.BOOSTER_TIER_2 + ); } public static void registerModelType(GCModel.GCModelType type) { @@ -218,14 +230,12 @@ private static CompletableFuture> loadModels(Reso DataResult model = MODEL_CODEC.parse(JsonOps.INSTANCE, GsonHelper.convertToJsonObject(GsonHelper.fromJson(GSON, reader, JsonElement.class), "top element")); if (model.error().isPresent()) return null; - modelPair = Pair.of(entry.getKey(), model.getOrThrow(false, error -> Constant.LOGGER.error("Failed to load model: {}, {}", modelId, error))); + modelPair = Pair.of(entry.getKey(), model.getOrThrow(error -> new RuntimeException(String.format("Failed to load model: %s, %s", modelId, error)))); } catch (Throwable error) { - if (reader != null) { - try { - reader.close(); - } catch (Throwable nestedError) { - error.addSuppressed(nestedError); - } + try { + reader.close(); + } catch (Throwable nestedError) { + error.addSuppressed(nestedError); } throw error; diff --git a/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java b/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java index c5a8ad876..312c593b7 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java +++ b/src/main/java/dev/galacticraft/mod/client/model/GCRenderTypes.java @@ -27,7 +27,6 @@ import dev.galacticraft.mod.Constant; import net.fabricmc.fabric.api.client.rendering.v1.CoreShaderRegistrationCallback; import net.minecraft.Util; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.RenderStateShard; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.ShaderInstance; diff --git a/src/main/java/dev/galacticraft/mod/client/model/OxygenSealerSpriteProvider.java b/src/main/java/dev/galacticraft/mod/client/model/OxygenSealerSpriteProvider.java index df7b4fdf9..40bff379d 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/OxygenSealerSpriteProvider.java +++ b/src/main/java/dev/galacticraft/mod/client/model/OxygenSealerSpriteProvider.java @@ -23,15 +23,16 @@ package dev.galacticraft.mod.client.model; import com.google.gson.JsonObject; +import dev.galacticraft.machinelib.api.machine.MachineRenderData; import dev.galacticraft.machinelib.api.util.BlockFace; import dev.galacticraft.machinelib.client.api.model.MachineModelRegistry; -import dev.galacticraft.machinelib.client.api.render.MachineRenderData; import dev.galacticraft.machinelib.client.impl.model.MachineBakedModel; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.function.Function; @@ -41,13 +42,13 @@ public class OxygenSealerSpriteProvider implements MachineModelRegistry.SpritePr private final TextureAtlasSprite machine; public OxygenSealerSpriteProvider(JsonObject json, Function function) { - this.top = function.apply(new net.minecraft.client.resources.model.Material(TextureAtlas.LOCATION_BLOCKS, new ResourceLocation(GsonHelper.getAsString(json, "top")))); + this.top = function.apply(new net.minecraft.client.resources.model.Material(TextureAtlas.LOCATION_BLOCKS, ResourceLocation.parse(GsonHelper.getAsString(json, "top")))); this.machine = function.apply(MachineBakedModel.MACHINE); this.machineSide = function.apply(MachineBakedModel.MACHINE_SIDE); } @Override - public @NotNull TextureAtlasSprite getSpritesForState(@NotNull MachineRenderData renderData, @NotNull BlockFace face) { + public @NotNull TextureAtlasSprite getSpritesForState(@Nullable MachineRenderData renderData, @NotNull BlockFace face) { if (face == BlockFace.TOP) return this.top; if (face.side()) return this.machineSide; return this.machine; diff --git a/src/main/java/dev/galacticraft/mod/client/model/ParaChestBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/ParaChestBakedModel.java index 204d97805..3efd79614 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/ParaChestBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/ParaChestBakedModel.java @@ -22,33 +22,32 @@ package dev.galacticraft.mod.client.model; -import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.special.ParaChestBlock; import net.fabricmc.fabric.api.renderer.v1.model.WrapperBakedModel; import net.fabricmc.fabric.api.renderer.v1.render.RenderContext; import net.minecraft.client.multiplayer.ClientLevel; -import net.minecraft.client.renderer.block.model.*; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.renderer.block.model.ItemOverrides; +import net.minecraft.client.renderer.block.model.ItemTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; +import net.minecraft.core.component.DataComponents; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.Property; import org.jetbrains.annotations.Nullable; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.function.Supplier; public class ParaChestBakedModel implements BakedModel, WrapperBakedModel { - private final ParaChestOverride ITEM_OVERRIDE = new ParaChestOverride(); + private final ParaChestOverride itemOverride; private final BakedModel parent; private final Map bakedChutes; private final DyeColor defaultColor; @@ -61,6 +60,7 @@ public ParaChestBakedModel(BakedModel parent, Map bakedChu this.parent = parent; this.bakedChutes = bakedChutes; this.defaultColor = defaultColor; + this.itemOverride = new ParaChestOverride(); } @Override @@ -76,19 +76,7 @@ public List getQuads(@Nullable BlockState blockState, @Nullable Direc @Override public void emitItemQuads(ItemStack stack, Supplier randomSupplier, RenderContext context) { BakedModel.super.emitItemQuads(stack, randomSupplier, context); - CompoundTag compoundTag = stack.getTag(); - if (compoundTag != null) { - CompoundTag blockStateTag = compoundTag.getCompound("BlockStateTag"); - StateDefinition stateDefinition = GCBlocks.PARACHEST.getStateDefinition(); - Property property = stateDefinition.getProperty("color"); - if (property != null) { - property.getValue(blockStateTag.getString("color")).ifPresent(color -> { - bakedChutes.get(color).emitItemQuads(stack, randomSupplier, context); - }); - } - } else { - bakedChutes.get(DyeColor.WHITE).emitItemQuads(stack, randomSupplier, context); - } + this.bakedChutes.get(stack.getOrDefault(DataComponents.BASE_COLOR, defaultColor)).emitItemQuads(stack, randomSupplier, context); } @Override @@ -128,7 +116,7 @@ public ItemTransforms getTransforms() { @Override public ItemOverrides getOverrides() { - return ITEM_OVERRIDE; + return itemOverride; } @Override @@ -137,19 +125,16 @@ public BakedModel getWrappedModel() { } public class ParaChestOverride extends ItemOverrides { + public ParaChestOverride() { + super(null, null, Collections.emptyList()); + } + @Nullable @Override public BakedModel resolve(BakedModel model, ItemStack stack, @Nullable ClientLevel level, @Nullable LivingEntity entity, int seed) { - CompoundTag compoundTag = stack.getTag(); - if (compoundTag != null) { - CompoundTag blockStateTag = compoundTag.getCompound("BlockStateTag"); - StateDefinition stateDefinition = GCBlocks.PARACHEST.getStateDefinition(); - Property property = stateDefinition.getProperty("color"); - if (property != null) { - var value = property.getValue(blockStateTag.getString("color")); - if (value.isPresent()) - return new ParaChestBakedModel(ParaChestBakedModel.this.parent, ParaChestBakedModel.this.bakedChutes, (DyeColor) value.get()); - } + DyeColor dyeColor = stack.get(DataComponents.BASE_COLOR); + if (dyeColor != null) { + return new ParaChestBakedModel(ParaChestBakedModel.this.parent, ParaChestBakedModel.this.bakedChutes, dyeColor); } return ParaChestBakedModel.this.parent.getOverrides().resolve(model, stack, level, entity, seed); } diff --git a/src/main/java/dev/galacticraft/mod/client/model/ParachestUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/ParachestUnbakedModel.java index 9fd6bdd3e..d6387e63b 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/ParachestUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/ParachestUnbakedModel.java @@ -26,7 +26,6 @@ import net.minecraft.client.resources.model.*; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.DyeColor; -import org.jetbrains.annotations.Nullable; import java.util.*; import java.util.function.Function; @@ -50,13 +49,12 @@ public void resolveParents(Function function) { }); } - @Nullable @Override - public BakedModel bake(ModelBaker modelBaker, Function function, ModelState modelState, ResourceLocation resourceLocation) { + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { Map bakedChutes = new HashMap<>(); chutes.forEach((color, unbakedModel) -> { - bakedChutes.put(color, unbakedModel.bake(modelBaker, function, modelState, resourceLocation)); + bakedChutes.put(color, unbakedModel.bake(baker, textureGetter, state)); }); - return new ParaChestBakedModel(parentModel.bake(modelBaker, function, modelState, resourceLocation), bakedChutes); + return new ParaChestBakedModel(parentModel.bake(baker, textureGetter, state), bakedChutes); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/PipeBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/PipeBakedModel.java index 5ee82a6e4..21da5637e 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/PipeBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/PipeBakedModel.java @@ -79,41 +79,41 @@ protected PipeBakedModel(Function textureGetter) { } var meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); var emitter = meshBuilder.getEmitter(); - emitter.square(Direction.DOWN, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 12, 0).sprite(2, 0, 16, 0).sprite(3, 0, 16, 4).sprite(0, 0, 12, 4).cullFace(Direction.DOWN).emit(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 0).sprite(2, 0, 4, 0).sprite(3, 0, 4, 8).sprite(0, 0, 0, 8).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(1, 12, 0).uv(2, 16, 0).uv(3, 16, 4).uv(0, 12, 4).cullFace(Direction.DOWN).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 0).uv(2, 4, 0).uv(3, 4, 8).uv(0, 0, 8).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).emit(); this.down = meshBuilder.build(); - emitter.square(Direction.UP, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 12, 0).sprite(2, 0, 16, 0).sprite(3, 0, 16, 4).sprite(0, 0, 12, 4).cullFace(Direction.UP).emit(); - emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 8).sprite(2, 0, 4, 8).sprite(3, 0, 4, 16).sprite(0, 0, 0, 16).emit(); - emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).emit(); + emitter.square(Direction.UP, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(1, 12, 0).uv(2, 16, 0).uv(3, 16, 4).uv(0, 12, 4).cullFace(Direction.UP).emit(); + emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 8).uv(2, 4, 8).uv(3, 4, 16).uv(0, 0, 16).emit(); + emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).emit(); this.up = meshBuilder.build(); - emitter.square(Direction.NORTH, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 12, 0).sprite(2, 0, 16, 0).sprite(3, 0, 16, 4).sprite(0, 0, 12, 4).cullFace(Direction.NORTH).emit(); - emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).emit(); - emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(1, 12, 0).uv(2, 16, 0).uv(3, 16, 4).uv(0, 12, 4).cullFace(Direction.NORTH).emit(); + emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).emit(); + emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).emit(); this.north = meshBuilder.build(); - emitter.square(Direction.SOUTH, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 12, 0).sprite(2, 0, 16, 0).sprite(3, 0, 16, 4).sprite(0, 0, 12, 4).cullFace(Direction.SOUTH).emit(); - emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).emit(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).emit(); - emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(1, 12, 0).uv(2, 16, 0).uv(3, 16, 4).uv(0, 12, 4).cullFace(Direction.SOUTH).emit(); + emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).emit(); + emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).emit(); this.south = meshBuilder.build(); - emitter.square(Direction.WEST, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 12, 0).sprite(1, 0, 16, 0).sprite(2, 0, 16, 4).sprite(3, 0, 12, 4).cullFace(Direction.WEST).emit(); - emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).emit(); - emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).emit(); - emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 0).sprite(1, 0, 12, 0).sprite(2, 0, 12, 8).sprite(3, 0, 8, 8).emit(); - emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).emit(); + emitter.square(Direction.WEST, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(0, 12, 0).uv(1, 16, 0).uv(2, 16, 4).uv(3, 12, 4).cullFace(Direction.WEST).emit(); + emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).emit(); + emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).emit(); + emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 0).uv(1, 12, 0).uv(2, 12, 8).uv(3, 8, 8).emit(); + emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).emit(); this.west = meshBuilder.build(); - emitter.square(Direction.EAST, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 12, 0).sprite(1, 0, 16, 0).sprite(2, 0, 16, 4).sprite(3, 0, 12, 4).cullFace(Direction.EAST).emit(); - emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).emit(); - emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).emit(); - emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 8).sprite(1, 0, 12, 8).sprite(2, 0, 12, 16).sprite(3, 0, 8, 16).emit(); - emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).emit(); + emitter.square(Direction.EAST, 0.4f, 0.4f, 0.6f, 0.6f, 0.0f).color(-1, -1, -1, -1).uv(0, 12, 0).uv(1, 16, 0).uv(2, 16, 4).uv(3, 12, 4).cullFace(Direction.EAST).emit(); + emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).emit(); + emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).emit(); + emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 8).uv(1, 12, 8).uv(2, 12, 16).uv(3, 8, 16).emit(); + emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).emit(); this.east = meshBuilder.build(); } @@ -144,7 +144,7 @@ private void emitBlockQuadsDirection(QuadEmitter emitter, boolean[] connections, mesh.outputTo(emitter); } else { - emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 12, 0).sprite(1, 0, 16, 0).sprite(2, 0, 16, 4).sprite(3, 0, 12, 4).emit(); + emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 12, 0).uv(1, 16, 0).uv(2, 16, 4).uv(3, 12, 4).emit(); } } @@ -213,7 +213,7 @@ public void setSprite(TextureAtlasSprite sprite) { @Override public boolean transform(MutableQuadView quad) { - quad.spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV); + quad.spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV); return true; } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/PipeUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/PipeUnbakedModel.java index f668b4b8d..af014a0a4 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/PipeUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/PipeUnbakedModel.java @@ -45,7 +45,7 @@ public void resolveParents(Function function) { @Nullable @Override - public BakedModel bake(ModelBaker modelBaker, Function function, ModelState modelState, ResourceLocation resourceLocation) { - return PipeBakedModel.getInstance(function); + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { + return PipeBakedModel.getInstance(textureGetter); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/SolarPanelSpriteProvider.java b/src/main/java/dev/galacticraft/mod/client/model/SolarPanelSpriteProvider.java index 9ddd92bc7..7fa00095e 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/SolarPanelSpriteProvider.java +++ b/src/main/java/dev/galacticraft/mod/client/model/SolarPanelSpriteProvider.java @@ -23,9 +23,9 @@ package dev.galacticraft.mod.client.model; import com.google.gson.JsonObject; +import dev.galacticraft.machinelib.api.machine.MachineRenderData; import dev.galacticraft.machinelib.api.util.BlockFace; import dev.galacticraft.machinelib.client.api.model.MachineModelRegistry; -import dev.galacticraft.machinelib.client.api.render.MachineRenderData; import dev.galacticraft.machinelib.client.impl.model.MachineBakedModel; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; @@ -33,6 +33,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.GsonHelper; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.function.Function; @@ -43,14 +44,14 @@ public class SolarPanelSpriteProvider implements MachineModelRegistry.SpriteProv private TextureAtlasSprite machine; public SolarPanelSpriteProvider(JsonObject json, Function function) { - this.front = function.apply(new Material(TextureAtlas.LOCATION_BLOCKS, new ResourceLocation(GsonHelper.getAsString(json, "front")))); - this.top = function.apply(new Material(TextureAtlas.LOCATION_BLOCKS, new ResourceLocation(GsonHelper.getAsString(json, "top")))); + this.front = function.apply(new Material(TextureAtlas.LOCATION_BLOCKS, ResourceLocation.parse(GsonHelper.getAsString(json, "front")))); + this.top = function.apply(new Material(TextureAtlas.LOCATION_BLOCKS, ResourceLocation.parse(GsonHelper.getAsString(json, "top")))); this.machine = function.apply(MachineBakedModel.MACHINE); this.machineSide = function.apply(MachineBakedModel.MACHINE_SIDE); } @Override - public @NotNull TextureAtlasSprite getSpritesForState(@NotNull MachineRenderData renderData, @NotNull BlockFace face) { + public @NotNull TextureAtlasSprite getSpritesForState(@Nullable MachineRenderData renderData, @NotNull BlockFace face) { if (face == BlockFace.FRONT) return this.front; if (face == BlockFace.TOP) return this.top; if (face.side()) return this.machineSide; diff --git a/src/main/java/dev/galacticraft/mod/client/model/VacuumGlassUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/VacuumGlassUnbakedModel.java index 50544e29e..a6d1c25a9 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/VacuumGlassUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/VacuumGlassUnbakedModel.java @@ -40,13 +40,13 @@ public Collection getDependencies() { } @Override - public void resolveParents(Function modelLoader) { + public void resolveParents(Function baker) { } @Nullable @Override - public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState rotationContainer, ResourceLocation modelId) { + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { return new VacuumGlassBakedModel(textureGetter); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/WalkwayBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WalkwayBakedModel.java index 5aaf4b962..00e802a09 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WalkwayBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WalkwayBakedModel.java @@ -47,6 +47,7 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockAndTintGetter; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.joml.Quaternionf; import org.joml.Vector3f; @@ -72,39 +73,39 @@ public class WalkwayBakedModel implements BakedModel { private final TextureAtlasSprite sprite; protected WalkwayBakedModel(ModelBaker loader, Function textureGetter, ModelState rotationContainer) { - this.platform = loader.getModel(WALKWAY_PLATFORM).bake(loader, textureGetter, rotationContainer, WALKWAY_PLATFORM); + this.platform = loader.getModel(WALKWAY_PLATFORM).bake(loader, textureGetter, rotationContainer); this.sprite = textureGetter.apply(new Material(InventoryMenu.BLOCK_ATLAS, WALKWAY_TEXTURE)); var meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); var emitter = meshBuilder.getEmitter(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.down = meshBuilder.build(); - emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.up = meshBuilder.build(); - emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.north = meshBuilder.build(); - emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 6, 4).sprite(2, 0, 9, 4).sprite(3, 0, 9, 11).sprite(0, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 6, 4).uv(2, 9, 4).uv(3, 9, 11).uv(0, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.south = meshBuilder.build(); - emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.west = meshBuilder.build(); - emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 6, 4).sprite(1, 0, 9, 4).sprite(2, 0, 9, 11).sprite(3, 0, 6, 11).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 6, 4).uv(1, 9, 4).uv(2, 9, 11).uv(3, 6, 11).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.east = meshBuilder.build(); } @@ -165,7 +166,7 @@ public void emitItemQuads(ItemStack itemStack, Supplier randomSupp } @Override - public List getQuads(@Nullable BlockState blockState, @Nullable Direction direction, RandomSource random) { + public @NotNull List getQuads(@Nullable BlockState blockState, @Nullable Direction direction, RandomSource random) { return Collections.emptyList(); } diff --git a/src/main/java/dev/galacticraft/mod/client/model/WalkwayUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WalkwayUnbakedModel.java index 330cc5525..5f12b5f61 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WalkwayUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WalkwayUnbakedModel.java @@ -25,6 +25,7 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.*; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Collections; @@ -42,8 +43,9 @@ public Collection getDependencies() { public void resolveParents(Function function) { } + @Nullable @Override - public BakedModel bake(ModelBaker loader, Function spriteFunction, ModelState rotationContainer, ResourceLocation modelId) { - return WalkwayBakedModel.getInstance(loader, spriteFunction, rotationContainer); + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { + return WalkwayBakedModel.getInstance(baker, textureGetter, state); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/WireBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WireBakedModel.java index 849e6ce86..9bdd68a23 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WireBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WireBakedModel.java @@ -69,35 +69,35 @@ protected WireBakedModel(Function textureGetter) { this.sprite = textureGetter.apply(new Material(InventoryMenu.BLOCK_ATLAS, ALUMINUM_WIRE)); var meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); var emitter = meshBuilder.getEmitter(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 0).sprite(2, 0, 4, 0).sprite(3, 0, 4, 8).sprite(0, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 0).uv(2, 4, 0).uv(3, 4, 8).uv(0, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.down = meshBuilder.build(); - emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 8).sprite(2, 0, 4, 8).sprite(3, 0, 4, 16).sprite(0, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 8).uv(2, 4, 8).uv(3, 4, 16).uv(0, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.up = meshBuilder.build(); - emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.north = meshBuilder.build(); - emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.south = meshBuilder.build(); - emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 0).sprite(1, 0, 12, 0).sprite(2, 0, 12, 8).sprite(3, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 0).uv(1, 12, 0).uv(2, 12, 8).uv(3, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.west = meshBuilder.build(); - emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 8).sprite(1, 0, 12, 8).sprite(2, 0, 12, 16).sprite(3, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 8).uv(1, 12, 8).uv(2, 12, 16).uv(3, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.east = meshBuilder.build(); } @@ -125,7 +125,7 @@ private void emitBlockQuadsDirection(QuadEmitter emitter, boolean[] connections, mesh.outputTo(emitter); } else { - emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 12, 0).sprite(1, 0, 16, 0).sprite(2, 0, 16, 4).sprite(3, 0, 12, 4).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 12, 0).uv(1, 16, 0).uv(2, 16, 4).uv(3, 12, 4).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/WireUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WireUnbakedModel.java index e63540ae1..4d45371ee 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WireUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WireUnbakedModel.java @@ -25,6 +25,7 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.*; import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Collections; @@ -42,8 +43,9 @@ public Collection getDependencies() { public void resolveParents(Function function) { } + @Nullable @Override - public BakedModel bake(ModelBaker loader, Function spriteFunction, ModelState rotationContainer, ResourceLocation modelId) { - return WireBakedModel.getInstance(spriteFunction); + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState state) { + return WireBakedModel.getInstance(textureGetter); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayBakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayBakedModel.java index b0357ecd1..6182024b4 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayBakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayBakedModel.java @@ -78,83 +78,83 @@ public class WireWalkwayBakedModel implements BakedModel { private final TextureAtlasSprite sprite; private final TextureAtlasSprite walkwaySprite; - protected WireWalkwayBakedModel(ModelBaker loader, Function textureGetter, ModelState rotationContainer) { - this.walkway = loader.getModel(WALKWAY_PLATFORM).bake(loader, textureGetter, rotationContainer, WALKWAY_PLATFORM); + protected WireWalkwayBakedModel(ModelBaker baker, Function textureGetter, ModelState state) { + this.walkway = baker.getModel(WALKWAY_PLATFORM).bake(baker, textureGetter, state); this.sprite = textureGetter.apply(new Material(InventoryMenu.BLOCK_ATLAS, ALUMINUM_WIRE)); this.walkwaySprite = textureGetter.apply(new Material(InventoryMenu.BLOCK_ATLAS, WALKWAY_TEXTURE)); var meshBuilder = RendererAccess.INSTANCE.getRenderer().meshBuilder(); var emitter = meshBuilder.getEmitter(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 0).sprite(2, 0, 4, 0).sprite(3, 0, 4, 8).sprite(0, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 0).uv(2, 4, 0).uv(3, 4, 8).uv(0, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 0.4f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.down = meshBuilder.build(); - emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 8).sprite(2, 0, 4, 8).sprite(3, 0, 4, 16).sprite(0, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 8).uv(2, 4, 8).uv(3, 4, 16).uv(0, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 1.0f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.up = meshBuilder.build(); - emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.north = meshBuilder.build(); - emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 0.0f, 0.6f, 0.4f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 0.6f, 0.6f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.south = meshBuilder.build(); - emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 0).sprite(1, 0, 12, 0).sprite(2, 0, 12, 8).sprite(3, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 0).uv(1, 12, 0).uv(2, 12, 8).uv(3, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.west = meshBuilder.build(); - emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 8).sprite(1, 0, 12, 8).sprite(2, 0, 12, 16).sprite(3, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.0f, 0.4f, 0.4f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 8).uv(1, 12, 8).uv(2, 12, 16).uv(3, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.6f, 0.4f, 1.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.east = meshBuilder.build(); - emitter.square(Direction.WEST, 0.6f, 0.0f, 0.4f, -0.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 0).sprite(2, 0, 4, 0).sprite(3, 0, 4, 8).sprite(0, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 0.6f, 0.0f, 0.4f, -0.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 0.0f, 0.4f, -0.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 0).uv(2, 4, 0).uv(3, 4, 8).uv(0, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 0.0f, 0.4f, -0.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallDown = meshBuilder.build(); - emitter.square(Direction.EAST, 0.6f, 1.2f, 0.4f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 0, 8).sprite(2, 0, 4, 8).sprite(3, 0, 4, 16).sprite(0, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 0.6f, 1.2f, 0.4f, 1.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 0.6f, 1.2f, 0.4f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 0, 8).uv(2, 4, 8).uv(3, 4, 16).uv(0, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 0.6f, 1.2f, 0.4f, 1.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallUp = meshBuilder.build(); - emitter.square(Direction.WEST, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.EAST, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 0).sprite(2, 0, 12, 0).sprite(3, 0, 12, 8).sprite(0, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 0).sprite(2, 0, 8, 0).sprite(3, 0, 8, 8).sprite(0, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 0).uv(2, 12, 0).uv(3, 12, 8).uv(0, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 0).uv(2, 8, 0).uv(3, 8, 8).uv(0, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallNorth = meshBuilder.build(); - emitter.square(Direction.EAST, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.WEST, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 8, 8).sprite(2, 0, 12, 8).sprite(3, 0, 12, 16).sprite(0, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(1, 0, 4, 8).sprite(2, 0, 8, 8).sprite(3, 0, 8, 16).sprite(0, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.EAST, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.WEST, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 0.4f, -0.2f, 0.6f, 0.0f, 0.4f).color(-1, -1, -1, -1).uv(1, 8, 8).uv(2, 12, 8).uv(3, 12, 16).uv(0, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 0.4f, 1.0f, 0.6f, 1.2f, 0.4f).color(-1, -1, -1, -1).uv(1, 4, 8).uv(2, 8, 8).uv(3, 8, 16).uv(0, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallSouth = meshBuilder.build(); - emitter.square(Direction.NORTH, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 0).sprite(1, 0, 4, 0).sprite(2, 0, 4, 8).sprite(3, 0, 0, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.SOUTH, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 0).sprite(1, 0, 12, 0).sprite(2, 0, 12, 8).sprite(3, 0, 8, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 0).sprite(1, 0, 8, 0).sprite(2, 0, 8, 8).sprite(3, 0, 4, 8).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 0).uv(1, 4, 0).uv(2, 4, 8).uv(3, 0, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 0).uv(1, 12, 0).uv(2, 12, 8).uv(3, 8, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 0).uv(1, 8, 0).uv(2, 8, 8).uv(3, 4, 8).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallWest = meshBuilder.build(); - emitter.square(Direction.SOUTH, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 0, 8).sprite(1, 0, 4, 8).sprite(2, 0, 4, 16).sprite(3, 0, 0, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.NORTH, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.DOWN, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 8, 8).sprite(1, 0, 12, 8).sprite(2, 0, 12, 16).sprite(3, 0, 8, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); - emitter.square(Direction.UP, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 4, 8).sprite(1, 0, 8, 8).sprite(2, 0, 8, 16).sprite(3, 0, 4, 16).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.SOUTH, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 0, 8).uv(1, 4, 8).uv(2, 4, 16).uv(3, 0, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.NORTH, -0.2f, 0.4f, 0.0f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.DOWN, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 8, 8).uv(1, 12, 8).uv(2, 12, 16).uv(3, 8, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(Direction.UP, 1.0f, 0.4f, 1.2f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 4, 8).uv(1, 8, 8).uv(2, 8, 16).uv(3, 4, 16).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); this.smallEast = meshBuilder.build(); } @@ -206,7 +206,7 @@ private void emitBlockQuadsDirection(QuadEmitter emitter, boolean[] connections, smallMesh.outputTo(emitter); } else { - emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).spriteColor(0, -1, -1, -1, -1).sprite(0, 0, 12, 0).sprite(1, 0, 16, 0).sprite(2, 0, 16, 4).sprite(3, 0, 12, 4).spriteBake(0, this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); + emitter.square(direction, 0.4f, 0.4f, 0.6f, 0.6f, 0.4f).color(-1, -1, -1, -1).uv(0, 12, 0).uv(1, 16, 0).uv(2, 16, 4).uv(3, 12, 4).spriteBake(this.sprite, MutableQuadView.BAKE_NORMALIZED & MutableQuadView.BAKE_LOCK_UV).emit(); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayUnbakedModel.java b/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayUnbakedModel.java index 835eeec76..36256498f 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayUnbakedModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/WireWalkwayUnbakedModel.java @@ -26,6 +26,7 @@ import net.minecraft.client.resources.model.*; import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Collections; @@ -43,8 +44,9 @@ public class WireWalkwayUnbakedModel implements UnbakedModel { public void resolveParents(Function function) { } + @Nullable @Override - public BakedModel bake(ModelBaker loader, Function spriteFunction, ModelState rotationContainer, ResourceLocation modelId) { - return WireWalkwayBakedModel.getInstance(loader, spriteFunction, rotationContainer); + public BakedModel bake(ModelBaker baker, Function textureGetter, ModelState rotationContainer) { + return WireWalkwayBakedModel.getInstance(baker, textureGetter, rotationContainer); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/ArchGreyEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/ArchGreyEntityModel.java index f371b8a17..c501018d4 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/ArchGreyEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/ArchGreyEntityModel.java @@ -75,12 +75,12 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - Body.render(poseStack, buffer, packedLight, packedOverlay); - Left_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Right_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Left_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Right_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Head.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertices, int light, int overlay, int color) { + Body.render(poseStack, vertices, light, overlay); + Left_Arm.render(poseStack, vertices, light, overlay); + Right_Arm.render(poseStack, vertices, light, overlay); + Left_Leg.render(poseStack, vertices, light, overlay); + Right_Leg.render(poseStack, vertices, light, overlay); + Head.render(poseStack, vertices, light, overlay); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/CometCubeEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/CometCubeEntityModel.java index 5ca89efd9..4b2c119b8 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/CometCubeEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/CometCubeEntityModel.java @@ -31,11 +31,11 @@ import net.minecraft.world.entity.Entity; public class CometCubeEntityModel extends EntityModel { - private final ModelPart Body; + private final ModelPart body; private final ModelPart tail; public CometCubeEntityModel(ModelPart root) { - this.Body = root.getChild("Body"); + this.body = root.getChild("Body"); this.tail = root.getChild("tail"); } @@ -56,8 +56,9 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - Body.render(poseStack, buffer, packedLight, packedOverlay); - tail.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertices, int light, int overlay, int color) { + body.render(poseStack, vertices, light, overlay); + tail.render(poseStack, vertices, light, overlay); + } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/EvolvedSkeletonBossModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/EvolvedSkeletonBossModel.java index 022f3c2b0..7d9304c38 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/EvolvedSkeletonBossModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/EvolvedSkeletonBossModel.java @@ -29,7 +29,10 @@ import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.geom.ModelPart; import net.minecraft.client.model.geom.PartPose; -import net.minecraft.client.model.geom.builders.*; +import net.minecraft.client.model.geom.builders.CubeListBuilder; +import net.minecraft.client.model.geom.builders.LayerDefinition; +import net.minecraft.client.model.geom.builders.MeshDefinition; +import net.minecraft.client.model.geom.builders.PartDefinition; import net.minecraft.util.Mth; import net.minecraft.world.entity.HumanoidArm; @@ -293,8 +296,8 @@ public static LayerDefinition createBodyLayer() { } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - this.root.render(poseStack, buffer, packedLight, packedOverlay, red, green, blue, alpha); + public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, int color) { + this.root.render(matrices, vertices, light, overlay, color); } private void setRotation(ModelPart model, float x, float y, float z) { diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/GazerEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/GazerEntityModel.java index 844f38292..e87976e83 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/GazerEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/GazerEntityModel.java @@ -33,19 +33,19 @@ public class GazerEntityModel extends EntityModel { // This layer location should be baked with EntityRendererProvider.Context in the entity renderer and passed into this model's constructor private final ModelPart Body; - private final ModelPart Left_Arm; - private final ModelPart Right_Arm; - private final ModelPart Left_leg; - private final ModelPart Right_leg; - private final ModelPart Head; + private final ModelPart leftArm; + private final ModelPart rightArm; + private final ModelPart leftLeg; + private final ModelPart rightLeg; + private final ModelPart head; public GazerEntityModel(ModelPart root) { this.Body = root.getChild("Body"); - this.Left_Arm = root.getChild("Left_Arm"); - this.Right_Arm = root.getChild("Right_Arm"); - this.Left_leg = root.getChild("Left_leg"); - this.Right_leg = root.getChild("Right_leg"); - this.Head = root.getChild("Head"); + this.leftArm = root.getChild("Left_Arm"); + this.rightArm = root.getChild("Right_Arm"); + this.leftLeg = root.getChild("Left_leg"); + this.rightLeg = root.getChild("Right_leg"); + this.head = root.getChild("Head"); } public static LayerDefinition createBodyLayer() { @@ -80,12 +80,12 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - Body.render(poseStack, buffer, packedLight, packedOverlay); - Left_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Right_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Left_leg.render(poseStack, buffer, packedLight, packedOverlay); - Right_leg.render(poseStack, buffer, packedLight, packedOverlay); - Head.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertices, int light, int overlay, int color) { + Body.render(poseStack, vertices, light, overlay); + leftArm.render(poseStack, vertices, light, overlay); + rightArm.render(poseStack, vertices, light, overlay); + leftLeg.render(poseStack, vertices, light, overlay); + rightLeg.render(poseStack, vertices, light, overlay); + head.render(poseStack, vertices, light, overlay); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/GreyEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/GreyEntityModel.java index 6d4b1baf1..28fa16cc4 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/GreyEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/GreyEntityModel.java @@ -83,14 +83,13 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag Left_Arm.xRot = Mth.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F / armSwingScale; } - @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - Body.render(poseStack, buffer, packedLight, packedOverlay); - Left_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Right_Arm.render(poseStack, buffer, packedLight, packedOverlay); - Left_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Right_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Head.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, int color) { + Body.render(matrices, vertices, light, overlay); + Left_Arm.render(matrices, vertices, light, overlay); + Right_Arm.render(matrices, vertices, light, overlay); + Left_Leg.render(matrices, vertices, light, overlay); + Right_Leg.render(matrices, vertices, light, overlay); + Head.render(matrices, vertices, light, overlay); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/LanderModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/LanderModel.java index 6b070ceae..e314297d7 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/LanderModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/LanderModel.java @@ -85,9 +85,9 @@ public void setupAnim(LanderEntity entity, float limbSwing, float limbSwingAmoun } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer vertexConsumer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - feet.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - legs.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); - head.render(poseStack, vertexConsumer, packedLight, packedOverlay, red, green, blue, alpha); + public void renderToBuffer(PoseStack matrices, VertexConsumer vertices, int light, int overlay, int color) { + feet.render(matrices, vertices, light, overlay, color); + legs.render(matrices, vertices, light, overlay, color); + head.render(matrices, vertices, overlay, overlay, color); } } diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/OliGrubEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/OliGrubEntityModel.java index 297360692..203ada47d 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/OliGrubEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/OliGrubEntityModel.java @@ -60,9 +60,9 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - Body.render(poseStack, buffer, packedLight, packedOverlay); - Left_mandible.render(poseStack, buffer, packedLight, packedOverlay); - Right_Mandible.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertices, int light, int overlay, int color) { + Body.render(poseStack, vertices, light, overlay); + Left_mandible.render(poseStack, vertices, light, overlay); + Right_Mandible.render(poseStack, vertices, light, overlay); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/entity/RumblerEntityModel.java b/src/main/java/dev/galacticraft/mod/client/model/entity/RumblerEntityModel.java index 53cebe313..c6a6a0b6d 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/entity/RumblerEntityModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/entity/RumblerEntityModel.java @@ -32,25 +32,25 @@ public class RumblerEntityModel extends EntityModel { private final ModelPart body; - private final ModelPart Left_Claw; - private final ModelPart Right_Claw; - private final ModelPart Front_Left_Leg; - private final ModelPart Middle_Left_Leg; - private final ModelPart Back_Left_Leg; - private final ModelPart Front_Right_Leg; - private final ModelPart Middle_Right_Leg; - private final ModelPart Back_Right_Leg; + private final ModelPart leftClaw; + private final ModelPart rightClaw; + private final ModelPart frontLeftLeg; + private final ModelPart middleLeftLeg; + private final ModelPart backLeftLeg; + private final ModelPart frontRightLeg; + private final ModelPart middleRightLeg; + private final ModelPart backRightLeg; public RumblerEntityModel(ModelPart root) { this.body = root.getChild("body"); - this.Left_Claw = root.getChild("Left_Claw"); - this.Right_Claw = root.getChild("Right_Claw"); - this.Front_Left_Leg = root.getChild("Front_Left_Leg"); - this.Middle_Left_Leg = root.getChild("Middle_Left_Leg"); - this.Back_Left_Leg = root.getChild("Back_Left_Leg"); - this.Front_Right_Leg = root.getChild("Front_Right_Leg"); - this.Middle_Right_Leg = root.getChild("Middle_Right_Leg"); - this.Back_Right_Leg = root.getChild("Back_Right_Leg"); + this.leftClaw = root.getChild("Left_Claw"); + this.rightClaw = root.getChild("Right_Claw"); + this.frontLeftLeg = root.getChild("Front_Left_Leg"); + this.middleLeftLeg = root.getChild("Middle_Left_Leg"); + this.backLeftLeg = root.getChild("Back_Left_Leg"); + this.frontRightLeg = root.getChild("Front_Right_Leg"); + this.middleRightLeg = root.getChild("Middle_Right_Leg"); + this.backRightLeg = root.getChild("Back_Right_Leg"); } public static LayerDefinition createBodyLayer() { @@ -89,15 +89,15 @@ public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ag } @Override - public void renderToBuffer(PoseStack poseStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - body.render(poseStack, buffer, packedLight, packedOverlay); - Left_Claw.render(poseStack, buffer, packedLight, packedOverlay); - Right_Claw.render(poseStack, buffer, packedLight, packedOverlay); - Front_Left_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Middle_Left_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Back_Left_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Front_Right_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Middle_Right_Leg.render(poseStack, buffer, packedLight, packedOverlay); - Back_Right_Leg.render(poseStack, buffer, packedLight, packedOverlay); + public void renderToBuffer(PoseStack poseStack, VertexConsumer vertices, int light, int overlay, int color) { + body.render(poseStack, vertices, light, overlay); + leftClaw.render(poseStack, vertices, light, overlay); + rightClaw.render(poseStack, vertices, light, overlay); + frontLeftLeg.render(poseStack, vertices, light, overlay); + middleLeftLeg.render(poseStack, vertices, light, overlay); + backLeftLeg.render(poseStack, vertices, light, overlay); + frontRightLeg.render(poseStack, vertices, light, overlay); + middleRightLeg.render(poseStack, vertices, light, overlay); + backRightLeg.render(poseStack, vertices, light, overlay); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java b/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java index 957ed65f2..48b36e117 100644 --- a/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java +++ b/src/main/java/dev/galacticraft/mod/client/model/types/ObjModel.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.client.model.types; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import de.javagl.obj.Mtl; import de.javagl.obj.MtlReader; @@ -70,7 +70,7 @@ public GCBakedModel bake(ResourceManager resourceManager, Function bakedMaterials = new ArrayList<>(); for (Mtl material : materials) { if (material.getMapKdOptions() != null && material.getMapKdOptions().getFileName() != null) - bakedMaterials.add(new BakedMaterial(material, spriteGetter.apply(new Material(atlas.orElse(GCRenderTypes.OBJ_ATLAS), new ResourceLocation(material.getMapKdOptions().getFileName()))))); + bakedMaterials.add(new BakedMaterial(material, spriteGetter.apply(new Material(atlas.orElse(GCRenderTypes.OBJ_ATLAS), ResourceLocation.parse(material.getMapKdOptions().getFileName()))))); } return new BakedObjModel(obj, bakedMaterials); @@ -83,14 +83,14 @@ public record BakedMaterial(Mtl material, TextureAtlasSprite sprite) {} public static class ObjType implements GCModelType { public static final ResourceLocation ID = Constant.id("obj"); - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( ResourceLocation.CODEC.fieldOf("model").forGetter(o -> o.model), ResourceLocation.CODEC.fieldOf("mtl").forGetter(o -> o.material), ResourceLocation.CODEC.optionalFieldOf("atlas").forGetter(o -> o.atlas) ).apply(instance, ObjModel::new)); @Override - public Codec codec() { + public MapCodec codec() { return CODEC; } diff --git a/src/main/java/dev/galacticraft/mod/client/network/GCClientPacketReceiver.java b/src/main/java/dev/galacticraft/mod/client/network/GCClientPacketReceiver.java index e192b88cf..6ac73f831 100644 --- a/src/main/java/dev/galacticraft/mod/client/network/GCClientPacketReceiver.java +++ b/src/main/java/dev/galacticraft/mod/client/network/GCClientPacketReceiver.java @@ -22,68 +22,26 @@ package dev.galacticraft.mod.client.network; -import dev.galacticraft.api.registry.AddonRegistries; -import dev.galacticraft.api.rocket.RocketData; -import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.Constant.Packet; -import dev.galacticraft.mod.client.gui.screen.ingame.CelestialSelectionScreen; -import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; -import dev.galacticraft.mod.content.item.GCItems; -import dev.galacticraft.mod.network.GCScreenType; -import dev.galacticraft.mod.network.packets.*; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.network.s2c.*; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.level.block.entity.BlockEntity; - -import java.util.Objects; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; /** * Handles client-bound (S2C) packets -= */ -@Environment(EnvType.CLIENT) + */ public class GCClientPacketReceiver { public static void register() { - ClientPlayNetworking.registerGlobalReceiver(Packet.BUBBLE_SIZE, (client, handler, buf, responseSender) -> { - FriendlyByteBuf buffer = new FriendlyByteBuf(buf.copy()); - client.execute(() -> { - BlockPos pos = buffer.readBlockPos(); - if (client.level.hasChunk(pos.getX() >> 4, pos.getZ() >> 4)) { - BlockEntity entity = client.level.getBlockEntity(pos); - if (entity instanceof OxygenBubbleDistributorBlockEntity machine) { - machine.setSize(buffer.readDouble()); - } - } - }); - }); - - ClientPlayNetworking.registerGlobalReceiver(Packet.OPEN_SCREEN, (client, handler, buf, responseSender) -> { - var screen = buf.readEnum(GCScreenType.class); - switch (screen) { - case CELESTIAL -> { - boolean mapMode = buf.readBoolean(); - client.execute(() -> client.setScreen(new CelestialSelectionScreen(mapMode, RocketData.fromNbt(GCItems.ROCKET.getDefaultInstance().getTag()), true, null))); - } - default -> Constant.LOGGER.error("No screen found with id '{}'!", screen); - } - }); - - ClientPlayNetworking.registerGlobalReceiver(Packet.PLANET_MENU_PACKET, (minecraftClient, clientPlayNetworkHandler, buf, packetSender) -> { - RocketData rocketData = RocketData.fromNbt(Objects.requireNonNull(buf.readNbt())); - int cBody = buf.readInt(); - minecraftClient.execute(() -> minecraftClient.setScreen(new CelestialSelectionScreen(false, rocketData, true, cBody == -1 ? null : clientPlayNetworkHandler.registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).getHolder(cBody).orElseThrow().value()))); - }); - - registerPacket(RocketSpawnPacket.TYPE); - registerPacket(FootprintPacket.TYPE); - registerPacket(FootprintRemovedPacket.TYPE); - registerPacket(ResetThirdPersonPacket.TYPE); + register(BubbleSizePayload.TYPE); + register(BubbleUpdatePayload.TYPE); + register(OpenCelestialScreenPayload.TYPE); + register(RocketSpawnPacket.TYPE); + register(FootprintPacket.TYPE); + register(FootprintRemovedPacket.TYPE); + register(ResetPerspectivePacket.TYPE); } - public static void registerPacket(PacketType type) { - ClientPlayNetworking.registerGlobalReceiver(type, GCPacket::handle); + public static

void register(CustomPacketPayload.Type

type) { + ClientPlayNetworking.registerGlobalReceiver(type, (payload, context) -> context.client().execute(payload.handle(context))); } } diff --git a/src/main/java/dev/galacticraft/mod/client/particle/AcidVaporParticle.java b/src/main/java/dev/galacticraft/mod/client/particle/AcidVaporParticle.java index a5862b0a8..f471c1424 100644 --- a/src/main/java/dev/galacticraft/mod/client/particle/AcidVaporParticle.java +++ b/src/main/java/dev/galacticraft/mod/client/particle/AcidVaporParticle.java @@ -97,7 +97,7 @@ public void tick() { public record Provider(SpriteSet sprites) implements ParticleProvider { @Override public Particle createParticle(ScaleParticleType type, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { - return new AcidVaporParticle(level, x, y, z, xSpeed, ySpeed, zSpeed, sprites, type.scale()); + return new AcidVaporParticle(level, x, y, z, xSpeed, ySpeed, zSpeed, sprites, type.getScale()); } } } diff --git a/src/main/java/dev/galacticraft/mod/client/particle/LaunchFlameParticle.java b/src/main/java/dev/galacticraft/mod/client/particle/LaunchFlameParticle.java index b177d0d8b..7a18a724e 100644 --- a/src/main/java/dev/galacticraft/mod/client/particle/LaunchFlameParticle.java +++ b/src/main/java/dev/galacticraft/mod/client/particle/LaunchFlameParticle.java @@ -55,7 +55,7 @@ public LaunchFlameParticle(ClientLevel level, double posX, double posY, double p this.lifetime = (int) (this.lifetime * 1F); this.hasPhysics = true; this.spawnSmokeShort = launched; - this.ridingEntity = particleData.getEntityUUID(); + this.ridingEntity = particleData.getUuid(); this.sprites = sprites; this.setSpriteFromAge(sprites); } @@ -121,7 +121,7 @@ public void tick() { if (entities != null) { for (Entity entity : entities) { if (entity instanceof LivingEntity && entity.isAlive() && !entity.isOnFire() && !entity.getUUID().equals(this.ridingEntity)) { - entity.setSecondsOnFire(3); + entity.igniteForSeconds(3); // GalacticraftCore.packetPipeline.sendToServer(new PacketSimple(EnumSimplePacket.S_SET_ENTITY_FIRE, GCCoreUtil.getDimensionType(entity.level()), new Object[]{entity.getEntityId()})); } } diff --git a/src/main/java/dev/galacticraft/mod/client/particle/LaunchParticle.java b/src/main/java/dev/galacticraft/mod/client/particle/LaunchParticle.java index 9b6b7ffbb..913f73782 100644 --- a/src/main/java/dev/galacticraft/mod/client/particle/LaunchParticle.java +++ b/src/main/java/dev/galacticraft/mod/client/particle/LaunchParticle.java @@ -24,13 +24,9 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.TextureSheetParticle; -import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import java.util.LinkedList; import java.util.List; public abstract class LaunchParticle extends TextureSheetParticle { diff --git a/src/main/java/dev/galacticraft/mod/client/particle/LaunchSmokeParticle.java b/src/main/java/dev/galacticraft/mod/client/particle/LaunchSmokeParticle.java index c59d1e3a5..cd26efa09 100644 --- a/src/main/java/dev/galacticraft/mod/client/particle/LaunchSmokeParticle.java +++ b/src/main/java/dev/galacticraft/mod/client/particle/LaunchSmokeParticle.java @@ -31,7 +31,6 @@ import net.minecraft.client.particle.ParticleProvider; import net.minecraft.client.particle.ParticleRenderType; import net.minecraft.client.particle.SpriteSet; -import net.minecraft.core.particles.SimpleParticleType; public class LaunchSmokeParticle extends LaunchParticle { float smokeParticleScale; @@ -109,7 +108,7 @@ public void tick() { public record Provider(SpriteSet sprites) implements ParticleProvider { @Override public Particle createParticle(LaunchSmokeParticleOption option, ClientLevel level, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { - return new LaunchSmokeParticle(level, x, y, z, xSpeed, ySpeed, zSpeed, option.getScale(), option.isLaunched(), this.sprites); + return new LaunchSmokeParticle(level, x, y, z, xSpeed, ySpeed, zSpeed, option.scale(), option.launched(), this.sprites); } } } diff --git a/src/main/java/dev/galacticraft/mod/client/render/FootprintRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/FootprintRenderer.java index 4da893c7b..b87ecf2ea 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/FootprintRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/FootprintRenderer.java @@ -46,7 +46,7 @@ public class FootprintRenderer { public static void renderFootprints(WorldRenderContext context) { context.profiler().push("footprints"); PoseStack poseStack = context.matrixStack(); - ResourceLocation dimActive = context.world().dimensionTypeId().location(); + ResourceLocation dimActive = context.world().dimensionTypeRegistration().unwrapKey().get().location(); List footprintsToDraw = new LinkedList<>(); for (List footprintList : context.world().galacticraft$getFootprintManager().getFootprints().values()) { @@ -96,9 +96,8 @@ public static void renderFootprints(WorldRenderContext context) { // } float ageScale = footprint.age / (float) Footprint.MAX_AGE; - BufferBuilder worldRenderer = tessellator.getBuilder(); + BufferBuilder buffer = tessellator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); RenderSystem.setShader(GameRenderer::getPositionTexShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); Vec3 cameraPos = context.camera().getPosition(); float x = (float) (footprint.position.x - cameraPos.x); @@ -110,20 +109,17 @@ public static void renderFootprints(WorldRenderContext context) { RenderSystem.setShaderColor(1F - ageScale, 1F - ageScale, 1F - ageScale, 1F - ageScale); float footprintScale = 0.5F; Matrix4f last = poseStack.last().pose(); - worldRenderer - .vertex(last, Mth.sin((45 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((45 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) - .uv(f7, f9).endVertex(); - worldRenderer - .vertex(last, Mth.sin((135 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((135 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) - .uv(f7, f8).endVertex(); - worldRenderer - .vertex(last, Mth.sin((225 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((225 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) - .uv(f6, f8).endVertex(); - worldRenderer - .vertex(last, Mth.sin((315 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((315 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) - .uv(f6, f9).endVertex(); - - tessellator.end(); + buffer + .addVertex(last, Mth.sin((45 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((45 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) + .setUv(f7, f9) + .addVertex(last, Mth.sin((135 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((135 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) + .setUv(f7, f8) + .addVertex(last, Mth.sin((225 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((225 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) + .setUv(f6, f8) + .addVertex(last, Mth.sin((315 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale, 0, Mth.cos((315 - footprint.rotation) / Mth.RAD_TO_DEG) * footprintScale) + .setUv(f6, f9); + + BufferUploader.drawWithShader(buffer.buildOrThrow()); poseStack.popPose(); } @@ -135,15 +131,15 @@ public static void renderFootprints(WorldRenderContext context) { context.profiler().pop(); } - public static void setFootprints(long chunkKey, List prints) { + public static void setFootprints(long chunk, List prints) { FootprintManager manager = Minecraft.getInstance().level.galacticraft$getFootprintManager(); - List footprintList = manager.getFootprints().get(chunkKey); + List footprintList = manager.getFootprints().get(chunk); if (footprintList == null) { footprintList = new ArrayList<>(); } footprintList.addAll(prints); - manager.getFootprints().put(chunkKey, footprintList); + manager.getFootprints().put(chunk, footprintList); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/render/block/entity/BasicSolarPanelBlockEntityRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/block/entity/BasicSolarPanelBlockEntityRenderer.java index 6b22b89ba..b0d075345 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/block/entity/BasicSolarPanelBlockEntityRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/block/entity/BasicSolarPanelBlockEntityRenderer.java @@ -76,17 +76,17 @@ public void render(BasicSolarPanelBlockEntity blockEntity, float tickDelta, Pose matrices.pushPose(); matrices.translate(0.5F, 1.0F, 0.5F); RenderSystem.setShaderTexture(0, BasicSolarPanelBlockEntityRenderer.TEXTURE); - this.render(matrices, vertexConsumers.getBuffer(RenderType.entityCutout(TEXTURE)), light, overlay, 1.0F, 1.0F, 1.0F, 1.0F); + this.render(matrices, vertexConsumers.getBuffer(RenderType.entityCutout(TEXTURE)), light, overlay); matrices.popPose(); } - public void render(PoseStack matrices, VertexConsumer vertexConsumer, int light, int overlay, float red, float green, float blue, float alpha) { - this.pole.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); + public void render(PoseStack matrices, VertexConsumer vertexConsumer, int light, int overlay) { + this.pole.render(matrices, vertexConsumer, light, overlay); matrices.translate(0.0F, 1.5F, 0.0F); matrices.mulPose(Axis.ZP.rotationDegrees(180.0F)); matrices.mulPose(Axis.YP.rotationDegrees(-90.0F)); - this.panel.render(matrices, vertexConsumer, light, overlay, red, green, blue, alpha); + this.panel.render(matrices, vertexConsumer, light, overlay); } } diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/CelestialBodyTextures.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/CelestialBodyTextures.java index 8f3ff59f5..d1c081a14 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/CelestialBodyTextures.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/CelestialBodyTextures.java @@ -27,7 +27,7 @@ public final class CelestialBodyTextures { public static final ResourceLocation ATMOSPHERIC_SUN = Constant.id("textures/gui/planets/atmosphericsun.png"); - public static final ResourceLocation SUN = new ResourceLocation("textures/environment/sun.png"); + public static final ResourceLocation SUN = ResourceLocation.withDefaultNamespace("textures/environment/sun.png"); public static final ResourceLocation EARTH = Constant.id("textures/gui/celestialbodies/earth.png"); private CelestialBodyTextures() {} diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java index 659e7c6ed..f640be1c8 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java @@ -43,16 +43,16 @@ public void render(WorldRenderContext context) { RenderSystem.disableBlend(); RenderSystem.depthMask(false); - final PoseStack matrices = context.matrixStack(); - final BufferBuilder buffer = Tesselator.getInstance().getBuilder(); + PoseStack matrices = context.matrixStack(); + if (matrices == null) matrices = new PoseStack(); context.profiler().push("stars"); matrices.pushPose(); matrices.mulPose(Axis.YP.rotationDegrees(-90.0F)); - matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickDelta()) * 360.0f)); + matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickCounter().getRealtimeDeltaTicks()) * 360.0f)); matrices.mulPose(Axis.YP.rotationDegrees(-19.0F)); - this.starManager.render(context.matrixStack(), context.projectionMatrix(), context.world(), context.tickDelta()); + this.starManager.render(matrices, context.projectionMatrix(), context.world(), context.tickCounter().getRealtimeDeltaTicks()); matrices.popPose(); context.profiler().pop(); @@ -61,19 +61,19 @@ public void render(WorldRenderContext context) { matrices.pushPose(); matrices.mulPose(Axis.YP.rotationDegrees(-90.0F)); - matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickDelta()) * 360.0f)); + matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickCounter().getRealtimeDeltaTicks()) * 360.0f)); Matrix4f matrix = matrices.last().pose(); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); float size = 15.0F; RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, SUN_TEXTURE); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - buffer.vertex(matrix, -size, 100.0F, -size).uv(0.0F, 0.0F).endVertex(); - buffer.vertex(matrix, size, 100.0F, -size).uv(1.0F, 0.0F).endVertex(); - buffer.vertex(matrix, size, 100.0F, size).uv(1.0F, 1.0F).endVertex(); - buffer.vertex(matrix, -size, 100.0F, size).uv(0.0F, 1.0F).endVertex(); - BufferUploader.drawWithShader(buffer.end()); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(matrix, -size, 100.0F, -size).setUv(0.0F, 0.0F) + .addVertex(matrix, size, 100.0F, -size).setUv(1.0F, 0.0F) + .addVertex(matrix, size, 100.0F, size).setUv(1.0F, 1.0F) + .addVertex(matrix, -size, 100.0F, size).setUv(0.0F, 1.0F); + BufferUploader.drawWithShader(buffer.buildOrThrow()); matrices.popPose(); context.profiler().pop(); @@ -86,17 +86,17 @@ public void render(WorldRenderContext context) { assert Minecraft.getInstance().player != null; float earthRotation = (float) (context.world().getSharedSpawnPos().getZ() - Minecraft.getInstance().player.getZ()) * 0.01F; matrices.scale(0.6F, 0.6F, 0.6F); - matrices.mulPose(Axis.XP.rotationDegrees((context.world().getTimeOfDay(context.tickDelta()) * 360.0F) * 0.001F)); + matrices.mulPose(Axis.XP.rotationDegrees((context.world().getTimeOfDay(context.tickCounter().getRealtimeDeltaTicks()) * 360.0F) * 0.001F)); matrices.mulPose(Axis.XP.rotationDegrees(earthRotation + 200.0F)); RenderSystem.setShaderTexture(0, EARTH_TEXTURE); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - buffer.vertex(matrix, -size, -100.0F, size).uv(0.0F, 1.0F).endVertex(); - buffer.vertex(matrix, size, -100.0F, size).uv(1.0F, 1.0F).endVertex(); - buffer.vertex(matrix, size, -100.0F, -size).uv(1.0F, 0.0F).endVertex(); - buffer.vertex(matrix, -size, -100.0F, -size).uv(0.0F, 0.0F).endVertex(); - BufferUploader.drawWithShader(buffer.end()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(matrix, -size, -100.0F, size).setUv(0.0F, 1.0F) + .addVertex(matrix, size, -100.0F, size).setUv(1.0F, 1.0F) + .addVertex(matrix, size, -100.0F, -size).setUv(1.0F, 0.0F) + .addVertex(matrix, -size, -100.0F, -size).setUv(0.0F, 0.0F); + BufferUploader.drawWithShader(buffer.buildOrThrow()); context.profiler().pop(); matrices.popPose(); diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/OverworldRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/OverworldRenderer.java index 321026cc5..d81a5a4c2 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/OverworldRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/OverworldRenderer.java @@ -43,7 +43,7 @@ // TODO: Allow support for more planets public class OverworldRenderer { - public static final ResourceLocation MOON_LOCATION = new ResourceLocation("textures/environment/moon_phases.png"); + public static final ResourceLocation MOON_LOCATION = ResourceLocation.withDefaultNamespace("textures/environment/moon_phases.png"); @Nullable private VertexBuffer starBuffer; @Nullable @@ -55,8 +55,6 @@ public class OverworldRenderer { private Minecraft minecraft = Minecraft.getInstance(); public OverworldRenderer() { RandomSource rand = RandomSource.create(10842L); - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder worldrenderer = tessellator.getBuilder(); RenderSystem.setShader(GameRenderer::getPositionShader); if (this.starBuffer != null) { this.starBuffer.close(); @@ -64,19 +62,19 @@ public OverworldRenderer() { this.starBuffer = new VertexBuffer(VertexBuffer.Usage.STATIC); this.starBuffer.bind(); - this.starBuffer.upload(this.renderStars(worldrenderer, rand)); + this.starBuffer.upload(this.renderStars(rand)); VertexBuffer.unbind(); this.starBuffer2 = new VertexBuffer(VertexBuffer.Usage.STATIC); this.starBuffer2.bind(); - this.starBuffer2.upload(this.renderStars(worldrenderer, rand)); + this.starBuffer2.upload(this.renderStars(rand)); VertexBuffer.unbind(); this.starBuffer3 = new VertexBuffer(VertexBuffer.Usage.STATIC); this.starBuffer3.bind(); - this.starBuffer3.upload(this.renderStars(worldrenderer, rand)); + this.starBuffer3.upload(this.renderStars(rand)); VertexBuffer.unbind(); this.starBuffer4 = new VertexBuffer(VertexBuffer.Usage.STATIC); this.starBuffer4.bind(); - this.starBuffer4.upload(this.renderStars(worldrenderer, rand)); + this.starBuffer4.upload(this.renderStars(rand)); VertexBuffer.unbind(); } public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matrix4f, float partialTicks, Camera camera, boolean bl, Runnable runnable) { @@ -91,8 +89,6 @@ public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matr FogRenderer.levelFogColor(); RenderSystem.setShaderColor(i, x, var5, 1.0F); - final Tesselator tesselator = Tesselator.getInstance(); - BufferBuilder worldRenderer = tesselator.getBuilder(); RenderSystem.depthMask(false); RenderSystem.setShaderColor(i, x, var5, 1.0F); RenderSystem.enableBlend(); @@ -116,19 +112,19 @@ public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matr size = sunriseColors[2] * sunsetModInv; float rand3; - worldRenderer.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); - worldRenderer.vertex(0.0D, 100.0D, 0.0D).color(z * sunsetModInv, var9 * sunsetModInv, size * sunsetModInv, sunriseColors[3]).endVertex(); + buffer.addVertex(0.0F, 100.0F, 0.0F).setColor(z * sunsetModInv, var9 * sunsetModInv, size * sunsetModInv, sunriseColors[3]); final byte phi = 16; for (int var27 = 0; var27 <= phi; ++var27) { rand3 = (float) (var27 * (Math.PI * 2) / phi); final float xx = Mth.sin(rand3); final float rand5 = Mth.cos(rand3); - worldRenderer.vertex(xx * 120.0F, rand5 * 120.0F, -rand5 * 40.0F * sunriseColors[3]).color(sunriseColors[0] * sunsetModInv, sunriseColors[1] * sunsetModInv, sunriseColors[2] * sunsetModInv, 0.0F).endVertex(); + buffer.addVertex(xx * 120.0F, rand5 * 120.0F, -rand5 * 40.0F * sunriseColors[3]).setColor(sunriseColors[0] * sunsetModInv, sunriseColors[1] * sunsetModInv, sunriseColors[2] * sunsetModInv, 0.0F); } - tesselator.end(); + BufferUploader.drawWithShader(buffer.buildOrThrow()); poseStack.popPose(); } @@ -191,12 +187,12 @@ public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matr RenderSystem.setShaderTexture(0, CelestialBodyTextures.SUN); RenderSystem.setShader(GameRenderer::getPositionTexShader); Matrix4f matrix4f1 = poseStack.last().pose(); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer.vertex(matrix4f1, -r, 100.0F, -r).uv(0.0F, 0.0F).endVertex(); - worldRenderer.vertex(matrix4f1, r, 100.0F, -r).uv(1.0F, 0.0F).endVertex(); - worldRenderer.vertex(matrix4f1, r, 100.0F, r).uv(1.0F, 1.0F).endVertex(); - worldRenderer.vertex(matrix4f1, -r, 100.0F, r).uv(0.0F, 1.0F).endVertex(); - tesselator.end(); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(matrix4f1, -r, 100.0F, -r).setUv(0.0F, 0.0F) + .addVertex(matrix4f1, r, 100.0F, -r).setUv(1.0F, 0.0F) + .addVertex(matrix4f1, r, 100.0F, r).setUv(1.0F, 1.0F) + .addVertex(matrix4f1, -r, 100.0F, r).setUv(0.0F, 1.0F); + BufferUploader.drawWithShader(buffer.buildOrThrow()); // Draw moon r = 40.0F; @@ -208,12 +204,12 @@ public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matr final float rand7 = (var29) / 2.0F; final float zz = (cosphi + 1) / 4.0F; final float rand9 = (var29 + 1) / 2.0F; - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer.vertex(matrix4f1, -r, -100.0F, r).uv(zz, rand9).endVertex(); - worldRenderer.vertex(matrix4f1, r, -100.0F, r).uv(yy, rand9).endVertex(); - worldRenderer.vertex(matrix4f1, r, -100.0F, -r).uv(yy, rand7).endVertex(); - worldRenderer.vertex(matrix4f1, -r, -100.0F, -r).uv(zz, rand7).endVertex(); - tesselator.end(); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(matrix4f1, -r, -100.0F, r).setUv(zz, rand9) + .addVertex(matrix4f1, r, -100.0F, r).setUv(yy, rand9) + .addVertex(matrix4f1, r, -100.0F, -r).setUv(yy, rand7) + .addVertex(matrix4f1, -r, -100.0F, -r).setUv(zz, rand7); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.disableBlend(); @@ -238,16 +234,16 @@ public void renderOverworldSky(Player player, PoseStack poseStack, Matrix4f matr size = 1.0F; RenderSystem.setShaderColor(sinth, sinth, sinth, 1.0F); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); float zoomIn = 0.0F; float cornerB = 1.0F - zoomIn; Matrix4f matrix4f2 = poseStack.last().pose(); - worldRenderer.vertex(matrix4f2, -size, 0, size).uv(zoomIn, cornerB).endVertex(); - worldRenderer.vertex(matrix4f2, size, 0, size).uv(cornerB, cornerB).endVertex(); - worldRenderer.vertex(matrix4f2, size, 0, -size).uv(cornerB, zoomIn).endVertex(); - worldRenderer.vertex(matrix4f2, -size, 0, -size).uv(zoomIn, zoomIn).endVertex(); - tesselator.end(); + buffer.addVertex(matrix4f2, -size, 0, size).setUv(zoomIn, cornerB) + .addVertex(matrix4f2, size, 0, size).setUv(cornerB, cornerB) + .addVertex(matrix4f2, size, 0, -size).setUv(cornerB, zoomIn) + .addVertex(matrix4f2, -size, 0, -size).setUv(zoomIn, zoomIn); + BufferUploader.drawWithShader(buffer.buildOrThrow()); poseStack.popPose(); } @@ -276,9 +272,9 @@ public static Vec3 getFogColor(ClientLevel level, Camera camera, float f) { } // TODO: Move this to a common place - private BufferBuilder.RenderedBuffer renderStars(BufferBuilder worldRenderer, RandomSource rand) { + private MeshData renderStars(RandomSource rand) { RenderSystem.setShader(GameRenderer::getPositionShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int i = 0; i < 4000; ++i) { double x = rand.nextFloat() * 2.0F - 1.0F; @@ -315,10 +311,10 @@ private BufferBuilder.RenderedBuffer renderStars(BufferBuilder worldRenderer, Ra final double ff = a * sinphi - d * cosphi; final double dx = ff * sinth - e * costh; final double dz = e * sinth + ff * costh; - worldRenderer.vertex(xx + dx, yy + dy, zz + dz).endVertex(); + buffer.addVertex((float) (xx + dx), (float) (yy + dy), (float) (zz + dz)); } } } - return worldRenderer.end(); + return buffer.buildOrThrow(); } } diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java index 524d7e169..2070fc456 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java @@ -32,15 +32,16 @@ public class SpaceSkyRenderer implements DimensionRenderingRegistry.SkyRenderer @Override public void render(WorldRenderContext context) { - final PoseStack matrices = context.matrixStack(); + PoseStack matrices = context.matrixStack(); + if (matrices == null) matrices = new PoseStack(); context.profiler().push("stars"); matrices.pushPose(); matrices.mulPose(Axis.YP.rotationDegrees(-90.0F)); - matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickDelta()) * 360.0f)); + matrices.mulPose(Axis.XP.rotationDegrees(context.world().getTimeOfDay(context.tickCounter().getRealtimeDeltaTicks()) * 360.0f)); matrices.mulPose(Axis.YP.rotationDegrees(-19.0F)); - this.starManager.render(context.matrixStack(), context.projectionMatrix(), context.world(), context.tickDelta()); + this.starManager.render(context.matrixStack(), context.projectionMatrix(), context.world(), context.tickCounter().getRealtimeDeltaTicks()); matrices.popPose(); context.profiler().pop(); diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/StarManager.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/StarManager.java index 1eb6fdff7..5097aeabe 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/StarManager.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/StarManager.java @@ -39,9 +39,8 @@ public class StarManager { public StarManager() { this.starBuffer = new VertexBuffer(VertexBuffer.Usage.STATIC); final Random random = new Random(27893L); - final BufferBuilder buffer = Tesselator.getInstance().getBuilder(); + final BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); RenderSystem.setShader(GameRenderer::getPositionShader); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int i = 0; i < 12000; ++i) { double j = random.nextFloat() * 2.0F - 1.0F; double k = random.nextFloat() * 2.0F - 1.0F; @@ -77,12 +76,12 @@ public StarManager() { double h = b * v - e * w; double aa = h * s - f * t; double ab = f * s + h * t; - buffer.vertex((o + aa) * (i > 6000 ? -1 : 1), (p + g) * (i > 6000 ? -1 : 1), (q + ab) * (i > 6000 ? -1 : 1)).endVertex(); + buffer.addVertex((float) ((o + aa) * (i > 6000 ? -1 : 1)), (float) ((p + g) * (i > 6000 ? -1 : 1)), (float) ((q + ab) * (i > 6000 ? -1 : 1))); } } } this.starBuffer.bind(); - this.starBuffer.upload(buffer.end()); + this.starBuffer.upload(buffer.buildOrThrow()); VertexBuffer.unbind(); } diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusDimensionEffects.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusDimensionEffects.java index 553471731..cd1a0708b 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusDimensionEffects.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusDimensionEffects.java @@ -120,7 +120,7 @@ public boolean tickRain(@NotNull ClientLevel level, Camera camera, int ticks) { double fluidHeight = fluidState.getHeight(level, below); double yOffset = Math.max(baseYOff, fluidHeight); ParticleOptions particle = !fluidState.is(FluidTags.LAVA) && !blockState.is(Blocks.MAGMA_BLOCK) && !CampfireBlock.isLitCampfire(blockState) - ? new ScaleParticleType(0.95F) + ? new ScaleParticleType(ParticleTypes.SMOKE, 0.95F) : ParticleTypes.SMOKE; this.minecraft .level diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusSkyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusSkyRenderer.java index d607dfb09..09a003f86 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusSkyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusSkyRenderer.java @@ -46,7 +46,7 @@ public class VenusSkyRenderer implements DimensionRenderingRegistry.SkyRenderer public VertexBuffer starBuffer; public VertexBuffer skyBuffer; public VertexBuffer darkBuffer; - private float sunSize; + private final float sunSize; public VenusSkyRenderer() { this.sunSize = 30.0F * (1.0F / 0.75F); @@ -54,53 +54,52 @@ public VenusSkyRenderer() { this.starBuffer = new VertexBuffer(VertexBuffer.Usage.STATIC); // Bind stars to display list - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder worldRenderer = tessellator.getBuilder(); this.starBuffer.bind(); - this.starBuffer.upload(this.renderStars(worldRenderer)); + this.starBuffer.upload(this.renderStars()); VertexBuffer.unbind(); this.skyBuffer = new VertexBuffer(VertexBuffer.Usage.STATIC); final byte byte2 = 64; final int i = 256 / byte2 + 2; float f = 16F; + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + RenderSystem.setShader(GameRenderer::getPositionShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int j = -byte2 * i; j <= byte2 * i; j += byte2) { for (int l = -byte2 * i; l <= byte2 * i; l += byte2) { - worldRenderer.vertex(j, f, l).endVertex(); - worldRenderer.vertex(j + byte2, f, l).endVertex(); - worldRenderer.vertex(j + byte2, f, l + byte2).endVertex(); - worldRenderer.vertex(j, f, l + byte2).endVertex(); + buffer.addVertex(j, f, l) + .addVertex(j + byte2, f, l) + .addVertex(j + byte2, f, l + byte2) + .addVertex(j, f, l + byte2); } } this.skyBuffer.bind(); - this.skyBuffer.upload(worldRenderer.end()); + this.skyBuffer.upload(buffer.buildOrThrow()); VertexBuffer.unbind(); this.darkBuffer = new VertexBuffer(VertexBuffer.Usage.STATIC); f = -16F; - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int k = -byte2 * i; k <= byte2 * i; k += byte2) { for (int i1 = -byte2 * i; i1 <= byte2 * i; i1 += byte2) { - worldRenderer.vertex(k + byte2, f, i1 + 0).endVertex(); - worldRenderer.vertex(k + 0, f, i1 + 0).endVertex(); - worldRenderer.vertex(k + 0, f, i1 + byte2).endVertex(); - worldRenderer.vertex(k + byte2, f, i1 + byte2).endVertex(); + buffer.addVertex(k + byte2, f, i1 + 0) + .addVertex(k + 0, f, i1 + 0) + .addVertex(k + 0, f, i1 + byte2) + .addVertex(k + byte2, f, i1 + byte2); } } this.darkBuffer.bind(); - this.darkBuffer.upload(worldRenderer.end()); + this.darkBuffer.upload(buffer.buildOrThrow()); VertexBuffer.unbind(); } - private BufferBuilder.RenderedBuffer renderStars(BufferBuilder worldRenderer) { + private MeshData renderStars() { RandomSource rand = RandomSource.create(10842L); RenderSystem.setShader(GameRenderer::getPositionShader); - worldRenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); for (int starIndex = 0; starIndex < 35000; ++starIndex) { double var4 = rand.nextFloat() * 2.0F - 1.0F; @@ -137,18 +136,18 @@ private BufferBuilder.RenderedBuffer renderStars(BufferBuilder worldRenderer) { final double var55 = var39 * var28 - var47 * var30; final double var57 = var55 * var22 - var49 * var24; final double var61 = var49 * var22 + var55 * var24; - worldRenderer.vertex(var14 + var57, var16 + var53, var18 + var61).endVertex(); + buffer.addVertex((float) (var14 + var57), (float) (var16 + var53), (float) (var18 + var61)); } } } - return worldRenderer.end(); + return buffer.buildOrThrow(); } @Override public void render(WorldRenderContext context) { ClientLevel level = context.world(); - float partialTicks = context.tickDelta(); + float partialTicks = context.tickCounter().getRealtimeDeltaTicks(); PoseStack poseStack = context.matrixStack(); Vec3 vec3 = level.getSkyColor(context.camera().getPosition(), partialTicks); float f1 = (float) vec3.x; @@ -156,8 +155,6 @@ public void render(WorldRenderContext context) { float f3 = (float) vec3.z; float f6; - Tesselator tessellator1 = Tesselator.getInstance(); - BufferBuilder worldRenderer1 = tessellator1.getBuilder(); RenderSystem.depthMask(false); FogRenderer.levelFogColor(); RenderSystem.setShaderColor(f1, f2, f3, 1.0F); @@ -202,12 +199,12 @@ public void render(WorldRenderContext context) { starBrightness = 1.0F - starBrightness; RenderSystem.setShader(GameRenderer::getPositionColorShader); - worldRenderer1.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); float r = f6 * starBrightness; float g = f7 * starBrightness; float b = f8 * starBrightness; float a = afloat[3] * 2 / starBrightness; - worldRenderer1.vertex(poseStack.last().pose(), 0.0F, 100.0F, 0.0F).color(r, g, b, a).endVertex(); + buffer.addVertex(poseStack.last().pose(), 0.0F, 100.0F, 0.0F).setColor(r, g, b, a); r = afloat[0] * starBrightness; g = afloat[1] * starBrightness; b = afloat[2] * starBrightness / 20.0F; @@ -216,24 +213,24 @@ public void render(WorldRenderContext context) { // Render sun aura f10 = 20.0F; Matrix4f last = poseStack.last().pose(); - worldRenderer1.vertex(last, -f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, 0, 100.0F, -f10 * 1.5F).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10 * 1.5F, 100.0F, 0).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10, 100.0F, f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, 0, 100.0F, f10 * 1.5F).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10, 100.0F, f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10 * 1.5F, 100.0F, 0).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - - tessellator1.end(); - - worldRenderer1.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + buffer.addVertex(last, -f10, 100.0F, -f10).setColor(r, g, b, a) + .addVertex(last, 0, 100.0F, -f10 * 1.5F).setColor(r, g, b, a) + .addVertex(last, f10, 100.0F, -f10).setColor(r, g, b, a) + .addVertex(last, f10 * 1.5F, 100.0F, 0).setColor(r, g, b, a) + .addVertex(last, f10, 100.0F, f10).setColor(r, g, b, a) + .addVertex(last, 0, 100.0F, f10 * 1.5F).setColor(r, g, b, a) + .addVertex(last, -f10, 100.0F, f10).setColor(r, g, b, a) + .addVertex(last, -f10 * 1.5F, 100.0F, 0).setColor(r, g, b, a) + .addVertex(last, -f10, 100.0F, -f10).setColor(r, g, b, a); + + BufferUploader.drawWithShader(buffer.buildOrThrow()); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); + r = f6 * starBrightness; g = f7 * starBrightness; b = f8 * starBrightness; a = afloat[3] * starBrightness; - worldRenderer1.vertex(last, 0.0F, 100.0F, 0.0F).color(r, g, b, a).endVertex(); + buffer.addVertex(last, 0.0F, 100.0F, 0.0F).setColor(r, g, b, a); r = afloat[0] * starBrightness; g = afloat[1] * starBrightness; b = afloat[2] * starBrightness; @@ -241,17 +238,17 @@ public void render(WorldRenderContext context) { // Render larger sun aura f10 = 40.0F; - worldRenderer1.vertex(last, -f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, 0, 100.0F, -f10 * 1.5F).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10 * 1.5F, 100.0F, 0).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, f10, 100.0F, f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, 0, 100.0F, f10 * 1.5F).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10, 100.0F, f10).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10 * 1.5F, 100.0F, 0).color(r, g, b, a).endVertex(); - worldRenderer1.vertex(last, -f10, 100.0F, -f10).color(r, g, b, a).endVertex(); - - tessellator1.end(); + buffer.addVertex(last, -f10, 100.0F, -f10).setColor(r, g, b, a) + .addVertex(last, 0, 100.0F, -f10 * 1.5F).setColor(r, g, b, a) + .addVertex(last, f10, 100.0F, -f10).setColor(r, g, b, a) + .addVertex(last, f10 * 1.5F, 100.0F, 0).setColor(r, g, b, a) + .addVertex(last, f10, 100.0F, f10).setColor(r, g, b, a) + .addVertex(last, 0, 100.0F, f10 * 1.5F).setColor(r, g, b, a) + .addVertex(last, -f10, 100.0F, f10).setColor(r, g, b, a) + .addVertex(last, -f10 * 1.5F, 100.0F, 0).setColor(r, g, b, a) + .addVertex(last, -f10, 100.0F, -f10).setColor(r, g, b, a); + + BufferUploader.drawWithShader(buffer.buildOrThrow()); poseStack.popPose(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); @@ -267,22 +264,22 @@ public void render(WorldRenderContext context) { // Some blanking to conceal the stars f10 = this.sunSize / 3.5F; Matrix4f last2 = poseStack.last().pose(); - worldRenderer1.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); - worldRenderer1.vertex(last2, -f10, 99.9F, -f10).endVertex(); - worldRenderer1.vertex(last2, f10, 99.9F, -f10).endVertex(); - worldRenderer1.vertex(last2, f10, 99.9F, f10).endVertex(); - worldRenderer1.vertex(last2, -f10, 99.9F, f10).endVertex(); - tessellator1.end(); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION); + buffer.addVertex(last2, -f10, 99.9F, -f10) + .addVertex(last2, f10, 99.9F, -f10) + .addVertex(last2, f10, 99.9F, f10) + .addVertex(last2, -f10, 99.9F, f10); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 0.1F); f10 = this.sunSize; RenderSystem.setShaderTexture(0, CelestialBodyTextures.ATMOSPHERIC_SUN); RenderSystem.setShader(GameRenderer::getPositionTexShader); - worldRenderer1.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer1.vertex(last2, -f10, 100.0F, -f10).uv(0.0F, 0.0F).endVertex(); - worldRenderer1.vertex(last2, f10, 100.0F, -f10).uv(1.0F, 0.0F).endVertex(); - worldRenderer1.vertex(last2, f10, 100.0F, f10).uv(1.0F, 1.0F).endVertex(); - worldRenderer1.vertex(last2, -f10, 100.0F, f10).uv(0.0F, 1.0F).endVertex(); - tessellator1.end(); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(last2, -f10, 100.0F, -f10).setUv(0.0F, 0.0F) + .addVertex(last2, f10, 100.0F, -f10).setUv(1.0F, 0.0F) + .addVertex(last2, f10, 100.0F, f10).setUv(1.0F, 1.0F) + .addVertex(last2, -f10, 100.0F, f10).setUv(0.0F, 1.0F); + BufferUploader.drawWithShader(buffer.buildOrThrow()); // Render earth f10 = 0.5F; @@ -291,12 +288,12 @@ public void render(WorldRenderContext context) { poseStack.mulPose(Axis.XP.rotationDegrees(200F)); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1F); RenderSystem.setShaderTexture(0, CelestialBodyTextures.EARTH); - worldRenderer1.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - worldRenderer1.vertex(last2, -f10, -100.0F, f10).uv(0, 1.0F).endVertex(); - worldRenderer1.vertex(last2, f10, -100.0F, f10).uv(1.0F, 1.0F).endVertex(); - worldRenderer1.vertex(last2, f10, -100.0F, -f10).uv(1.0F, 0).endVertex(); - worldRenderer1.vertex(last2, -f10, -100.0F, -f10).uv(0, 0).endVertex(); - tessellator1.end(); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(last2, -f10, -100.0F, f10).setUv(0, 1.0F) + .addVertex(last2, f10, -100.0F, f10).setUv(1.0F, 1.0F) + .addVertex(last2, f10, -100.0F, -f10).setUv(1.0F, 0) + .addVertex(last2, -f10, -100.0F, -f10).setUv(0, 0); + BufferUploader.drawWithShader(buffer.buildOrThrow()); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.disableBlend(); @@ -316,28 +313,28 @@ public void render(WorldRenderContext context) { f9 = -((float) (horizon + 65.0D)); f10 = -f8; Matrix4f last3 = poseStack.last().pose(); - worldRenderer1.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); - worldRenderer1.vertex(last3, -f8, f9, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f9, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f9, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f9, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f9, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f9, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f9, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f9, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, -f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, f8).color(0, 0, 0, 1.0F).endVertex(); - worldRenderer1.vertex(last3, f8, f10, -f8).color(0, 0, 0, 1.0F).endVertex(); - tessellator1.end(); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); + buffer.addVertex(last3, -f8, f9, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f9, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f9, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f9, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f9, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f9, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f9, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f9, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, -f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, -f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, f8).setColor(0, 0, 0, 1.0F) + .addVertex(last3, f8, f10, -f8).setColor(0, 0, 0, 1.0F); + BufferUploader.drawWithShader(buffer.buildOrThrow()); } poseStack.pushPose(); diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusWeatherRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusWeatherRenderer.java index 2215926d6..a6f4d6922 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusWeatherRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/VenusWeatherRenderer.java @@ -23,10 +23,7 @@ package dev.galacticraft.mod.client.render.dimension; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.DefaultVertexFormat; -import com.mojang.blaze3d.vertex.Tesselator; -import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.blaze3d.vertex.*; import dev.galacticraft.mod.Constant; import net.fabricmc.fabric.api.client.rendering.v1.DimensionRenderingRegistry; import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext; @@ -66,14 +63,12 @@ public void render(WorldRenderContext context) { double camY = camPos.y(); double camZ = camPos.z(); ClientLevel level = context.world(); - float partialTicks = context.tickDelta(); + float partialTicks = context.tickCounter().getRealtimeDeltaTicks(); float strength = level.getRainLevel(partialTicks); if (strength > 0.0F) { context.lightmapTextureManager().turnOnLightLayer(); - Tesselator tessellator = Tesselator.getInstance(); - BufferBuilder worldrenderer = tessellator.getBuilder(); RenderSystem.disableCull(); RenderSystem.enableBlend(); RenderSystem.enableDepthTest(); @@ -91,6 +86,8 @@ public void render(WorldRenderContext context) { int py = Mth.floor(camY); int pz = Mth.floor(camZ); + BufferBuilder buffer = null; + for (int z = pz - r; z <= pz + r; ++z) { int indexZ = (z - pz + 16) * 32; for (int x = px - r; x <= px + r; ++x) { @@ -117,13 +114,13 @@ public void render(WorldRenderContext context) { RandomSource random = RandomSource.create((long)(x * x * 3121 + x * 45238971 ^ z * z * 418711 + z * 13761)); if (drawFlag != 0) { - if (drawFlag >= 0) { - tessellator.end(); + if (drawFlag >= 0 && buffer != null) { + BufferUploader.drawWithShader(buffer.buildOrThrow()); } drawFlag = 0; RenderSystem.setShaderTexture(0, RAIN_TEXTURES); - worldrenderer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE); + buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.PARTICLE); } int index = indexZ + x - px + 16; @@ -149,16 +146,16 @@ public void render(WorldRenderContext context) { int light = LevelRenderer.getLightColor(level, mutablePos); double xc = x + 0.5D; double zc = z + 0.5D; - worldrenderer.vertex(xc - camX - dx, (double) ymax - yo - camY, zc - camZ - dz).uv(0.0F, (float) y * 0.25F + vOff).color(1.0F, 1.0F, 1.0F, alpha).uv2(light).endVertex(); - worldrenderer.vertex(xc - camX + dx, (double) ymax - yo - camY, zc - camZ + dz).uv(1.0F, (float) y * 0.25F + vOff).color(1.0F, 1.0F, 1.0F, alpha).uv2(light).endVertex(); - worldrenderer.vertex(xc - camX + dx, (double) y - yo - camY, zc - camZ + dz).uv(1.0F, (float) ymax * 0.25F + vOff).color(1.0F, 1.0F, 1.0F, alpha).uv2(light).endVertex(); - worldrenderer.vertex(xc - camX - dx, (double) y - yo - camY, zc - camZ - dz).uv(0.0F, (float) ymax * 0.25F + vOff).color(1.0F, 1.0F, 1.0F, alpha).uv2(light).endVertex(); + buffer.addVertex((float) (xc - camX - dx), (float) (ymax - yo - camY), (float) (zc - camZ - dz)).setUv(0.0F, (float) y * 0.25F + vOff).setColor(1.0F, 1.0F, 1.0F, alpha).setLight(light) + .addVertex((float) (xc - camX + dx), (float) (ymax - yo - camY), (float) (zc - camZ + dz)).setUv(1.0F, (float) y * 0.25F + vOff).setColor(1.0F, 1.0F, 1.0F, alpha).setLight(light) + .addVertex((float) (xc - camX + dx), (float) (y - yo - camY), (float) (zc - camZ + dz)).setUv(1.0F, (float) ymax * 0.25F + vOff).setColor(1.0F, 1.0F, 1.0F, alpha).setLight(light) + .addVertex((float) (xc - camX - dx), (float) (y - yo - camY), (float) (zc - camZ - dz)).setUv(0.0F, (float) ymax * 0.25F + vOff).setColor(1.0F, 1.0F, 1.0F, alpha).setLight(light); } } } if (drawFlag >= 0) { - tessellator.end(); + BufferUploader.drawWithShader(buffer.buildOrThrow()); } RenderSystem.enableCull(); diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/LanderEntityRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/entity/LanderEntityRenderer.java index 01c326eb1..1fd78b4bd 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/LanderEntityRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/LanderEntityRenderer.java @@ -33,7 +33,6 @@ import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; -import org.lwjgl.opengl.GL11; public class LanderEntityRenderer extends EntityRenderer { protected final LanderModel model; @@ -69,7 +68,7 @@ public void render(LanderEntity lander, float entityYaw, float partialTicks, Pos poseStack.mulPose(Axis.YN.rotationDegrees(180.0F - entityYaw)); poseStack.mulPose(Axis.ZN.rotationDegrees(pitch)); - this.model.renderToBuffer(poseStack, multiBufferSource.getBuffer(this.model.renderType(getTextureLocation(lander))), light, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + this.model.renderToBuffer(poseStack, multiBufferSource.getBuffer(this.model.renderType(getTextureLocation(lander))), light, OverlayTexture.NO_OVERLAY); poseStack.popPose(); } } diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/ParachestRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/entity/ParachestRenderer.java index 2664255da..2e950080c 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/ParachestRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/ParachestRenderer.java @@ -56,8 +56,8 @@ public ParachestRenderer(EntityRendererProvider.Context context) { @Override public void render(ParachestEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) { this.parachute.setupAnim(entity, 0F, 0F, 0F, 0F, 0F); - this.chest.render(poseStack, buffer.getBuffer(RenderType.entityCutoutNoCull(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); - this.parachute.renderToBuffer(poseStack, buffer.getBuffer(RenderType.entityCutoutNoCull(getTextureLocation(entity))), packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + this.chest.render(poseStack, buffer.getBuffer(RenderType.entityCutoutNoCull(TEXTURE)), packedLight, OverlayTexture.NO_OVERLAY); + this.parachute.renderToBuffer(poseStack, buffer.getBuffer(RenderType.entityCutoutNoCull(getTextureLocation(entity))), packedLight, OverlayTexture.NO_OVERLAY); } @Override diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/model/ParachestModel.java b/src/main/java/dev/galacticraft/mod/client/render/entity/model/ParachestModel.java index daf45b166..beae41f6f 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/model/ParachestModel.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/model/ParachestModel.java @@ -22,7 +22,6 @@ package dev.galacticraft.mod.client.render.entity.model; -import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.entity.ParachestEntity; import net.minecraft.client.model.HierarchicalModel; import net.minecraft.client.model.geom.ModelPart; diff --git a/src/main/java/dev/galacticraft/mod/client/render/entity/rocket/RocketEntityRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/entity/rocket/RocketEntityRenderer.java index 017078d44..70f8d114e 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/entity/rocket/RocketEntityRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/entity/rocket/RocketEntityRenderer.java @@ -34,7 +34,7 @@ import net.minecraft.client.renderer.entity.EntityRenderer; import net.minecraft.client.renderer.entity.EntityRendererProvider; import net.minecraft.client.renderer.texture.OverlayTexture; -import net.minecraft.resources.ResourceKey; +import net.minecraft.core.Holder; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.inventory.InventoryMenu; @@ -74,10 +74,10 @@ public void render(RocketEntity entity, float yaw, float partialTick, PoseStack // RenderSystem.setShaderTexture(0, getTextureLocation(entity)); matrices.translate(0.0D, -1.75D, 0.0D); - ResourceKey> part = entity.engine(); + Holder> part = entity.engine(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.unwrapKey().get()).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); matrices.popPose(); } @@ -86,14 +86,14 @@ public void render(RocketEntity entity, float yaw, float partialTick, PoseStack part = entity.booster(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.unwrapKey().get()).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); matrices.popPose(); } part = entity.fin(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.unwrapKey().get()).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); matrices.popPose(); } @@ -102,7 +102,7 @@ public void render(RocketEntity entity, float yaw, float partialTick, PoseStack part = entity.body(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.unwrapKey().get()).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); matrices.popPose(); } @@ -111,7 +111,7 @@ public void render(RocketEntity entity, float yaw, float partialTick, PoseStack part = entity.cone(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.unwrapKey().get()).render(client.level, matrices, entity, vertexConsumers, partialTick, light, OverlayTexture.NO_OVERLAY); matrices.popPose(); } diff --git a/src/main/java/dev/galacticraft/mod/client/render/item/RocketItemRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/item/RocketItemRenderer.java index bcff6d44d..1b60d7132 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/item/RocketItemRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/item/RocketItemRenderer.java @@ -34,9 +34,9 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.resources.ResourceKey; import net.minecraft.util.Mth; import net.minecraft.world.inventory.InventoryMenu; +import net.minecraft.world.item.EitherHolder; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; @@ -45,7 +45,7 @@ public class RocketItemRenderer implements BuiltinItemRendererRegistry.DynamicIt @Override public void render(ItemStack stack, ItemDisplayContext mode, PoseStack matrices, MultiBufferSource vertexConsumers, int light, int overlay) { - RocketData data = RocketData.fromNbt(stack.getTag()); + RocketData data = RocketData.fromPatch(stack.getComponentsPatch()); rocket.setLevel(Minecraft.getInstance().level); rocket.setData(data); rocket.setOldPosAndRot(); @@ -80,10 +80,10 @@ public void render(ItemStack stack, ItemDisplayContext mode, PoseStack matrices, } RenderSystem.setShaderTexture(0, InventoryMenu.BLOCK_ATLAS); matrices.translate(0.0D, -1.75D, 0.0D); - ResourceKey> part = data.engine(); + EitherHolder> part = data.engine(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.key()).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); matrices.popPose(); } @@ -92,14 +92,14 @@ public void render(ItemStack stack, ItemDisplayContext mode, PoseStack matrices, part = data.booster(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.key()).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); matrices.popPose(); } part = data.fin(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.key()).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); matrices.popPose(); } @@ -108,7 +108,7 @@ public void render(ItemStack stack, ItemDisplayContext mode, PoseStack matrices, part = data.body(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.key()).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); matrices.popPose(); } @@ -117,7 +117,7 @@ public void render(ItemStack stack, ItemDisplayContext mode, PoseStack matrices, part = data.cone(); if (part != null) { matrices.pushPose(); - RocketPartRendererRegistry.INSTANCE.getRenderer(part).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); + RocketPartRendererRegistry.INSTANCE.getRenderer(part.key()).render(level, matrices, rocket, vertexConsumers, 0, light, overlay); matrices.popPose(); } diff --git a/src/main/java/dev/galacticraft/mod/client/render/rocket/BakedModelItemRocketPartRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/rocket/BakedModelItemRocketPartRenderer.java index cf88c8ebc..9d04760a1 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/rocket/BakedModelItemRocketPartRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/rocket/BakedModelItemRocketPartRenderer.java @@ -25,13 +25,13 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import dev.galacticraft.api.entity.rocket.render.RocketPartRenderer; +import dev.galacticraft.api.rocket.RocketData; import dev.galacticraft.api.rocket.entity.Rocket; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.resources.model.BakedModel; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.Nullable; @@ -61,10 +61,9 @@ public void render(ClientLevel world, PoseStack matrices, Rocket rocket, MultiBu if (this.model != null) { PoseStack.Pose entry = matrices.last(); VertexConsumer consumer = vertices.getBuffer(layer); - Minecraft.getInstance().getBlockRenderer().getModelRenderer().renderModel(entry, consumer, null, model, (rocket.red() / 255f) * (rocket.alpha() / 255f), - (rocket.green() / 255f) * (rocket.alpha() / 255f), - (rocket.blue() / 255f) * (rocket.alpha() / 255f), - light, overlay); + RocketData data = rocket.getData(); + Minecraft.getInstance().getBlockRenderer().getModelRenderer().renderModel(entry, consumer, null, model, + data.red() / 255f, data.blue() / 255f, data.green() / 255f, light, overlay); } } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/render/rocket/GalacticraftRocketPartRenderers.java b/src/main/java/dev/galacticraft/mod/client/render/rocket/GalacticraftRocketPartRenderers.java index f1b974f3d..34c5e813d 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/rocket/GalacticraftRocketPartRenderers.java +++ b/src/main/java/dev/galacticraft/mod/client/render/rocket/GalacticraftRocketPartRenderers.java @@ -28,8 +28,6 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.client.model.GCModelLoader; import dev.galacticraft.mod.content.GCRocketParts; -import net.fabricmc.fabric.api.client.model.ModelLoadingRegistry; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.Sheets; import net.minecraft.resources.ResourceLocation; @@ -38,14 +36,14 @@ import java.util.Objects; public class GalacticraftRocketPartRenderers { - private static final ResourceLocation DEFAULT_CONE = Constant.id("models/misc/rocket_cone_basic.json"); - private static final ResourceLocation ADVANCED_CONE = Constant.id("models/misc/rocket_cone_advanced.json"); - private static final ResourceLocation SLOPED_CONE = Constant.id("models/misc/rocket_cone_sloped.json"); - private static final ResourceLocation DEFAULT_BODY = Constant.id("models/misc/rocket_body.json"); - private static final ResourceLocation DEFAULT_FIN = Constant.id("models/misc/rocket_fins.json"); - private static final ResourceLocation DEFAULT_ENGINE = Constant.id("models/misc/rocket_engine.json"); - private static final ResourceLocation BOOSTER_TIER_1 = Constant.id("models/misc/rocket_thruster_tier_1.json"); - private static final ResourceLocation BOOSTER_TIER_2 = Constant.id("models/misc/rocket_thruster_tier_2.json"); + public static final ResourceLocation DEFAULT_CONE = Constant.id("models/misc/rocket_cone_basic.json"); + public static final ResourceLocation ADVANCED_CONE = Constant.id("models/misc/rocket_cone_advanced.json"); + public static final ResourceLocation SLOPED_CONE = Constant.id("models/misc/rocket_cone_sloped.json"); + public static final ResourceLocation DEFAULT_BODY = Constant.id("models/misc/rocket_body.json"); + public static final ResourceLocation DEFAULT_FIN = Constant.id("models/misc/rocket_fins.json"); + public static final ResourceLocation DEFAULT_ENGINE = Constant.id("models/misc/rocket_engine.json"); + public static final ResourceLocation BOOSTER_TIER_1 = Constant.id("models/misc/rocket_thruster_tier_1.json"); + public static final ResourceLocation BOOSTER_TIER_2 = Constant.id("models/misc/rocket_thruster_tier_2.json"); public static void register() { RocketPartRendererRegistry.INSTANCE.register(GCRocketParts.TIER_1_CONE, new BakedModelRocketPartRenderer(Suppliers.memoize(() -> Objects.requireNonNull(GCModelLoader.INSTANCE.getModel(DEFAULT_CONE))), Sheets::translucentCullBlockSheet)); @@ -58,17 +56,4 @@ public static void register() { RocketPartRendererRegistry.INSTANCE.register(GCRocketParts.TIER_1_BOOSTER, new BakedModelRocketPartRenderer(Suppliers.memoize(() -> Objects.requireNonNull(GCModelLoader.INSTANCE.getModel(BOOSTER_TIER_1))), Sheets::translucentCullBlockSheet)); RocketPartRendererRegistry.INSTANCE.register(GCRocketParts.TIER_2_BOOSTER, new BakedModelRocketPartRenderer(Suppliers.memoize(() -> Objects.requireNonNull(GCModelLoader.INSTANCE.getModel(BOOSTER_TIER_2))), Sheets::translucentCullBlockSheet)); } - - public static void registerModelLoader() { - ModelLoadingRegistry.INSTANCE.registerModelProvider((manager, out) -> { - out.accept(DEFAULT_CONE); - out.accept(SLOPED_CONE); - out.accept(ADVANCED_CONE); - out.accept(DEFAULT_BODY); - out.accept(DEFAULT_ENGINE); - out.accept(DEFAULT_FIN); - out.accept(BOOSTER_TIER_1); - out.accept(BOOSTER_TIER_2); - }); - } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/client/util/BatchedColorRenderer.java b/src/main/java/dev/galacticraft/mod/client/util/BatchedColorRenderer.java deleted file mode 100644 index b76517ac9..000000000 --- a/src/main/java/dev/galacticraft/mod/client/util/BatchedColorRenderer.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.util; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.*; -import dev.galacticraft.mod.Constant; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.resources.ResourceLocation; -import org.joml.Matrix4f; - -public class BatchedColorRenderer implements AutoCloseable { - private final BufferBuilder buffer; - private final PoseStack pose; - private final int textureWidth; - private final int textureHeight; - - public BatchedColorRenderer(BufferBuilder buffer, PoseStack pose, ResourceLocation texture, int textureWidth, int textureHeight) { - assert !buffer.building(); - - this.buffer = buffer; - this.pose = pose; - this.textureWidth = textureWidth; - this.textureHeight = textureHeight; - - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); - } - - public BatchedColorRenderer(GuiGraphics graphics, ResourceLocation texture, int textureWidth, int textureHeight) { - this(Tesselator.getInstance().getBuilder(), graphics.pose(), texture, textureWidth, textureHeight); - } - - public void blit(int x, int y, int width, int height, int uOffset, int vOffset, int uWidth, int vHeight, int color) { - innerBlit(x, x + width, y, y + height, uOffset, vOffset, uWidth, vHeight, color); - } - - public void blit(int x, int y, int width, int height, int u, int v, int uWidth, int vHeight, int color, boolean invertX, boolean invertY) { - innerBlit(x, x + width, y, y + height, u + (invertX ? uWidth : 0), v + (invertY ? vHeight : 0), invertX ? -uWidth : uWidth, invertY ? -vHeight : vHeight, color); - } - - public void blit(int x, int y, int u, int v, int width, int height, int color) { - blit(x, y, width, height, u, v, width, height, color); - } - - public void innerBlit(int x1, int x2, int y1, int y2, int uOffset, int vOffset, int uWidth, int vHeight, int color) { - this.innerBlit(x1, x2, y1, y2, (float)uOffset / (float) this.textureWidth, (float)(uOffset + uWidth) / (float) this.textureWidth, (float)vOffset / (float) this.textureHeight, (float) (vOffset + vHeight) / (float) this.textureHeight, color); - } - - private void innerBlit(int x1, int x2, int y1, int y2, float u1, float u2, float v1, float v2, int color) { - Matrix4f matrix = this.pose.last().pose(); - this.buffer.vertex(matrix, (float) x1, (float) y1, -10).uv(u1, v1).color(color).endVertex(); - this.buffer.vertex(matrix, (float) x1, (float) y2, -10).uv(u1, v2).color(color).endVertex(); - this.buffer.vertex(matrix, (float) x2, (float) y2, -10).uv(u2, v2).color(color).endVertex(); - this.buffer.vertex(matrix, (float) x2, (float) y1, -10).uv(u2, v1).color(color).endVertex(); - } - - public PoseStack pose() { - return this.pose; - } - - @Override - public void close() { - RenderSystem.enableBlend(); - RenderSystem.setShaderTexture(0, Constant.id("textures/gui/celestial_selection_0.png")); - RenderSystem.setShader(GameRenderer::getPositionTexColorShader); - BufferUploader.drawWithShader(this.buffer.end()); - } -} diff --git a/src/main/java/dev/galacticraft/mod/client/util/BatchedRenderer.java b/src/main/java/dev/galacticraft/mod/client/util/BatchedRenderer.java deleted file mode 100644 index 36709b6f9..000000000 --- a/src/main/java/dev/galacticraft/mod/client/util/BatchedRenderer.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.client.util; - -import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.*; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.renderer.GameRenderer; -import net.minecraft.resources.ResourceLocation; -import org.joml.Matrix4f; - -public class BatchedRenderer implements AutoCloseable { - private final BufferBuilder buffer; - private final PoseStack pose; - private final int textureWidth; - private final int textureHeight; - - public BatchedRenderer(BufferBuilder buffer, PoseStack pose, ResourceLocation texture, int textureWidth, int textureHeight) { - assert !buffer.building(); - - this.buffer = buffer; - this.pose = pose; - this.textureWidth = textureWidth; - this.textureHeight = textureHeight; - - RenderSystem.setShaderTexture(0, texture); - RenderSystem.setShader(GameRenderer::getPositionTexShader); - buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - } - - public BatchedRenderer(GuiGraphics graphics, ResourceLocation texture, int textureWidth, int textureHeight) { - this(Tesselator.getInstance().getBuilder(), graphics.pose(), texture, textureWidth, textureHeight); - } - - public void blit(int x, int y, int width, int height, float uOffset, float vOffset, int uWidth, int vHeight) { - blit(x, x + width, y, y + height, uWidth, vHeight, uOffset, vOffset); - } - - public void blit(int x, int y, float uOffset, float vOffset, int width, int height) { - blit(x, y, width, height, uOffset, vOffset, width, height); - } - - public void blit(int x1, int x2, int y1, int y2, int uWidth, int vHeight, float uOffset, float vOffset) { - this.innerBlit(x1, x2, y1, y2, uOffset / (float) this.textureWidth, (uOffset + (float) uWidth) / (float) this.textureWidth, vOffset / (float) this.textureHeight, (vOffset + (float) vHeight) / (float) this.textureHeight); - } - - private void innerBlit(int x1, int x2, int y1, int y2, float u1, float u2, float v1, float v2) { - Matrix4f matrix = this.pose.last().pose(); - this.buffer.vertex(matrix, (float) x1, (float) y1, 0).uv(u1, v1).endVertex(); - this.buffer.vertex(matrix, (float) x1, (float) y2, 0).uv(u1, v2).endVertex(); - this.buffer.vertex(matrix, (float) x2, (float) y2, 0).uv(u2, v2).endVertex(); - this.buffer.vertex(matrix, (float) x2, (float) y1, 0).uv(u2, v1).endVertex(); - } - - public PoseStack pose() { - return this.pose; - } - - @Override - public void close() { - BufferUploader.drawWithShader(this.buffer.end()); - } -} diff --git a/src/main/java/dev/galacticraft/mod/client/util/Graphics.java b/src/main/java/dev/galacticraft/mod/client/util/Graphics.java index 14e285b1e..e5a21d4ba 100644 --- a/src/main/java/dev/galacticraft/mod/client/util/Graphics.java +++ b/src/main/java/dev/galacticraft/mod/client/util/Graphics.java @@ -34,6 +34,7 @@ import net.minecraft.network.chat.FormattedText; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.FormattedCharSequence; +import org.jetbrains.annotations.Nullable; import org.joml.Matrix4f; import java.util.ArrayList; @@ -41,17 +42,16 @@ public class Graphics implements AutoCloseable { private final PoseStack pose; - private final BufferBuilder buffer; private final MultiBufferSource.BufferSource bufferSource; private final Font font; private final List renderers = new ArrayList<>(1); + private @Nullable BufferBuilder buffer; private Graphics(PoseStack pose, MultiBufferSource.BufferSource bufferSource, Font font) { this.pose = pose; this.bufferSource = bufferSource; this.font = font; - this.buffer = Tesselator.getInstance().getBuilder(); - if (this.buffer.building()) throw new IllegalStateException(); + this.buffer = null; } public static Graphics managed(GuiGraphics graphics, Font font) { @@ -98,6 +98,7 @@ public void cleanupState() { for (BatchedDrawable renderer : this.renderers) { renderer.draw(); } + assert this.buffer == null; } @Override @@ -123,8 +124,9 @@ public void lineGradient(float x1, float y1, float x2, float y2, float z, int co this.ensureOpen(); Matrix4f matrix = Graphics.this.pose.last().pose(); - this.consumer.vertex(matrix, x1, y1, z).color(color1).endVertex(); - this.consumer.vertex(matrix, x2, y2, z).color(color2).endVertex(); + this.consumer + .addVertex(matrix, x1, y1, z).setColor(color1) + .addVertex(matrix, x2, y2, z).setColor(color2); } private void ensureOpen() { @@ -184,10 +186,11 @@ public void fillGradientRaw(float x1, float y1, float x2, float y2, float z, int this.ensureOpen(); Matrix4f matrix = Graphics.this.pose.last().pose(); - this.consumer.vertex(matrix, x1, y1, z).color(colorA).endVertex(); - this.consumer.vertex(matrix, x1, y2, z).color(colorB).endVertex(); - this.consumer.vertex(matrix, x2, y2, z).color(colorB).endVertex(); - this.consumer.vertex(matrix, x2, y1, z).color(colorA).endVertex(); + this.consumer + .addVertex(matrix, x1, y1, z).setColor(colorA) + .addVertex(matrix, x1, y2, z).setColor(colorB) + .addVertex(matrix, x2, y2, z).setColor(colorB) + .addVertex(matrix, x2, y1, z).setColor(colorA); } private void ensureOpen() { @@ -245,10 +248,11 @@ public void blitRaw(float x1, float y1, float x2, float y2, float z, float u1, f this.ensureOpen(); Matrix4f matrix = Graphics.this.pose.last().pose(); - Graphics.this.buffer.vertex(matrix, x1, y1, z).uv(u1, v1).color(color).endVertex(); - Graphics.this.buffer.vertex(matrix, x1, y2, z).uv(u1, v2).color(color).endVertex(); - Graphics.this.buffer.vertex(matrix, x2, y2, z).uv(u2, v2).color(color).endVertex(); - Graphics.this.buffer.vertex(matrix, x2, y1, z).uv(u2, v1).color(color).endVertex(); + Graphics.this.buffer + .addVertex(matrix, x1, y1, z).setUv(u1, v1).setColor(color) + .addVertex(matrix, x1, y2, z).setUv(u1, v2).setColor(color) + .addVertex(matrix, x2, y2, z).setUv(u2, v2).setColor(color) + .addVertex(matrix, x2, y1, z).setUv(u2, v1).setColor(color); } public void blit(int x, int y, int width, int height, int u, int v, int color) { @@ -270,7 +274,7 @@ public void blit(float x, float y, float width, float height, float u, float v, private void ensureOpen() { if (!this.open) { Graphics.this.cleanupState(); - Graphics.this.buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); + Graphics.this.buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); this.open = true; } } @@ -285,12 +289,14 @@ public void close() { @Override public void draw() { if (this.open) { + assert Graphics.this.buffer != null; RenderSystem.setShader(GameRenderer::getPositionTexColorShader); RenderSystem.setShaderTexture(0, this.texture); RenderSystem.enableBlend(); - BufferUploader.drawWithShader(Graphics.this.buffer.end()); + BufferUploader.drawWithShader(Graphics.this.buffer.build()); RenderSystem.disableBlend(); this.open = false; + Graphics.this.buffer = null; } } } @@ -324,10 +330,11 @@ public void blitRaw(float x1, float y1, float x2, float y2, float z, float u1, f this.ensureOpen(); Matrix4f matrix = Graphics.this.pose.last().pose(); - Graphics.this.buffer.vertex(matrix, x1, y1, z).uv(u1, v1).endVertex(); - Graphics.this.buffer.vertex(matrix, x1, y2, z).uv(u1, v2).endVertex(); - Graphics.this.buffer.vertex(matrix, x2, y2, z).uv(u2, v2).endVertex(); - Graphics.this.buffer.vertex(matrix, x2, y1, z).uv(u2, v1).endVertex(); + Graphics.this.buffer + .addVertex(matrix, x1, y1, z).setUv(u1, v1) + .addVertex(matrix, x1, y2, z).setUv(u1, v2) + .addVertex(matrix, x2, y2, z).setUv(u2, v2) + .addVertex(matrix, x2, y1, z).setUv(u2, v1); } public void blit(int x, int y, int width, int height, int u, int v) { @@ -349,7 +356,7 @@ public void blit(float x, float y, float width, float height, float u, float v, private void ensureOpen() { if (!this.open) { Graphics.this.cleanupState(); - Graphics.this.buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + Graphics.this.buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); this.open = true; } } @@ -364,12 +371,14 @@ public void close() { @Override public void draw() { if (this.open) { + assert Graphics.this.buffer != null; RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, this.texture); RenderSystem.enableBlend(); - BufferUploader.drawWithShader(Graphics.this.buffer.end()); + BufferUploader.drawWithShader(Graphics.this.buffer.build()); RenderSystem.disableBlend(); this.open = false; + Graphics.this.buffer = null; } } } @@ -514,15 +523,14 @@ public static void blit(Matrix4f matrix, float x, float y, int width, int height } public static void blitRaw(Matrix4f matrix, float x1, float y1, float x2, float y2, float z, float u1, float v1, float u2, float v2, ResourceLocation texture) { - BufferBuilder builder = Tesselator.getInstance().getBuilder(); - builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - builder.vertex(matrix, x1, y1, z).uv(u1, v1).endVertex(); - builder.vertex(matrix, x1, y2, z).uv(u1, v2).endVertex(); - builder.vertex(matrix, x2, y2, z).uv(u2, v2).endVertex(); - builder.vertex(matrix, x2, y1, z).uv(u2, v1).endVertex(); + BufferBuilder buffer = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + buffer.addVertex(matrix, x1, y1, z).setUv(u1, v1) + .addVertex(matrix, x1, y2, z).setUv(u1, v2) + .addVertex(matrix, x2, y2, z).setUv(u2, v2) + .addVertex(matrix, x2, y1, z).setUv(u2, v1); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, texture); - BufferUploader.drawWithShader(builder.end()); + BufferUploader.drawWithShader(buffer.buildOrThrow()); } public static void blitCentered(Matrix4f matrix, float x, float y, float width, float height, float z, float u, float v, float uWidth, float vHeight, int textureWidth, int textureHeight, ResourceLocation texture, int color) { @@ -554,15 +562,14 @@ public static void blit(Matrix4f matrix, float x, float y, int width, int height } public static void blitRaw(Matrix4f matrix, float x1, float y1, float x2, float y2, float z, float u1, float v1, float u2, float v2, ResourceLocation texture, int color) { - BufferBuilder builder = Tesselator.getInstance().getBuilder(); - builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); - builder.vertex(matrix, x1, y1, z).uv(u1, v1).color(color).endVertex(); - builder.vertex(matrix, x1, y2, z).uv(u1, v2).color(color).endVertex(); - builder.vertex(matrix, x2, y2, z).uv(u2, v2).color(color).endVertex(); - builder.vertex(matrix, x2, y1, z).uv(u2, v1).color(color).endVertex(); + BufferBuilder builder = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); + builder.addVertex(matrix, x1, y1, z).setUv(u1, v1).setColor(color) + .addVertex(matrix, x1, y2, z).setUv(u1, v2).setColor(color) + .addVertex(matrix, x2, y2, z).setUv(u2, v2).setColor(color) + .addVertex(matrix, x2, y1, z).setUv(u2, v1).setColor(color); RenderSystem.setShader(GameRenderer::getPositionTexColorShader); RenderSystem.setShaderTexture(0, texture); - BufferUploader.drawWithShader(builder.end()); + BufferUploader.drawWithShader(builder.build()); } private interface BatchedDrawable { diff --git a/src/main/java/dev/galacticraft/mod/command/DimensionTpCommand.java b/src/main/java/dev/galacticraft/mod/command/DimensionTpCommand.java index b2456ee5d..dd29ccd3d 100644 --- a/src/main/java/dev/galacticraft/mod/command/DimensionTpCommand.java +++ b/src/main/java/dev/galacticraft/mod/command/DimensionTpCommand.java @@ -26,10 +26,12 @@ import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.galacticraft.api.registry.AddonRegistries; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.network.GCScreenType; +import dev.galacticraft.mod.content.GCCelestialBodies; +import dev.galacticraft.mod.network.s2c.OpenCelestialScreenPayload; import dev.galacticraft.mod.util.Translations; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; @@ -38,6 +40,7 @@ import net.minecraft.commands.arguments.coordinates.BlockPosArgument; import net.minecraft.commands.arguments.coordinates.Vec3Argument; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; @@ -107,11 +110,8 @@ private static int openCelestialScreen(CommandContext contex var player = context.getSource().getPlayerOrException(); player.galacticraft$openCelestialScreen(null); - var buf = PacketByteBufs.create(); - buf.writeEnum(GCScreenType.CELESTIAL); - buf.writeBoolean(false); - ServerPlayNetworking.send(player, Constant.Packet.OPEN_SCREEN, buf); - + Holder> body = player.level().galacticraft$getCelestialBody(); + ServerPlayNetworking.send(player, new OpenCelestialScreenPayload(null, body != null ? body : player.registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).getHolderOrThrow(GCCelestialBodies.EARTH))); //todo return Command.SINGLE_SUCCESS; } diff --git a/src/main/java/dev/galacticraft/mod/command/GCHoustonCommand.java b/src/main/java/dev/galacticraft/mod/command/GCHoustonCommand.java index 9971eb956..6c1dc03ca 100644 --- a/src/main/java/dev/galacticraft/mod/command/GCHoustonCommand.java +++ b/src/main/java/dev/galacticraft/mod/command/GCHoustonCommand.java @@ -27,7 +27,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.util.Translations; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; @@ -60,7 +59,7 @@ private static int teleportToEarth(CommandContext context) t throw IN_OVERWORLD.create(); } - if (CelestialBody.getByDimension(context.getSource().registryAccess(), context.getSource().getLevel().dimension()).isEmpty()) { + if (context.getSource().getLevel().galacticraft$getCelestialBody() == null) { throw IN_OTHER_DIMENSION.create(); } diff --git a/src/main/java/dev/galacticraft/mod/compat/rei/client/category/DefaultFabricationCategory.java b/src/main/java/dev/galacticraft/mod/compat/rei/client/category/DefaultFabricationCategory.java index 1dfa46e23..19713a5f5 100644 --- a/src/main/java/dev/galacticraft/mod/compat/rei/client/category/DefaultFabricationCategory.java +++ b/src/main/java/dev/galacticraft/mod/compat/rei/client/category/DefaultFabricationCategory.java @@ -68,11 +68,11 @@ public Component getTitle() { widgets.add(Widgets.createRecipeBase(bounds)); widgets.add(Widgets.createTexturedWidget(Constant.ScreenTexture.RECIPE_VEIWER_DISPLAY_TEXTURE, new Rectangle(startPoint.x, startPoint.y, 162, 82))); - // Diamond input + // Diamond ingredients // Silicon // Silicon // Redstone - // User input + // User ingredients // Output widgets.add(Widgets.createSlot(new Point(startPoint.x + 1, startPoint.y + 1)).entries(recipeDisplay.getInputEntries().get(0))); widgets.add(Widgets.createSlot(new Point(startPoint.x + 55, startPoint.y + 47)).entries(recipeDisplay.getInputEntries().get(1))); diff --git a/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/FabricationMenuInfo.java b/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/FabricationMenuInfo.java index 401b91d2b..f9ab0d9bd 100644 --- a/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/FabricationMenuInfo.java +++ b/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/FabricationMenuInfo.java @@ -32,20 +32,23 @@ import me.shedaniel.rei.api.common.transfer.info.simple.SimplePlayerInventoryMenuInfo; import me.shedaniel.rei.api.common.transfer.info.stack.SlotAccessor; import me.shedaniel.rei.api.common.transfer.info.stack.VanillaSlotAccessor; -import net.minecraft.world.Container; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.crafting.RecipeInput; import java.util.ArrayList; import java.util.List; -public record FabricationMenuInfo, T extends RecipeMachineMenu, D extends DefaultFabricationDisplay>(D display) implements SimplePlayerInventoryMenuInfo { +public record FabricationMenuInfo, T extends RecipeMachineMenu, D extends DefaultFabricationDisplay>(D display) implements SimplePlayerInventoryMenuInfo { @Override public Iterable getInputSlots(MenuInfoContext context) { T menu = context.getMenu(); List list = new ArrayList<>(5); - for (StorageSlot slot : menu.machineSlots) { - if (slot.getSlot().inputType().isInput()) { - list.add(new VanillaSlotAccessor(slot)); + for (Slot slot : context.getMenu().slots) { + if (slot instanceof StorageSlot machineSlot) { + if (machineSlot.getWrapped().transferMode().isInput()) { + list.add(new VanillaSlotAccessor(machineSlot)); + } } } return list; diff --git a/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/SimpleMachineMenuInfo.java b/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/SimpleMachineMenuInfo.java index 8e086bef0..25a2b19f9 100644 --- a/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/SimpleMachineMenuInfo.java +++ b/src/main/java/dev/galacticraft/mod/compat/rei/common/transfer/info/SimpleMachineMenuInfo.java @@ -32,21 +32,24 @@ import me.shedaniel.rei.api.common.transfer.info.simple.SimpleGridMenuInfo; import me.shedaniel.rei.api.common.transfer.info.stack.SlotAccessor; import me.shedaniel.rei.api.common.transfer.info.stack.VanillaSlotAccessor; -import net.minecraft.world.Container; import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeInput; import java.util.ArrayList; import java.util.List; -public record SimpleMachineMenuInfo, B extends RecipeMachineBlockEntity, T extends RecipeMachineMenu, D extends SimpleGridMenuDisplay>(int width, int height, int resultIndex, D display) implements SimpleGridMenuInfo { +public record SimpleMachineMenuInfo, B extends RecipeMachineBlockEntity, T extends RecipeMachineMenu, D extends SimpleGridMenuDisplay>(int width, int height, int resultIndex, D display) implements SimpleGridMenuInfo { @Override public Iterable getInputSlots(MenuInfoContext context) { List accessors = new ArrayList<>(this.width() * this.height()); - for (StorageSlot machineSlot : context.getMenu().machineSlots) { - if (machineSlot.getSlot().inputType().isInput()) { - accessors.add(new VanillaSlotAccessor(machineSlot)); + for (Slot slot : context.getMenu().slots) { + if (slot instanceof StorageSlot machineSlot) { + if (machineSlot.getWrapped().transferMode().isInput()) { + accessors.add(new VanillaSlotAccessor(machineSlot)); + } } } return accessors; diff --git a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java index 1b0381323..4f71c4217 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCBlocks.java +++ b/src/main/java/dev/galacticraft/mod/content/GCBlocks.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.content; -import dev.galacticraft.machinelib.api.block.MachineBlock; +import dev.galacticraft.machinelib.api.block.SimpleMachineBlock; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlockRegistry.DecorationSet; import dev.galacticraft.mod.content.block.boss.BossSpawner; @@ -280,10 +280,9 @@ public class GCBlocks { // MISC WORLD GEN public static final Block CAVERNOUS_VINES = register(Constant.Block.CAVERNOUS_VINES, new CavernousVinesBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GREEN).randomTicks().noCollission().lightLevel(CavernousVines.emission(8)).instabreak().sound(SoundType.CAVE_VINES).pushReaction(PushReaction.DESTROY))); public static final Block CAVERNOUS_VINES_PLANT = BLOCKS.register(Constant.Block.CAVERNOUS_VINES_PLANT, new CavernousVinesPlantBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GREEN).noCollission().lightLevel(CavernousVines.emission(8)).instabreak().sound(SoundType.CAVE_VINES).pushReaction(PushReaction.DESTROY).dropsLike(CAVERNOUS_VINES))); - public static final Block MOON_BERRY_BUSH = BLOCKS.register(Constant.Block.MOON_BERRY_BUSH, new MoonBerryBushBlock(BlockBehaviour.Properties.of().mapColor(MapColor.COLOR_GREEN).pushReaction(PushReaction.DESTROY).noLootTable().noCollission().lightLevel(blockstate -> 3).sound(SoundType.SWEET_BERRY_BUSH).randomTicks())); public static final Block BOSS_SPAWNER = BLOCKS.register(Constant.Block.BOSS_SPAWNER, new BossSpawner(BlockBehaviour.Properties.ofFullCopy(Blocks.SPAWNER).noLootTable().noCollission())); - // DUMMY + // MUTLIBLOCK PARTS public static final BaseEntityBlock SOLAR_PANEL_PART = BLOCKS.register(Constant.Block.SOLAR_PANEL_PART, new SolarPanelPartBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(-1.0F, 5.0F).noLootTable().sound(SoundType.METAL))); public static final BaseEntityBlock CRYOGENIC_CHAMBER_PART = BLOCKS.register(Constant.Block.CRYOGENIC_CHAMBER_PART, new CryogenicChamberPart(BlockBehaviour.Properties.of().noOcclusion().isSuffocating(GCBlocks::never).isViewBlocking(GCBlocks::never).mapColor(MapColor.METAL).strength(3.0F, 5.0F).noLootTable().sound(SoundType.METAL))); @@ -292,22 +291,22 @@ public class GCBlocks { public static final Block PLAYER_TRANSPORT_TUBE = BLOCKS.register(Constant.Block.PLAYER_TRANSPORT_TUBE, new TransportTube(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL).noCollission())); // MACHINES - public static final Block CIRCUIT_FABRICATOR = BLOCKS.register(Constant.Block.CIRCUIT_FABRICATOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.CIRCUIT_FABRICATOR))); - public static final Block COMPRESSOR = BLOCKS.register(Constant.Block.COMPRESSOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.COMPRESSOR))); - public static final Block ELECTRIC_COMPRESSOR = BLOCKS.register(Constant.Block.ELECTRIC_COMPRESSOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_COMPRESSOR))); + public static final Block CIRCUIT_FABRICATOR = BLOCKS.register(Constant.Block.CIRCUIT_FABRICATOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.CIRCUIT_FABRICATOR))); + public static final Block COMPRESSOR = BLOCKS.register(Constant.Block.COMPRESSOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.COMPRESSOR))); + public static final Block ELECTRIC_COMPRESSOR = BLOCKS.register(Constant.Block.ELECTRIC_COMPRESSOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_COMPRESSOR))); public static final Block COAL_GENERATOR = BLOCKS.register(Constant.Block.COAL_GENERATOR, new CoalGeneratorBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL).lightLevel(state -> state.getValue(CoalGeneratorBlock.ACTIVE) ? 13 : 0))); public static final Block BASIC_SOLAR_PANEL = BLOCKS.register(Constant.Block.BASIC_SOLAR_PANEL, SimpleMultiBlockMachineBlock.create(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.BASIC_SOLAR_PANEL), MultiBlockUtil.generateSolarPanelParts(), GCBlocks.SOLAR_PANEL_PART)); public static final Block ADVANCED_SOLAR_PANEL = BLOCKS.register(Constant.Block.ADVANCED_SOLAR_PANEL, SimpleMultiBlockMachineBlock.create(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ADVANCED_SOLAR_PANEL), MultiBlockUtil.generateSolarPanelParts(), GCBlocks.SOLAR_PANEL_PART)); - public static final Block ENERGY_STORAGE_MODULE = BLOCKS.register(Constant.Block.ENERGY_STORAGE_MODULE, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ENERGY_STORAGE_MODULE))); - public static final Block ELECTRIC_FURNACE = BLOCKS.register(Constant.Block.ELECTRIC_FURNACE, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_FURNACE))); - public static final Block ELECTRIC_ARC_FURNACE = BLOCKS.register(Constant.Block.ELECTRIC_ARC_FURNACE, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_ARC_FURNACE))); + public static final Block ENERGY_STORAGE_MODULE = BLOCKS.register(Constant.Block.ENERGY_STORAGE_MODULE, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ENERGY_STORAGE_MODULE))); + public static final Block ELECTRIC_FURNACE = BLOCKS.register(Constant.Block.ELECTRIC_FURNACE, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_FURNACE))); + public static final Block ELECTRIC_ARC_FURNACE = BLOCKS.register(Constant.Block.ELECTRIC_ARC_FURNACE, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.ELECTRIC_ARC_FURNACE))); public static final Block REFINERY = BLOCKS.register(Constant.Block.REFINERY, new RefineryBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL))); public static final Block OXYGEN_COLLECTOR = BLOCKS.register(Constant.Block.OXYGEN_COLLECTOR, new OxygenCollectorBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL))); - public static final Block OXYGEN_SEALER = BLOCKS.register(Constant.Block.OXYGEN_SEALER, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_SEALER))); - public static final Block OXYGEN_BUBBLE_DISTRIBUTOR = BLOCKS.register(Constant.Block.OXYGEN_BUBBLE_DISTRIBUTOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_BUBBLE_DISTRIBUTOR))); - public static final Block OXYGEN_DECOMPRESSOR = BLOCKS.register(Constant.Block.OXYGEN_DECOMPRESSOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_DECOMPRESSOR))); - public static final Block OXYGEN_COMPRESSOR = BLOCKS.register(Constant.Block.OXYGEN_COMPRESSOR, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_COMPRESSOR))); - public static final Block OXYGEN_STORAGE_MODULE = BLOCKS.register(Constant.Block.OXYGEN_STORAGE_MODULE, new MachineBlock<>(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_STORAGE_MODULE))); + public static final Block OXYGEN_SEALER = BLOCKS.register(Constant.Block.OXYGEN_SEALER, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_SEALER))); + public static final Block OXYGEN_BUBBLE_DISTRIBUTOR = BLOCKS.register(Constant.Block.OXYGEN_BUBBLE_DISTRIBUTOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_BUBBLE_DISTRIBUTOR))); + public static final Block OXYGEN_DECOMPRESSOR = BLOCKS.register(Constant.Block.OXYGEN_DECOMPRESSOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_DECOMPRESSOR))); + public static final Block OXYGEN_COMPRESSOR = BLOCKS.register(Constant.Block.OXYGEN_COMPRESSOR, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_COMPRESSOR))); + public static final Block OXYGEN_STORAGE_MODULE = BLOCKS.register(Constant.Block.OXYGEN_STORAGE_MODULE, new SimpleMachineBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL), Constant.id(Constant.Block.OXYGEN_STORAGE_MODULE))); public static final Block FUEL_LOADER = BLOCKS.register(Constant.Block.FUEL_LOADER, new FuelLoaderBlock(BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(3.0F, 5.0F).sound(SoundType.METAL))); public static final AirlockBlock AIR_LOCK_FRAME = BLOCKS.register(Constant.Block.AIR_LOCK_FRAME, new AirlockBlock(false, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BLOCK))); diff --git a/src/main/java/dev/galacticraft/mod/content/GCCelestialBodies.java b/src/main/java/dev/galacticraft/mod/content/GCCelestialBodies.java index 2b1ef7471..7c44042db 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCCelestialBodies.java +++ b/src/main/java/dev/galacticraft/mod/content/GCCelestialBodies.java @@ -54,7 +54,7 @@ import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; import net.minecraft.util.Mth; @@ -79,7 +79,7 @@ public class GCCelestialBodies { public static final ResourceKey> URANUS = key("uranus"); public static final ResourceKey> NEPTUNE = key("neptune"); - public static void bootstrapRegistries(BootstapContext> context) { + public static void bootstrapRegistries(BootstrapContext> context) { HolderGetter> teleporters = context.lookup(AddonRegistries.CELESTIAL_TELEPORTER); HolderGetter galaxies = context.lookup(AddonRegistries.GALAXY); diff --git a/src/main/java/dev/galacticraft/mod/content/GCLootTables.java b/src/main/java/dev/galacticraft/mod/content/GCLootTables.java index 3e470f07a..b5461755f 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCLootTables.java +++ b/src/main/java/dev/galacticraft/mod/content/GCLootTables.java @@ -23,13 +23,10 @@ package dev.galacticraft.mod.content; import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.mixin.BuiltInLootTablesAccessor; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.level.storage.loot.LootTable; public class GCLootTables { - public static final ResourceLocation BASIC_MOON_RUINS_CHEST = Constant.id(Constant.LootTable.BASIC_MOON_RUINS_CHEST); - - public static void register() { - BuiltInLootTablesAccessor.callRegisterLootTable(BASIC_MOON_RUINS_CHEST); - } + public static final ResourceKey BASIC_MOON_RUINS_CHEST = Constant.key(Registries.LOOT_TABLE, Constant.LootTable.BASIC_MOON_RUINS_CHEST); } diff --git a/src/main/java/dev/galacticraft/mod/content/GCMachineTypes.java b/src/main/java/dev/galacticraft/mod/content/GCMachineTypes.java deleted file mode 100644 index 74557cf80..000000000 --- a/src/main/java/dev/galacticraft/mod/content/GCMachineTypes.java +++ /dev/null @@ -1,458 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.content; - -import dev.galacticraft.api.gas.Gases; -import dev.galacticraft.machinelib.api.filter.ResourceFilters; -import dev.galacticraft.machinelib.api.machine.MachineType; -import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; -import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; -import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; -import dev.galacticraft.machinelib.api.storage.MachineItemStorage; -import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; -import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; -import dev.galacticraft.machinelib.api.transfer.InputType; -import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.block.entity.machine.*; -import dev.galacticraft.mod.content.item.GCItems; -import dev.galacticraft.mod.recipe.CompressingRecipe; -import dev.galacticraft.mod.recipe.FabricationRecipe; -import dev.galacticraft.mod.screen.*; -import net.fabricmc.fabric.api.registry.FuelRegistry; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalItemTags; -import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; -import net.minecraft.world.Container; -import net.minecraft.world.inventory.CraftingContainer; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.crafting.BlastingRecipe; -import net.minecraft.world.item.crafting.SmeltingRecipe; - -public class GCMachineTypes { - public static final MachineType COAL_GENERATOR = MachineType.create( - GCBlocks.COAL_GENERATOR, - GCBlockEntityTypes.COAL_GENERATOR, - GCMenuTypes.COAL_GENERATOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.coalGeneratorEnergyProductionRate() * 2, - Galacticraft.CONFIG.coalGeneratorEnergyProductionRate() * 2, - false, - true - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_INSERT_ENERGY), - ItemResourceSlot.builder(InputType.INPUT) - .pos(71, 53) - .filter((item, tag) -> CoalGeneratorBlockEntity.FUEL_MAP.containsKey(item)) - ) - ); - - public static final MachineType> BASIC_SOLAR_PANEL = MachineType.create( - GCBlocks.BASIC_SOLAR_PANEL, - GCBlockEntityTypes.BASIC_SOLAR_PANEL, - GCMenuTypes.BASIC_SOLAR_PANEL, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2, - Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2, - false, - true - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_INSERT_ENERGY) - ) - ); - - public static final MachineType> ADVANCED_SOLAR_PANEL = MachineType.create( - GCBlocks.ADVANCED_SOLAR_PANEL, - GCBlockEntityTypes.ADVANCED_SOLAR_PANEL, - GCMenuTypes.ADVANCED_SOLAR_PANEL, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2, - Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2, - false, - true - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_INSERT_ENERGY) - ) - ); - - public static final MachineType> CIRCUIT_FABRICATOR = MachineType.create( - GCBlocks.CIRCUIT_FABRICATOR, - GCBlockEntityTypes.CIRCUIT_FABRICATOR, - GCMenuTypes.CIRCUIT_FABRICATOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.circuitFabricatorEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.circuitFabricatorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 70) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.INPUT) - .pos(31, 15) - .filter(ResourceFilters.itemTag(ConventionalItemTags.DIAMONDS)), - ItemResourceSlot.builder(InputType.INPUT) - .pos(62, 45) - .filter(ResourceFilters.ofResource(GCItems.RAW_SILICON)), - ItemResourceSlot.builder(InputType.INPUT) - .pos(62, 63) - .filter(ResourceFilters.ofResource(GCItems.RAW_SILICON)), - ItemResourceSlot.builder(InputType.INPUT) - .pos(107, 70) - .filter(ResourceFilters.ofResource(Items.REDSTONE)), - ItemResourceSlot.builder(InputType.INPUT) - .pos(134, 15), - ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(152, 70) - ) - ); - - public static final MachineType COMPRESSOR = MachineType.create( - GCBlocks.COMPRESSOR, - GCBlockEntityTypes.COMPRESSOR, - GCMenuTypes.COMPRESSOR, - MachineEnergyStorage::empty, - MachineItemStorage.builder() - .add(ItemResourceSlot.builder(InputType.TRANSFER) - .pos(83, 47) - .filter((item, tag) -> { - Integer integer = FuelRegistry.INSTANCE.get(item); - return integer != null && integer > 0; - })) - .add3x3Grid(InputType.INPUT, 17, 17) - .add(ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(143, 36)) - ); - - public static final MachineType> ELECTRIC_ARC_FURNACE = MachineType.create( - GCBlocks.ELECTRIC_ARC_FURNACE, - GCBlockEntityTypes.ELECTRIC_ARC_FURNACE, - GCMenuTypes.ELECTRIC_ARC_FURNACE, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.electricArcFurnaceEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.electricArcFurnaceEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.INPUT) - .pos(44, 35), - ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(108, 35), - ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(134, 35) - ) - ); - - public static final MachineType> ELECTRIC_COMPRESSOR = MachineType.create( - GCBlocks.ELECTRIC_COMPRESSOR, - GCBlockEntityTypes.ELECTRIC_COMPRESSOR, - GCMenuTypes.ELECTRIC_COMPRESSOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.electricCompressorEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.electricCompressorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.builder() - .add(ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 61) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY) - ) - .add3x3Grid(InputType.INPUT, 30, 17) - .add(ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(148, 22) - ) - .add(ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(148, 48) - ) - ); - - public static final MachineType> ELECTRIC_FURNACE = MachineType.create( - GCBlocks.ELECTRIC_FURNACE, - GCBlockEntityTypes.ELECTRIC_FURNACE, - GCMenuTypes.ELECTRIC_FURNACE, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.electricFurnaceEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.electricFurnaceEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 61) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.INPUT) - .pos(52, 35), - ItemResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(113, 35) - ) - ); - - public static final MachineType> ENERGY_STORAGE_MODULE = MachineType.create( - GCBlocks.ENERGY_STORAGE_MODULE, - GCBlockEntityTypes.ENERGY_STORAGE_MODULE, - GCMenuTypes.ENERGY_STORAGE_MODULE, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.energyStorageModuleStorageSize(), - Galacticraft.CONFIG.energyStorageModuleStorageSize() / 200, - Galacticraft.CONFIG.energyStorageModuleStorageSize() / 200, - true, - true - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(102, 48) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(102, 24) - .filter(ResourceFilters.CAN_INSERT_ENERGY) - ) - ); - - public static final MachineType FUEL_LOADER = MachineType.create( - GCBlocks.FUEL_LOADER, - GCBlockEntityTypes.FUEL_LOADER, - GCMenuTypes.FUEL_LOADER, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - 150 * 2, // fixme - 150 * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(80, 62) - .filter(ResourceFilters.canExtractFluid(GCFluids.FUEL)) // fixme: fuel tag?, - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.INPUT) - .hidden() - .capacity(FluidConstants.BUCKET * 50) - .filter(ResourceFilters.ofResource(GCFluids.FUEL)) // fixme: tag? - ) - ); - - public static final MachineType OXYGEN_BUBBLE_DISTRIBUTOR = MachineType.create( - GCBlocks.OXYGEN_BUBBLE_DISTRIBUTOR, - GCBlockEntityTypes.OXYGEN_BUBBLE_DISTRIBUTOR, - GCMenuTypes.OXYGEN_BUBBLE_DISTRIBUTOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, // fixme - Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(31, 62) - .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.INPUT) - .pos(31, 8) - .capacity(OxygenBubbleDistributorBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType OXYGEN_COLLECTOR = MachineType.create( - GCBlocks.OXYGEN_COLLECTOR, - GCBlockEntityTypes.OXYGEN_COLLECTOR, - GCMenuTypes.OXYGEN_COLLECTOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY) - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.OUTPUT) - .pos(31, 8) - .capacity(OxygenCollectorBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType> OXYGEN_COMPRESSOR = MachineType.create( - GCBlocks.OXYGEN_COMPRESSOR, - GCBlockEntityTypes.OXYGEN_COMPRESSOR, - GCMenuTypes.OXYGEN_COMPRESSOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(80, 27) - .filter(ResourceFilters.canInsertFluid(Gases.OXYGEN)) - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.INPUT) - .pos(31, 8) - .capacity(OxygenCompressorBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType> OXYGEN_DECOMPRESSOR = MachineType.create( - GCBlocks.OXYGEN_DECOMPRESSOR, - GCBlockEntityTypes.OXYGEN_DECOMPRESSOR, - GCMenuTypes.OXYGEN_DECOMPRESSOR, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.oxygenDecompressorEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.oxygenDecompressorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(80, 27) - .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.OUTPUT) - .pos(31, 8) - .capacity(OxygenDecompressorBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType> OXYGEN_SEALER = MachineType.create( - GCBlocks.OXYGEN_SEALER, - GCBlockEntityTypes.OXYGEN_SEALER, - GCMenuTypes.OXYGEN_SEALER, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, // fixme - Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 62) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) // todo: drop for decompressor? - .pos(31, 62) - .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.INPUT) - .pos(30, 8) - .capacity(OxygenSealerBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType> OXYGEN_STORAGE_MODULE = MachineType.create( - GCBlocks.OXYGEN_STORAGE_MODULE, - GCBlockEntityTypes.OXYGEN_STORAGE_MODULE, - GCMenuTypes.OXYGEN_STORAGE_MODULE, - MachineEnergyStorage::empty, - MachineItemStorage::empty, - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.STORAGE) - .hidden() - .capacity(OxygenStorageModuleBlockEntity.MAX_OXYGEN) - .filter(ResourceFilters.ofResource(Gases.OXYGEN)) - ) - ); - - public static final MachineType> REFINERY = MachineType.create( - GCBlocks.REFINERY, - GCBlockEntityTypes.REFINERY, - GCMenuTypes.REFINERY, - () -> MachineEnergyStorage.create( - Galacticraft.CONFIG.machineEnergyStorageSize(), - Galacticraft.CONFIG.refineryEnergyConsumptionRate() * 2, - Galacticraft.CONFIG.refineryEnergyConsumptionRate() * 2, - true, - false - ), - MachineItemStorage.of( - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(8, 7) - .filter(ResourceFilters.CAN_EXTRACT_ENERGY), - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(123, 7) - .filter(ResourceFilters.canExtractFluid(GCFluids.CRUDE_OIL)), // fixme: tag?, - ItemResourceSlot.builder(InputType.TRANSFER) - .pos(153, 7) - .filter(ResourceFilters.canInsertFluid(GCFluids.FUEL)) // fixme: tag? - ), - MachineFluidStorage.of( - FluidResourceSlot.builder(InputType.INPUT) - .pos(123, 29) - .capacity(RefineryBlockEntity.MAX_CAPACITY) - .filter(ResourceFilters.ofResource(GCFluids.CRUDE_OIL)), - FluidResourceSlot.builder(InputType.RECIPE_OUTPUT) - .pos(153, 29) - .capacity(RefineryBlockEntity.MAX_CAPACITY) - .filter(ResourceFilters.ofResource(GCFluids.FUEL)) - ) - ); -} diff --git a/src/main/java/dev/galacticraft/mod/content/GCRocketParts.java b/src/main/java/dev/galacticraft/mod/content/GCRocketParts.java index c3756a944..1a0574c00 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCRocketParts.java +++ b/src/main/java/dev/galacticraft/mod/content/GCRocketParts.java @@ -35,7 +35,7 @@ import dev.galacticraft.mod.content.rocket.part.config.StorageUpgradeConfig; import dev.galacticraft.mod.content.rocket.part.type.StorageUpgradeType; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.Ingredient; @@ -55,7 +55,7 @@ public class GCRocketParts { public static final ResourceKey> TIER_2_BOOSTER = booster("tier_2"); public static final ResourceKey> STORAGE_UPGRADE = upgrade("storage"); - public static void bootstrapCone(BootstapContext> context) { + public static void bootstrapCone(BootstrapContext> context) { context.register(TIER_1_CONE, BasicRocketConeType.INSTANCE.configure( new BasicRocketConeConfig( @@ -100,7 +100,7 @@ public static void bootstrapCone(BootstapContext> context) { ); } - public static void bootstrapBody(BootstapContext> context) { + public static void bootstrapBody(BootstrapContext> context) { context.register(TIER_1_BODY, BasicRocketBodyType.INSTANCE.configure(new BasicRocketBodyConfig( AccessWeightTravelPredicateType.INSTANCE.configure(new AccessWeightTravelPredicateConfig(1, TravelPredicateType.Result.PASS)), @@ -120,7 +120,7 @@ public static void bootstrapBody(BootstapContext> context) { ); } - public static void bootstrapFin(BootstapContext> context) { + public static void bootstrapFin(BootstrapContext> context) { context.register(TIER_1_FIN, BasicRocketFinType.INSTANCE.configure( new BasicRocketFinConfig( @@ -140,7 +140,7 @@ public static void bootstrapFin(BootstapContext> context) { ); } - public static void bootstrapBooster(BootstapContext> context) { + public static void bootstrapBooster(BootstrapContext> context) { context.register(TIER_1_BOOSTER, BasicRocketBoosterType.INSTANCE.configure( new BasicRocketBoosterConfig( @@ -156,7 +156,7 @@ public static void bootstrapBooster(BootstapContext> context ); } - public static void bootstrapEngine(BootstapContext> context) { + public static void bootstrapEngine(BootstrapContext> context) { context.register(TIER_1_ENGINE, BasicRocketEngineType.INSTANCE.configure( new BasicRocketEngineConfig( @@ -173,7 +173,7 @@ public static void bootstrapEngine(BootstapContext> context) ); } - public static void bootstrapUpgrade(BootstapContext> context) { + public static void bootstrapUpgrade(BootstrapContext> context) { context.register(STORAGE_UPGRADE, RocketUpgrade.create(new StorageUpgradeConfig(1, RocketPartRecipeBuilder.create() .define('C', Ingredient.of(Items.CHEST)) diff --git a/src/main/java/dev/galacticraft/mod/content/GCStats.java b/src/main/java/dev/galacticraft/mod/content/GCStats.java index fc0a26621..ae8050014 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCStats.java +++ b/src/main/java/dev/galacticraft/mod/content/GCStats.java @@ -23,6 +23,8 @@ package dev.galacticraft.mod.content; import dev.galacticraft.mod.Constant; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; import net.minecraft.stats.StatFormatter; import net.minecraft.stats.Stats; @@ -32,7 +34,10 @@ public class GCStats { public static final ResourceLocation INTERACT_WITH_NASA_WORKBENCH = register("interact_with_nasa_workbench", StatFormatter.DEFAULT); public static ResourceLocation register(String id, StatFormatter formatter) { - return Stats.makeCustomStat(Constant.MOD_ID + ":" + id, formatter); + ResourceLocation resourceLocation = Constant.id(id); + Registry.register(BuiltInRegistries.CUSTOM_STAT, id, resourceLocation); + Stats.CUSTOM.get(resourceLocation, formatter); + return resourceLocation; } public static void register() {} diff --git a/src/main/java/dev/galacticraft/mod/content/GCTeleporterTypes.java b/src/main/java/dev/galacticraft/mod/content/GCTeleporterTypes.java index 58611cd6f..0283c3c40 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCTeleporterTypes.java +++ b/src/main/java/dev/galacticraft/mod/content/GCTeleporterTypes.java @@ -33,7 +33,7 @@ import dev.galacticraft.mod.Constant.Teleporters; import dev.galacticraft.mod.content.teleporters.LanderCelestialTeleporterType; import dev.galacticraft.mod.content.teleporters.OverworldCelestialTeleporterType; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; public class GCTeleporterTypes { @@ -45,7 +45,7 @@ public class GCTeleporterTypes { public static void register() {} - public static void bootstrapRegistries(BootstapContext> context) { + public static void bootstrapRegistries(BootstrapContext> context) { context.register(BuiltinObjects.DIRECT_CELESTIAL_TELEPORTER, new CelestialTeleporter<>(DirectCelestialTeleporterType.INSTANCE, DefaultCelestialTeleporterConfig.INSTANCE)); context.register(LANDER_CELESTIAL_TELEPORTER, new CelestialTeleporter<>(LANDER, DefaultCelestialTeleporterConfig.INSTANCE)); context.register(OVERWORLD_TELEPORTER, new CelestialTeleporter<>(OVERWORLD, DefaultCelestialTeleporterConfig.INSTANCE)); diff --git a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/CreateSpaceStationTrigger.java b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/CreateSpaceStationTrigger.java index f6653c917..25573a790 100644 --- a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/CreateSpaceStationTrigger.java +++ b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/CreateSpaceStationTrigger.java @@ -24,12 +24,10 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.galacticraft.mod.content.entity.boss.SkeletonBoss; import net.minecraft.advancements.critereon.ContextAwarePredicate; import net.minecraft.advancements.critereon.EntityPredicate; import net.minecraft.advancements.critereon.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.ExtraCodecs; import java.util.Optional; @@ -46,7 +44,7 @@ public void trigger(ServerPlayer player) { public record TriggerInstance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( - ExtraCodecs.strictOptionalField(EntityPredicate.ADVANCEMENT_CODEC, "player").forGetter(TriggerInstance::player) + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ) .apply(instance, TriggerInstance::new) ); diff --git a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/FindMoonBossTrigger.java b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/FindMoonBossTrigger.java index 7c99308ad..f76c51733 100644 --- a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/FindMoonBossTrigger.java +++ b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/FindMoonBossTrigger.java @@ -29,7 +29,6 @@ import net.minecraft.advancements.critereon.EntityPredicate; import net.minecraft.advancements.critereon.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.ExtraCodecs; import java.util.Optional; @@ -46,7 +45,7 @@ public void trigger(ServerPlayer player) { public record TriggerInstance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( - ExtraCodecs.strictOptionalField(EntityPredicate.ADVANCEMENT_CODEC, "player").forGetter(TriggerInstance::player) + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ) .apply(instance, TriggerInstance::new) ); diff --git a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/LaunchRocketTrigger.java b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/LaunchRocketTrigger.java index 870ee032e..a65d1761c 100644 --- a/src/main/java/dev/galacticraft/mod/content/advancements/critereon/LaunchRocketTrigger.java +++ b/src/main/java/dev/galacticraft/mod/content/advancements/critereon/LaunchRocketTrigger.java @@ -30,7 +30,6 @@ import net.minecraft.advancements.critereon.EntityPredicate; import net.minecraft.advancements.critereon.SimpleCriterionTrigger; import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.ExtraCodecs; import java.util.Optional; @@ -54,7 +53,7 @@ public void trigger(ServerPlayer player) { public record TriggerInstance(Optional player) implements SimpleCriterionTrigger.SimpleInstance { public static final Codec CODEC = RecordCodecBuilder.create( instance -> instance.group( - ExtraCodecs.strictOptionalField(EntityPredicate.ADVANCEMENT_CODEC, "player").forGetter(TriggerInstance::player) + EntityPredicate.ADVANCEMENT_CODEC.optionalFieldOf("player").forGetter(TriggerInstance::player) ) .apply(instance, TriggerInstance::new) ); diff --git a/src/main/java/dev/galacticraft/mod/content/block/GCBlock.java b/src/main/java/dev/galacticraft/mod/content/block/GCBlock.java index adebbaebe..649b01f3e 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/GCBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/GCBlock.java @@ -30,9 +30,9 @@ import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; import net.minecraft.world.MenuProvider; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; @@ -49,7 +49,9 @@ public GCBlock(Properties properties) { } @Override - public void appendHoverText(ItemStack itemStack, @Nullable BlockGetter blockGetter, List tooltip, TooltipFlag tooltipFlag) { + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag options) { + super.appendHoverText(stack, context, tooltip, options); + Component description = Component.translatable(getDescriptionId() + ".description"); if (Screen.hasShiftDown()) { tooltip.addAll(Minecraft.getInstance().font.getSplitter().splitLines(description, 150, Style.EMPTY).stream().map(formattedText -> Component.literal(formattedText.getString()).withStyle(ChatFormatting.GRAY)).toList()); diff --git a/src/main/java/dev/galacticraft/mod/content/block/decoration/GratingBlock.java b/src/main/java/dev/galacticraft/mod/content/block/decoration/GratingBlock.java index bda1955b2..207dc6e27 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/decoration/GratingBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/decoration/GratingBlock.java @@ -55,7 +55,7 @@ public class GratingBlock extends Block implements FluidLoggable { public GratingBlock(Properties settings) { super(settings); this.registerDefaultState(this.getStateDefinition().any() - .setValue(FLUID, new ResourceLocation("invalid")) + .setValue(FLUID, ResourceLocation.withDefaultNamespace("invalid")) .setValue(FlowingFluid.LEVEL, 8) .setValue(STATE, State.UPPER) .setValue(FlowingFluid.FALLING, false)); diff --git a/src/main/java/dev/galacticraft/mod/content/block/decoration/LunarCartographyTableBlock.java b/src/main/java/dev/galacticraft/mod/content/block/decoration/LunarCartographyTableBlock.java index d070145f5..6270d4aaf 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/decoration/LunarCartographyTableBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/decoration/LunarCartographyTableBlock.java @@ -23,7 +23,6 @@ package dev.galacticraft.mod.content.block.decoration; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.player.Player; @@ -39,7 +38,7 @@ public LunarCartographyTableBlock(Properties settings) { } @Override - public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { return InteractionResult.PASS; } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/CryogenicChamberPartBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/CryogenicChamberPartBlockEntity.java index 4503ad0fd..aca292ecc 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/CryogenicChamberPartBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/CryogenicChamberPartBlockEntity.java @@ -25,6 +25,7 @@ import dev.galacticraft.mod.api.block.MultiBlockPart; import dev.galacticraft.mod.content.GCBlockEntityTypes; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -42,16 +43,16 @@ public CryogenicChamberPartBlockEntity(BlockPos blockPos, BlockState blockState) } @Override - public void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); if (this.basePos != BlockPos.ZERO) { tag.putLong("Base", this.basePos.asLong()); } } @Override - public void load(CompoundTag tag) { - super.load(tag); + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registryLookup) { + super.loadAdditional(tag, registryLookup); if (tag.contains("Base")) { this.basePos = BlockPos.of(tag.getLong("Base")); } @@ -64,8 +65,8 @@ public Packet getUpdatePacket() { } @Override - public CompoundTag getUpdateTag() { - return this.saveWithoutMetadata(); + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + return this.saveWithoutMetadata(registryLookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/DungeonSpawnerBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/DungeonSpawnerBlockEntity.java index a84e7b0be..719266293 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/DungeonSpawnerBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/DungeonSpawnerBlockEntity.java @@ -30,11 +30,11 @@ import dev.galacticraft.mod.content.entity.boss.AbstractBossEntity; import net.minecraft.Util; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.core.Vec3i; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.Entity; @@ -46,12 +46,10 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.Spawner; import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; @@ -137,7 +135,7 @@ public void tick(ServerLevel level, BlockPos pos, BlockState state) { // Now spawn the boss if (this.boss != null) { - this.boss.finalizeSpawn(level, level.getCurrentDifficultyAt(this.boss.blockPosition()), MobSpawnType.SPAWNER, null, null); + this.boss.finalizeSpawn(level, level.getCurrentDifficultyAt(this.boss.blockPosition()), MobSpawnType.SPAWNER, null); level.addFreshEntity(this.boss); this.playSpawnSound(this.boss); this.spawned = true; @@ -167,8 +165,8 @@ public void setRoom(Vec3i coords, Vec3i size) { } @Override - public void load(CompoundTag tag) { - super.load(tag); + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registryLookup) { + super.loadAdditional(tag, registryLookup); this.playerInRange = this.lastPlayerInRange = tag.getBoolean("playerInRange"); this.isBossDefeated = tag.getBoolean("defeated"); @@ -200,8 +198,8 @@ public void load(CompoundTag tag) { } @Override - public void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); tag.putBoolean("playerInRange", this.playerInRange); tag.putBoolean("defeated", this.isBossDefeated); diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/RocketWorkbenchBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/RocketWorkbenchBlockEntity.java index 3c931a7a0..5f62982a2 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/RocketWorkbenchBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/RocketWorkbenchBlockEntity.java @@ -30,10 +30,10 @@ import dev.galacticraft.mod.screen.RocketWorkbenchMenu; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.core.Registry; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -45,9 +45,10 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class RocketWorkbenchBlockEntity extends BlockEntity implements ExtendedScreenHandlerFactory, VariableSizedContainer.Listener { +public class RocketWorkbenchBlockEntity extends BlockEntity implements ExtendedScreenHandlerFactory, VariableSizedContainer.Listener { public final SimpleContainer output = new SimpleContainer(1) { @Override public boolean canPlaceItem(int index, ItemStack stack) { @@ -69,57 +70,39 @@ public RocketWorkbenchBlockEntity(BlockPos pos, BlockState state) { } @Override - protected void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider provider) { + super.saveAdditional(tag, provider); - ListTag tag1 = this.output.createTag(); + ListTag tag1 = this.output.createTag(provider); if (!tag1.isEmpty()) tag.put("Output", tag1.get(0)); - tag.put("Cone", this.cone.toTag()); - tag.put("Body", this.body.toTag()); - tag.put("Fins", this.fins.toTag()); - tag.put("Booster", this.booster.toTag()); - tag.put("Engine", this.engine.toTag()); - tag.put("Upgrade", this.upgrade.toTag()); + tag.put("Cone", this.cone.toTag(provider)); + tag.put("Body", this.body.toTag(provider)); + tag.put("Fins", this.fins.toTag(provider)); + tag.put("Booster", this.booster.toTag(provider)); + tag.put("Engine", this.engine.toTag(provider)); + tag.put("Upgrade", this.upgrade.toTag(provider)); tag.putByteArray("Color", this.color); } @Override - public void load(CompoundTag tag) { - super.load(tag); + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registryLookup) { + super.loadAdditional(tag, registryLookup); if (tag.contains("Output")) { ListTag list = new ListTag(); list.add(tag.get("Output")); - this.output.fromTag(list); + this.output.fromTag(list, registryLookup); } - this.cone.readTag(tag.getCompound("Cone")); - this.body.readTag(tag.getCompound("Body")); - this.fins.readTag(tag.getCompound("Fins")); - this.booster.readTag(tag.getCompound("Booster")); - this.engine.readTag(tag.getCompound("Engine")); - this.upgrade.readTag(tag.getCompound("Upgrade")); + this.cone.readTag(tag.getCompound("Cone"), registryLookup); + this.body.readTag(tag.getCompound("Body"), registryLookup); + this.fins.readTag(tag.getCompound("Fins"), registryLookup); + this.booster.readTag(tag.getCompound("Booster"), registryLookup); + this.engine.readTag(tag.getCompound("Engine"), registryLookup); + this.upgrade.readTag(tag.getCompound("Upgrade"), registryLookup); this.color = tag.getByteArray("Color"); } @Override - public void writeScreenOpeningData(ServerPlayer player, FriendlyByteBuf buf) { - buf.writeBlockPos(this.getBlockPos()); - - buf.writeBoolean(this.cone.selection != null); - if (this.cone.selection != null) buf.writeResourceLocation(this.cone.selection); - buf.writeBoolean(this.body.selection != null); - if (this.body.selection != null) buf.writeResourceLocation(this.body.selection); - buf.writeBoolean(this.fins.selection != null); - if (this.fins.selection != null) buf.writeResourceLocation(this.fins.selection); - buf.writeBoolean(this.booster.selection != null); - if (this.booster.selection != null) buf.writeResourceLocation(this.booster.selection); - buf.writeBoolean(this.engine.selection != null); - if (this.engine.selection != null) buf.writeResourceLocation(this.engine.selection); - buf.writeBoolean(this.upgrade.selection != null); - if (this.upgrade.selection != null) buf.writeResourceLocation(this.upgrade.selection); - } - - @Override - public Component getDisplayName() { + public @NotNull Component getDisplayName() { return this.getBlockState().getBlock().getName(); } @@ -139,6 +122,11 @@ public void onItemChanged() { this.setChanged(); } + @Override + public RocketWorkbenchMenu.OpeningData getScreenOpeningData(ServerPlayer player) { + return new RocketWorkbenchMenu.OpeningData(this.getBlockPos(), this.cone.selection, this.body.selection, this.fins.selection, this.booster.selection, this.engine.selection, this.upgrade.selection); + } + public class RecipeSelection

> { private final ResourceKey> key; public final VariableSizedContainer inventory; @@ -180,8 +168,8 @@ private void updateSize() { return value != null ? value.getRecipe() : null; } - public CompoundTag toTag() { - CompoundTag nbt = this.inventory.toTag(); + public CompoundTag toTag(HolderLookup.Provider lookup) { + CompoundTag nbt = this.inventory.toTag(lookup); if (this.selection != null) { nbt.putString("selection", this.selection.toString()); // nbt.putInt("size", this.inventory.getContainerSize()); @@ -189,11 +177,11 @@ public CompoundTag toTag() { return nbt; } - public void readTag(CompoundTag nbt) { - this.inventory.readTag(nbt); + public void readTag(CompoundTag nbt, HolderLookup.Provider lookup) { + this.inventory.readTag(nbt, lookup); String selLoc = nbt.getString("selection"); if (!selLoc.isEmpty()) { - this.selection = new ResourceLocation(selLoc); + this.selection = ResourceLocation.parse(selLoc); // this.inventory.resize(nbt.getInt("size")); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/SolarPanelPartBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/SolarPanelPartBlockEntity.java index b3839ae2e..715c8fb66 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/SolarPanelPartBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/SolarPanelPartBlockEntity.java @@ -25,6 +25,7 @@ import dev.galacticraft.mod.api.block.MultiBlockPart; import dev.galacticraft.mod.content.GCBlockEntityTypes; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; @@ -37,16 +38,16 @@ public SolarPanelPartBlockEntity(BlockPos pos, BlockState state) { } @Override - public void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); if (this.basePos != BlockPos.ZERO) { tag.putLong("Base", this.basePos.asLong()); } } @Override - public void load(CompoundTag tag) { - super.load(tag); + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registryLookup) { + super.loadAdditional(tag, registryLookup); if (tag.contains("Base")) { this.basePos = BlockPos.of(tag.getLong("Base")); } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/WalkwayBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/WalkwayBlockEntity.java index 63c3f03bd..79d1cdd21 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/WalkwayBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/WalkwayBlockEntity.java @@ -26,6 +26,7 @@ import dev.galacticraft.mod.content.GCBlockEntityTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.world.level.block.entity.BlockEntity; @@ -41,15 +42,15 @@ public WalkwayBlockEntity(BlockPos pos, BlockState state) { } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writeConnectionNbt(nbt); this.writeWalkwayNbt(nbt); } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readConnectionNbt(nbt); this.readWalkwayNbt(nbt); } @@ -87,7 +88,7 @@ public ClientboundBlockEntityDataPacket getUpdatePacket() { } @Override - public CompoundTag getUpdateTag() { - return this.saveWithoutMetadata(); + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + return this.saveWithoutMetadata(registryLookup); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java index 7f7ebf78f..96173e7a4 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java @@ -22,15 +22,42 @@ package dev.galacticraft.mod.content.block.entity.machine; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; import dev.galacticraft.mod.api.block.entity.AbstractSolarPanelBlockEntity; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; +import dev.galacticraft.mod.screen.SolarPanelMenu; import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; public class AdvancedSolarPanelBlockEntity extends AbstractSolarPanelBlockEntity { + private static final StorageSpec STORAGE_SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_INSERT_ENERGY) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + 0, + Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2 + ) + ); + public AdvancedSolarPanelBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.ADVANCED_SOLAR_PANEL, pos, state); + super(GCBlockEntityTypes.ADVANCED_SOLAR_PANEL, pos, state, STORAGE_SPEC); } @Override @@ -52,4 +79,9 @@ protected long calculateEnergyProduction(long time, double multiplier) { } return (long) (Galacticraft.CONFIG.solarPanelEnergyProductionRate() * multiplier); } + + @Override + public @Nullable MachineMenu createMenu(int syncId, Inventory inventory, Player player) { + return new SolarPanelMenu<>(GCMenuTypes.ADVANCED_SOLAR_PANEL, syncId, (ServerPlayer) player, this); + } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/BasicSolarPanelBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/BasicSolarPanelBlockEntity.java index 8a92c3814..53677c4ed 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/BasicSolarPanelBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/BasicSolarPanelBlockEntity.java @@ -22,15 +22,41 @@ package dev.galacticraft.mod.content.block.entity.machine; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; import dev.galacticraft.mod.api.block.entity.AbstractSolarPanelBlockEntity; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; +import dev.galacticraft.mod.screen.SolarPanelMenu; import net.minecraft.core.BlockPos; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; public class BasicSolarPanelBlockEntity extends AbstractSolarPanelBlockEntity { + private static final StorageSpec STORAGE_SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_INSERT_ENERGY) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + 0, + Galacticraft.CONFIG.solarPanelEnergyProductionRate() * 2 + ) + ); + public BasicSolarPanelBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.BASIC_SOLAR_PANEL, pos, state); + super(GCBlockEntityTypes.BASIC_SOLAR_PANEL, pos, state, STORAGE_SPEC); } @Override @@ -49,4 +75,9 @@ protected long calculateEnergyProduction(long time, double multiplier) { if (cos <= 0) return 0; return (long) (Galacticraft.CONFIG.solarPanelEnergyProductionRate() * cos * multiplier); } + + @Override + public @Nullable MachineMenu createMenu(int syncId, Inventory inventory, Player player) { + return new SolarPanelMenu<>(GCMenuTypes.BASIC_SOLAR_PANEL, syncId, player, this); + } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CircuitFabricatorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CircuitFabricatorBlockEntity.java index 0273fd1c7..f1a2a4799 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CircuitFabricatorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CircuitFabricatorBlockEntity.java @@ -22,36 +22,43 @@ package dev.galacticraft.mod.content.block.entity.machine; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.machinelib.api.block.entity.RecipeMachineBlockEntity; -import dev.galacticraft.machinelib.api.compat.vanilla.RecipeTestContainer; +import dev.galacticraft.machinelib.api.compat.vanilla.RecipeHelper; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.recipe.FabricationRecipe; import dev.galacticraft.mod.recipe.GCRecipes; +import dev.galacticraft.mod.screen.GCMenuTypes; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; import net.minecraft.core.BlockPos; import net.minecraft.core.NonNullList; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class CircuitFabricatorBlockEntity extends RecipeMachineBlockEntity { +public class CircuitFabricatorBlockEntity extends RecipeMachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int DIAMOND_SLOT = 1; public static final int SILICON_SLOT_1 = 2; @@ -60,19 +67,44 @@ public class CircuitFabricatorBlockEntity extends RecipeMachineBlockEntity recipe) { ItemStack output = recipe.value().getResultItem(this.level.registryAccess()); - return this.itemStorage().getSlot(OUTPUT_SLOT).canInsert(output.getItem(), output.getTag(), output.getCount()); + return this.itemStorage().slot(OUTPUT_SLOT).canInsert(output.getItem(), output.getComponentsPatch(), output.getCount()); } @Override - protected @NotNull Container craftingInv() { - return this.craftingInv; + protected @NotNull RecipeInput craftingInv() { + return RecipeHelper.input(this.itemStorage().slot(INPUT_SLOT)); } @Override protected void outputStacks(@NotNull RecipeHolder recipe) { ItemStack output = recipe.value().getResultItem(this.level.registryAccess()); - this.itemStorage().getSlot(OUTPUT_SLOT).insert(output.getItem(), output.getTag(), output.getCount()); + this.itemStorage().slot(OUTPUT_SLOT).insert(output.getItem(), output.getComponentsPatch(), output.getCount()); } @Override protected void extractCraftingMaterials(@NotNull RecipeHolder recipe) { - NonNullList remainder = recipe.value().getRemainingItems(this.craftingInv); - this.itemStorage().getSlot(DIAMOND_SLOT).extractOne(); - this.itemStorage().getSlot(SILICON_SLOT_1).extractOne(); - this.itemStorage().getSlot(SILICON_SLOT_2).extractOne(); - this.itemStorage().getSlot(REDSTONE_SLOT).extractOne(); + NonNullList remainder = recipe.value().getRemainingItems(this.craftingInv()); + this.itemStorage().slot(DIAMOND_SLOT).extractOne(); + this.itemStorage().slot(SILICON_SLOT_1).extractOne(); + this.itemStorage().slot(SILICON_SLOT_2).extractOne(); + this.itemStorage().slot(REDSTONE_SLOT).extractOne(); - ItemResourceSlot input = this.itemStorage().getSlot(INPUT_SLOT); + ItemResourceSlot input = this.itemStorage().slot(INPUT_SLOT); input.extractOne(); if (input.isEmpty() && remainder.size() > 0) { ItemStack itemStack = remainder.get(0); if (!itemStack.isEmpty()) { - input.insert(itemStack.getItem(), itemStack.getTag(), itemStack.getCount()); + input.insert(itemStack.getItem(), itemStack.getComponentsPatch(), itemStack.getCount()); } } } @@ -129,10 +161,10 @@ protected void extractCraftingMaterials(@NotNull RecipeHolder @Override protected @Nullable RecipeHolder findValidRecipe(@NotNull Level world) { - if (this.itemStorage().getSlot(DIAMOND_SLOT).contains(Items.DIAMOND) - && this.itemStorage().getSlot(SILICON_SLOT_1).contains(GCItems.RAW_SILICON) - && this.itemStorage().getSlot(SILICON_SLOT_2).contains(GCItems.RAW_SILICON) - && this.itemStorage().getSlot(REDSTONE_SLOT).contains(Items.REDSTONE)) { + if (this.itemStorage().slot(DIAMOND_SLOT).contains(Items.DIAMOND) + && this.itemStorage().slot(SILICON_SLOT_1).contains(GCItems.RAW_SILICON) + && this.itemStorage().slot(SILICON_SLOT_2).contains(GCItems.RAW_SILICON) + && this.itemStorage().slot(REDSTONE_SLOT).contains(Items.REDSTONE)) { return super.findValidRecipe(world); } @@ -144,16 +176,13 @@ public int getProcessingTime(@NotNull RecipeHolder recipe) { return recipe.value().getProcessingTime(); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new RecipeMachineMenu<>( - syncId, - ((ServerPlayer) player), - this - ); - } - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new RecipeMachineMenu<>( + GCMenuTypes.CIRCUIT_FABRICATOR, + syncId, + player, + this + ); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CoalGeneratorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CoalGeneratorBlockEntity.java index d823b68a2..00c540bb5 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CoalGeneratorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CoalGeneratorBlockEntity.java @@ -24,25 +24,32 @@ import com.google.common.annotations.VisibleForTesting; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.machinelib.api.util.EnergySource; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.screen.CoalGeneratorMenu; import it.unimi.dsi.fastutil.objects.Object2IntArrayMap; import it.unimi.dsi.fastutil.objects.Object2IntMap; import net.minecraft.Util; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.state.BlockState; @@ -60,6 +67,23 @@ public class CoalGeneratorBlockEntity extends MachineBlockEntity { map.put(Items.CHARCOAL, 310); }); + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_INSERT_ENERGY), + ItemResourceSlot.builder(TransferType.INPUT) + .pos(71, 53) + .filter((item, tag) -> CoalGeneratorBlockEntity.FUEL_MAP.containsKey(item)) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + 0, + Galacticraft.CONFIG.coalGeneratorEnergyProductionRate() * 2 + ) + ); + + private final EnergySource energySource = new EnergySource(this); private int fuelLength = 0; private long fuelSlotModCount = -1; private int fuelTime = 0; @@ -72,7 +96,7 @@ public class CoalGeneratorBlockEntity extends MachineBlockEntity { */ public CoalGeneratorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.COAL_GENERATOR, pos, state); + super(GCBlockEntityTypes.COAL_GENERATOR, pos, state, SPEC); } @Override @@ -84,7 +108,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ } } profiler.push("charge"); - this.drainPowerToStack(CHARGE_SLOT); + this.drainPowerToSlot(CHARGE_SLOT); profiler.pop(); } @@ -92,7 +116,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ public @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { profiler.push("transaction"); this.energyStorage().insert((long) (Galacticraft.CONFIG.coalGeneratorEnergyProductionRate() * this.heat)); - this.trySpreadEnergy(level, state); + this.energySource.trySpreadEnergy(level, pos, state); profiler.popPush("fuel_reset"); if (this.fuelLength == 0) { if (!this.consumeFuel()) { @@ -123,7 +147,7 @@ private boolean consumeFuel() { this.fuelTime = 0; this.fuelLength = 0; - ItemResourceSlot slot = this.itemStorage().getSlot(INPUT_SLOT); + ItemResourceSlot slot = this.itemStorage().slot(INPUT_SLOT); if (slot.getModifications() != this.fuelSlotModCount) { this.fuelSlotModCount = slot.getModifications(); int time = FUEL_MAP.getInt(slot.getResource()); @@ -145,11 +169,9 @@ public void setFuelLength(int fuelLength) { this.fuelLength = fuelLength; } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) return new CoalGeneratorMenu(syncId, (ServerPlayer) player, this); - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new CoalGeneratorMenu(syncId, (ServerPlayer) player, this); } public double getHeat() { @@ -170,16 +192,16 @@ public void setFuelTime(int value) { } @Override - public void load(CompoundTag nbt) { - super.load(nbt); - this.fuelLength = nbt.getInt(Constant.Nbt.FUEL_LENGTH); - this.fuelTime = nbt.getInt(Constant.Nbt.FUEL_TIME); - this.heat = nbt.getDouble(Constant.Nbt.HEAT); + public void loadAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.loadAdditional(tag, lookup); + this.fuelLength = tag.getInt(Constant.Nbt.FUEL_LENGTH); + this.fuelTime = tag.getInt(Constant.Nbt.FUEL_TIME); + this.heat = tag.getDouble(Constant.Nbt.HEAT); } @Override - public void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); tag.putInt(Constant.Nbt.FUEL_LENGTH, this.fuelLength); tag.putInt(Constant.Nbt.FUEL_TIME, this.fuelTime); tag.putDouble(Constant.Nbt.HEAT, this.heat); diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CompressorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CompressorBlockEntity.java index e30056e20..6ecfd29f0 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CompressorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/CompressorBlockEntity.java @@ -23,33 +23,37 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.BasicRecipeMachineBlockEntity; -import dev.galacticraft.machinelib.api.compat.vanilla.CraftingRecipeTestContainer; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.compat.vanilla.RecipeHelper; import dev.galacticraft.machinelib.api.machine.MachineStatus; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.recipe.CompressingRecipe; import dev.galacticraft.mod.recipe.GCRecipes; import dev.galacticraft.mod.screen.CompressorMenu; import net.fabricmc.fabric.api.registry.FuelRegistry; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class CompressorBlockEntity extends BasicRecipeMachineBlockEntity { +public class CompressorBlockEntity extends BasicRecipeMachineBlockEntity { public static final int FUEL_SLOT = 0; public static final int INPUT_SLOTS = 1; public static final int INPUT_LENGTH = 9; @@ -61,8 +65,21 @@ public class CompressorBlockEntity extends BasicRecipeMachineBlockEntity { + Integer integer = FuelRegistry.INSTANCE.get(item); + return integer != null && integer > 0; + })) + .add3x3Grid(TransferType.INPUT, 17, 17) + .add(ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(143, 36)) + ); + public CompressorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.COMPRESSOR, pos, state, GCRecipes.COMPRESSING_TYPE, INPUT_SLOTS, INPUT_LENGTH, OUTPUT_SLOT); + super(GCBlockEntityTypes.COMPRESSOR, pos, state, GCRecipes.COMPRESSING_TYPE, SPEC, INPUT_SLOTS, INPUT_LENGTH, OUTPUT_SLOT); } @Override @@ -73,7 +90,7 @@ public CompressorBlockEntity(BlockPos pos, BlockState state) { @Override protected @Nullable MachineStatus hasResourcesToWork() { if (this.fuelLength == 0) { - ItemResourceSlot slot = this.itemStorage().getSlot(FUEL_SLOT); + ItemResourceSlot slot = this.itemStorage().slot(FUEL_SLOT); if (slot.getModifications() != this.fuelSlotModification) { this.fuelSlotModification = slot.getModifications(); if (!slot.isEmpty()) { @@ -92,7 +109,7 @@ public CompressorBlockEntity(BlockPos pos, BlockState state) { @Override protected void extractResourcesToWork() { if (this.fuelLength == 0) { - ItemResourceSlot slot = this.itemStorage().getSlot(FUEL_SLOT); + ItemResourceSlot slot = this.itemStorage().slot(FUEL_SLOT); if (!slot.isEmpty()) { Integer time = FuelRegistry.INSTANCE.get(slot.getResource()); if (time > 0) { @@ -139,28 +156,26 @@ public int getFuelLength() { } @Override - public void saveAdditional(@NotNull CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); tag.putInt(Constant.Nbt.FUEL_TIME, this.fuelTime); tag.putInt(Constant.Nbt.FUEL_LENGTH, this.fuelLength); } @Override - public void load(@NotNull CompoundTag nbt) { - super.load(nbt); - this.fuelTime = nbt.getInt(Constant.Nbt.FUEL_TIME); - this.fuelLength = nbt.getInt(Constant.Nbt.FUEL_LENGTH); + public void loadAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.loadAdditional(tag, lookup); + this.fuelTime = tag.getInt(Constant.Nbt.FUEL_TIME); + this.fuelLength = tag.getInt(Constant.Nbt.FUEL_LENGTH); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) return new CompressorMenu(syncId, (ServerPlayer) player, this); - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new CompressorMenu(syncId, player, this); } @Override - protected CraftingContainer createCraftingInv() { - return CraftingRecipeTestContainer.create(3, 3, this.itemStorage(), this.inputSlots, this.inputSlotsLen); + protected CraftingInput craftingInv() { + return RecipeHelper.craftingInput(3, 3, this.inputSlots.getSlots()); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricArcFurnaceBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricArcFurnaceBlockEntity.java index 96314dac6..277c6b0f0 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricArcFurnaceBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricArcFurnaceBlockEntity.java @@ -23,41 +23,68 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.BasicRecipeMachineBlockEntity; -import dev.galacticraft.machinelib.api.compat.vanilla.RecipeTestContainer; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.compat.vanilla.RecipeHelper; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.crafting.BlastingRecipe; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ElectricArcFurnaceBlockEntity extends BasicRecipeMachineBlockEntity { +public class ElectricArcFurnaceBlockEntity extends BasicRecipeMachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int INPUT_SLOT = 1; public static final int OUTPUT_SLOTS = 2; public static final int OUTPUT_LENGTH = 2; + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.INPUT) + .pos(44, 35), + ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(108, 35), + ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(134, 35) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.electricArcFurnaceEnergyConsumptionRate() * 2, + 0 + ) + ); + public ElectricArcFurnaceBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.ELECTRIC_ARC_FURNACE, pos, state, RecipeType.BLASTING, INPUT_SLOT, 1, OUTPUT_SLOTS, OUTPUT_LENGTH); + super(GCBlockEntityTypes.ELECTRIC_ARC_FURNACE, pos, state, RecipeType.BLASTING, SPEC, INPUT_SLOT, 1, OUTPUT_SLOTS, OUTPUT_LENGTH); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override @@ -80,21 +107,19 @@ public int getProcessingTime(@NotNull RecipeHolder recipe) { return (int) (recipe.value().getCookingTime() * 0.9); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new RecipeMachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new RecipeMachineMenu<>( + GCMenuTypes.ELECTRIC_ARC_FURNACE, + syncId, + (ServerPlayer) player, + this + ); } @Override - protected Container createCraftingInv() { - return RecipeTestContainer.create(this.itemStorage(), this.inputSlots, this.inputSlotsLen); + protected SingleRecipeInput craftingInv() { + assert this.inputSlots.size() == 1; + return RecipeHelper.single(this.inputSlots.slot(0)); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricCompressorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricCompressorBlockEntity.java index f597b0143..40dd3f719 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricCompressorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricCompressorBlockEntity.java @@ -23,45 +23,72 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.BasicRecipeMachineBlockEntity; -import dev.galacticraft.machinelib.api.compat.vanilla.CraftingRecipeTestContainer; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.compat.vanilla.RecipeHelper; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.recipe.CompressingRecipe; import dev.galacticraft.mod.recipe.GCRecipes; +import dev.galacticraft.mod.screen.GCMenuTypes; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ElectricCompressorBlockEntity extends BasicRecipeMachineBlockEntity { +public class ElectricCompressorBlockEntity extends BasicRecipeMachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int INPUT_SLOTS = 1; public static final int INPUT_LENGTH = 9; public static final int OUTPUT_SLOTS = INPUT_SLOTS + INPUT_LENGTH; public static final int OUTPUT_LENGTH = 2; + public static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.builder() + .add(ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 61) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY) + ) + .add3x3Grid(TransferType.INPUT, 30, 17) + .add(ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(148, 22) + ) + .add(ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(148, 48) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.electricCompressorEnergyConsumptionRate() * 2, + 0 + ) + ); + public ElectricCompressorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.ELECTRIC_COMPRESSOR, pos, state, GCRecipes.COMPRESSING_TYPE, INPUT_SLOTS, INPUT_LENGTH, OUTPUT_SLOTS, OUTPUT_LENGTH); + super(GCBlockEntityTypes.ELECTRIC_COMPRESSOR, pos, state, GCRecipes.COMPRESSING_TYPE, SPEC, INPUT_SLOTS, INPUT_LENGTH, OUTPUT_SLOTS, OUTPUT_LENGTH); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override @@ -96,21 +123,18 @@ public int getProcessingTime(@NotNull RecipeHolder recipe) { return recipe.value().getTime(); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new RecipeMachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new RecipeMachineMenu<>( + GCMenuTypes.ELECTRIC_COMPRESSOR, + syncId, + player, + this + ); } @Override - protected CraftingContainer createCraftingInv() { - return CraftingRecipeTestContainer.create(3, 3, this.itemStorage(), this.inputSlots, this.inputSlotsLen); + protected CraftingInput craftingInv() { + return RecipeHelper.craftingInput(3, 3, this.inputSlots.getSlots()); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricFurnaceBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricFurnaceBlockEntity.java index 20a7d646e..cbaa65f09 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricFurnaceBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/ElectricFurnaceBlockEntity.java @@ -23,40 +23,64 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.BasicRecipeMachineBlockEntity; -import dev.galacticraft.machinelib.api.compat.vanilla.RecipeTestContainer; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.compat.vanilla.RecipeHelper; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.crafting.RecipeHolder; import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.item.crafting.SmeltingRecipe; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -public class ElectricFurnaceBlockEntity extends BasicRecipeMachineBlockEntity { +public class ElectricFurnaceBlockEntity extends BasicRecipeMachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int INPUT_SLOT = 1; public static final int OUTPUT_SLOT = 2; + public static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 61) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.INPUT) + .pos(52, 35), + ItemResourceSlot.builder(TransferType.OUTPUT) + .pos(113, 35) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.electricFurnaceEnergyConsumptionRate() * 2, + 0 + ) + ); + public ElectricFurnaceBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.ELECTRIC_FURNACE, pos, state, RecipeType.SMELTING, INPUT_SLOT, OUTPUT_SLOT); + super(GCBlockEntityTypes.ELECTRIC_FURNACE, pos, state, RecipeType.SMELTING, SPEC, INPUT_SLOT, OUTPUT_SLOT); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override @@ -79,21 +103,18 @@ public int getProcessingTime(@NotNull RecipeHolder recipe) { return recipe.value().getCookingTime(); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new RecipeMachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new RecipeMachineMenu<>( + GCMenuTypes.ELECTRIC_FURNACE, + syncId, + player, + this + ); } @Override - protected Container createCraftingInv() { - return RecipeTestContainer.create(this.itemStorage(), this.inputSlots, this.inputSlotsLen); + protected SingleRecipeInput craftingInv() { + return RecipeHelper.single(this.inputSlots.slot(0)); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/EnergyStorageModuleBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/EnergyStorageModuleBlockEntity.java index 482ad7cd9..675aabdf1 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/EnergyStorageModuleBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/EnergyStorageModuleBlockEntity.java @@ -23,17 +23,24 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.machinelib.api.util.EnergySource; +import dev.galacticraft.mod.Galacticraft; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -42,43 +49,48 @@ public class EnergyStorageModuleBlockEntity extends MachineBlockEntity { public static final int CHARGE_SELF_SLOT = 0; public static final int CHARGE_ITEM_SLOT = 1; - public EnergyStorageModuleBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.ENERGY_STORAGE_MODULE, pos, state); - } + public static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(102, 48) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(102, 24) + .filter(ResourceFilters.CAN_INSERT_ENERGY) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.energyStorageModuleStorageSize(), + Galacticraft.CONFIG.energyStorageModuleStorageSize() / 200 + ) + ); - @Override - public long getEnergyItemExtractionRate() { - return super.getEnergyItemExtractionRate() * 2; - } + private final EnergySource energySource = new EnergySource(this); - @Override - public long getEnergyItemInsertionRate() { - return super.getEnergyItemInsertionRate() * 2; + public EnergyStorageModuleBlockEntity(BlockPos pos, BlockState state) { + super(GCBlockEntityTypes.ENERGY_STORAGE_MODULE, pos, state, SPEC); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SELF_SLOT); - this.drainPowerToStack(CHARGE_ITEM_SLOT); + this.chargeFromSlot(CHARGE_SELF_SLOT); + this.drainPowerToSlot(CHARGE_ITEM_SLOT); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { - this.trySpreadEnergy(level, state); + this.energySource.trySpreadEnergy(level, pos, state); return MachineStatuses.ACTIVE; } @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.ENERGY_STORAGE_MODULE, + syncId, + player, + this + ); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/FuelLoaderBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/FuelLoaderBlockEntity.java index cd0c20416..a32b1cadc 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/FuelLoaderBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/FuelLoaderBlockEntity.java @@ -23,27 +23,38 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.mod.Galacticraft; import dev.galacticraft.mod.api.entity.Dockable; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.GCFluids; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.content.block.special.launchpad.AbstractLaunchPad; import dev.galacticraft.mod.content.block.special.launchpad.LaunchPadBlockEntity; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.screen.FuelLoaderMenu; +import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.Tag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,12 +64,35 @@ public class FuelLoaderBlockEntity extends MachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int FUEL_INPUT_SLOT = 1; public static final int FUEL_TANK = 0; + + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(80, 62) + .filter(ResourceFilters.canExtractFluid(GCFluids.FUEL)) // fixme: fuel tag?, + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + 150 * 2, // fixme + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.INPUT) + .hidden() + .capacity(FluidConstants.BUCKET * 50) + .filter(ResourceFilters.ofResource(GCFluids.FUEL)) // fixme: tag? + ) + ); + private BlockPos connectionPos = BlockPos.ZERO; public Dockable linkedRocket = null; private Direction check = null; public FuelLoaderBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.FUEL_LOADER, pos, state); + super(GCBlockEntityTypes.FUEL_LOADER, pos, state, SPEC); } @NotNull @@ -74,10 +108,10 @@ public BlockPos getConnectionPos() { return GCMachineStatuses.NO_ROCKET; } - FluidResourceSlot slot = this.fluidStorage().getSlot(FUEL_TANK); + FluidResourceSlot slot = this.fluidStorage().slot(FUEL_TANK); try (Transaction transaction = Transaction.openOuter()) { - long insert = this.linkedRocket.getFuelTank().insert(FluidVariant.of(slot.getResource(), slot.getTag()), Math.min(TRANSFER_RATE, slot.getAmount()), transaction); + long insert = this.linkedRocket.getFuelTank().insert(FluidVariant.of(slot.getResource(), slot.getComponents()), Math.min(TRANSFER_RATE, slot.getAmount()), transaction); if (insert > 0) { slot.extract(insert); transaction.commit(); @@ -108,23 +142,24 @@ public void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @Not this.linkedRocket = null; } - this.chargeFromStack(CHARGE_SLOT); - this.takeFluidFromStack(FUEL_INPUT_SLOT, FUEL_TANK, GCFluids.FUEL); + this.chargeFromSlot(CHARGE_SLOT); + this.takeFluidFromSlot(FUEL_INPUT_SLOT, FUEL_TANK, GCFluids.FUEL); } @Override - public void saveAdditional(CompoundTag tag) { + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); + if (this.connectionPos != BlockPos.ZERO) { - tag.putBoolean("has_connection" , true); tag.putLong("connection_pos", this.connectionPos.asLong()); } - super.saveAdditional(tag); } @Override - public void load(CompoundTag tag) { - super.load(tag); - if (tag.getBoolean("has_connection")) { + public void loadAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.loadAdditional(tag, lookup); + + if (tag.contains("connection_pos", Tag.TAG_LONG)) { this.connectionPos = BlockPos.of(tag.getLong("connection_pos")); } else { this.connectionPos = BlockPos.ZERO; @@ -135,9 +170,8 @@ public void updateConnections(Direction direction) { this.check = direction; } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { return new FuelLoaderMenu(syncId, (ServerPlayer) player, this); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenBubbleDistributorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenBubbleDistributorBlockEntity.java index 6460f7e8c..75d869e23 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenBubbleDistributorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenBubbleDistributorBlockEntity.java @@ -24,29 +24,38 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.Galacticraft; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.content.GCEntityTypes; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.content.entity.BubbleEntity; import dev.galacticraft.mod.machine.GCMachineStatuses; +import dev.galacticraft.mod.network.s2c.BubbleSizePayload; +import dev.galacticraft.mod.network.s2c.BubbleUpdatePayload; import dev.galacticraft.mod.screen.OxygenBubbleDistributorMenu; import dev.galacticraft.mod.util.FluidUtil; -import io.netty.buffer.Unpooled; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; @@ -57,6 +66,29 @@ public class OxygenBubbleDistributorBlockEntity extends MachineBlockEntity { public static final int OXYGEN_INPUT_SLOT = 1; // REVIEW: should this be 0 or 1? public static final int OXYGEN_TANK = 0; public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(50); + + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(31, 62) + .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.INPUT) + .pos(31, 8) + .capacity(OxygenBubbleDistributorBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + private boolean bubbleVisible = true; private double size = 0; private byte targetSize = 1; @@ -66,7 +98,7 @@ public class OxygenBubbleDistributorBlockEntity extends MachineBlockEntity { private boolean oxygenUnloaded = true; public OxygenBubbleDistributorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_BUBBLE_DISTRIBUTOR, pos, state); + super(GCBlockEntityTypes.OXYGEN_BUBBLE_DISTRIBUTOR, pos, state, SPEC); } @Override @@ -74,8 +106,8 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ super.tickConstant(world, pos, state, profiler); this.oxygenUnloaded = false; profiler.push("extract_resources"); - this.chargeFromStack(CHARGE_SLOT); - this.takeFluidFromStack(OXYGEN_INPUT_SLOT, OXYGEN_TANK, Gases.OXYGEN); + this.chargeFromSlot(CHARGE_SLOT); + this.takeFluidFromSlot(OXYGEN_INPUT_SLOT, OXYGEN_TANK, Gases.OXYGEN); profiler.pop(); } @@ -98,9 +130,6 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ entity.zo = this.getBlockPos().getZ(); level.addFreshEntity(entity); this.bubbleId = entity.getId(); - for (ServerPlayer player : level.players()) { - player.connection.send(entity.getAddEntityPacket()); - } } else if (!this.bubbleVisible && this.bubbleId != -1) { level.getEntity(bubbleId).discard(); this.bubbleId = -1; @@ -111,7 +140,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ profiler.push("bubbler_distributor_transfer"); long oxygenRequired = Math.max((long) ((4.0 / 3.0) * Math.PI * this.size * this.size * this.size), 1); - FluidResourceSlot slot = this.fluidStorage().getSlot(OXYGEN_TANK); + FluidResourceSlot slot = this.fluidStorage().slot(OXYGEN_TANK); if (slot.canExtract(oxygenRequired)) { slot.extract(oxygenRequired); @@ -176,7 +205,7 @@ private void trySyncSize(@NotNull ServerLevel world, @NotNull BlockPos pos, @Not this.prevSize = this.size; profiler.push("network"); for (ServerPlayer player : world.players()) { - ServerPlayNetworking.send(player, Constant.Packet.BUBBLE_SIZE, new FriendlyByteBuf(new FriendlyByteBuf(Unpooled.buffer()).writeBlockPos(pos).writeDouble(this.size))); + ServerPlayNetworking.send(player, new BubbleSizePayload(pos, this.size)); } profiler.pop(); } @@ -213,27 +242,27 @@ public void setTargetSize(byte targetSize) { } @Override - public void saveAdditional(CompoundTag tag) { - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.saveAdditional(tag, lookup); tag.putByte(Constant.Nbt.MAX_SIZE, this.targetSize); tag.putDouble(Constant.Nbt.SIZE, this.size); tag.putBoolean(Constant.Nbt.VISIBLE, this.bubbleVisible); } @Override - public void load(CompoundTag nbt) { - this.size = nbt.getDouble(Constant.Nbt.SIZE); + public void loadAdditional(CompoundTag tag, HolderLookup.Provider lookup) { + super.loadAdditional(tag, lookup); + this.size = tag.getDouble(Constant.Nbt.SIZE); if (this.size < 0) this.size = 0; - this.targetSize = nbt.getByte(Constant.Nbt.MAX_SIZE); + this.targetSize = tag.getByte(Constant.Nbt.MAX_SIZE); if (this.targetSize < 1) this.targetSize = 1; - this.bubbleVisible = nbt.getBoolean(Constant.Nbt.VISIBLE); - - super.load(nbt); + this.bubbleVisible = tag.getBoolean(Constant.Nbt.VISIBLE); } public double getSize() { return this.size; } + public void setSize(double size) { this.size = size; } @@ -241,25 +270,19 @@ public void setSize(double size) { public boolean isBubbleVisible() { return this.bubbleVisible; } + public void setBubbleVisible(boolean bubbleVisible) { this.bubbleVisible = bubbleVisible; this.level.sendBlockUpdated(this.getBlockPos(), this.getBlockState(), this.getBlockState(), Block.UPDATE_CLIENTS); } - @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) return new OxygenBubbleDistributorMenu(syncId, (ServerPlayer) player, this); - return null; + public @Nullable MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new OxygenBubbleDistributorMenu(syncId, player, this); } @Override - public @NotNull CompoundTag getUpdateTag() { - CompoundTag tag = super.getUpdateTag(); - - tag.putInt(Constant.Nbt.MAX_SIZE, this.targetSize); // REVIEW: should we be sending this along? Because we do save it - tag.putDouble(Constant.Nbt.SIZE, this.size); - tag.putBoolean(Constant.Nbt.VISIBLE, this.bubbleVisible); - return tag; + public @NotNull CustomPacketPayload createUpdatePayload() { + return new BubbleUpdatePayload(this.getBlockPos(), this.targetSize, this.size, this.bubbleVisible); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCollectorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCollectorBlockEntity.java index 758210bed..2cd71ce9a 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCollectorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCollectorBlockEntity.java @@ -24,23 +24,30 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyConfig; -import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; +import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.machinelib.api.util.FluidSource; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; import dev.galacticraft.mod.screen.OxygenCollectorMenu; import dev.galacticraft.mod.util.FluidUtil; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.CropBlock; import net.minecraft.world.level.block.LeavesBlock; @@ -54,18 +61,38 @@ public class OxygenCollectorBlockEntity extends MachineBlockEntity { public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(50); + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate() * 2, + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.OUTPUT) + .pos(31, 8) + .capacity(OxygenCollectorBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + + private final FluidSource fluidSource = new FluidSource(this); public int collectionAmount = 0; private boolean oxygenWorld = false; public OxygenCollectorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_COLLECTOR, pos, state); + super(GCBlockEntityTypes.OXYGEN_COLLECTOR, pos, state, SPEC); } @Override public void setLevel(Level world) { super.setLevel(world); - CelestialBody> body = CelestialBody.getByDimension(world).orElse(null); - this.oxygenWorld = body == null || body.atmosphere().breathable(); + Holder> body = world.galacticraft$getCelestialBody(); + this.oxygenWorld = body == null || body.value().atmosphere().breathable(); } private int collectOxygen(@NotNull ServerLevel world, @NotNull BlockPos pos) { @@ -102,15 +129,15 @@ private int collectOxygen(@NotNull ServerLevel world, @NotNull BlockPos pos) { @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { profiler.push("transfer"); - this.trySpreadFluids(level, state); + this.fluidSource.trySpreadFluids(level, pos, state); - if (this.fluidStorage().getSlot(OXYGEN_TANK).isFull()) return GCMachineStatuses.OXYGEN_TANK_FULL; + if (this.fluidStorage().slot(OXYGEN_TANK).isFull()) return GCMachineStatuses.OXYGEN_TANK_FULL; profiler.popPush("transaction"); try { if (this.energyStorage().canExtract(Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate())) { @@ -119,7 +146,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ profiler.pop(); if (this.collectionAmount > 0) { this.energyStorage().extract(Galacticraft.CONFIG.oxygenCollectorEnergyConsumptionRate()); - this.fluidStorage().getSlot(OXYGEN_TANK).insert(Gases.OXYGEN, FluidUtil.bucketsToDroplets(this.collectionAmount)); + this.fluidStorage().slot(OXYGEN_TANK).insert(Gases.OXYGEN, FluidUtil.bucketsToDroplets(this.collectionAmount)); return GCMachineStatuses.COLLECTING; } else { return GCMachineStatuses.NOT_ENOUGH_OXYGEN; @@ -135,9 +162,8 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) return new OxygenCollectorMenu(syncId, (ServerPlayer) player, this); - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new OxygenCollectorMenu(syncId, player, this); } public int getCollectionAmount() { diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCompressorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCompressorBlockEntity.java index 7f9cc5eb2..7f67bb783 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCompressorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenCompressorBlockEntity.java @@ -24,13 +24,21 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; +import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.util.FluidUtil; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; @@ -38,11 +46,9 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,22 +59,44 @@ public class OxygenCompressorBlockEntity extends MachineBlockEntity { public static final int OXYGEN_TANK = 0; public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(50); + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(80, 27) + .filter(ResourceFilters.canInsertFluid(Gases.OXYGEN)) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.INPUT) + .pos(31, 8) + .capacity(OxygenCompressorBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + public OxygenCompressorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_COMPRESSOR, pos, state); + super(GCBlockEntityTypes.OXYGEN_COMPRESSOR, pos, state, SPEC); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { - FluidResourceSlot oxygenStorage = this.fluidStorage().getSlot(OXYGEN_TANK); + FluidResourceSlot oxygenStorage = this.fluidStorage().slot(OXYGEN_TANK); if (oxygenStorage.isEmpty()) return GCMachineStatuses.NOT_ENOUGH_OXYGEN; profiler.push("find_storage"); - Storage tank = this.itemStorage().getSlot(OXYGEN_OUTPUT_SLOT).find(FluidStorage.ITEM); + Storage tank = this.itemStorage().slot(OXYGEN_OUTPUT_SLOT).find(FluidStorage.ITEM); profiler.pop(); if (tank == null) return GCMachineStatuses.MISSING_OXYGEN_TANK; long space; @@ -100,14 +128,12 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.OXYGEN_COMPRESSOR, + syncId, + player, + this + ); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenDecompressorBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenDecompressorBlockEntity.java index 1b7a13eda..a843e3aac 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenDecompressorBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenDecompressorBlockEntity.java @@ -24,13 +24,23 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.machinelib.api.util.FluidSource; import dev.galacticraft.machinelib.api.util.StorageHelper; import dev.galacticraft.mod.Galacticraft; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; +import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.util.FluidUtil; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; @@ -38,11 +48,9 @@ import net.fabricmc.fabric.api.transfer.v1.storage.StorageUtil; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -53,21 +61,45 @@ public class OxygenDecompressorBlockEntity extends MachineBlockEntity { public static final int OXYGEN_TANK = 0; public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(50); + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(80, 27) + .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.oxygenDecompressorEnergyConsumptionRate() * 2, + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.OUTPUT) + .pos(31, 8) + .capacity(OxygenDecompressorBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + + private final FluidSource fluidSource = new FluidSource(this); + public OxygenDecompressorBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_DECOMPRESSOR, pos, state); + super(GCBlockEntityTypes.OXYGEN_DECOMPRESSOR, pos, state, SPEC); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { profiler.push("transfer"); - this.trySpreadFluids(level, state); - Storage tank = this.itemStorage().getSlot(OXYGEN_INPUT_SLOT).find(FluidStorage.ITEM); + this.fluidSource.trySpreadFluids(level, pos, state); + Storage tank = this.itemStorage().slot(OXYGEN_INPUT_SLOT).find(FluidStorage.ITEM); profiler.pop(); if (tank == null) return GCMachineStatuses.MISSING_OXYGEN_TANK; if (StorageUtil.simulateExtract(tank, FluidVariant.of(Gases.OXYGEN), Long.MAX_VALUE, null) == 0) return GCMachineStatuses.EMPTY_OXYGEN_TANK; @@ -75,7 +107,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ try { if (this.energyStorage().extractExact(Galacticraft.CONFIG.oxygenDecompressorEnergyConsumptionRate())) { - StorageHelper.move(FluidVariant.of(Gases.OXYGEN), tank, this.fluidStorage().getSlot(OXYGEN_TANK), Long.MAX_VALUE, null); + StorageHelper.move(FluidVariant.of(Gases.OXYGEN), tank, this.fluidStorage().slot(OXYGEN_TANK), Long.MAX_VALUE, null); return GCMachineStatuses.DECOMPRESSING; } else { return MachineStatuses.NOT_ENOUGH_ENERGY; @@ -87,14 +119,12 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.OXYGEN_DECOMPRESSOR, + syncId, + player, + this + ); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenSealerBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenSealerBlockEntity.java index b33f524cd..b0b219e45 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenSealerBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenSealerBlockEntity.java @@ -25,24 +25,32 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.Galacticraft; import dev.galacticraft.mod.accessor.ServerLevelAccessor; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; +import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.util.FluidUtil; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Holder; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Tuple; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; @@ -63,6 +71,28 @@ public class OxygenSealerBlockEntity extends MachineBlockEntity { public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(50); public static final int SEAL_CHECK_TIME = 20; + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 62) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) // todo: drop for decompressor? + .pos(31, 62) + .filter(ResourceFilters.canExtractFluid(Gases.OXYGEN)) + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate() * 2, // fixme + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.INPUT) + .pos(30, 8) + .capacity(OxygenSealerBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + private final Set breathablePositions = new HashSet<>(); private final Set watching = new HashSet<>(); private int sealCheckTime; @@ -73,14 +103,15 @@ public class OxygenSealerBlockEntity extends MachineBlockEntity { private boolean oxygenUnloaded = true; public OxygenSealerBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_SEALER, pos, state); + super(GCBlockEntityTypes.OXYGEN_SEALER, pos, state, SPEC); } @Override public void setLevel(Level world) { super.setLevel(world); this.sealCheckTime = SEAL_CHECK_TIME; - this.oxygenWorld = CelestialBody.getByDimension(world).map(body -> body.atmosphere().breathable()).orElse(true); + Holder> holder = world.galacticraft$getCelestialBody(); + this.oxygenWorld = holder == null || holder.value().atmosphere().breathable(); if (!world.isClientSide) ((ServerLevelAccessor) world).addSealer(this); } @@ -89,8 +120,8 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ super.tickConstant(world, pos, state, profiler); this.oxygenUnloaded = false; profiler.push("extract_resources"); - this.chargeFromStack(CHARGE_SLOT); - this.takeFluidFromStack(OXYGEN_INPUT_SLOT, OXYGEN_TANK, Gases.OXYGEN); + this.chargeFromSlot(CHARGE_SLOT); + this.takeFluidFromSlot(OXYGEN_INPUT_SLOT, OXYGEN_TANK, Gases.OXYGEN); profiler.pop(); } @@ -102,7 +133,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ // } if (this.energyStorage().canExtract(Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate())) { - if (!this.fluidStorage().getSlot(OXYGEN_TANK).isEmpty()) { + if (!this.fluidStorage().slot(OXYGEN_TANK).isEmpty()) { if (this.sealCheckTime > 0) this.sealCheckTime--; if (this.updateQueued && this.sealCheckTime == 0) { profiler.push("check_seal"); @@ -169,7 +200,7 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ profiler.push("extract"); this.energyStorage().extract(Galacticraft.CONFIG.oxygenCompressorEnergyConsumptionRate()); - this.fluidStorage().getSlot(OXYGEN_TANK).extract(Gases.OXYGEN, breathablePositions.size() * 2L); + this.fluidStorage().slot(OXYGEN_TANK).extract(Gases.OXYGEN, breathablePositions.size() * 2L); profiler.pop(); return GCMachineStatuses.SEALED; } else { @@ -221,15 +252,13 @@ public void setRemoved() { @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.OXYGEN_SEALER, + syncId, + player, + this + ); } public void enqueueUpdate(BlockPos pos, VoxelShape voxelShape2) { diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenStorageModuleBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenStorageModuleBlockEntity.java index edc6d5f66..ef496579b 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenStorageModuleBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/OxygenStorageModuleBlockEntity.java @@ -22,19 +22,25 @@ package dev.galacticraft.mod.content.block.entity.machine; +import dev.galacticraft.api.gas.Gases; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; +import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; +import dev.galacticraft.machinelib.api.util.FluidSource; +import dev.galacticraft.mod.content.GCBlockEntityTypes; +import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.util.FluidUtil; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -43,26 +49,34 @@ public class OxygenStorageModuleBlockEntity extends MachineBlockEntity { public static final int OXYGEN_TANK = 0; public static final long MAX_OXYGEN = FluidUtil.bucketsToDroplets(100); + public static final StorageSpec SPEC = StorageSpec.of( + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.STORAGE) + .hidden() + .capacity(OxygenStorageModuleBlockEntity.MAX_OXYGEN) + .filter(ResourceFilters.ofResource(Gases.OXYGEN)) + ) + ); + private final FluidSource source = new FluidSource(this); + public OxygenStorageModuleBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.OXYGEN_STORAGE_MODULE, pos, state); + super(GCBlockEntityTypes.OXYGEN_STORAGE_MODULE, pos, state, SPEC); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { - this.trySpreadFluids(level, state); + this.source.trySpreadFluids(level, pos, state); return MachineStatuses.ACTIVE; } @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.OXYGEN_STORAGE_MODULE, + syncId, + player, + this + ); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/RefineryBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/RefineryBlockEntity.java index 988924e3a..c66a0a631 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/RefineryBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/RefineryBlockEntity.java @@ -23,29 +23,35 @@ package dev.galacticraft.mod.content.block.entity.machine; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; +import dev.galacticraft.machinelib.api.filter.ResourceFilters; import dev.galacticraft.machinelib.api.machine.MachineStatus; import dev.galacticraft.machinelib.api.machine.MachineStatuses; import dev.galacticraft.machinelib.api.menu.MachineMenu; +import dev.galacticraft.machinelib.api.storage.MachineEnergyStorage; +import dev.galacticraft.machinelib.api.storage.MachineFluidStorage; +import dev.galacticraft.machinelib.api.storage.MachineItemStorage; +import dev.galacticraft.machinelib.api.storage.StorageSpec; import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; +import dev.galacticraft.machinelib.api.transfer.TransferType; import dev.galacticraft.mod.Galacticraft; +import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.content.GCFluids; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.machine.GCMachineStatuses; +import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.util.FluidUtil; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.profiling.ProfilerFiller; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.VisibleForTesting; -public class RefineryBlockEntity extends MachineBlockEntity { //fixme +public class RefineryBlockEntity extends MachineBlockEntity { public static final int CHARGE_SLOT = 0; public static final int OIL_INPUT_SLOT = 1; public static final int FUEL_OUTPUT_SLOT = 2; @@ -55,24 +61,53 @@ public class RefineryBlockEntity extends MachineBlockEntity { //fixme @VisibleForTesting public static final long MAX_CAPACITY = FluidUtil.bucketsToDroplets(8); + private static final StorageSpec SPEC = StorageSpec.of( + MachineItemStorage.spec( + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(8, 7) + .filter(ResourceFilters.CAN_EXTRACT_ENERGY), + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(123, 7) + .filter(ResourceFilters.canExtractFluid(GCFluids.CRUDE_OIL)), // fixme: tag?, + ItemResourceSlot.builder(TransferType.TRANSFER) + .pos(153, 7) + .filter(ResourceFilters.canInsertFluid(GCFluids.FUEL)) // fixme: tag? + ), + MachineEnergyStorage.spec( + Galacticraft.CONFIG.machineEnergyStorageSize(), + Galacticraft.CONFIG.refineryEnergyConsumptionRate() * 2, + 0 + ), + MachineFluidStorage.spec( + FluidResourceSlot.builder(TransferType.INPUT) + .pos(123, 29) + .capacity(RefineryBlockEntity.MAX_CAPACITY) + .filter(ResourceFilters.ofResource(GCFluids.CRUDE_OIL)), + FluidResourceSlot.builder(TransferType.OUTPUT) + .pos(153, 29) + .capacity(RefineryBlockEntity.MAX_CAPACITY) + .filter(ResourceFilters.ofResource(GCFluids.FUEL)) + ) + ); + public RefineryBlockEntity(BlockPos pos, BlockState state) { - super(GCMachineTypes.REFINERY, pos, state); + super(GCBlockEntityTypes.REFINERY, pos, state, SPEC); } @Override protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { super.tickConstant(world, pos, state, profiler); - this.chargeFromStack(CHARGE_SLOT); + this.chargeFromSlot(CHARGE_SLOT); - this.takeFluidFromStack(OIL_INPUT_SLOT, OIL_TANK, GCFluids.CRUDE_OIL); - this.insertFluidToStack(FUEL_OUTPUT_SLOT, FUEL_TANK, GCFluids.FUEL); + this.takeFluidFromSlot(OIL_INPUT_SLOT, OIL_TANK, GCFluids.CRUDE_OIL); + this.drainFluidToSlot(FUEL_OUTPUT_SLOT, FUEL_TANK); } @Override protected @NotNull MachineStatus tick(@NotNull ServerLevel level, @NotNull BlockPos pos, @NotNull BlockState state, @NotNull ProfilerFiller profiler) { - FluidResourceSlot oilTank = this.fluidStorage().getSlot(OIL_TANK); + FluidResourceSlot oilTank = this.fluidStorage().slot(OIL_TANK); if (oilTank.isEmpty()) return GCMachineStatuses.MISSING_OIL; - FluidResourceSlot fuelTank = this.fluidStorage().getSlot(FUEL_TANK); + FluidResourceSlot fuelTank = this.fluidStorage().slot(FUEL_TANK); if (fuelTank.isFull()) return GCMachineStatuses.FUEL_TANK_FULL; profiler.push("transaction"); try { @@ -93,14 +128,12 @@ protected void tickConstant(@NotNull ServerLevel world, @NotNull BlockPos pos, @ @Nullable @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inv, Player player) { - if (this.getSecurity().hasAccess(player)) { - return new MachineMenu<>( - syncId, - (ServerPlayer) player, - this - ); - } - return null; + public MachineMenu createMenu(int syncId, Inventory inv, Player player) { + return new MachineMenu<>( + GCMenuTypes.REFINERY, + syncId, + player, + this + ); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/FluidPipeWalkwayBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/FluidPipeWalkwayBlockEntity.java index a376e217a..1e95850e6 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/FluidPipeWalkwayBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/FluidPipeWalkwayBlockEntity.java @@ -29,6 +29,7 @@ import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; @@ -41,14 +42,14 @@ public FluidPipeWalkwayBlockEntity(BlockPos pos, BlockState state) { } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writeWalkwayNbt(nbt); } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readWalkwayNbt(nbt); } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/GlassFluidPipeBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/GlassFluidPipeBlockEntity.java index 88a674dcc..9b6cdfd57 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/GlassFluidPipeBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/GlassFluidPipeBlockEntity.java @@ -29,6 +29,7 @@ import dev.galacticraft.mod.content.block.special.fluidpipe.PipeBlockEntity; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.state.BlockState; @@ -40,14 +41,14 @@ public GlassFluidPipeBlockEntity(BlockPos pos, BlockState state) { } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readPullNbt(nbt); } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writePullNbt(nbt); } diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireBlockEntity.java index 69b8f35eb..c465ac867 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireBlockEntity.java @@ -29,6 +29,7 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.ClientGamePacketListener; @@ -122,14 +123,14 @@ public void updateConnection(BlockState state, BlockPos pos, BlockPos neighborPo } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writeConnectionNbt(nbt); } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readConnectionNbt(nbt); if (this.level != null && this.level.isClientSide) { @@ -138,8 +139,8 @@ public void load(CompoundTag nbt) { } @Override - public CompoundTag getUpdateTag() { - return this.saveWithoutMetadata(); + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + return this.saveWithoutMetadata(registryLookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireWalkwayBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireWalkwayBlockEntity.java index 789bea654..c7a0d9ce6 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireWalkwayBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/networked/WireWalkwayBlockEntity.java @@ -26,6 +26,7 @@ import dev.galacticraft.mod.content.GCBlockEntityTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.NotNull; @@ -38,14 +39,14 @@ public WireWalkwayBlockEntity(BlockPos pos, BlockState state) { } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writeWalkwayNbt(nbt); } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readWalkwayNbt(nbt); } diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/FallenMeteorBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/FallenMeteorBlock.java index adfb414d8..80903715b 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/FallenMeteorBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/FallenMeteorBlock.java @@ -26,6 +26,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.core.registries.Registries; import net.minecraft.server.level.ServerLevel; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -152,7 +153,7 @@ public void entityInside(BlockState state, Level world, BlockPos pos, Entity ent @Override public void spawnAfterBreak(BlockState blockState, ServerLevel serverLevel, BlockPos blockPos, ItemStack itemStack, boolean bl) { - if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, itemStack) == 0) { + if (bl && EnchantmentHelper.getItemEnchantmentLevel(serverLevel.registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.SILK_TOUCH), itemStack) == 0) { var i = Mth.nextInt(serverLevel.random, 3, 7); if (i > 0) { this.popExperience(serverLevel, blockPos, i); diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneLanternBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneLanternBlock.java index fa022e6b6..7c925cfa3 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneLanternBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneLanternBlock.java @@ -26,9 +26,9 @@ import dev.galacticraft.mod.util.Translations; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.block.LanternBlock; import java.util.List; @@ -39,11 +39,13 @@ public GlowstoneLanternBlock(Properties settings) { } @Override - public void appendHoverText(ItemStack stack, BlockGetter blockView, List list, TooltipFlag tooltipContext) { + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag options) { + super.appendHoverText(stack, context, tooltip, options); + if (Screen.hasShiftDown()) { - list.add(Component.translatable(Translations.Tooltip.GLOWSTONE_LANTERN).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.GLOWSTONE_LANTERN).setStyle(Constant.Text.Color.GRAY_STYLE)); } else { - list.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); } } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneTorchBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneTorchBlock.java index ac58948d8..92854a204 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneTorchBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneTorchBlock.java @@ -29,9 +29,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.util.RandomSource; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.TorchBlock; import net.minecraft.world.level.block.state.BlockState; @@ -50,11 +50,13 @@ public void animateTick(BlockState blockState, Level world, BlockPos blockPos, R } @Override - public void appendHoverText(ItemStack stack, BlockGetter blockView, List list, TooltipFlag tooltipContext) { + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag options) { + super.appendHoverText(stack, context, tooltip, options); + if (Screen.hasShiftDown()) { - list.add(Component.translatable(Translations.Tooltip.GLOWSTONE_TORCH).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.GLOWSTONE_TORCH).setStyle(Constant.Text.Color.GRAY_STYLE)); } else { - list.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneWallTorchBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneWallTorchBlock.java index 74192f41e..e7c92c50f 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneWallTorchBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/GlowstoneWallTorchBlock.java @@ -29,9 +29,9 @@ import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.util.RandomSource; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.WallTorchBlock; import net.minecraft.world.level.block.state.BlockState; @@ -49,11 +49,12 @@ public void animateTick(BlockState blockState, Level world, BlockPos blockPos, R } @Override - public void appendHoverText(ItemStack stack, BlockGetter blockView, List list, TooltipFlag tooltipContext) { + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag options) { + super.appendHoverText(stack, context, tooltip, options); if (Screen.hasShiftDown()) { - list.add(Component.translatable(Translations.Tooltip.GLOWSTONE_TORCH).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.GLOWSTONE_TORCH).setStyle(Constant.Text.Color.GRAY_STYLE)); } else { - list.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); } } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/MoonBerryBushBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/MoonBerryBushBlock.java deleted file mode 100644 index 3f8683e54..000000000 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/MoonBerryBushBlock.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.content.block.environment; - -import com.mojang.serialization.MapCodec; -import dev.galacticraft.mod.content.GCBlocks; -import dev.galacticraft.mod.content.item.GCItems; -import net.minecraft.core.BlockPos; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.util.RandomSource; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.BushBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.block.state.properties.IntegerProperty; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.Vec3; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; -import org.joml.Vector3f; - -public class MoonBerryBushBlock extends BushBlock { - public static final MapCodec CODEC = simpleCodec(MoonBerryBushBlock::new); - public static final IntegerProperty AGE = BlockStateProperties.AGE_3; - private static final VoxelShape SMALL_SHAPE = Block.box(3.0D, 0.0D, 3.0D, 13.0D, 8.0D, 13.0D); - private static final VoxelShape LARGE_SHAPE = Block.box(1.0D, 0.0D, 1.0D, 15.0D, 16.0D, 15.0D); - - public MoonBerryBushBlock(Properties settings) { - super(settings); - this.registerDefaultState(this.getStateDefinition().any().setValue(AGE, 0)); - } - - @Override - protected MapCodec codec() { - return CODEC; - } - - @Override - public ItemStack getCloneItemStack(LevelReader levelReader, BlockPos pos, BlockState state) { - return new ItemStack(GCItems.MOON_BERRIES); - } - - @Override - public VoxelShape getShape(BlockState blockState, BlockGetter blockView, BlockPos blockPos, CollisionContext context) { - if (blockState.getValue(AGE) == 0) { - return SMALL_SHAPE; - } else { - return blockState.getValue(AGE) < 3 ? LARGE_SHAPE : super.getShape(blockState, blockView, blockPos, context); - } - } - - @Override - public void tick(BlockState blockState, ServerLevel world, BlockPos blockPos, RandomSource random) { - super.tick(blockState, world, blockPos, random); - int age = blockState.getValue(AGE); - if (age < 3 && random.nextInt(20) == 0) { - world.setBlock(blockPos, blockState.setValue(AGE, age + 1), 2); - } - } - - @Override - public void entityInside(BlockState blockState, Level world, BlockPos blockPos, Entity entity) { - entity.makeStuckInBlock(blockState, new Vec3(0.800000011920929D, 0.75D, 0.800000011920929D)); - } - - @Override - public InteractionResult use(BlockState blockState, Level world, BlockPos blockPos, Player player, InteractionHand hand, BlockHitResult blockHitResult) { - int age = blockState.getValue(AGE); - boolean mature = age == 3; - - if (mature) { - int amount = 1 + world.random.nextInt(3); - popResource(world, blockPos, new ItemStack(GCItems.MOON_BERRIES, amount)); - world.playSound(null, blockPos, SoundEvents.SWEET_BERRY_BUSH_PICK_BERRIES, SoundSource.BLOCKS, 1.0F, 0.8F + world.random.nextFloat() * 0.4F); - world.setBlock(blockPos, blockState.setValue(AGE, 1), 2); - return InteractionResult.SUCCESS; - } else { - return super.use(blockState, world, blockPos, player, hand, blockHitResult); - } - } - - @Override - public void createBlockStateDefinition(StateDefinition.Builder stateBuilder) { - stateBuilder.add(AGE); - } - - @Override - public boolean mayPlaceOn(BlockState blockState, BlockGetter blockView, BlockPos blockPos) { - return blockState.getBlock() == GCBlocks.MOON_DIRT; - } - - @Override - public void animateTick(BlockState blockState, Level world, BlockPos blockPos, RandomSource random) { - if (blockState.getValue(AGE) == 3) { - - double x = blockPos.getX() + 0.5D + (random.nextFloat() - random.nextFloat()); - double y = blockPos.getY() + random.nextFloat(); - double z = blockPos.getZ() + 0.5D + (random.nextFloat() - random.nextFloat()); - int times = random.nextInt(4); - - for (int i = 0; i < times; i++) { - world.addParticle(new DustParticleOptions(new Vector3f(0.5f, 0.5f, 1.0f), 0.6f), x, y, z, 0.0D, 0.0D, 0.0D); - } - } - } -} diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java index b9a42e113..f78efa7a1 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/OlivineClusterBlock.java @@ -1,3 +1,25 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + package dev.galacticraft.mod.content.block.environment; import net.minecraft.world.level.block.AmethystClusterBlock; diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitLanternBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitLanternBlock.java index b21cbf21f..22d94fdb7 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitLanternBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitLanternBlock.java @@ -29,8 +29,10 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.tags.ItemTags; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.LanternBlock; @@ -44,21 +46,22 @@ public UnlitLanternBlock(Properties properties) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + var itemStack = player.getItemInHand(hand); if (itemStack.is(ItemTags.CREEPER_IGNITERS)) { - level.playSound(null, blockPos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); - level.setBlockAndUpdate(blockPos, Blocks.LANTERN.defaultBlockState().setValue(HANGING, blockState.getValue(HANGING)).setValue(WATERLOGGED, blockState.getValue(WATERLOGGED))); - level.gameEvent(player, GameEvent.BLOCK_CHANGE, blockPos); + level.playSound(null, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); + level.setBlockAndUpdate(pos, Blocks.LANTERN.defaultBlockState().setValue(HANGING, state.getValue(HANGING)).setValue(WATERLOGGED, state.getValue(WATERLOGGED))); + level.gameEvent(player, GameEvent.BLOCK_CHANGE, pos); if (player instanceof ServerPlayer serverPlayer) { - CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, blockPos, itemStack); - itemStack.hurtAndBreak(1, player, playerx -> playerx.broadcastBreakEvent(interactionHand)); + CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, pos, itemStack); + itemStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); } - return InteractionResult.sidedSuccess(level.isClientSide()); + return ItemInteractionResult.SUCCESS; } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + + return super.useItemOn(stack, state, level, pos, player, hand, hit); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitTorchBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitTorchBlock.java index 836b238b9..a4a128d5e 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitTorchBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitTorchBlock.java @@ -31,8 +31,10 @@ import net.minecraft.tags.ItemTags; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.TorchBlock; @@ -48,22 +50,23 @@ public UnlitTorchBlock(Properties properties) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + var itemStack = player.getItemInHand(hand); if (itemStack.is(ItemTags.CREEPER_IGNITERS)) { - level.playSound(null, blockPos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); - level.setBlockAndUpdate(blockPos, Blocks.TORCH.defaultBlockState()); - level.gameEvent(player, GameEvent.BLOCK_CHANGE, blockPos); + level.playSound(null, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); + level.setBlockAndUpdate(pos, Blocks.TORCH.defaultBlockState()); + level.gameEvent(player, GameEvent.BLOCK_CHANGE, pos); if (player instanceof ServerPlayer serverPlayer) { - CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, blockPos, itemStack); - itemStack.hurtAndBreak(1, player, playerx -> playerx.broadcastBreakEvent(interactionHand)); + CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, pos, itemStack); + itemStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); } - return InteractionResult.sidedSuccess(level.isClientSide()); + return ItemInteractionResult.SUCCESS; } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + + return super.useItemOn(stack, state, level, pos, player, hand, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitWallTorchBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitWallTorchBlock.java index 04be7cb84..14b214785 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitWallTorchBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/UnlitWallTorchBlock.java @@ -31,8 +31,10 @@ import net.minecraft.tags.ItemTags; import net.minecraft.util.RandomSource; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.WallTorchBlock; @@ -48,22 +50,23 @@ public UnlitWallTorchBlock(Properties properties) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + var itemStack = player.getItemInHand(hand); if (itemStack.is(ItemTags.CREEPER_IGNITERS)) { - level.playSound(null, blockPos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); - level.setBlockAndUpdate(blockPos, Blocks.WALL_TORCH.defaultBlockState().setValue(WallTorchBlock.FACING, blockState.getValue(WallTorchBlock.FACING))); - level.gameEvent(player, GameEvent.BLOCK_CHANGE, blockPos); + level.playSound(null, pos, SoundEvents.FLINTANDSTEEL_USE, SoundSource.BLOCKS, 1.0F, level.getRandom().nextFloat() * 0.4F + 0.8F); + level.setBlockAndUpdate(pos, Blocks.WALL_TORCH.defaultBlockState().setValue(WallTorchBlock.FACING, state.getValue(WallTorchBlock.FACING))); + level.gameEvent(player, GameEvent.BLOCK_CHANGE, pos); if (player instanceof ServerPlayer serverPlayer) { - CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, blockPos, itemStack); - itemStack.hurtAndBreak(1, player, playerx -> playerx.broadcastBreakEvent(interactionHand)); + CriteriaTriggers.PLACED_BLOCK.trigger(serverPlayer, pos, itemStack); + itemStack.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); } - return InteractionResult.sidedSuccess(level.isClientSide()); + return ItemInteractionResult.SUCCESS; } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + + return super.useItemOn(stack, state, level, pos, player, hand, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/environment/VolcanicRockBlock.java b/src/main/java/dev/galacticraft/mod/content/block/environment/VolcanicRockBlock.java index 21cf26340..086bad20c 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/environment/VolcanicRockBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/environment/VolcanicRockBlock.java @@ -22,10 +22,8 @@ package dev.galacticraft.mod.content.block.environment; -import net.minecraft.advancements.critereon.EnchantmentPredicate; -import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.advancements.critereon.MinMaxBounds; import net.minecraft.core.BlockPos; +import net.minecraft.core.registries.Registries; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.Enchantments; @@ -43,25 +41,23 @@ import java.util.List; public class VolcanicRockBlock extends Block { - private static final ItemPredicate HAS_SILK_TOUCH = ItemPredicate.Builder.item().hasEnchantment(new EnchantmentPredicate(Enchantments.SILK_TOUCH, MinMaxBounds.Ints.atLeast(1))).build(); - public VolcanicRockBlock(Properties settings) { super(settings); } @Override - public void playerDestroy(Level world, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { - super.playerDestroy(world, player, pos, state, blockEntity, stack); - if (!HAS_SILK_TOUCH.matches(stack)) { - world.setBlockAndUpdate(pos, Blocks.LAVA.defaultBlockState()); + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack stack) { + super.playerDestroy(level, player, pos, state, blockEntity, stack); + if (stack.getEnchantments().getLevel(level.registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.SILK_TOUCH)) < 1) { + level.setBlockAndUpdate(pos, Blocks.LAVA.defaultBlockState()); } } @Override public List getDrops(BlockState state, LootParams.@NotNull Builder builder) { - ItemStack itemStack = builder.getParameter(LootContextParams.TOOL); + ItemStack itemStack = builder.getOptionalParameter(LootContextParams.TOOL); if (itemStack != null) { - if (HAS_SILK_TOUCH.matches(itemStack)) { + if (itemStack.getEnchantments().getLevel(builder.getLevel().registryAccess().registryOrThrow(Registries.ENCHANTMENT).getHolderOrThrow(Enchantments.SILK_TOUCH)) >= 1) { return super.getDrops(state, builder); } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/CoalGeneratorBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/CoalGeneratorBlock.java index 0e9d32f84..e8ace8a1c 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/CoalGeneratorBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/CoalGeneratorBlock.java @@ -22,8 +22,9 @@ package dev.galacticraft.mod.content.block.machine; +import com.mojang.serialization.MapCodec; import dev.galacticraft.machinelib.api.block.MachineBlock; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.mod.content.block.entity.machine.CoalGeneratorBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; @@ -32,12 +33,26 @@ import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import org.jetbrains.annotations.NotNull; + +public class CoalGeneratorBlock extends MachineBlock { + private static final MapCodec CODEC = simpleCodec(CoalGeneratorBlock::new); -public class CoalGeneratorBlock extends MachineBlock { public CoalGeneratorBlock(Properties settings) { - super(settings, Constant.id(Constant.Block.COAL_GENERATOR)); + super(settings); + } + + @Override + protected @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @NotNull MachineBlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CoalGeneratorBlockEntity(pos, state); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/FuelLoaderBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/FuelLoaderBlock.java index a424e48fc..164de437e 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/FuelLoaderBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/FuelLoaderBlock.java @@ -22,27 +22,41 @@ package dev.galacticraft.mod.content.block.machine; +import com.mojang.serialization.MapCodec; import dev.galacticraft.machinelib.api.block.MachineBlock; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.mod.content.block.entity.machine.FuelLoaderBlockEntity; import dev.galacticraft.mod.content.block.special.launchpad.AbstractLaunchPad; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; +import org.jetbrains.annotations.NotNull; -public class FuelLoaderBlock extends MachineBlock { +public class FuelLoaderBlock extends MachineBlock { public static final BooleanProperty CONNECTED = BooleanProperty.create("connected"); + private static final MapCodec CODEC = simpleCodec(FuelLoaderBlock::new); public FuelLoaderBlock(Properties settings) { - super(settings, Constant.id(Constant.Block.FUEL_LOADER)); + super(settings); registerDefaultState(getStateDefinition().any().setValue(CONNECTED, false)); } + @Override + protected @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @NotNull MachineBlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new FuelLoaderBlockEntity(pos, state); + } + @Override public void createBlockStateDefinition(StateDefinition.Builder stateBuilder) { super.createBlockStateDefinition(stateBuilder); diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/OxygenCollectorBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/OxygenCollectorBlock.java index bee408e5c..414077fa9 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/OxygenCollectorBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/OxygenCollectorBlock.java @@ -22,19 +22,35 @@ package dev.galacticraft.mod.content.block.machine; +import com.mojang.serialization.MapCodec; import dev.galacticraft.machinelib.api.block.MachineBlock; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.mod.content.block.entity.machine.OxygenCollectorBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.DustParticleOptions; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.joml.Vector3f; -public class OxygenCollectorBlock extends MachineBlock { +public class OxygenCollectorBlock extends MachineBlock { + private static final MapCodec CODEC = simpleCodec(OxygenCollectorBlock::new); + public OxygenCollectorBlock(Properties settings) { - super(settings, Constant.id(Constant.Block.OXYGEN_COLLECTOR)); + super(settings); + } + + @Override + protected @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @Nullable MachineBlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new OxygenCollectorBlockEntity(pos, state); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/RefineryBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/RefineryBlock.java index 285822987..0cee53e5d 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/RefineryBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/RefineryBlock.java @@ -22,18 +22,33 @@ package dev.galacticraft.mod.content.block.machine; +import com.mojang.serialization.MapCodec; import dev.galacticraft.machinelib.api.block.MachineBlock; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.mod.content.block.entity.machine.RefineryBlockEntity; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.util.RandomSource; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.NotNull; + +public class RefineryBlock extends MachineBlock { + private static final MapCodec CODEC = simpleCodec(RefineryBlock::new); -public class RefineryBlock extends MachineBlock { public RefineryBlock(Properties settings) { - super(settings, Constant.id(Constant.Block.REFINERY)); + super(settings); + } + + @Override + protected @NotNull MapCodec codec() { + return CODEC; + } + + @Override + public @NotNull MachineBlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new RefineryBlockEntity(pos, state); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java index 162350cca..a9b8094bb 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java @@ -22,31 +22,30 @@ package dev.galacticraft.mod.content.block.machine; -import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.mod.api.block.MultiBlockMachineBlock; import dev.galacticraft.mod.api.block.MultiBlockPart; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Unmodifiable; import java.util.List; -public class SimpleMultiBlockMachineBlock extends MultiBlockMachineBlock { +public class SimpleMultiBlockMachineBlock extends MultiBlockMachineBlock { private final List parts; private final BlockState partState; /** * Note: BlockEntity of the partBlock must implement {@link MultiBlockPart} */ - public static SimpleMultiBlockMachineBlock create(Properties properties, ResourceLocation type, List parts, P partBlock) { - return new SimpleMultiBlockMachineBlock<>(properties, type, parts, partBlock); + public static SimpleMultiBlockMachineBlock create(Properties properties, ResourceLocation type, List parts, Block partBlock) { + return new SimpleMultiBlockMachineBlock(properties, type, parts, partBlock); } - protected SimpleMultiBlockMachineBlock(Properties properties, ResourceLocation factory, List parts, P partBlock) { + protected SimpleMultiBlockMachineBlock(Properties properties, ResourceLocation factory, List parts, Block partBlock) { super(properties, factory); this.parts = parts; this.partState = partBlock.defaultBlockState(); diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/AirlockBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/AirlockBlock.java index c33699c19..e6e16049e 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/AirlockBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/AirlockBlock.java @@ -28,7 +28,6 @@ import dev.galacticraft.mod.content.GCBlockEntityTypes; import dev.galacticraft.mod.content.block.entity.AirlockControllerBlockEntity; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -62,13 +61,13 @@ public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { if (!controller) return InteractionResult.PASS; if (level.isClientSide) { return InteractionResult.SUCCESS; } else { - player.openMenu(blockState.getMenuProvider(level, blockPos)); + player.openMenu(state.getMenuProvider(level, pos)); return InteractionResult.CONSUME; } } diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/CandleMoonCheeseBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/CandleMoonCheeseBlock.java index a44494898..04d9c1abc 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/CandleMoonCheeseBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/CandleMoonCheeseBlock.java @@ -31,6 +31,7 @@ import net.minecraft.core.Direction; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; @@ -92,24 +93,26 @@ public VoxelShape getShape(BlockState blockState, BlockGetter blockGetter, Block } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + var itemStack = player.getItemInHand(hand); if (itemStack.is(Items.FLINT_AND_STEEL) || itemStack.is(Items.FIRE_CHARGE)) { - return InteractionResult.PASS; + return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; + } else if (candleHit(hit) && stack.isEmpty() && state.getValue(LIT)) { + extinguish(player, state, world, pos); + return ItemInteractionResult.sidedSuccess(world.isClientSide); } - else if (candleHit(blockHitResult) && player.getItemInHand(interactionHand).isEmpty() && blockState.getValue(LIT)) { - extinguish(player, blockState, level, blockPos); - return InteractionResult.sidedSuccess(level.isClientSide); - } - else { - var interactionResult = MoonCheeseBlock.eat(level, blockPos, GCBlocks.MOON_CHEESE_WHEEL.defaultBlockState(), player); + return super.useItemOn(stack, state, world, pos, player, hand, hit); + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + var interactionResult = MoonCheeseBlock.eat(level, pos, GCBlocks.MOON_CHEESE_WHEEL.defaultBlockState(), player); - if (interactionResult.consumesAction()) { - dropResources(blockState, level, blockPos); - } - return interactionResult; + if (interactionResult.consumesAction()) { + dropResources(state, level, pos); } + return interactionResult; } private static boolean candleHit(BlockHitResult blockHitResult) { @@ -147,7 +150,7 @@ public boolean hasAnalogOutputSignal(BlockState blockState) { } @Override - public boolean isPathfindable(BlockState blockState, BlockGetter blockGetter, BlockPos blockPos, PathComputationType pathComputationType) { + protected boolean isPathfindable(BlockState state, PathComputationType type) { return false; } diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberBlock.java index ee1d52c63..60c5b5763 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberBlock.java @@ -32,7 +32,6 @@ import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; import net.minecraft.util.RandomSource; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; @@ -164,12 +163,12 @@ public BlockEntity newBlockEntity(BlockPos blockPos, BlockState blockState) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - return this.onMultiBlockUse(blockState, level, blockPos, player, interactionHand, blockHitResult); + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + return this.multiBlockUseWithoutItem(state, level, pos, player); } @Override - public InteractionResult onMultiBlockUse(BlockState blockState, Level level, BlockPos basePos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + public InteractionResult multiBlockUseWithoutItem(BlockState baseState, Level level, BlockPos basePos, Player player) { if (level.isClientSide()) return InteractionResult.CONSUME; if(player.getCryogenicChamberCooldown() == 0) { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberPart.java b/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberPart.java index 982286c15..8469ca83f 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberPart.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/CryogenicChamberPart.java @@ -27,7 +27,6 @@ import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.CryogenicChamberPartBlockEntity; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -104,8 +103,8 @@ public BlockState playerWillDestroy(Level level, BlockPos blockPos, BlockState b } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var partBE = level.getBlockEntity(blockPos); + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + var partBE = level.getBlockEntity(pos); var be = (CryogenicChamberPartBlockEntity) partBE; if (be == null || be.basePos == BlockPos.ZERO) return InteractionResult.CONSUME; @@ -117,7 +116,7 @@ public InteractionResult use(BlockState blockState, Level level, BlockPos blockP if (baseState.isAir()) return InteractionResult.PASS; var block = (MultiBlockBase) baseState.getBlock(); - return block.onMultiBlockUse(blockState, level, basePos, player, interactionHand, blockHitResult); + return block.multiBlockUseWithoutItem(baseState, level, basePos, player); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/MoonCheeseBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/MoonCheeseBlock.java index e3f8959fd..ea025d2c5 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/MoonCheeseBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/MoonCheeseBlock.java @@ -29,7 +29,10 @@ import net.minecraft.tags.ItemTags; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; @@ -46,34 +49,33 @@ public MoonCheeseBlock(BlockBehaviour.Properties properties) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); - var item = itemStack.getItem(); - - if (itemStack.is(ItemTags.CANDLES) && blockState.getValue(BITES) == 0) { - var block = Block.byItem(item); - - if (block instanceof CandleBlock) { - if (!player.isCreative()) { - itemStack.shrink(1); - } - level.playSound(null, blockPos, SoundEvents.CAKE_ADD_CANDLE, SoundSource.BLOCKS, 1.0F, 1.0F); - level.setBlockAndUpdate(blockPos, CandleMoonCheeseBlock.byCandle(block)); - level.gameEvent(player, GameEvent.BLOCK_CHANGE, blockPos); - player.awardStat(Stats.ITEM_USED.get(item)); + protected InteractionResult useWithoutItem(BlockState state, Level world, BlockPos pos, Player player, BlockHitResult hit) { + if (world.isClientSide) { + if (eat(world, pos, state, player).consumesAction()) { return InteractionResult.SUCCESS; } - } - if (level.isClientSide) { - if (eat(level, blockPos, blockState, player).consumesAction()) { - return InteractionResult.SUCCESS; - } - if (itemStack.isEmpty()) { + if (player.getItemInHand(InteractionHand.MAIN_HAND).isEmpty()) { return InteractionResult.CONSUME; } } - return eat(level, blockPos, blockState, player); + + return eat(world, pos, state, player); + } + + @Override + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + Item item = stack.getItem(); + if (stack.is(ItemTags.CANDLES) && state.getValue(BITES) == 0 && Block.byItem(item) instanceof CandleBlock candleBlock) { + stack.consume(1, player); + level.playSound(null, pos, SoundEvents.CAKE_ADD_CANDLE, SoundSource.BLOCKS, 1.0F, 1.0F); + level.setBlockAndUpdate(pos, CandleMoonCheeseBlock.byCandle(candleBlock)); + level.gameEvent(player, GameEvent.BLOCK_CHANGE, pos); + player.awardStat(Stats.ITEM_USED.get(item)); + return ItemInteractionResult.SUCCESS; + } else { + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } } public static InteractionResult eat(LevelAccessor levelAccessor, BlockPos blockPos, BlockState blockState, Player player) { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlock.java index 766a3a2ad..f3e5fd4bf 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlock.java @@ -27,13 +27,16 @@ import dev.galacticraft.mod.content.block.GCBlock; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.*; +import net.minecraft.core.component.DataComponents; +import net.minecraft.world.Container; +import net.minecraft.world.Containers; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.item.ItemEntity; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.DyeColor; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.BlockItemStateProperties; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; @@ -83,10 +86,8 @@ public BlockState getStateForPlacement(BlockPlaceContext blockPlaceContext) { @Override public BlockState playerWillDestroy(Level level, BlockPos blockPos, BlockState blockState, Player player) { if (!level.isClientSide) { - CompoundTag stateTag = new CompoundTag(); - stateTag.putString(COLOR_TAG, blockState.getValue(COLOR).getName()); ItemStack parachest = new ItemStack(this); - parachest.addTagElement(BlockItem.BLOCK_STATE_TAG, stateTag); + parachest.set(DataComponents.BLOCK_STATE, BlockItemStateProperties.EMPTY.with(COLOR, blockState.getValue(COLOR))); ItemEntity itemEntity = new ItemEntity(level, blockPos.getX(), blockPos.getY(), blockPos.getZ(), parachest); itemEntity.setDefaultPickUpDelay(); level.addFreshEntity(itemEntity); @@ -108,11 +109,11 @@ public void onRemove(BlockState blockState, Level level, BlockPos blockPos, Bloc } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { if (level.isClientSide) { return InteractionResult.SUCCESS; } else { - MenuProvider menuProvider = this.getMenuProvider(blockState, level, blockPos); + MenuProvider menuProvider = this.getMenuProvider(state, level, pos); if (menuProvider != null) { player.openMenu(menuProvider); player.awardStat(GCStats.OPEN_PARACHEST); diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlockEntity.java index 311e727b9..8099f47c3 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/ParaChestBlockEntity.java @@ -37,22 +37,21 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.ContainerHelper; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; import net.minecraft.world.level.block.state.BlockState; import org.jetbrains.annotations.Nullable; @SuppressWarnings("UnstableApiUsage") -public class ParaChestBlockEntity extends RandomizableContainerBlockEntity implements SidedStorageBlockEntity, ExtendedScreenHandlerFactory, ScalableFuelLevel { +public class ParaChestBlockEntity extends RandomizableContainerBlockEntity implements SidedStorageBlockEntity, ExtendedScreenHandlerFactory, ScalableFuelLevel { public final SingleFluidStorage tank = SingleFluidStorage.withFixedCapacity(FluidConstants.BUCKET * 5, () -> { }); @@ -63,15 +62,17 @@ public ParaChestBlockEntity(BlockPos blockPos, BlockState blockState) { } @Override - public void load(CompoundTag compoundTag) { + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.inventory = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); - this.tank.readNbt(compoundTag); + this.tank.readNbt(nbt, registryLookup); } @Override - protected void saveAdditional(CompoundTag compoundTag) { - ContainerHelper.saveAllItems(compoundTag, this.inventory); - this.tank.writeNbt(compoundTag); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); + ContainerHelper.saveAllItems(nbt, this.inventory, registryLookup); + this.tank.writeNbt(nbt, registryLookup); } @Override @@ -104,12 +105,6 @@ public int getContainerSize() { return this.inventory.size(); } - @Override - public void writeScreenOpeningData(ServerPlayer player, FriendlyByteBuf buf) { - buf.writeBoolean(true); - buf.writeBlockPos(getBlockPos()); - } - @Override public int getScaledFuelLevel(int scale) { final double fuelLevel = this.tank.getResource().isBlank() ? 0 : this.tank.getAmount(); @@ -127,4 +122,9 @@ public void tick() { } } } + + @Override + public ParachestMenu.OpeningData getScreenOpeningData(ServerPlayer player) { + return new ParachestMenu.OpeningData(this.getBlockPos()); + } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/RocketWorkbench.java b/src/main/java/dev/galacticraft/mod/content/block/special/RocketWorkbench.java index f55c0efee..54b8cbcf4 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/RocketWorkbench.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/RocketWorkbench.java @@ -25,7 +25,6 @@ import com.mojang.serialization.MapCodec; import dev.galacticraft.mod.content.block.entity.RocketWorkbenchBlockEntity; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; @@ -53,7 +52,7 @@ public RenderShape getRenderShape(BlockState blockState) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos pos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { if (!level.isClientSide) { BlockEntity entity = level.getBlockEntity(pos); if (entity instanceof RocketWorkbenchBlockEntity workbench) { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java index 94d1c4d9e..c7c0e3bb6 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java @@ -27,7 +27,6 @@ import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.SolarPanelPartBlockEntity; import net.minecraft.core.BlockPos; -import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -121,14 +120,14 @@ public boolean isPossibleToRespawnInThis(BlockState blockState) { } @Override - public InteractionResult use(BlockState state, @NotNull Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult blockHitResult) { - BlockEntity partEntity = world.getBlockEntity(pos); - if (world.isClientSide || world.isEmptyBlock(pos) || !(partEntity instanceof SolarPanelPartBlockEntity)) { + protected @NotNull InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { + BlockEntity partEntity = level.getBlockEntity(pos); + if (level.isClientSide || level.isEmptyBlock(pos) || !(partEntity instanceof SolarPanelPartBlockEntity)) { return InteractionResult.SUCCESS; } BlockPos basePos = ((SolarPanelPartBlockEntity) partEntity).basePos; - BlockState base = world.getBlockState(basePos); - return base.getBlock().use(base, world, basePos, player, hand, blockHitResult); + BlockState base = level.getBlockState(basePos); + return ((MultiBlockBase)base.getBlock()).multiBlockUseWithoutItem(base, level, basePos, player); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/TinLadderBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/TinLadderBlock.java index 3055a0693..541a61873 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/TinLadderBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/TinLadderBlock.java @@ -25,7 +25,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; @@ -43,7 +43,7 @@ public TinLadderBlock(BlockBehaviour.Properties properties) { } @Nullable - private InteractionResult checkCanTinLadderBePlaced(Level level, BlockPos checkPos, Player player, ItemStack itemStack, BlockState blockState) { + private ItemInteractionResult checkCanTinLadderBePlaced(Level level, BlockPos checkPos, Player player, ItemStack itemStack, BlockState blockState) { if (level.getBlockState(checkPos).canBeReplaced()) { var newState = this.defaultBlockState().setValue(FACING, blockState.getValue(FACING)); level.setBlockAndUpdate(checkPos, newState); @@ -53,38 +53,33 @@ private InteractionResult checkCanTinLadderBePlaced(Level level, BlockPos checkP if (!player.getAbilities().instabuild) { itemStack.shrink(1); } - return InteractionResult.sidedSuccess(level.isClientSide()); - } - else if (!level.getBlockState(checkPos).is(this)) { - return InteractionResult.PASS; + return ItemInteractionResult.SUCCESS; + } else if (!level.getBlockState(checkPos).is(this)) { + return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; } return null; } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); - if (itemStack.is(this.asItem())) { + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (stack.is(this.asItem())) { if (player.getXRot() < 0f) { - for (BlockPos checkPos = new BlockPos.MutableBlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ()); checkPos.getY() < level.getMaxBuildHeight(); checkPos = checkPos.offset(0, 1, 0)) - { - var result = this.checkCanTinLadderBePlaced(level, checkPos, player, itemStack, blockState); + for (BlockPos checkPos = new BlockPos.MutableBlockPos(pos.getX(), pos.getY(), pos.getZ()); checkPos.getY() < level.getMaxBuildHeight(); checkPos = checkPos.offset(0, 1, 0)) { + var result = this.checkCanTinLadderBePlaced(level, checkPos, player, stack, state); if (result != null) { return result; } } - } - else { - for (BlockPos checkPos = new BlockPos.MutableBlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ()); checkPos.getY() > level.getMinBuildHeight(); checkPos = checkPos.offset(0, -1, 0)) - { - var result = this.checkCanTinLadderBePlaced(level, checkPos, player, itemStack, blockState); + } else { + for (BlockPos checkPos = new BlockPos.MutableBlockPos(pos.getX(), pos.getY(), pos.getZ()); checkPos.getY() > level.getMinBuildHeight(); checkPos = checkPos.offset(0, -1, 0)) { + var result = this.checkCanTinLadderBePlaced(level, checkPos, player, stack, state); if (result != null) { return result; } } } } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + return super.useItemOn(stack, state, level, pos, player, hand, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java index c826c6ad3..89dbecc30 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/GlassFluidPipeBlock.java @@ -25,17 +25,14 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.api.block.FluidPipe; import dev.galacticraft.mod.api.block.entity.Connected; -import dev.galacticraft.mod.api.pipe.Pipe; import dev.galacticraft.mod.content.block.entity.networked.GlassFluidPipeBlockEntity; import dev.galacticraft.mod.content.item.StandardWrenchItem; import dev.galacticraft.mod.util.ConnectingBlockUtil; import dev.galacticraft.mod.util.DirectionUtil; import dev.galacticraft.mod.util.FluidUtil; import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.DyeItem; @@ -73,10 +70,7 @@ public void setPlacedBy(Level level, BlockPos blockPos, BlockState blockState, @ if (stack.getItem() instanceof DyeItem dye && dye.getDyeColor() != glassPipe.getColor()) { glassPipe.setColor(dye.getDyeColor()); var copy = stack.copy(); - - if (livingEntity instanceof Player player && !player.getAbilities().instabuild) { - copy.shrink(1); - } + copy.consume(1, livingEntity); livingEntity.setItemInHand(interactionHand, copy); } @@ -95,37 +89,34 @@ public void setPlacedBy(Level level, BlockPos blockPos, BlockState blockState, @ } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); - if (level.getBlockEntity(blockPos) instanceof GlassFluidPipeBlockEntity glassPipe) { - if (itemStack.getItem() instanceof DyeItem dye) { - var stack = itemStack.copy(); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.getBlockEntity(pos) instanceof GlassFluidPipeBlockEntity glassPipe) { + if (stack.getItem() instanceof DyeItem dye) { + var stack2 = stack.copy(); var color = dye.getDyeColor(); if (color != glassPipe.getColor()) { if (!player.getAbilities().instabuild) { - stack.shrink(1); + stack2.shrink(1); } - player.setItemInHand(interactionHand, stack); + player.setItemInHand(hand, stack2); glassPipe.setColor(color); - level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); - return InteractionResult.sidedSuccess(level.isClientSide()); + level.sendBlockUpdated(pos, state, state, Block.UPDATE_IMMEDIATE); + return ItemInteractionResult.SUCCESS; + } else { + return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; } - else { - return InteractionResult.PASS; - } - } else if (itemStack.getItem() instanceof StandardWrenchItem) { - var stack = itemStack.copy(); + } else if (stack.getItem() instanceof StandardWrenchItem) { + var stack2 = stack.copy(); - if (!player.getAbilities().instabuild) { - stack.hurt(1, level.random, player instanceof ServerPlayer ? ((ServerPlayer) player) : null); - } + stack2.hurtAndBreak(1, player, LivingEntity.getSlotForHand(hand)); - player.setItemInHand(interactionHand, stack); + player.setItemInHand(hand, stack2); glassPipe.setPull(!glassPipe.isPull()); - return InteractionResult.sidedSuccess(level.isClientSide()); + return ItemInteractionResult.SUCCESS; } } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + + return super.useItemOn(stack, state, level, pos, player, hand, hit); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java index b1a882f57..d922a0c1d 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/fluidpipe/PipeBlockEntity.java @@ -33,6 +33,7 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.server.level.ServerLevel; @@ -158,8 +159,8 @@ public void setColor(DyeColor color) { } @Override - public void load(CompoundTag nbt) { - super.load(nbt); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.readColorNbt(nbt); this.readConnectionNbt(nbt); @@ -169,8 +170,8 @@ public void load(CompoundTag nbt) { } @Override - public void saveAdditional(CompoundTag nbt) { - super.saveAdditional(nbt); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.saveAdditional(nbt, registryLookup); this.writeColorNbt(nbt); this.writeConnectionNbt(nbt); } @@ -181,7 +182,7 @@ public ClientboundBlockEntityDataPacket getUpdatePacket() { } @Override - public CompoundTag getUpdateTag() { - return this.saveWithoutMetadata(); + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + return this.saveWithoutMetadata(registryLookup); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/AbstractLaunchPad.java b/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/AbstractLaunchPad.java index ff1c22231..144592f99 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/AbstractLaunchPad.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/AbstractLaunchPad.java @@ -22,9 +22,8 @@ package dev.galacticraft.mod.content.block.special.launchpad; -import com.mojang.serialization.MapCodec; -import org.jetbrains.annotations.Nullable; import com.mojang.datafixers.util.Pair; +import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.util.StringRepresentable; @@ -35,13 +34,13 @@ import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.RenderShape; -import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; +import org.jetbrains.annotations.Nullable; public abstract class AbstractLaunchPad extends BaseEntityBlock { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/LaunchPadBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/LaunchPadBlockEntity.java index ff7eef7c7..f16eca35d 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/LaunchPadBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/launchpad/LaunchPadBlockEntity.java @@ -28,6 +28,7 @@ import dev.galacticraft.mod.api.entity.Dockable; import dev.galacticraft.mod.content.GCBlockEntityTypes; import net.minecraft.core.BlockPos; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.util.ByIdMap; @@ -88,14 +89,14 @@ public boolean hasDockedEntity() { } @Override - public void load(CompoundTag tag) { - super.load(tag); + protected void loadAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + super.loadAdditional(nbt, registryLookup); this.entityUUID = null; this.docked = null; - this.type = Type.byName(tag.getString(TYPE)); + this.type = Type.byName(nbt.getString(TYPE)); - if (tag.contains(Constant.Nbt.ROCKET_UUID)) { - this.entityUUID = tag.getUUID(Constant.Nbt.ROCKET_UUID); + if (nbt.contains(Constant.Nbt.ROCKET_UUID)) { + this.entityUUID = nbt.getUUID(Constant.Nbt.ROCKET_UUID); if (this.level instanceof ServerLevel) { this.docked = (Rocket) ((ServerLevel) this.level).getEntity(this.entityUUID); } @@ -103,18 +104,18 @@ public void load(CompoundTag tag) { } @Override - public void saveAdditional(CompoundTag tag) { - if (this.entityUUID != null) tag.putUUID(ENTITY_UUID, entityUUID); - tag.putString(TYPE, type.getSerializedName()); - super.saveAdditional(tag); + protected void saveAdditional(CompoundTag nbt, HolderLookup.Provider registryLookup) { + if (this.entityUUID != null) nbt.putUUID(ENTITY_UUID, entityUUID); + nbt.putString(TYPE, type.getSerializedName()); + super.saveAdditional(nbt, registryLookup); } @Override - public CompoundTag getUpdateTag() { - CompoundTag tag = super.getUpdateTag(); - if (this.entityUUID != null) tag.putUUID(ENTITY_UUID, this.entityUUID); - tag.putString(TYPE, type.getSerializedName()); - return tag; + public CompoundTag getUpdateTag(HolderLookup.Provider registryLookup) { + CompoundTag nbt = super.getUpdateTag(registryLookup); + if (this.entityUUID != null) nbt.putUUID(ENTITY_UUID, this.entityUUID); + nbt.putString(TYPE, type.getSerializedName()); + return nbt; } public UUID getDockedUUID() { diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/walkway/FluidPipeWalkway.java b/src/main/java/dev/galacticraft/mod/content/block/special/walkway/FluidPipeWalkway.java index 52eb90db3..c0ca43e9e 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/walkway/FluidPipeWalkway.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/walkway/FluidPipeWalkway.java @@ -38,7 +38,7 @@ import net.minecraft.core.Direction; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.DyeItem; @@ -102,29 +102,26 @@ public BlockState getStateForPlacement(BlockPlaceContext context) { } @Override - public InteractionResult use(BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { - var itemStack = player.getItemInHand(interactionHand); - if (level.getBlockEntity(blockPos) instanceof FluidPipeWalkwayBlockEntity walkway) { - if (itemStack.getItem() instanceof DyeItem dye) { - var stack = itemStack.copy(); + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (level.getBlockEntity(pos) instanceof FluidPipeWalkwayBlockEntity walkway) { + if (stack.getItem() instanceof DyeItem dye) { + var stack2 = stack.copy(); var color = dye.getDyeColor(); if (color != walkway.getColor()) { - if (!player.getAbilities().instabuild) { - stack.shrink(1); - } - player.setItemInHand(interactionHand, stack); + stack2.consume(1, player); + player.setItemInHand(hand, stack2); walkway.setColor(color); - level.sendBlockUpdated(blockPos, blockState, blockState, Block.UPDATE_IMMEDIATE); - return InteractionResult.sidedSuccess(level.isClientSide()); - } - else { - return InteractionResult.PASS; + level.sendBlockUpdated(pos, state, state, Block.UPDATE_IMMEDIATE); + return ItemInteractionResult.SUCCESS; + } else { + return ItemInteractionResult.SKIP_DEFAULT_BLOCK_INTERACTION; } } } - return super.use(blockState, level, blockPos, player, interactionHand, blockHitResult); + return super.useItemOn(stack, state, level, pos, player, hand, hit); } + @Override public void setPlacedBy(Level level, BlockPos blockPos, BlockState blockState, @Nullable LivingEntity livingEntity, ItemStack itemStack) { super.setPlacedBy(level, blockPos, blockState, livingEntity, itemStack); diff --git a/src/main/java/dev/galacticraft/mod/content/entity/BubbleEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/BubbleEntity.java index 80859c7cf..ceca63b70 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/BubbleEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/BubbleEntity.java @@ -24,26 +24,19 @@ import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientGamePacketListener; -import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; +import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; -import org.jetbrains.annotations.NotNull; public class BubbleEntity extends Entity { public BubbleEntity(EntityType type, Level world) { super(type, world); } - @Override - protected void defineSynchedData() { - } - @Override protected void readAdditionalSaveData(CompoundTag tag) { } @@ -52,10 +45,6 @@ protected void readAdditionalSaveData(CompoundTag tag) { protected void addAdditionalSaveData(CompoundTag tag) { } - @Override - protected void handleNetherPortal() { - } - @Override public void tick() { this.baseTick(); @@ -111,11 +100,6 @@ public boolean dismountsUnderwater() { return true; } - @Override - public boolean canChangeDimensions() { - return false; - } - @Override public boolean isPushedByFluid() { return false; @@ -127,11 +111,12 @@ public boolean isSpectator() { } @Override - public void lavaHurt() { + protected void defineSynchedData(SynchedEntityData.Builder compositeStateBuilder) { + } @Override - public void setSecondsOnFire(int seconds) { + public void lavaHurt() { } @Override @@ -229,9 +214,4 @@ public boolean shouldRenderAtSqrDistance(double distance) { public boolean shouldShowName() { return false; } - - @Override - public @NotNull Packet getAddEntityPacket() { - return new ClientboundAddEntityPacket(this); - } } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/Buggy.java b/src/main/java/dev/galacticraft/mod/content/entity/Buggy.java index db68a5298..3ff7cc08d 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/Buggy.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/Buggy.java @@ -30,7 +30,6 @@ import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.fabricmc.fabric.api.transfer.v1.fluid.base.SingleFluidStorage; import net.fabricmc.fabric.api.transfer.v1.storage.Storage; -import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; @@ -46,7 +45,6 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.Nullable; import java.util.function.IntFunction; @@ -72,9 +70,9 @@ public Buggy(EntityType entityType, Level level) { } @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(DATA_TYPE_ID, 0); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(DATA_TYPE_ID, 0); createInventory(); } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/EvolvedCreeperEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/EvolvedCreeperEntity.java index 1aca4ebc7..9b0c70eac 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/EvolvedCreeperEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/EvolvedCreeperEntity.java @@ -27,9 +27,9 @@ import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; +import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityDimensions; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Pose; @@ -39,21 +39,21 @@ import net.minecraft.world.entity.monster.Creeper; import net.minecraft.world.level.Level; -import java.util.UUID; - public class EvolvedCreeperEntity extends Creeper { private static final EntityDataAccessor BABY = SynchedEntityData.defineId(EvolvedCreeperEntity.class, EntityDataSerializers.BOOLEAN); - private static final UUID BABY_SPEED_ID = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836"); - private static final AttributeModifier BABY_SPEED_BONUS = new AttributeModifier(BABY_SPEED_ID, "Baby speed boost", 0.8D, AttributeModifier.Operation.MULTIPLY_BASE); + private static final ResourceLocation SPEED_MODIFIER_BABY_ID = ResourceLocation.withDefaultNamespace("baby"); + private static final AttributeModifier BABY_SPEED_BONUS = new AttributeModifier( + SPEED_MODIFIER_BABY_ID, 0.8D, AttributeModifier.Operation.ADD_MULTIPLIED_BASE + ); public EvolvedCreeperEntity(EntityType entityType, Level world) { super(entityType, world); } @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(BABY, false); + protected void defineSynchedData(SynchedEntityData.Builder compositeStateBuilder) { + super.defineSynchedData(compositeStateBuilder); + compositeStateBuilder.define(BABY, false); } public void tick() { @@ -86,21 +86,22 @@ public boolean isBaby() { return this.entityData.get(BABY); } + @Override public void setBaby(boolean baby) { this.getEntityData().set(BABY, baby); - if (this.level() != null && !this.level().isClientSide) { - AttributeInstance entityAttributeInstance = this.getAttribute(Attributes.MOVEMENT_SPEED); - entityAttributeInstance.removeModifier(BABY_SPEED_ID); + if (!this.level().isClientSide) { + AttributeInstance attributeInstance = this.getAttribute(Attributes.MOVEMENT_SPEED); + attributeInstance.removeModifier(SPEED_MODIFIER_BABY_ID); if (baby) { - entityAttributeInstance.addTransientModifier(BABY_SPEED_BONUS); + attributeInstance.addTransientModifier(BABY_SPEED_BONUS); } } } @Override - public EntityDimensions getDimensions(Pose pose) { + protected EntityDimensions getDefaultDimensions(Pose pose) { if (this.isBaby()) { - return this.getType().getDimensions().scale(0.75F, 0.5F); + return this.getType().getDimensions().scale(0.75F, 0.5F).withEyeHeight(0.75F); } else { return this.getType().getDimensions(); } @@ -113,14 +114,4 @@ public void onSyncedDataUpdated(EntityDataAccessor data) { } super.onSyncedDataUpdated(data); } - - @Override - protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) { - return this.isBaby() ? 0.75F : 1.4F; - } - - @Override - public float getMyRidingOffset(Entity entity) { - return this.isBaby() ? 0.0F : -0.45F; - } } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/GCVehicle.java b/src/main/java/dev/galacticraft/mod/content/entity/GCVehicle.java index 288dc3ebe..16fb42496 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/GCVehicle.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/GCVehicle.java @@ -22,10 +22,10 @@ package dev.galacticraft.mod.content.entity; +import net.minecraft.core.component.DataComponents; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.util.Mth; import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -103,7 +103,7 @@ public void destroy(ItemStack selfAsItem) { if (!selfAsItem.isEmpty()) { if (this.level().getGameRules().getBoolean(GameRules.RULE_DOENTITYDROPS)) { if (this.hasCustomName()) { - selfAsItem.setHoverName(this.getCustomName()); + selfAsItem.set(DataComponents.CUSTOM_NAME, this.getCustomName()); } this.spawnAtLocation(selfAsItem); @@ -112,10 +112,10 @@ public void destroy(ItemStack selfAsItem) { } @Override - protected void defineSynchedData() { - this.entityData.define(DATA_ID_HURT, 0); - this.entityData.define(DATA_ID_HURTDIR, 1); - this.entityData.define(DATA_ID_DAMAGE, 0.0F); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + builder.define(DATA_ID_HURT, 0); + builder.define(DATA_ID_HURTDIR, 1); + builder.define(DATA_ID_DAMAGE, 0.0F); } public void setHurtTime(int damageWobbleTicks) { diff --git a/src/main/java/dev/galacticraft/mod/content/entity/GreyEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/GreyEntity.java index 80ea1518d..45ebb0265 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/GreyEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/GreyEntity.java @@ -54,7 +54,7 @@ public GreyEntity(EntityType entityType, Level level) { @Override protected void registerGoals() { // this.goalSelector.addGoal(0, new RandomLookAroundGoal(this)); - this.followPlayerGoal = new FollowPlayerGoal(this, 10.0F, 0.8); + this.followPlayerGoal = new FollowPlayerGoal(this, 10.0F, 3.0f, 0.8f); this.greyAvoidEntityGoal = new GreyAvoidEntityGoal<>(this, Player.class, 3.0f, 0.8, 1); this.goalSelector.addGoal(0, new LookAtPlayerGoal(this, Player.class, 15F)); this.goalSelector.addGoal(0, this.followPlayerGoal); @@ -103,7 +103,7 @@ public static AttributeSupplier.Builder createAttributes() { .add(Attributes.MAX_HEALTH, 24.0) .add(Attributes.ATTACK_DAMAGE, 5.0) .add(GcApiEntityAttributes.CAN_BREATHE_IN_SPACE, 1.0D) - .add(GcApiEntityAttributes.LOCAL_GRAVITY_LEVEL, 0.9F); + .add(Attributes.GRAVITY, 0.9F); } static class GreyAvoidEntityGoal extends AvoidEntityGoal { diff --git a/src/main/java/dev/galacticraft/mod/content/entity/OliGrubEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/OliGrubEntity.java index 59afa0e8a..3a96fafd3 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/OliGrubEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/OliGrubEntity.java @@ -33,6 +33,7 @@ import net.minecraft.world.entity.animal.Animal; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; @@ -41,6 +42,11 @@ public OliGrubEntity(EntityType entityType, Level level) { super(entityType, level); } + @Override + public boolean isFood(ItemStack stack) { + return false; + } + @Nullable @Override public AgeableMob getBreedOffspring(ServerLevel serverLevel, AgeableMob ageableMob) { diff --git a/src/main/java/dev/galacticraft/mod/content/entity/ParachestEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/ParachestEntity.java index adbd18adc..459569b7c 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/ParachestEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/ParachestEntity.java @@ -70,8 +70,8 @@ public ParachestEntity(EntityType entityType, Level level) { } @Override - protected void defineSynchedData() { - this.entityData.define(COLOR, (byte) DyeColor.WHITE.getId()); + protected void defineSynchedData(SynchedEntityData.Builder compositeStateBuilder) { + compositeStateBuilder.define(COLOR, (byte) DyeColor.WHITE.getId()); } @Override @@ -82,7 +82,7 @@ protected void readAdditionalSaveData(CompoundTag tag) { } this.cargo = NonNullList.withSize(size, ItemStack.EMPTY); - ContainerHelper.loadAllItems(tag, this.cargo); + ContainerHelper.loadAllItems(tag, this.cargo, this.level().registryAccess()); this.placedChest = tag.getBoolean("placedChest"); this.fuelLevel = tag.getLong("FuelLevel"); @@ -95,7 +95,7 @@ protected void readAdditionalSaveData(CompoundTag tag) { @Override protected void addAdditionalSaveData(CompoundTag tag) { tag.putInt("CargoLength", this.cargo.size()); - ContainerHelper.saveAllItems(tag, this.cargo); + ContainerHelper.saveAllItems(tag, this.cargo, this.level().registryAccess()); tag.putBoolean("placedChest", this.placedChest); tag.putLong("FuelLevel", this.fuelLevel); diff --git a/src/main/java/dev/galacticraft/mod/content/entity/ThrowableMeteorChunkEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/ThrowableMeteorChunkEntity.java index ad6279634..f24d3a645 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/ThrowableMeteorChunkEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/ThrowableMeteorChunkEntity.java @@ -52,9 +52,9 @@ public ThrowableMeteorChunkEntity(LivingEntity shooter, Level level, boolean hot } @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(HOT, false); + protected void defineSynchedData(SynchedEntityData.Builder compositeStateBuilder) { + super.defineSynchedData(compositeStateBuilder); + compositeStateBuilder.define(HOT, false); } @Override @@ -96,7 +96,7 @@ protected void onHitEntity(EntityHitResult result) { super.onHitEntity(result); if (this.entityData.get(HOT)) { result.getEntity().hurt(this.damageSources().thrown(this, this.getOwner()), 4.0F); - result.getEntity().setSecondsOnFire(3); + result.getEntity().igniteForSeconds(3); } else { result.getEntity().hurt(this.damageSources().thrown(this, this.getOwner()), 2.0F); } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/boss/AbstractBossEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/boss/AbstractBossEntity.java index c522aaf3f..e1cab1699 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/boss/AbstractBossEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/boss/AbstractBossEntity.java @@ -24,7 +24,6 @@ import dev.galacticraft.mod.content.block.entity.DungeonSpawnerBlockEntity; import net.minecraft.network.chat.Component; -import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerBossEvent; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.BossEvent; diff --git a/src/main/java/dev/galacticraft/mod/content/entity/boss/SkeletonBoss.java b/src/main/java/dev/galacticraft/mod/content/entity/boss/SkeletonBoss.java index 3c7d7813a..0bfc765a3 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/boss/SkeletonBoss.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/boss/SkeletonBoss.java @@ -34,7 +34,10 @@ import net.minecraft.util.Mth; import net.minecraft.world.BossEvent; import net.minecraft.world.damagesource.DamageSource; -import net.minecraft.world.entity.*; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EntitySelector; +import net.minecraft.world.entity.EntityType; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.goal.*; @@ -45,15 +48,12 @@ import net.minecraft.world.entity.monster.RangedAttackMob; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.AbstractArrow; -import net.minecraft.world.entity.projectile.Arrow; import net.minecraft.world.entity.projectile.ProjectileUtil; -import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; -import java.util.List; import java.util.Random; public class SkeletonBoss extends AbstractBossEntity implements RangedAttackMob, IgnoreShift { @@ -127,8 +127,8 @@ public void positionRider(Entity passenger, Entity.MoveFunction positionUpdater) final double offsetX = Math.sin(-this.getYHeadRot() / Constant.RADIANS_TO_DEGREES); final double offsetZ = Math.cos(this.getYHeadRot() / Constant.RADIANS_TO_DEGREES); final double offsetY = 2 * Math.cos((this.throwTimer + this.postThrowDelay) * 0.05F); - - positionUpdater.accept(passenger, vec3.x() + offsetX, vec3.y() + passenger.getMyRidingOffset(this) + offsetY, vec3.z() + offsetZ); + Vec3 point = passenger.getVehicleAttachmentPoint(this); + positionUpdater.accept(passenger, vec3.x() + offsetX, vec3.y() + point.y + offsetY, vec3.z() + offsetZ); } @Override @@ -172,11 +172,6 @@ protected SoundEvent getDeathSound() { // return EntitySkeletonBoss.defaultHeldItem; // } - @Override - public MobType getMobType() { - return MobType.UNDEAD; - } - @Override public void aiStep() { this.ticks++; @@ -286,8 +281,9 @@ public void performRangedAttack(LivingEntity target, float pullProgress) { return; } - ItemStack arrowItem = this.getProjectile(this.getItemInHand(ProjectileUtil.getWeaponHoldingHand(this, Items.BOW))); - AbstractArrow arrow = getArrow(arrowItem, pullProgress); + ItemStack itemInHand = this.getItemInHand(ProjectileUtil.getWeaponHoldingHand(this, Items.BOW)); + ItemStack arrowItem = this.getProjectile(itemInHand); + AbstractArrow arrow = getArrow(arrowItem, pullProgress, itemInHand); double d0 = target.getX() - this.getX(); double d1 = target.getY(0.3333333333333333) - arrow.getY(); double d2 = target.getZ() - this.getZ(); @@ -298,8 +294,8 @@ public void performRangedAttack(LivingEntity target, float pullProgress) { this.level().addFreshEntity(arrow); } - protected AbstractArrow getArrow(ItemStack arrow, float damageModifier) { - return ProjectileUtil.getMobArrow(this, arrow, damageModifier); + protected AbstractArrow getArrow(ItemStack arrow, float damageModifier, ItemStack itemInHand) { + return ProjectileUtil.getMobArrow(this, arrow, damageModifier, itemInHand); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/entity/damage/GCDamageTypes.java b/src/main/java/dev/galacticraft/mod/content/entity/damage/GCDamageTypes.java index 9744c1dfe..ed879e9b1 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/damage/GCDamageTypes.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/damage/GCDamageTypes.java @@ -24,7 +24,7 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.damagesource.DamageScaling; import net.minecraft.world.damagesource.DamageType; @@ -35,7 +35,7 @@ public class GCDamageTypes { public static final ResourceKey SUFFOCATION = Constant.key(Registries.DAMAGE_TYPE, "suffocation"); public static final ResourceKey SULFURIC_ACID = Constant.key(Registries.DAMAGE_TYPE, "sulfuric_acid"); - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { context.register(OIL_BOOM, new DamageType("oil_boom", DamageScaling.ALWAYS, 0.1f)); context.register(VINE_POISON, new DamageType("vine_poison", 0.0f)); context.register(SUFFOCATION, new DamageType("suffocation", 0.0f)); diff --git a/src/main/java/dev/galacticraft/mod/content/entity/data/GCEntityDataSerializers.java b/src/main/java/dev/galacticraft/mod/content/entity/data/GCEntityDataSerializers.java index cc9b0625f..344a0e645 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/data/GCEntityDataSerializers.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/data/GCEntityDataSerializers.java @@ -23,32 +23,16 @@ package dev.galacticraft.mod.content.entity.data; import dev.galacticraft.api.rocket.LaunchStage; -import net.minecraft.network.FriendlyByteBuf; +import dev.galacticraft.api.rocket.RocketData; import net.minecraft.network.syncher.EntityDataSerializer; import net.minecraft.network.syncher.EntityDataSerializers; -import net.minecraft.resources.ResourceLocation; public class GCEntityDataSerializers { - public static final EntityDataSerializer LAUNCH_STAGE = EntityDataSerializer.simpleEnum(LaunchStage.class); - public static final EntityDataSerializer IDENTIFIER = new EntityDataSerializer<>() { - @Override - public void write(FriendlyByteBuf buffer, ResourceLocation value) { - buffer.writeResourceLocation(value); - } - - @Override - public ResourceLocation read(FriendlyByteBuf buffer) { - return buffer.readResourceLocation(); - } - - @Override - public ResourceLocation copy(ResourceLocation value) { - return value; - } - }; + public static final EntityDataSerializer ROCKET_DATA = EntityDataSerializer.forValueType(RocketData.STREAM_CODEC); + public static final EntityDataSerializer LAUNCH_STAGE = EntityDataSerializer.forValueType(LaunchStage.STREAM_CODEC); public static void register() { + EntityDataSerializers.registerSerializer(ROCKET_DATA); EntityDataSerializers.registerSerializer(LAUNCH_STAGE); - EntityDataSerializers.registerSerializer(IDENTIFIER); } } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/goals/FollowPlayerGoal.java b/src/main/java/dev/galacticraft/mod/content/entity/goals/FollowPlayerGoal.java index 2bdef626e..214fab123 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/goals/FollowPlayerGoal.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/goals/FollowPlayerGoal.java @@ -24,70 +24,88 @@ import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.goal.Goal; +import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; +import net.minecraft.world.entity.ai.navigation.GroundPathNavigation; import net.minecraft.world.entity.ai.navigation.PathNavigation; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.pathfinder.BlockPathTypes; +import net.minecraft.world.level.pathfinder.PathType; +import org.jetbrains.annotations.Nullable; import java.util.EnumSet; -import java.util.List; -import java.util.Objects; +// vanilla copy of net.minecraft.world.entity.ai.goal.FollowMobGoal adapted for players public class FollowPlayerGoal extends Goal { private final Mob mob; - private Player followingPlayer; - private final PathNavigation navigation; + @Nullable + private Player following; private final double speedModifier; - private final double areaSize; + private final PathNavigation navigation; private int timeToRecalcPath; + private final float stopDistance; private float oldWaterCost; + private final float areaSize; - public FollowPlayerGoal(Mob mob, double areaSize, double speedModifier) { + public FollowPlayerGoal(Mob mob, double speedModifier, float stopDistance, float areaSize) { this.mob = mob; + this.speedModifier = speedModifier; this.navigation = mob.getNavigation(); + this.stopDistance = stopDistance; this.areaSize = areaSize; - this.speedModifier = speedModifier; this.setFlags(EnumSet.of(Goal.Flag.MOVE, Goal.Flag.LOOK)); + if (!(mob.getNavigation() instanceof GroundPathNavigation) && !(mob.getNavigation() instanceof FlyingPathNavigation)) { + throw new IllegalArgumentException("Unsupported mob type for FollowMobGoal"); + } } @Override public boolean canUse() { - List list = this.mob.level().getEntitiesOfClass(Player.class, this.mob.getBoundingBox().inflate(this.areaSize), Objects::nonNull); - if (!list.isEmpty()) { - for(Player player : list) { - if (!player.isInvisible()) { - this.followingPlayer = player; - return true; - } - } + for (Player player : this.mob.level().getEntitiesOfClass(Player.class, this.mob.getBoundingBox().inflate(this.areaSize), p -> !p.isInvisible())) { + this.following = player; + return true; } - return false; } + @Override + public boolean canContinueToUse() { + return this.following != null && !this.navigation.isDone() && this.mob.distanceToSqr(this.following) > (double)(this.stopDistance * this.stopDistance); + } + @Override public void start() { this.timeToRecalcPath = 0; - this.oldWaterCost = this.mob.getPathfindingMalus(BlockPathTypes.WATER); - this.mob.setPathfindingMalus(BlockPathTypes.WATER, 0.0F); + this.oldWaterCost = this.mob.getPathfindingMalus(PathType.WATER); + this.mob.setPathfindingMalus(PathType.WATER, 0.0F); } @Override public void stop() { - this.followingPlayer = null; + this.following = null; this.navigation.stop(); - this.mob.setPathfindingMalus(BlockPathTypes.WATER, this.oldWaterCost); + this.mob.setPathfindingMalus(PathType.WATER, this.oldWaterCost); } @Override public void tick() { - if (this.followingPlayer == null) - return; - this.mob.getLookControl().setLookAt(this.followingPlayer, 10.0F, (float)this.mob.getMaxHeadXRot()); - if (--this.timeToRecalcPath <= 0) { - this.timeToRecalcPath = this.adjustedTickDelay(10); - if (!this.mob.isLeashed() && !this.mob.isPassenger()) { - this.navigation.moveTo(this.followingPlayer, this.speedModifier); + if (this.following != null && !this.mob.isLeashed()) { + this.mob.getLookControl().setLookAt(this.following, 10.0F, (float)this.mob.getMaxHeadXRot()); + if (--this.timeToRecalcPath <= 0) { + this.timeToRecalcPath = this.adjustedTickDelay(10); + double d = this.mob.getX() - this.following.getX(); + double e = this.mob.getY() - this.following.getY(); + double f = this.mob.getZ() - this.following.getZ(); + double g = d * d + e * e + f * f; + if (!(g <= (this.stopDistance * this.stopDistance))) { + this.navigation.moveTo(this.following, this.speedModifier); + } else { + this.navigation.stop(); + if (g <= this.stopDistance) { + double h = this.following.getX() - this.mob.getX(); + double i = this.following.getZ() - this.mob.getZ(); + this.navigation.moveTo(this.mob.getX() - h, this.mob.getY(), this.mob.getZ() - i, this.speedModifier); + } + } } } } -} +} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/entity/orbital/RocketEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/orbital/RocketEntity.java index 9321b9742..806ea13aa 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/orbital/RocketEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/orbital/RocketEntity.java @@ -22,16 +22,12 @@ package dev.galacticraft.mod.content.entity.orbital; +import com.mojang.datafixers.util.Pair; import dev.galacticraft.api.entity.IgnoreShift; -import dev.galacticraft.api.registry.AddonRegistries; -import dev.galacticraft.api.registry.RocketRegistries; import dev.galacticraft.api.rocket.LaunchStage; import dev.galacticraft.api.rocket.RocketData; import dev.galacticraft.api.rocket.entity.Rocket; import dev.galacticraft.api.rocket.part.*; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyConfig; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyType; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.api.block.entity.FuelDock; import dev.galacticraft.mod.attachments.GCServerPlayer; @@ -43,13 +39,13 @@ import dev.galacticraft.mod.content.entity.data.GCEntityDataSerializers; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.events.RocketEvents; -import dev.galacticraft.mod.network.packets.RocketSpawnPacket; +import dev.galacticraft.mod.network.s2c.OpenCelestialScreenPayload; +import dev.galacticraft.mod.network.s2c.RocketSpawnPacket; import dev.galacticraft.mod.particle.EntityParticleOption; import dev.galacticraft.mod.particle.GCParticleTypes; import dev.galacticraft.mod.tag.GCTags; import dev.galacticraft.mod.util.FluidUtil; import dev.galacticraft.mod.util.Translations; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; @@ -59,17 +55,19 @@ import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.core.NonNullList; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.nbt.NbtOps; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.Packet; +import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerEntity; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; @@ -78,6 +76,7 @@ import net.minecraft.world.damagesource.DamageSource; import net.minecraft.world.entity.*; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.EitherHolder; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; @@ -85,30 +84,19 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.phys.Vec3; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.joml.Vector3f; - -import java.util.Objects; @SuppressWarnings("UnstableApiUsage") public class RocketEntity extends AdvancedVehicle implements Rocket, IgnoreShift, ControllableEntity { - private static final ResourceLocation NULL_ID = new ResourceLocation("null"); + private static final ResourceLocation NULL_ID = ResourceLocation.withDefaultNamespace("null"); private static final EntityDataAccessor STAGE = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.LAUNCH_STAGE); - private static final EntityDataAccessor COLOR = SynchedEntityData.defineId(RocketEntity.class, EntityDataSerializers.INT); - private static final EntityDataAccessor TIME_AS_STATE = SynchedEntityData.defineId(RocketEntity.class, EntityDataSerializers.INT); public static final EntityDataAccessor SPEED = SynchedEntityData.defineId(RocketEntity.class, EntityDataSerializers.FLOAT); - public static final EntityDataAccessor ROCKET_CONE = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); - public static final EntityDataAccessor ROCKET_BODY = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); - public static final EntityDataAccessor ROCKET_FIN = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); - public static final EntityDataAccessor ROCKET_BOOSTER = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); - public static final EntityDataAccessor ROCKET_ENGINE = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); - public static final EntityDataAccessor ROCKET_UPGRADE = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.IDENTIFIER); + public static final EntityDataAccessor ROCKET_DATA = SynchedEntityData.defineId(RocketEntity.class, GCEntityDataSerializers.ROCKET_DATA); public static final EntityDataAccessor FUEL = SynchedEntityData.defineId(RocketEntity.class, EntityDataSerializers.LONG); private final boolean debugMode = false && FabricLoader.getInstance().isDevelopmentEnvironment(); @@ -160,33 +148,8 @@ public void setLaunchStage(LaunchStage launchStage) { } @Override - public RocketCone getCone() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_CONE).get(this.cone()); - } - - @Override - public RocketBody getBody() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_BODY).get(this.body()); - } - - @Override - public RocketFin getFin() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_FIN).get(this.fin()); - } - - @Override - public RocketBooster getBooster() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_BOOSTER).get(this.booster()); - } - - @Override - public RocketEngine getEngine() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_ENGINE).get(this.engine()); - } - - @Override - public RocketUpgrade getUpgrade() { - return this.level().registryAccess().registryOrThrow(RocketRegistries.ROCKET_UPGRADE).get(this.upgrade()); + public @NotNull RocketData getData() { + return this.entityData.get(ROCKET_DATA); } @Override @@ -262,11 +225,8 @@ public FuelDock getLandingPad() { @Override public void onPadDestroyed() { - RocketData data = RocketData.create(this.color(), this.cone(), this.body(), this.fin(), this.booster(), this.engine(), this.upgrade()); - CompoundTag tag = new CompoundTag(); - data.toNbt(tag); var rocket = new ItemStack(GCItems.ROCKET); - rocket.setTag(tag); + rocket.applyComponents(this.getData().asPatch()); this.spawnAtLocation(rocket); this.remove(RemovalReason.DISCARDED); } @@ -284,11 +244,8 @@ public boolean inFlight() { @Override public void dropItems(DamageSource damageSource, boolean exploded) { if (!exploded) { - RocketData data = RocketData.create(this.color(), this.cone(), this.body(), this.fin(), this.booster(), this.engine(), this.upgrade()); - CompoundTag tag = new CompoundTag(); - data.toNbt(tag); var rocket = new ItemStack(GCItems.ROCKET); - rocket.setTag(tag); + rocket.applyComponents(this.getData().asPatch()); this.spawnAtLocation(rocket); } this.remove(RemovalReason.KILLED); @@ -352,23 +309,16 @@ protected void reapplyPosition() { } @Override - protected void defineSynchedData() { - super.defineSynchedData(); - this.entityData.define(STAGE, LaunchStage.IDLE); - this.entityData.define(SPEED, 0.0f); + protected void defineSynchedData(SynchedEntityData.Builder builder) { + super.defineSynchedData(builder); + builder.define(STAGE, LaunchStage.IDLE); + builder.define(SPEED, 0.0f); - this.entityData.define(COLOR, -1); + builder.define(TIME_AS_STATE, 0); - this.entityData.define(TIME_AS_STATE, 0); + builder.define(ROCKET_DATA, RocketData.DEFAULT_ROCKET); - this.entityData.define(ROCKET_CONE, NULL_ID); - this.entityData.define(ROCKET_BODY, NULL_ID); - this.entityData.define(ROCKET_FIN, NULL_ID); - this.entityData.define(ROCKET_BOOSTER, NULL_ID); - this.entityData.define(ROCKET_ENGINE, NULL_ID); - this.entityData.define(ROCKET_UPGRADE, NULL_ID); - - this.entityData.define(FUEL, 0L); + builder.define(FUEL, 0L); } @Override @@ -392,8 +342,8 @@ public boolean isPickable() { //Required to interact with the entity } @Override - protected Vector3f getPassengerAttachmentPoint(Entity entity, EntityDimensions dimensions, float scale) { - return new Vector3f(0F, 1.5F, 0F); + protected Vec3 getPassengerAttachmentPoint(Entity entity, EntityDimensions dimensions, float scale) { + return new Vec3(0F, 1.5F, 0F); } @Override @@ -472,7 +422,7 @@ public void tick() { if (this.getLinkedPad() != BlockPos.ZERO) { if (passenger instanceof ServerPlayer player) { GCServerPlayer gcPlayer = GCServerPlayer.get(player); - gcPlayer.setRocketData(this); + gcPlayer.setRocketData(this.getData()); gcPlayer.setLaunchpadStack(new ItemStack(GCBlocks.ROCKET_LAUNCH_PAD, 9)); } this.linkedPad.setDockedEntity(null); @@ -528,30 +478,17 @@ && level().getBlockState(getLinkedPad().offset(x, 0, z)).getValue(AbstractLaunch } if (this.position().y() >= 1200.0F) { - CelestialBody> body = CelestialBody.getByDimension(this.level()).orElse(null); - int id; - if (body != null) { - id = level().registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).getId(body); - } else { - id = -1; - } for (Entity entity : getPassengers()) { if (entity instanceof ServerPlayer serverPlayer) { GCServerPlayer gcPlayer = GCServerPlayer.get(serverPlayer); gcPlayer.setRocketStacks(NonNullList.withSize(2, ItemStack.EMPTY)); // TODO un-hardcode this - RocketData data = RocketData.create(this.color(), this.cone(), this.body(), this.fin(), this.booster(), this.engine(), this.upgrade()); gcPlayer.setFuel(this.tank.getAmount()); - CompoundTag tag = new CompoundTag(); - data.toNbt(tag); var rocket = new ItemStack(GCItems.ROCKET); - rocket.setTag(tag); + RocketData data = this.getData(); + rocket.applyComponents(data.asPatch()); gcPlayer.setRocketItem(rocket); serverPlayer.galacticraft$openCelestialScreen(data); - CompoundTag nbt = new CompoundTag(); - data.toNbt(nbt); - FriendlyByteBuf buf = PacketByteBufs.create().writeNbt(nbt); - buf.writeInt(id); - ServerPlayNetworking.send(serverPlayer, Constant.Packet.PLANET_MENU_PACKET, buf); + ServerPlayNetworking.send(serverPlayer, new OpenCelestialScreenPayload(this.getData(), this.level().galacticraft$getCelestialBody())); remove(RemovalReason.UNLOADED_WITH_PLAYER); break; } @@ -663,42 +600,9 @@ public void setSpeed(float speed) { this.getEntityData().set(SPEED, speed); } - public void setCone(ResourceLocation id) { - this.getEntityData().set(ROCKET_CONE, id); - } - - public void setBody(ResourceLocation id) { - this.getEntityData().set(ROCKET_BODY, id); - } - - public void setFin(ResourceLocation id) { - this.getEntityData().set(ROCKET_FIN, id); - } - - public void setBooster(ResourceLocation id) { - this.getEntityData().set(ROCKET_BOOSTER, id); - } - - public void setEngine(ResourceLocation id) { - this.getEntityData().set(ROCKET_ENGINE, id); - } - - public void setUpgrade(ResourceLocation id) { - this.getEntityData().set(ROCKET_UPGRADE, id); - } - @Override protected void readAdditionalSaveData(CompoundTag tag) { - this.setCone(tag.contains("Cone") ? new ResourceLocation(tag.getString("Cone")) : null); - this.setBody(tag.contains("Body") ? new ResourceLocation(tag.getString("Body")) : null); - this.setFin(tag.contains("Fin") ? new ResourceLocation(tag.getString("Fin")) : null); - this.setBooster(tag.contains("Booster") ? new ResourceLocation(tag.getString("Booster")) : null); - this.setEngine(tag.contains("Engine") ? new ResourceLocation(tag.getString("Engine")) : null); - this.setUpgrade(tag.contains("Upgrade") ? new ResourceLocation(tag.getString("Upgrade")) : null); - - if (tag.contains("Color")) { - this.setColor(tag.getInt("Color")); - } + this.setData(RocketData.CODEC.decode(NbtOps.INSTANCE, tag.getCompound("data")).mapOrElse(Pair::getFirst, e -> RocketData.DEFAULT_ROCKET)); if (tag.contains("Stage")) { this.setLaunchStage(LaunchStage.valueOf(tag.getString("Stage"))); @@ -708,42 +612,26 @@ protected void readAdditionalSaveData(CompoundTag tag) { setSpeed(tag.getFloat("Speed")); } - BlockEntity be = this.level().getBlockEntity(new BlockPos(tag.getInt("lX"), tag.getInt("lY"), tag.getInt("lZ"))); + BlockEntity be = this.level().getBlockEntity(BlockPos.of(tag.getLong("Linked"))); if (be instanceof FuelDock pad) this.linkedPad = pad; } - @Override - @ApiStatus.Internal - public void setLevel(Level level) { - super.setLevel(level); - } - - public void setColor(int color) { - this.getEntityData().set(COLOR, color); - } - @Override protected void addAdditionalSaveData(CompoundTag tag) { - if (this.cone() != null) tag.putString("Cone", Objects.requireNonNull(this.cone()).toString()); - if (this.body() != null) tag.putString("Body", Objects.requireNonNull(this.body()).toString()); - if (this.fin() != null) tag.putString("Fin", Objects.requireNonNull(this.fin()).toString()); - if (this.booster() != null) tag.putString("Booster", Objects.requireNonNull(this.booster()).toString()); - if (this.engine() != null) tag.putString("Engine", Objects.requireNonNull(this.engine()).toString()); - if (this.upgrade() != null) tag.putString("Upgrade", Objects.requireNonNull(this.upgrade()).toString()); + CompoundTag data = new CompoundTag(); + RocketData.CODEC.encode(this.getData(), NbtOps.INSTANCE, data); + tag.put("data", data); tag.putString("Stage", getLaunchStage().name()); tag.putDouble("Speed", this.getSpeed()); - tag.putInt("Color", this.color()); - tag.putInt("lX", linkedPad.getDockPos().getX()); - tag.putInt("lY", linkedPad.getDockPos().getY()); - tag.putInt("lZ", linkedPad.getDockPos().getZ()); + if (this.linkedPad != null) tag.putLong("Linked", this.linkedPad.getDockPos().asLong()); } @Override - public @NotNull Packet getAddEntityPacket() { - return ServerPlayNetworking.createS2CPacket(new RocketSpawnPacket(getType(), getId(), this.uuid, getX(), getY(), getZ(), getXRot(), getYRot(), this)); + public Packet getAddEntityPacket(ServerEntity serverEntity) { + return (Packet)ServerPlayNetworking.createS2CPacket(new RocketSpawnPacket(getType(), getId(), this.uuid, getX(), getY(), getZ(), getXRot(), getYRot(), this.getData())); } public int getTimeBeforeLaunch() { @@ -755,73 +643,41 @@ public int getPreLaunchWait() { } @Override - public int color() { - return this.getEntityData().get(COLOR); + public @Nullable Holder> cone() { + return maybeGet(this.getData().cone()); } @Override - public @Nullable ResourceKey> cone() { - ResourceLocation location = this.getEntityData().get(ROCKET_CONE); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_CONE, location); + public @Nullable Holder> body() { + return maybeGet(this.getData().body()); } @Override - public @Nullable ResourceKey> body() { - ResourceLocation location = this.getEntityData().get(ROCKET_BODY); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_BODY, location); + public @Nullable Holder> fin() { + return maybeGet(this.getData().fin()); } @Override - public @Nullable ResourceKey> fin() { - ResourceLocation location = this.getEntityData().get(ROCKET_FIN); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_FIN, location); + public @Nullable Holder> booster() { + return maybeGet(this.getData().booster()); } @Override - public @Nullable ResourceKey> booster() { - ResourceLocation location = this.getEntityData().get(ROCKET_BOOSTER); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_BOOSTER, location); + public @Nullable Holder> engine() { + return maybeGet(this.getData().engine()); } @Override - public @Nullable ResourceKey> engine() { - ResourceLocation location = this.getEntityData().get(ROCKET_ENGINE); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_ENGINE, location); + public @Nullable Holder> upgrade() { + return maybeGet(this.getData().upgrade()); } - @Override - public @Nullable ResourceKey> upgrade() { - ResourceLocation location = this.getEntityData().get(ROCKET_UPGRADE); - if (location == null || NULL_ID.equals(location)) { - return null; - } - return ResourceKey.create(RocketRegistries.ROCKET_UPGRADE, location); + private @Nullable Holder maybeGet(@Nullable EitherHolder holder) { + return holder != null ? holder.unwrap(this.registryAccess()).orElse(null) : null; } public void setData(RocketData data) { - this.setColor(data.color()); - - this.setCone(data.cone() != null ? data.cone().location() : null); - this.setBody(data.body() != null ? data.body().location() : null); - this.setFin(data.fin() != null ? data.fin().location() : null); - this.setBooster(data.booster() != null ? data.booster().location() : null); - this.setEngine(data.engine() != null ? data.engine().location() : null); - this.setUpgrade(data.upgrade() != null ? data.upgrade().location() : null); + this.entityData.set(ROCKET_DATA, data); } @Override @@ -853,4 +709,9 @@ public void inputTick(float leftImpulse, float forwardImpulse, boolean up, boole public boolean shouldIgnoreShiftExit() { return getLaunchStage().ordinal() >= LaunchStage.LAUNCHED.ordinal(); } + + @Override + public void setLevel(Level level) { // public for render + super.setLevel(level); + } } diff --git a/src/main/java/dev/galacticraft/mod/content/entity/orbital/lander/LanderEntity.java b/src/main/java/dev/galacticraft/mod/content/entity/orbital/lander/LanderEntity.java index 06806b217..1420285ea 100644 --- a/src/main/java/dev/galacticraft/mod/content/entity/orbital/lander/LanderEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/entity/orbital/lander/LanderEntity.java @@ -31,7 +31,7 @@ import dev.galacticraft.mod.content.GCFluids; import dev.galacticraft.mod.content.entity.ControllableEntity; import dev.galacticraft.mod.content.entity.ScalableFuelLevel; -import dev.galacticraft.mod.network.packets.ResetThirdPersonPacket; +import dev.galacticraft.mod.network.s2c.ResetPerspectivePacket; import dev.galacticraft.mod.particle.GCParticleTypes; import dev.galacticraft.mod.screen.ParachestMenu; import dev.galacticraft.mod.util.FluidUtil; @@ -44,9 +44,9 @@ import net.fabricmc.fabric.api.transfer.v1.item.InventoryStorage; import net.fabricmc.fabric.api.transfer.v1.storage.Storage; import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; +import net.minecraft.core.Holder; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; import net.minecraft.world.Container; @@ -63,11 +63,10 @@ import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; -import org.joml.Vector3f; import java.util.List; -public class LanderEntity extends AbstractLanderEntity implements Container, ScalableFuelLevel, ControllableEntity, HasCustomInventoryScreen, IgnoreShift, ExtendedScreenHandlerFactory { +public class LanderEntity extends AbstractLanderEntity implements Container, ScalableFuelLevel, ControllableEntity, HasCustomInventoryScreen, IgnoreShift, ExtendedScreenHandlerFactory { public static final float NO_PARTICLES = 0.0000001F; protected NonNullList inventory; protected InventoryStorage storage; @@ -105,20 +104,20 @@ public LanderEntity(ServerPlayer player) { @Override protected void readAdditionalSaveData(CompoundTag tag) { - tank.readNbt(tag); + tank.readNbt(tag, this.registryAccess()); this.inventory = NonNullList.withSize(tag.getInt("size"), ItemStack.EMPTY); this.storage = InventoryStorage.of(this, null); - ContainerHelper.loadAllItems(tag, this.inventory); + ContainerHelper.loadAllItems(tag, this.inventory, this.registryAccess()); this.lastDeltaY = this.getDeltaMovement().y; } @Override protected void addAdditionalSaveData(CompoundTag tag) { - tank.writeNbt(tag); + tank.writeNbt(tag, this.registryAccess()); tag.putInt("size", this.inventory.size()); - ContainerHelper.saveAllItems(tag, this.inventory); + ContainerHelper.saveAllItems(tag, this.inventory, this.registryAccess()); } public Pair getParticlePosition() { @@ -236,7 +235,7 @@ public void onGroundHit() { for (Entity entity : this.getPassengers()) { entity.removeVehicle(); if (entity instanceof ServerPlayer player) { - ServerPlayNetworking.send(player, new ResetThirdPersonPacket()); + ServerPlayNetworking.send(player, new ResetPerspectivePacket()); } entity.setDeltaMovement(Vec3.ZERO); entity.setPos(entity.getX(), this.getY() + 2.25, entity.getZ()); @@ -254,7 +253,8 @@ public void tickOnGround() { public void tickInAir() { if (!this.onGround()) { - this.addDeltaMovement(new Vec3(0, CelestialBody.getByDimension(level()).map(CelestialBody::gravity).orElse(1F) * -0.008D, 0)); + Holder> holder = this.level().galacticraft$getCelestialBody(); + this.addDeltaMovement(new Vec3(0, (holder != null ? holder.value().gravity() : 1.0d) * -0.008D, 0)); } double motY = -1 * Math.sin(getXRot() / Constant.RADIANS_TO_DEGREES); @@ -375,12 +375,6 @@ public void clearContent() { this.inventory.clear(); } - @Override - public void writeScreenOpeningData(ServerPlayer player, FriendlyByteBuf buf) { - buf.writeBoolean(false); - buf.writeVarInt(this.inventory.size()); - } - @Nullable @Override public AbstractContainerMenu createMenu(int containerId, Inventory inventory, Player player) { @@ -418,8 +412,8 @@ public boolean shouldSpawnParticles() { } @Override - protected Vector3f getPassengerAttachmentPoint(Entity passenger, EntityDimensions dimensions, float scaleFactor) { - return new Vector3f(0, 1.5F, 0); + protected Vec3 getPassengerAttachmentPoint(Entity passenger, EntityDimensions dimensions, float scaleFactor) { + return new Vec3(0, 1.5F, 0); } @Override @@ -455,4 +449,9 @@ public void inputTick(float leftImpulse, float forwardImpulse, boolean up, boole public boolean shouldIgnoreShiftExit() { return !onGround(); } + + @Override + public ParachestMenu.OpeningData getScreenOpeningData(ServerPlayer player) { + return new ParachestMenu.OpeningData(this.inventory.size()); + } } diff --git a/src/main/java/dev/galacticraft/mod/content/item/BatteryItem.java b/src/main/java/dev/galacticraft/mod/content/item/BatteryItem.java index 29c3d7f06..86b42bfac 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/BatteryItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/BatteryItem.java @@ -25,14 +25,10 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.util.DrawableUtil; import dev.galacticraft.mod.util.Translations; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.NotNull; import team.reborn.energy.api.EnergyStorage; import team.reborn.energy.api.base.SimpleEnergyItem; @@ -51,9 +47,10 @@ public BatteryItem(Properties settings, long capacity, long transfer) { } @Override - public void appendHoverText(ItemStack stack, Level world, List lines, TooltipFlag context) { - lines.add(Component.translatable(Translations.Tooltip.ENERGY_REMAINING, DrawableUtil.getEnergyDisplay(getStoredEnergy(stack)).setStyle(Constant.Text.Color.getStorageLevelStyle(1.0 - ((double)getStoredEnergy(stack)) / ((double)this.getEnergyCapacity(stack)))))); - super.appendHoverText(stack, world, lines, context); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); + + tooltip.add(Component.translatable(Translations.Tooltip.ENERGY_REMAINING, DrawableUtil.getEnergyDisplay(getStoredEnergy(stack)).setStyle(Constant.Text.Color.getStorageLevelStyle(1.0 - ((double)getStoredEnergy(stack)) / ((double)this.getEnergyCapacity(stack)))))); } @Override @@ -72,12 +69,6 @@ public int getBarColor(ItemStack stack) { return ((int)(255 * scale) << 16) + (((int)(255 * ( 1.0 - scale))) << 8); } - @Override - public void onCraftedBy(@NotNull ItemStack battery, Level world, Player player) { - CompoundTag batteryTag = battery.getOrCreateTag(); - battery.setTag(batteryTag); - } - @Override public int getEnchantmentValue() { return -1; diff --git a/src/main/java/dev/galacticraft/mod/content/item/BrittleSwordItem.java b/src/main/java/dev/galacticraft/mod/content/item/BrittleSwordItem.java index 1e6f0360c..fd21260cb 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/BrittleSwordItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/BrittleSwordItem.java @@ -32,14 +32,14 @@ import net.minecraft.world.level.block.state.BlockState; public class BrittleSwordItem extends SwordItem { - public BrittleSwordItem(Tier toolMaterial, int attackDamage, float attackSpeed, Properties settings) { - super(toolMaterial, attackDamage, attackSpeed, settings); + public BrittleSwordItem(Tier toolMaterial, Properties settings) { + super(toolMaterial, settings); } @Override public boolean mineBlock(ItemStack stack, Level world, BlockState blockState, BlockPos blockPos, LivingEntity entityLiving) { if (blockState.getDestroySpeed(world, blockPos) > 0.2001F) { - stack.hurtAndBreak(2, entityLiving, (livingEntity) -> livingEntity.broadcastBreakEvent(EquipmentSlot.MAINHAND)); + stack.hurtAndBreak(2, entityLiving, EquipmentSlot.MAINHAND); } return true; } diff --git a/src/main/java/dev/galacticraft/mod/content/item/BuggyItem.java b/src/main/java/dev/galacticraft/mod/content/item/BuggyItem.java index 41cc35b50..2e91ee682 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/BuggyItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/BuggyItem.java @@ -26,8 +26,6 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; import java.util.List; @@ -37,7 +35,7 @@ public BuggyItem(Properties properties) { } @Override - public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag context) { - + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); } } diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterial.java b/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterial.java deleted file mode 100644 index f78bcffc4..000000000 --- a/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterial.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.content.item; - -import com.google.common.base.Suppliers; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.world.item.ArmorItem; -import net.minecraft.world.item.ArmorMaterial; -import net.minecraft.world.item.crafting.Ingredient; - -import java.util.function.Supplier; - -public enum GCArmorMaterial implements ArmorMaterial { - SENSOR_GLASSES("sensor_glasses", - 0, - new int[]{0, 0, 0, 0}, - 0, - SoundEvents.ARMOR_EQUIP_IRON, - 0.0f, - () -> Ingredient.of(GCItems.METEORIC_IRON_INGOT), - 0.0f - ), // TODO: add actual functionality - HEAVY_DUTY( - "heavy_duty", - 30, - new int[]{3, 6, 8, 3}, - 9, - SoundEvents.ARMOR_EQUIP_IRON, - 1.0f, - () -> Ingredient.of(GCItems.COMPRESSED_STEEL), - 1.0f - ), - DESH("desh", 42, - new int[]{4, 7, 9, 4}, - 12, - SoundEvents.ARMOR_EQUIP_IRON, - 3.0f, - () -> Ingredient.of(GCItems.DESH_INGOT), - 2.0f - ), - TITANIUM( - "titanium", - 26, new int[]{5, 7, 10, 5}, - 20, - SoundEvents.ARMOR_EQUIP_IRON, - 1.0f, - () -> Ingredient.of(GCItems.COMPRESSED_TITANIUM), - 0.0f - ); - - private static final int[] BASE_DURABILITY = {462, 672, 630, 546}; - private final String name; - private final int durabilityMultiplier; - private final int[] protectionValues; - private final int enchantability; - private final SoundEvent equipSound; - private final float toughness; - private final Supplier repairIngredient; - private final float knockbackResistance; - - GCArmorMaterial(String name, int durabilityMultiplier, int[] protectionValues, int enchantability, SoundEvent equipSound, float toughness, Supplier repairIngredient, float knockbackResistance) { - this.name = name; - this.durabilityMultiplier = durabilityMultiplier; - this.protectionValues = protectionValues; - this.enchantability = enchantability; - this.equipSound = equipSound; - this.toughness = toughness; - this.repairIngredient = Suppliers.memoize(repairIngredient::get); - this.knockbackResistance = knockbackResistance; - } - - @Override - public int getDurabilityForType(ArmorItem.Type type) { - return BASE_DURABILITY[type.getSlot().getIndex()] * this.durabilityMultiplier; - } - - @Override - public int getDefenseForType(ArmorItem.Type type) { - return this.protectionValues[type.getSlot().getIndex()]; - } - - @Override - public int getEnchantmentValue() { - return this.enchantability; - } - - @Override - public SoundEvent getEquipSound() { - return this.equipSound; - } - - @Override - public Ingredient getRepairIngredient() { - return this.repairIngredient.get(); - } - - @Override - public float getKnockbackResistance() { - return this.knockbackResistance; - } - - @Override - public String getName() { - return this.name; - } - - @Override - public float getToughness() { - return this.toughness; - } -} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterials.java b/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterials.java new file mode 100644 index 000000000..bc78b8bb0 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/content/item/GCArmorMaterials.java @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.content.item; + +import dev.galacticraft.mod.Constant; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.crafting.Ingredient; + +import java.util.EnumMap; +import java.util.List; +import java.util.function.Supplier; + +public class GCArmorMaterials { + public static final Holder SENSOR_GLASSES = register(Constant.id("sensor_glasses"), 0, 0, 0, 0, 0, 9, SoundEvents.ARMOR_EQUIP_IRON, 0.0F, 0.0F, () -> Ingredient.of(GCItems.METEORIC_IRON_INGOT)); + public static final Holder HEAVY_DUTY = register(Constant.id("heavy_duty"), 3, 6, 8, 3, 30, 9, SoundEvents.ARMOR_EQUIP_IRON, 1.0F, 1.0F, () -> Ingredient.of(GCItems.COMPRESSED_STEEL)); + public static final Holder DESH = register(Constant.id("desh"), 4, 7, 9, 4, 42, 12, SoundEvents.ARMOR_EQUIP_IRON, 3.0F, 2.0F, () -> Ingredient.of(GCItems.DESH_INGOT)); + public static final Holder TITANIUM = register(Constant.id("titanium"), 5, 7, 10, 5, 26, 20, SoundEvents.ARMOR_EQUIP_IRON, 1.0F, 0.0F, () -> Ingredient.of(GCItems.COMPRESSED_TITANIUM)); + + private static Holder register(ResourceLocation id, + int helmet, + int chest, + int leggings, + int boots, + int body, + int enchantability, + Holder equipSound, + float toughness, + float knockbackResistance, + Supplier repairIngredient) { + return register(id, helmet, chest, leggings, boots, body, enchantability, equipSound, toughness, knockbackResistance, repairIngredient, List.of(new ArmorMaterial.Layer(id))); + } + + private static Holder register(ResourceLocation id, + int helmet, + int chest, + int leggings, + int boots, + int body, + int enchantability, + Holder equipSound, + float toughness, + float knockbackResistance, + Supplier repairIngredient, + List layers) { + EnumMap defense = new EnumMap<>(ArmorItem.Type.class); + defense.put(ArmorItem.Type.HELMET, helmet); + defense.put(ArmorItem.Type.CHESTPLATE, chest); + defense.put(ArmorItem.Type.LEGGINGS, leggings); + defense.put(ArmorItem.Type.BOOTS, boots); + defense.put(ArmorItem.Type.BODY, body); + + return Registry.registerForHolder( + BuiltInRegistries.ARMOR_MATERIAL, + id, + new ArmorMaterial(defense, enchantability, equipSound, repairIngredient, layers, toughness, knockbackResistance) + ); + } +} \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java index 433787466..248a7f0ed 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCCreativeModeTabs.java @@ -22,6 +22,7 @@ package dev.galacticraft.mod.content.item; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.api.gas.Gases; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlockRegistry; @@ -34,8 +35,8 @@ import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; import net.fabricmc.fabric.api.transfer.v1.transaction.Transaction; import net.minecraft.core.Registry; +import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.DyeColor; @@ -46,7 +47,7 @@ public class GCCreativeModeTabs { public static final CreativeModeTab ITEMS_GROUP = FabricItemGroup .builder() - .icon(() -> new ItemStack(GCItems.CANVAS)) + .icon(() -> new ItemStack(CANVAS)) .title(Component.translatable(Translations.ItemGroup.ITEMS)) .displayItems((parameters, output) -> { // todo: add rockets here // GEAR @@ -57,7 +58,7 @@ public class GCCreativeModeTabs { PlaceholderItemStorage itemStorage = new PlaceholderItemStorage(); ContainerItemContext context = ContainerItemContext.ofSingleSlot(itemStorage); - output.accept(SMALL_OXYGEN_TANK); + output.accept(SMALL_OXYGEN_TANK);//todo: set directly itemStorage.setItem(SMALL_OXYGEN_TANK); context.find(FluidStorage.ITEM).insert(FluidVariant.of(Gases.OXYGEN), Long.MAX_VALUE, t); output.accept(itemStorage.variant.toStack()); @@ -78,16 +79,15 @@ public class GCCreativeModeTabs { output.accept(FREQUENCY_MODULE); PARACHUTE.colorMap().values().forEach(output::accept); -// output.accept(SPACE_EMERGENCY_KIT); +// result.accept(SPACE_EMERGENCY_KIT); output.accept(SHIELD_CONTROLLER); // ROCKETS - output.accept(ROCKET.getDefaultInstance()); + output.accept(ROCKET); - var rocket = ROCKET.getDefaultInstance(); - CompoundTag tag = rocket.getOrCreateTag(); - tag.putBoolean("creative", true); - output.accept(rocket); + var creativeRocket = new ItemStack(ROCKET); + creativeRocket.set(GCDataComponents.CREATIVE, true); + output.accept(creativeRocket); // MATERIALS output.accept(TIN_NUGGET); @@ -156,7 +156,6 @@ public class GCCreativeModeTabs { output.accept(AMBIENT_THERMAL_CONTROLLER); // FOOD - output.accept(MOON_BERRIES); output.accept(CHEESE_CURD); output.accept(CHEESE_SLICE); @@ -368,12 +367,7 @@ public class GCCreativeModeTabs { for (DyeColor color : DyeColor.values()) { ItemStack stack = new ItemStack(GCBlocks.PARACHEST); - CompoundTag itemTag = new CompoundTag(); - CompoundTag blockStateTag = new CompoundTag(); - itemTag.put("BlockStateTag", blockStateTag); - blockStateTag.putString("color", color.getName()); - - stack.setTag(itemTag); + stack.set(DataComponents.BASE_COLOR, color); output.accept(stack); } diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCFoodComponent.java b/src/main/java/dev/galacticraft/mod/content/item/GCFoodComponent.java index 8eca03177..4c5efb50c 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCFoodComponent.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCFoodComponent.java @@ -25,17 +25,16 @@ import net.minecraft.world.food.FoodProperties; public class GCFoodComponent { - public static final FoodProperties MOON_BERRIES = new FoodProperties.Builder().nutrition(1).saturationMod(0.0F).build(); - public static final FoodProperties CHEESE_CURD = new FoodProperties.Builder().nutrition(1).saturationMod(0.1F).build(); - public static final FoodProperties CHEESE_SLICE = new FoodProperties.Builder().nutrition(2).saturationMod(0.1F).build(); - public static final FoodProperties BURGER_BUN = new FoodProperties.Builder().nutrition(2).saturationMod(0.3F).build(); - public static final FoodProperties GROUND_BEEF = new FoodProperties.Builder().nutrition(3).saturationMod(0.6F).meat().build(); - public static final FoodProperties BEEF_PATTY = new FoodProperties.Builder().nutrition(4).saturationMod(0.8F).meat().build(); - public static final FoodProperties CHEESEBURGER = new FoodProperties.Builder().nutrition(14).saturationMod(4.0F).build(); + public static final FoodProperties CHEESE_CURD = new FoodProperties.Builder().nutrition(1).saturationModifier(0.1F).build(); + public static final FoodProperties CHEESE_SLICE = new FoodProperties.Builder().nutrition(2).saturationModifier(0.1F).build(); + public static final FoodProperties BURGER_BUN = new FoodProperties.Builder().nutrition(2).saturationModifier(0.3F).build(); + public static final FoodProperties GROUND_BEEF = new FoodProperties.Builder().nutrition(3).saturationModifier(0.6F).build(); + public static final FoodProperties BEEF_PATTY = new FoodProperties.Builder().nutrition(4).saturationModifier(0.8F).build(); + public static final FoodProperties CHEESEBURGER = new FoodProperties.Builder().nutrition(14).saturationModifier(4.0F).build(); - public static final FoodProperties DEHYDRATED_APPLE = new FoodProperties.Builder().nutrition(8).saturationMod(0.3F).build(); - public static final FoodProperties DEHYDRATED_CARROT = new FoodProperties.Builder().nutrition(8).saturationMod(0.6F).build(); - public static final FoodProperties DEHYDRATED_MELON = new FoodProperties.Builder().nutrition(4).saturationMod(0.3F).build(); - public static final FoodProperties DEHYDRATED_POTATO = new FoodProperties.Builder().nutrition(2).saturationMod(0.3F).build(); - public static final FoodProperties CANNED_BEEF = new FoodProperties.Builder().nutrition(8).saturationMod(0.6F).build(); + public static final FoodProperties DEHYDRATED_APPLE = new FoodProperties.Builder().nutrition(8).saturationModifier(0.3F).build(); + public static final FoodProperties DEHYDRATED_CARROT = new FoodProperties.Builder().nutrition(8).saturationModifier(0.6F).build(); + public static final FoodProperties DEHYDRATED_MELON = new FoodProperties.Builder().nutrition(4).saturationModifier(0.3F).build(); + public static final FoodProperties DEHYDRATED_POTATO = new FoodProperties.Builder().nutrition(2).saturationModifier(0.3F).build(); + public static final FoodProperties CANNED_BEEF = new FoodProperties.Builder().nutrition(8).saturationModifier(0.6F).build(); } diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java index 26dfbe020..055fc9739 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCItems.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCItems.java @@ -22,13 +22,13 @@ package dev.galacticraft.mod.content.item; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.GCFluids; import dev.galacticraft.mod.content.GCRegistry; import dev.galacticraft.mod.content.GCRocketParts; import dev.galacticraft.mod.util.Translations; -import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.minecraft.core.Direction; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; @@ -209,9 +209,9 @@ public class GCItems { // MISC MACHINES public static final Item CRYOGENIC_CHAMBER = new BlockItem(GCBlocks.CRYOGENIC_CHAMBER, new Item.Properties()); public static final Item PLAYER_TRANSPORT_TUBE = new BlockItem(GCBlocks.PLAYER_TRANSPORT_TUBE, new Item.Properties()); - public static final Item AIR_LOCK_FRAME = new BlockItem(GCBlocks.AIR_LOCK_FRAME, new FabricItemSettings()); - public static final Item AIR_LOCK_CONTROLLER = new BlockItem(GCBlocks.AIR_LOCK_CONTROLLER, new FabricItemSettings()); - public static final Item AIR_LOCK_SEAL = new BlockItem(GCBlocks.AIR_LOCK_SEAL, new FabricItemSettings()); + public static final Item AIR_LOCK_FRAME = new BlockItem(GCBlocks.AIR_LOCK_FRAME, new Item.Properties()); + public static final Item AIR_LOCK_CONTROLLER = new BlockItem(GCBlocks.AIR_LOCK_CONTROLLER, new Item.Properties()); + public static final Item AIR_LOCK_SEAL = new BlockItem(GCBlocks.AIR_LOCK_SEAL, new Item.Properties()); // MACHINES public static final Item CIRCUIT_FABRICATOR = new BlockItem(GCBlocks.CIRCUIT_FABRICATOR, new Item.Properties()); @@ -302,7 +302,6 @@ public class GCItems { public static final Item AMBIENT_THERMAL_CONTROLLER = new Item(new Item.Properties()); // FOOD - public static final Item MOON_BERRIES = new ItemNameBlockItem(GCBlocks.MOON_BERRY_BUSH, new Item.Properties().food(GCFoodComponent.MOON_BERRIES)); public static final Item CHEESE_CURD = new Item(new Item.Properties().food(GCFoodComponent.CHEESE_CURD)); public static final Item CHEESE_SLICE = ITEMS.register(Constant.Item.CHEESE_SLICE, new Item(new Item.Properties().food(GCFoodComponent.CHEESE_SLICE))); @@ -327,41 +326,41 @@ public class GCItems { public static final Item HOT_THROWABLE_METEOR_CHUNK = new HotThrowableMeteorChunkItem(new Item.Properties().stacksTo(16)); // ARMOR - public static final Item HEAVY_DUTY_HELMET = new ArmorItem(GCArmorMaterial.HEAVY_DUTY, ArmorItem.Type.HELMET, new Item.Properties()); - public static final Item HEAVY_DUTY_CHESTPLATE = new ArmorItem(GCArmorMaterial.HEAVY_DUTY, ArmorItem.Type.CHESTPLATE, new Item.Properties()); - public static final Item HEAVY_DUTY_LEGGINGS = new ArmorItem(GCArmorMaterial.HEAVY_DUTY, ArmorItem.Type.LEGGINGS, new Item.Properties()); - public static final Item HEAVY_DUTY_BOOTS = new ArmorItem(GCArmorMaterial.HEAVY_DUTY, ArmorItem.Type.BOOTS, new Item.Properties()); + public static final Item HEAVY_DUTY_HELMET = new ArmorItem(GCArmorMaterials.HEAVY_DUTY, ArmorItem.Type.HELMET, new Item.Properties()); + public static final Item HEAVY_DUTY_CHESTPLATE = new ArmorItem(GCArmorMaterials.HEAVY_DUTY, ArmorItem.Type.CHESTPLATE, new Item.Properties()); + public static final Item HEAVY_DUTY_LEGGINGS = new ArmorItem(GCArmorMaterials.HEAVY_DUTY, ArmorItem.Type.LEGGINGS, new Item.Properties()); + public static final Item HEAVY_DUTY_BOOTS = new ArmorItem(GCArmorMaterials.HEAVY_DUTY, ArmorItem.Type.BOOTS, new Item.Properties()); - public static final Item DESH_HELMET = new ArmorItem(GCArmorMaterial.DESH, ArmorItem.Type.HELMET, new Item.Properties()); - public static final Item DESH_CHESTPLATE = new ArmorItem(GCArmorMaterial.DESH, ArmorItem.Type.CHESTPLATE, new Item.Properties()); - public static final Item DESH_LEGGINGS = new ArmorItem(GCArmorMaterial.DESH, ArmorItem.Type.LEGGINGS, new Item.Properties()); - public static final Item DESH_BOOTS = new ArmorItem(GCArmorMaterial.DESH, ArmorItem.Type.BOOTS, new Item.Properties()); + public static final Item DESH_HELMET = new ArmorItem(GCArmorMaterials.DESH, ArmorItem.Type.HELMET, new Item.Properties()); + public static final Item DESH_CHESTPLATE = new ArmorItem(GCArmorMaterials.DESH, ArmorItem.Type.CHESTPLATE, new Item.Properties()); + public static final Item DESH_LEGGINGS = new ArmorItem(GCArmorMaterials.DESH, ArmorItem.Type.LEGGINGS, new Item.Properties()); + public static final Item DESH_BOOTS = new ArmorItem(GCArmorMaterials.DESH, ArmorItem.Type.BOOTS, new Item.Properties()); - public static final Item TITANIUM_HELMET = new ArmorItem(GCArmorMaterial.TITANIUM, ArmorItem.Type.HELMET, new Item.Properties()); - public static final Item TITANIUM_CHESTPLATE = new ArmorItem(GCArmorMaterial.TITANIUM, ArmorItem.Type.CHESTPLATE, new Item.Properties()); - public static final Item TITANIUM_LEGGINGS = new ArmorItem(GCArmorMaterial.TITANIUM, ArmorItem.Type.LEGGINGS, new Item.Properties()); - public static final Item TITANIUM_BOOTS = new ArmorItem(GCArmorMaterial.TITANIUM, ArmorItem.Type.BOOTS, new Item.Properties()); + public static final Item TITANIUM_HELMET = new ArmorItem(GCArmorMaterials.TITANIUM, ArmorItem.Type.HELMET, new Item.Properties()); + public static final Item TITANIUM_CHESTPLATE = new ArmorItem(GCArmorMaterials.TITANIUM, ArmorItem.Type.CHESTPLATE, new Item.Properties()); + public static final Item TITANIUM_LEGGINGS = new ArmorItem(GCArmorMaterials.TITANIUM, ArmorItem.Type.LEGGINGS, new Item.Properties()); + public static final Item TITANIUM_BOOTS = new ArmorItem(GCArmorMaterials.TITANIUM, ArmorItem.Type.BOOTS, new Item.Properties()); - public static final Item SENSOR_GLASSES = new ArmorItem(GCArmorMaterial.SENSOR_GLASSES, ArmorItem.Type.HELMET, new Item.Properties()); + public static final Item SENSOR_GLASSES = new ArmorItem(GCArmorMaterials.SENSOR_GLASSES, ArmorItem.Type.HELMET, new Item.Properties()); // TOOLS + WEAPONS - public static final Item HEAVY_DUTY_SWORD = new BrittleSwordItem(GCToolMaterial.STEEL, 3, -2.4F, new Item.Properties()); - public static final Item HEAVY_DUTY_SHOVEL = new ShovelItem(GCToolMaterial.STEEL, -1.5F, -3.0F, new Item.Properties()); - public static final Item HEAVY_DUTY_PICKAXE = new PickaxeItem(GCToolMaterial.STEEL, 1, -2.8F, new Item.Properties()); - public static final Item HEAVY_DUTY_AXE = new AxeItem(GCToolMaterial.STEEL, 6.0F, -3.1F, new Item.Properties()); - public static final Item HEAVY_DUTY_HOE = new HoeItem(GCToolMaterial.STEEL, -2, -1.0F, new Item.Properties()); - - public static final Item DESH_SWORD = new SwordItem(GCToolMaterial.DESH, 3, -2.4F, new Item.Properties()); - public static final Item DESH_SHOVEL = new ShovelItem(GCToolMaterial.DESH, -1.5F, -3.0F, new Item.Properties()); - public static final Item DESH_PICKAXE = new PickaxeItem(GCToolMaterial.DESH, 1, -2.8F, new Item.Properties()); - public static final Item DESH_AXE = new AxeItem(GCToolMaterial.DESH, 6.0F, -3.1F, new Item.Properties()); - public static final Item DESH_HOE = new HoeItem(GCToolMaterial.DESH, -3, -1.0F, new Item.Properties()); - - public static final Item TITANIUM_SWORD = new BrittleSwordItem(GCToolMaterial.TITANIUM, 3, -2.4F, new Item.Properties()); - public static final Item TITANIUM_SHOVEL = new ShovelItem(GCToolMaterial.TITANIUM, -1.5F, -3.0F, new Item.Properties()); - public static final Item TITANIUM_PICKAXE = new PickaxeItem(GCToolMaterial.TITANIUM, 1, -2.8F, new Item.Properties()); - public static final Item TITANIUM_AXE = new AxeItem(GCToolMaterial.TITANIUM, 6.0F, -3.1F, new Item.Properties()); - public static final Item TITANIUM_HOE = new HoeItem(GCToolMaterial.TITANIUM, -3, -1.0F, new Item.Properties()); + public static final Item HEAVY_DUTY_SWORD = new BrittleSwordItem(GCTiers.STEEL, new Item.Properties().attributes(SwordItem.createAttributes(GCTiers.STEEL, 3, -2.4F))); + public static final Item HEAVY_DUTY_SHOVEL = new ShovelItem(GCTiers.STEEL, new Item.Properties().attributes(ShovelItem.createAttributes(GCTiers.STEEL, -1.5F, -3.0F))); + public static final Item HEAVY_DUTY_PICKAXE = new PickaxeItem(GCTiers.STEEL, new Item.Properties().attributes(PickaxeItem.createAttributes(GCTiers.STEEL, 1, -2.8F))); + public static final Item HEAVY_DUTY_AXE = new AxeItem(GCTiers.STEEL, new Item.Properties().attributes(AxeItem.createAttributes(GCTiers.STEEL, 6.0F, -3.1F))); + public static final Item HEAVY_DUTY_HOE = new HoeItem(GCTiers.STEEL, new Item.Properties().attributes(HoeItem.createAttributes(GCTiers.STEEL, -2, -1.0F))); + + public static final Item DESH_SWORD = new SwordItem(GCTiers.DESH, new Item.Properties().attributes(SwordItem.createAttributes(GCTiers.DESH, 3, -2.4F))); + public static final Item DESH_SHOVEL = new ShovelItem(GCTiers.DESH, new Item.Properties().attributes(ShovelItem.createAttributes(GCTiers.DESH, -1.5F, -3.0F))); + public static final Item DESH_PICKAXE = new PickaxeItem(GCTiers.DESH, new Item.Properties().attributes(PickaxeItem.createAttributes(GCTiers.DESH, 1.0F, -2.8F))); + public static final Item DESH_AXE = new AxeItem(GCTiers.DESH, new Item.Properties().attributes(AxeItem.createAttributes(GCTiers.DESH, 6.0F, -3.1F))); + public static final Item DESH_HOE = new HoeItem(GCTiers.DESH, new Item.Properties().attributes(HoeItem.createAttributes(GCTiers.DESH, -3.0F, -1.0F))); + + public static final Item TITANIUM_SWORD = new BrittleSwordItem(GCTiers.TITANIUM, new Item.Properties().attributes(SwordItem.createAttributes(GCTiers.TITANIUM, 3, -2.4F))); + public static final Item TITANIUM_SHOVEL = new ShovelItem(GCTiers.TITANIUM, new Item.Properties().attributes(ShovelItem.createAttributes(GCTiers.TITANIUM, -1.5F, -3.0F))); + public static final Item TITANIUM_PICKAXE = new PickaxeItem(GCTiers.TITANIUM, new Item.Properties().attributes(PickaxeItem.createAttributes(GCTiers.TITANIUM, 1.0F, -2.8F))); + public static final Item TITANIUM_AXE = new AxeItem(GCTiers.TITANIUM, new Item.Properties().attributes(AxeItem.createAttributes(GCTiers.TITANIUM, 6.0F, -3.1F))); + public static final Item TITANIUM_HOE = new HoeItem(GCTiers.TITANIUM, new Item.Properties().attributes(HoeItem.createAttributes(GCTiers.TITANIUM, -3.0F, -1.0F))); public static final Item STANDARD_WRENCH = new StandardWrenchItem(new Item.Properties().durability(256)); @@ -372,16 +371,16 @@ public class GCItems { Component.translatable(Translations.Misc.UPGRADE_TITANIUM_DESCRIPTION), Component.translatable(Translations.Misc.UPGRADE_TITANIUM_BASE_SLOT_DESCRIPTION), Component.translatable(Translations.Misc.UPGRADE_TITANIUM_ADDITIONS_SLOT_DESCRIPTON), - List.of(new ResourceLocation("item/empty_armor_slot_helmet"), - new ResourceLocation("item/empty_armor_slot_chestplate"), - new ResourceLocation("item/empty_armor_slot_leggings"), - new ResourceLocation("item/empty_armor_slot_boots"), - new ResourceLocation("item/empty_slot_hoe"), - new ResourceLocation("item/empty_slot_axe"), - new ResourceLocation("item/empty_slot_sword"), - new ResourceLocation("item/empty_slot_shovel"), - new ResourceLocation("item/empty_slot_pickaxe")), - List.of(new ResourceLocation("item/empty_slot_ingot")) + List.of(ResourceLocation.withDefaultNamespace("item/empty_armor_slot_helmet"), + ResourceLocation.withDefaultNamespace("item/empty_armor_slot_chestplate"), + ResourceLocation.withDefaultNamespace("item/empty_armor_slot_leggings"), + ResourceLocation.withDefaultNamespace("item/empty_armor_slot_boots"), + ResourceLocation.withDefaultNamespace("item/empty_slot_hoe"), + ResourceLocation.withDefaultNamespace("item/empty_slot_axe"), + ResourceLocation.withDefaultNamespace("item/empty_slot_sword"), + ResourceLocation.withDefaultNamespace("item/empty_slot_shovel"), + ResourceLocation.withDefaultNamespace("item/empty_slot_pickaxe")), + List.of(ResourceLocation.withDefaultNamespace("item/empty_slot_ingot")) ); // this.appliesTo = component; // this.ingredients = component2; @@ -418,7 +417,12 @@ public class GCItems { public static final Item THERMAL_PADDING_BOOTS = new ThermalArmorItem(new Item.Properties(), ArmorItem.Type.BOOTS); // Vehicles public static final Item BUGGY = ITEMS.register(Constant.Item.BUGGY, new BuggyItem(new Item.Properties().stacksTo(1))); - public static final Item ROCKET = ITEMS.register(Constant.Item.ROCKET, new RocketItem(new Item.Properties().stacksTo(1))); + public static final Item ROCKET = ITEMS.register(Constant.Item.ROCKET, new RocketItem(new Item.Properties() + .component(GCDataComponents.ROCKET_CONE, new EitherHolder<>(GCRocketParts.TIER_1_CONE)) + .component(GCDataComponents.ROCKET_BODY, new EitherHolder<>(GCRocketParts.TIER_1_BODY)) + .component(GCDataComponents.ROCKET_FIN, new EitherHolder<>(GCRocketParts.TIER_1_FIN)) + .component(GCDataComponents.ROCKET_ENGINE, new EitherHolder<>(GCRocketParts.TIER_1_ENGINE)) + .stacksTo(1))); // ROCKET PIECES public static final Item NOSE_CONE = ITEMS.register(Constant.Item.NOSE_CONE, new Item(new Item.Properties())); @@ -684,7 +688,6 @@ public static void register() { Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Item.AMBIENT_THERMAL_CONTROLLER), AMBIENT_THERMAL_CONTROLLER); // FOOD - Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Item.MOON_BERRIES), MOON_BERRIES); Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Item.CHEESE_CURD), CHEESE_CURD); Registry.register(BuiltInRegistries.ITEM, Constant.id(Constant.Item.CANNED_DEHYDRATED_APPLE), CANNED_DEHYDRATED_APPLE); diff --git a/src/main/java/dev/galacticraft/mod/content/item/GCToolMaterial.java b/src/main/java/dev/galacticraft/mod/content/item/GCTiers.java similarity index 67% rename from src/main/java/dev/galacticraft/mod/content/item/GCToolMaterial.java rename to src/main/java/dev/galacticraft/mod/content/item/GCTiers.java index b2893aee1..0430036b4 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/GCToolMaterial.java +++ b/src/main/java/dev/galacticraft/mod/content/item/GCTiers.java @@ -23,27 +23,31 @@ package dev.galacticraft.mod.content.item; import com.google.common.base.Suppliers; +import net.minecraft.tags.BlockTags; +import net.minecraft.tags.TagKey; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Tier; import net.minecraft.world.item.Tiers; import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.NotNull; import java.util.function.Supplier; -public enum GCToolMaterial implements Tier { - STEEL(Tiers.IRON.getLevel(), 768, Tiers.IRON.getSpeed(), Tiers.IRON.getAttackDamageBonus(), Tiers.IRON.getEnchantmentValue(), () -> Ingredient.of(new ItemStack(GCItems.COMPRESSED_STEEL))), - DESH(3, 1024, 5.0F, 2.5F, 10, () -> Ingredient.of(new ItemStack(GCItems.DESH_INGOT))), - TITANIUM(4, 760, 14.0F, 4.0F, 16, () -> Ingredient.of(new ItemStack(GCItems.TITANIUM_INGOT))); +public enum GCTiers implements Tier { + STEEL(BlockTags.INCORRECT_FOR_IRON_TOOL, 768, Tiers.IRON.getSpeed(), Tiers.IRON.getAttackDamageBonus(), Tiers.IRON.getEnchantmentValue(), () -> Ingredient.of(new ItemStack(GCItems.COMPRESSED_STEEL))), + DESH(BlockTags.INCORRECT_FOR_DIAMOND_TOOL, 1024, 5.0F, 2.5F, 10, () -> Ingredient.of(new ItemStack(GCItems.DESH_INGOT))), + TITANIUM(BlockTags.INCORRECT_FOR_NETHERITE_TOOL, 760, 14.0F, 4.0F, 16, () -> Ingredient.of(new ItemStack(GCItems.TITANIUM_INGOT))); - private final int miningLevel; + private final TagKey incorrectBlocksForDrops; private final int durability; private final float blockBreakSpeed; private final float attackDamage; private final int enchantability; private final Supplier repairIngredient; - GCToolMaterial(int miningLevel, int durability, float breakSpeed, float attackDamage, int enchantability, Supplier repairIngredient) { - this.miningLevel = miningLevel; + GCTiers(TagKey incorrectBlocksForDrops, int durability, float breakSpeed, float attackDamage, int enchantability, Supplier repairIngredient) { + this.incorrectBlocksForDrops = incorrectBlocksForDrops; this.durability = durability; this.blockBreakSpeed = breakSpeed; this.attackDamage = attackDamage; @@ -67,8 +71,8 @@ public float getAttackDamageBonus() { } @Override - public int getLevel() { - return miningLevel; + public @NotNull TagKey getIncorrectBlocksForDrops() { + return this.incorrectBlocksForDrops; } @Override @@ -77,7 +81,7 @@ public int getEnchantmentValue() { } @Override - public Ingredient getRepairIngredient() { + public @NotNull Ingredient getRepairIngredient() { return repairIngredient.get(); } } diff --git a/src/main/java/dev/galacticraft/mod/content/item/GenericLiquidCanister.java b/src/main/java/dev/galacticraft/mod/content/item/GenericLiquidCanister.java deleted file mode 100644 index d9ddee9ca..000000000 --- a/src/main/java/dev/galacticraft/mod/content/item/GenericLiquidCanister.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.content.item; - -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Rarity; -import net.minecraft.world.level.material.Fluid; - -public class GenericLiquidCanister extends Item { - private final Fluid allowedFluid; - - public GenericLiquidCanister(Properties settings, Fluid allowedFluid) { - super(settings); - this.allowedFluid = allowedFluid; - } - - @Override - public int getEnchantmentValue() { - return -1; - } - - @Override - public Rarity getRarity(ItemStack par1ItemStack) { - return Rarity.RARE; - } -} diff --git a/src/main/java/dev/galacticraft/mod/content/item/HotThrowableMeteorChunkItem.java b/src/main/java/dev/galacticraft/mod/content/item/HotThrowableMeteorChunkItem.java index 7b9e86c7a..a75645c32 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/HotThrowableMeteorChunkItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/HotThrowableMeteorChunkItem.java @@ -22,9 +22,9 @@ package dev.galacticraft.mod.content.item; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.util.Translations; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; import net.minecraft.world.entity.Entity; @@ -33,12 +33,10 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; import java.util.List; public class HotThrowableMeteorChunkItem extends ThrowableMeteorChunkItem { - public static String TICKS_UNTIL_COOL = "TicksUntilCool"; public static int MAX_TICKS = 45 * 20; public HotThrowableMeteorChunkItem(Properties settings) { @@ -46,15 +44,15 @@ public HotThrowableMeteorChunkItem(Properties settings) { } @Override - public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltipComponents, TooltipFlag isAdvanced) { - CompoundTag tag = stack.getTag(); - if (tag != null) { - int ticksUntilCool = tag.getInt(TICKS_UNTIL_COOL); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); + Integer maybeTicks = stack.get(GCDataComponents.TICKS_UNTIL_COOL); + if (maybeTicks != null) { + int ticksUntilCool = maybeTicks; double secondsUntilCool = ticksUntilCool / 20.0; Style style = Constant.Text.Color.getStorageLevelStyle(1.0 - (double)ticksUntilCool/(double)MAX_TICKS); - tooltipComponents.add(Component.translatable(Translations.Tooltip.TIME_UNTIL_COOL, String.format("%.1f", secondsUntilCool)).setStyle(style)); + tooltip.add(Component.translatable(Translations.Tooltip.TIME_UNTIL_COOL, String.format("%.1f", secondsUntilCool)).setStyle(style)); } - super.appendHoverText(stack, level, tooltipComponents, isAdvanced); } @Override @@ -62,21 +60,25 @@ public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotI if (level.isClientSide()) return; - CompoundTag stackTag = stack.getOrCreateTag(); - - if (!stackTag.contains(TICKS_UNTIL_COOL, CompoundTag.TAG_INT)) - stackTag.putInt(TICKS_UNTIL_COOL, MAX_TICKS); + Integer i = stack.get(GCDataComponents.TICKS_UNTIL_COOL); + int ticks; + if (i == null) { + ticks = MAX_TICKS; + } else { + ticks = i; + } - int ticksUntilCool = stackTag.getInt(TICKS_UNTIL_COOL); - if (ticksUntilCool == 0) { + if (ticks == 0) { if (entity instanceof Player player) { + stack.remove(GCDataComponents.TICKS_UNTIL_COOL); ItemStack cooledStack = new ItemStack(GCItems.THROWABLE_METEOR_CHUNK, stack.getCount()); - cooledStack.setTag(stackTag); + cooledStack.applyComponents(stack.getComponents()); + Inventory inventory = player.getInventory(); inventory.setItem(slotId, new ItemStack(GCItems.THROWABLE_METEOR_CHUNK, stack.getCount())); inventory.setChanged(); } } - stackTag.putInt(TICKS_UNTIL_COOL, ticksUntilCool - 1); + stack.set(GCDataComponents.TICKS_UNTIL_COOL, ticks - 1); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/item/InfiniteBatteryItem.java b/src/main/java/dev/galacticraft/mod/content/item/InfiniteBatteryItem.java index 25406abd3..34a23835c 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/InfiniteBatteryItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/InfiniteBatteryItem.java @@ -30,8 +30,6 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; import team.reborn.energy.api.EnergyStorage; import java.util.List; @@ -51,10 +49,10 @@ public boolean isFoil(ItemStack stack) { } @Override - public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag context) { + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { tooltip.add(Component.translatable(Translations.Tooltip.ENERGY_REMAINING, Component.translatable(Translations.Tooltip.INFINITE).setStyle(Constant.Text.Color.getRainbow(ticks)))); tooltip.add(Component.translatable(Translations.Tooltip.CREATIVE_ONLY).setStyle(Constant.Text.Color.LIGHT_PURPLE_STYLE)); - super.appendHoverText(stack, world, tooltip, context); + super.appendHoverText(stack, context, tooltip, type); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/item/InfiniteOxygenTankItem.java b/src/main/java/dev/galacticraft/mod/content/item/InfiniteOxygenTankItem.java index 53ccd3fd8..2ed002c6e 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/InfiniteOxygenTankItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/InfiniteOxygenTankItem.java @@ -35,8 +35,6 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; import java.util.Iterator; import java.util.List; @@ -64,8 +62,8 @@ public boolean isFoil(ItemStack stack) { } @Override - public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag context) { - super.appendHoverText(stack, world, tooltip, context); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); tooltip.add(Component.translatable(Translations.Tooltip.OXYGEN_REMAINING, Component.translatable(Translations.Tooltip.INFINITE).setStyle(Constant.Text.Color.getRainbow(this.ticks)))); tooltip.add(Component.translatable(Translations.Tooltip.CREATIVE_ONLY).setStyle(Constant.Text.Color.LIGHT_PURPLE_STYLE)); } diff --git a/src/main/java/dev/galacticraft/mod/content/item/OxygenTankItem.java b/src/main/java/dev/galacticraft/mod/content/item/OxygenTankItem.java index ba8fdd5b9..99540dd6a 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/OxygenTankItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/OxygenTankItem.java @@ -88,11 +88,11 @@ public boolean isFoil(ItemStack stack) { } @Override - public void appendHoverText(ItemStack stack, Level world, List lines, TooltipFlag context) { + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); StorageView storage = (StorageView) ContainerItemContext.withConstant(stack).find(FluidStorage.ITEM); assert storage != null; - lines.add(Component.translatable(Translations.Tooltip.OXYGEN_REMAINING, storage.getAmount() + "/" + storage.getCapacity()).setStyle(Constant.Text.Color.getStorageLevelStyle(1.0 - ((double) storage.getAmount() / (double) storage.getCapacity())))); - super.appendHoverText(stack, world, lines, context); + tooltip.add(Component.translatable(Translations.Tooltip.OXYGEN_REMAINING, storage.getAmount() + "/" + storage.getCapacity()).setStyle(Constant.Text.Color.getStorageLevelStyle(1.0 - ((double) storage.getAmount() / (double) storage.getCapacity())))); } @Override diff --git a/src/main/java/dev/galacticraft/mod/content/item/RocketItem.java b/src/main/java/dev/galacticraft/mod/content/item/RocketItem.java index 451918b23..32305f3a1 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/RocketItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/RocketItem.java @@ -22,37 +22,27 @@ package dev.galacticraft.mod.content.item; -import dev.galacticraft.api.registry.RocketRegistries; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.api.rocket.RocketData; import dev.galacticraft.api.rocket.part.RocketPart; import dev.galacticraft.api.rocket.part.RocketPartTypes; -import dev.galacticraft.impl.rocket.RocketDataImpl; import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.GCEntityTypes; import dev.galacticraft.mod.content.block.special.launchpad.AbstractLaunchPad; import dev.galacticraft.mod.content.block.special.launchpad.LaunchPadBlockEntity; import dev.galacticraft.mod.content.entity.orbital.RocketEntity; import dev.galacticraft.mod.util.Translations; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.ChatFormatting; import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.BlockPos; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Style; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; -import org.jetbrains.annotations.Nullable; import java.util.List; @@ -72,13 +62,13 @@ public InteractionResult useOn(UseOnContext context) { if (context.getLevel() instanceof ServerLevel) { RocketEntity rocket = new RocketEntity(GCEntityTypes.ROCKET, context.getLevel()); - CompoundTag tag = context.getItemInHand().getTag(); - RocketData data = RocketData.fromNbt(tag); + RocketData data = RocketData.fromPatch(context.getItemInHand().getComponentsPatch()); rocket.setData(data); rocket.setPad(pad); rocket.setOldPosAndRot(); rocket.absMoveTo(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D); - if (tag.contains("creative")) { + boolean creative = context.getItemInHand().getComponents().getOrDefault(GCDataComponents.CREATIVE, false); + if (creative) { rocket.setFuel(Long.MAX_VALUE); } context.getLevel().addFreshEntity(rocket); @@ -96,40 +86,22 @@ public InteractionResult useOn(UseOnContext context) { } @Override - public ItemStack getDefaultInstance() { - var itemStack = super.getDefaultInstance(); - itemStack.setTag(RocketDataImpl.DEFAULT_ROCKET.copy()); - return itemStack; - } - - @Override - @Environment(EnvType.CLIENT) - public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag context) { - super.appendHoverText(stack, world, tooltip, context); + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); - CompoundTag tag = stack.getOrCreateTag(); - if (tag.contains("creative")) + boolean creative = stack.getComponents().getOrDefault(GCDataComponents.CREATIVE, false); + if (creative) { tooltip.add(Component.literal("Creative Only").setStyle(Style.EMPTY.withColor(ChatFormatting.RED))); + } if (Screen.hasShiftDown()) { - if (tag.contains("color") && tag.contains("cone")) { -// tooltip.add(Component.translatable("tooltip.galacticraft.tier", tag.getInt("tier")).setStyle(Style.EMPTY.withColor(ChatFormatting.DARK_GRAY))); - tooltip.add(Component.translatable(Translations.Ui.COLOR).append(": #" + Integer.toHexString(tag.getInt("color")))); - ResourceLocation id = new ResourceLocation(tag.getString("cone")); - tooltip.add(RocketPartTypes.CONE.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_CONE, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - id = new ResourceLocation(tag.getString("body")); - tooltip.add(RocketPartTypes.BODY.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_BODY, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - id = new ResourceLocation(tag.getString("fin")); - tooltip.add(RocketPartTypes.FIN.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_FIN, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - id = new ResourceLocation(tag.getString("booster")); - tooltip.add(RocketPartTypes.BOOSTER.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_BOOSTER, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - id = new ResourceLocation(tag.getString("engine")); - tooltip.add(RocketPartTypes.ENGINE.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_ENGINE, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - ListTag list = tag.getList("upgrades", Tag.TAG_STRING); - for (int i = 0; i < list.size(); i++) { - id = new ResourceLocation(list.getString(i)); - tooltip.add(RocketPartTypes.CONE.name.copy().append(" ").append(RocketPart.getName(ResourceKey.create(RocketRegistries.ROCKET_UPGRADE, id))).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); - } - } + RocketData data = RocketData.fromPatch(stack.getComponentsPatch()); + tooltip.add(Component.translatable(Translations.Ui.COLOR).append(Component.literal(": #" + Integer.toHexString(data.color())).withColor(data.color()))); + if (data.cone() != null) tooltip.add(RocketPartTypes.CONE.name.copy().append(" ").append(RocketPart.getName(data.cone().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); + if (data.body() != null) tooltip.add(RocketPartTypes.BODY.name.copy().append(" ").append(RocketPart.getName(data.body().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); + if (data.fin() != null) tooltip.add(RocketPartTypes.FIN.name.copy().append(" ").append(RocketPart.getName(data.fin().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); + if (data.booster() != null) tooltip.add(RocketPartTypes.BOOSTER.name.copy().append(" ").append(RocketPart.getName(data.booster().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); + if (data.engine() != null) tooltip.add(RocketPartTypes.ENGINE.name.copy().append(" ").append(RocketPart.getName(data.engine().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); + if (data.upgrade() != null) tooltip.add(RocketPartTypes.UPGRADE.name.copy().append(" ").append(RocketPart.getName(data.upgrade().key())).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); } else { tooltip.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Style.EMPTY.withColor(ChatFormatting.GRAY))); } diff --git a/src/main/java/dev/galacticraft/mod/content/item/SchematicItem.java b/src/main/java/dev/galacticraft/mod/content/item/SchematicItem.java index d69aefb97..ae06eddde 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/SchematicItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/SchematicItem.java @@ -22,11 +22,10 @@ package dev.galacticraft.mod.content.item; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.api.item.Schematic; import dev.galacticraft.api.rocket.part.RocketPart; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; @@ -39,13 +38,9 @@ public SchematicItem(Properties settings) { @Override public @Nullable ResourceKey> getPart(@NotNull ItemStack stack) { - CompoundTag tag = stack.getTag(); - if (tag != null) { - String registry = tag.getString("registry"); - String location = tag.getString("location"); - if (!registry.isEmpty() && !location.isEmpty()) { - return ResourceKey.create(ResourceKey.createRegistryKey(new ResourceLocation(registry)), new ResourceLocation(location)); - } + ResourceKey resourceKey = stack.get(GCDataComponents.KEY); + if (resourceKey != null) { + return (ResourceKey>) resourceKey; } return null; } diff --git a/src/main/java/dev/galacticraft/mod/content/item/StandardWrenchItem.java b/src/main/java/dev/galacticraft/mod/content/item/StandardWrenchItem.java index 92d64dc0c..c8957d4f8 100644 --- a/src/main/java/dev/galacticraft/mod/content/item/StandardWrenchItem.java +++ b/src/main/java/dev/galacticraft/mod/content/item/StandardWrenchItem.java @@ -29,6 +29,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.player.Player; @@ -42,7 +43,9 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.block.state.properties.Property; +import org.jetbrains.annotations.NotNull; +import java.util.Collection; import java.util.List; public class StandardWrenchItem extends Item { @@ -59,36 +62,42 @@ private static T cycle(Iterable values, T obj, boolean reverse) { } @Override - public InteractionResult useOn(UseOnContext context) { + public @NotNull InteractionResult useOn(UseOnContext context) { Player player = context.getPlayer(); Level world = context.getLevel(); if (!world.isClientSide && player != null) { BlockPos pos = context.getClickedPos(); - this.use(player, world.getBlockState(pos), world, pos, context.getItemInHand()); + this.use(player, world.getBlockState(pos), world, pos, context.getHand(), context.getItemInHand()); } return InteractionResult.SUCCESS; } - private void use(Player player, BlockState state, LevelAccessor world, BlockPos pos, ItemStack stack) { + private void use(Player player, BlockState state, LevelAccessor world, BlockPos pos, InteractionHand hand, ItemStack stack) { Block block = state.getBlock(); - if (block.getStateDefinition().getProperty("facing") instanceof EnumProperty property && property.getPossibleValues().contains(Direction.NORTH)) { - BlockState newState = cycle(state, property, player.isShiftKeyDown()); - world.setBlock(pos, newState, 18); - stack.hurtAndBreak(2, player, (entity) -> entity.broadcastBreakEvent(EquipmentSlot.MAINHAND)); - }/* else if (block.getStateDefinition().getProperty("axis") instanceof EnumProperty property && property.getPossibleValues().contains(Direction.Axis.X)) { - BlockState newState = cycle(state, property, player.isShiftKeyDown()); - world.setBlock(pos, newState, 18); - stack.hurtAndBreak(2, player, (entity) -> entity.broadcastBreakEvent(EquipmentSlot.MAINHAND)); - }*/ + if (block.getStateDefinition().getProperty("facing") instanceof EnumProperty property) { + Collection possibleValues = property.getPossibleValues(); + if (possibleValues.size() <= Direction.values().length) { + for (Object value : possibleValues) { + if (!(value instanceof Direction)) { + return; + } + } + + BlockState newState = cycle(state, property, player.isShiftKeyDown()); + world.setBlock(pos, newState, 18); + stack.hurtAndBreak(2, player, hand == InteractionHand.MAIN_HAND ? EquipmentSlot.MAINHAND : EquipmentSlot.OFFHAND); + } + } } @Override - public void appendHoverText(ItemStack stack, Level world, List lines, TooltipFlag context) { + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag type) { + super.appendHoverText(stack, context, tooltip, type); if (Screen.hasShiftDown()) { - lines.add(Component.translatable(Translations.Tooltip.STANDARD_WRENCH).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.STANDARD_WRENCH).setStyle(Constant.Text.Color.GRAY_STYLE)); } else { - lines.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); + tooltip.add(Component.translatable(Translations.Tooltip.PRESS_SHIFT).setStyle(Constant.Text.Color.GRAY_STYLE)); } } } diff --git a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java index e9e0b44ec..5c2d0160b 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/GCBlockLootTableProvider.java @@ -30,13 +30,15 @@ import net.fabricmc.fabric.api.datagen.v1.provider.FabricBlockLootTableProvider; import net.minecraft.advancements.critereon.ItemPredicate; import net.minecraft.advancements.critereon.StatePropertiesPredicate; +import net.minecraft.core.HolderLookup; +import net.minecraft.core.registries.Registries; import net.minecraft.data.loot.BlockLootSubProvider; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.Item; +import net.minecraft.world.item.enchantment.Enchantment; import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.SweetBerryBushBlock; import net.minecraft.world.level.storage.loot.LootPool; import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.entries.LootItem; @@ -47,20 +49,24 @@ import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; +import java.util.concurrent.CompletableFuture; + public class GCBlockLootTableProvider extends FabricBlockLootTableProvider { - protected GCBlockLootTableProvider(FabricDataOutput output) { - super(output); + protected GCBlockLootTableProvider(FabricDataOutput output, CompletableFuture registryLookup) { + super(output, registryLookup); } public LootTable.Builder siliconOreDrops(Block ore) { return createSilkTouchDispatchTable(ore, this.applyExplosionDecay(ore, LootItem.lootTableItem(GCItems.RAW_SILICON) .apply(SetItemCountFunction.setCount(UniformGenerator.between(4.0F, 6.0F))) - .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + .apply(ApplyBonusCount.addOreBonusCount(this.registries.lookupOrThrow(Registries.ENCHANTMENT).getOrThrow(Enchantments.FORTUNE))) )); } @Override public void generate() { + HolderLookup.RegistryLookup enchantments = this.registries.lookupOrThrow(Registries.ENCHANTMENT); + this.dropSelf(GCBlocks.GLOWSTONE_TORCH); this.dropSelf(GCBlocks.UNLIT_TORCH); @@ -232,26 +238,12 @@ public void generate() { this.dropSelf(GCBlocks.LUNAR_SAPPHIRE_BLOCK); this.dropSelf(GCBlocks.OLIVINE_BLOCK); - this.add(GCBlocks.FALLEN_METEOR, block -> BlockLootSubProvider.createSilkTouchDispatchTable(block, this.applyExplosionDecay(block, LootItem.lootTableItem(GCItems.RAW_METEORIC_IRON) + this.add(GCBlocks.FALLEN_METEOR, block -> createSilkTouchDispatchTable(block, this.applyExplosionDecay(block, LootItem.lootTableItem(GCItems.RAW_METEORIC_IRON) .apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0f, 2.0f)))))); this.dropSelf(GCBlocks.LUNAR_CARTOGRAPHY_TABLE); this.add(GCBlocks.CAVERNOUS_VINES, BlockLootSubProvider::createShearsOnlyDrop); - this.add(GCBlocks.MOON_BERRY_BUSH, block -> this.applyExplosionDecay(block, LootTable.lootTable() - .withPool(LootPool.lootPool() - .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block).setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(SweetBerryBushBlock.AGE, 3))) - .add(LootItem.lootTableItem(GCItems.MOON_BERRIES)) - .apply(SetItemCountFunction.setCount(UniformGenerator.between(2.0F, 3.0F))) - .apply(ApplyBonusCount.addUniformBonusCount(Enchantments.BLOCK_FORTUNE))) - .withPool(LootPool.lootPool() - .when(LootItemBlockStatePropertyCondition.hasBlockStateProperties(block).setProperties(StatePropertiesPredicate.Builder.properties().hasProperty(SweetBerryBushBlock.AGE, 2))) - .add(LootItem.lootTableItem(GCItems.MOON_BERRIES)) - .apply(SetItemCountFunction.setCount(UniformGenerator.between(1.0F, 2.0F))) - .apply(ApplyBonusCount.addUniformBonusCount(Enchantments.BLOCK_FORTUNE)) - ) - ) - ); this.add(GCBlocks.BOSS_SPAWNER, noDrop()); this.add(GCBlocks.FUELING_PAD, this::createLaunchPadTable); @@ -305,7 +297,7 @@ public LootTable.Builder createOreDrop(Block block, Item item, float min, float block, LootItem.lootTableItem(item) .apply(SetItemCountFunction.setCount(UniformGenerator.between(min, max))) - .apply(ApplyBonusCount.addUniformBonusCount(Enchantments.BLOCK_FORTUNE)) + .apply(ApplyBonusCount.addUniformBonusCount(this.registries.lookupOrThrow(Registries.ENCHANTMENT).getOrThrow(Enchantments.FORTUNE))) ) ); } @@ -315,7 +307,7 @@ public LootTable.Builder createCrystalClusterDrop(Block block, Item item) { block, (LootItem.lootTableItem(item) .apply(SetItemCountFunction.setCount(ConstantValue.exactly(4.0F))) - .apply(ApplyBonusCount.addOreBonusCount(Enchantments.BLOCK_FORTUNE)) + .apply(ApplyBonusCount.addOreBonusCount(this.registries.lookupOrThrow(Registries.ENCHANTMENT).getOrThrow(Enchantments.FORTUNE))) .when(MatchTool.toolMatches(ItemPredicate.Builder.item().of(ItemTags.CLUSTER_MAX_HARVESTABLES))) ) .otherwise( diff --git a/src/main/java/dev/galacticraft/mod/data/GCDataGenerator.java b/src/main/java/dev/galacticraft/mod/data/GCDataGenerator.java index dbe6bf9c3..60d8cd9d7 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCDataGenerator.java +++ b/src/main/java/dev/galacticraft/mod/data/GCDataGenerator.java @@ -35,6 +35,7 @@ import dev.galacticraft.mod.data.model.GCModelProvider; import dev.galacticraft.mod.data.recipes.*; import dev.galacticraft.mod.data.tag.*; +import dev.galacticraft.mod.misc.banner.GCBannerPatterns; import dev.galacticraft.mod.structure.GCStructureSets; import dev.galacticraft.mod.structure.GCStructureTemplatePools; import dev.galacticraft.mod.world.biome.GCBiomes; @@ -84,7 +85,7 @@ public void onInitializeDataGenerator(@NotNull FabricDataGenerator generator) { pack.addProvider(GCStructureTagProvider::new); // world generation -// pack.addProvider(BootstrapDataProvider.create("Noise", GCNoiseData::bootstrapRegistries)); + pack.addProvider(BootstrapDataProvider.create("Noise", GCNoiseData::bootstrapRegistries)); pack.addProvider(BootstrapDataProvider.create("Density Functions", GCDensityFunctions::bootstrapRegistries)); pack.addProvider(BootstrapDataProvider.create("Biomes", GCBiomes::bootstrapRegistries)); pack.addProvider(BootstrapDataProvider.create("Dimension Types", GCDimensionTypes::bootstrapRegistries)); @@ -108,6 +109,7 @@ public void onInitializeDataGenerator(@NotNull FabricDataGenerator generator) { pack.addProvider(BootstrapDataProvider.create("Celestial Teleporters", GCTeleporterTypes::bootstrapRegistries)); // misc + pack.addProvider(BootstrapDataProvider.create("Banner Patterns", GCBannerPatterns::bootstrapRegistries)); pack.addProvider(BootstrapDataProvider.create("Damage Types", GCDamageTypes::bootstrapRegistries)); // rocket parts @@ -126,6 +128,7 @@ public void onInitializeDataGenerator(@NotNull FabricDataGenerator generator) { public void buildRegistry(RegistrySetBuilder builder) { // world generation + builder.add(Registries.BANNER_PATTERN, Lifecycle.stable(), GCBannerPatterns::bootstrapRegistries); builder.add(Registries.BIOME, Lifecycle.stable(), GCBiomes::bootstrapRegistries); builder.add(Registries.DIMENSION_TYPE, Lifecycle.stable(), GCDimensionTypes::bootstrapRegistries); builder.add(Registries.LEVEL_STEM, Lifecycle.stable(), GCLevelStems::bootstrapRegistries); diff --git a/src/main/java/dev/galacticraft/mod/data/GCEntityLoot.java b/src/main/java/dev/galacticraft/mod/data/GCEntityLoot.java index d8f1d5fff..9a953b768 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCEntityLoot.java +++ b/src/main/java/dev/galacticraft/mod/data/GCEntityLoot.java @@ -26,7 +26,7 @@ import dev.galacticraft.mod.content.GCRegistry; import dev.galacticraft.mod.data.loot.GCEntityLootSubProvider; import net.minecraft.advancements.critereon.EntityPredicate; -import net.minecraft.data.loot.EntityLootSubProvider; +import net.minecraft.core.HolderLookup; import net.minecraft.tags.EntityTypeTags; import net.minecraft.tags.ItemTags; import net.minecraft.world.entity.EntityType; @@ -37,18 +37,21 @@ import net.minecraft.world.level.storage.loot.LootTable; import net.minecraft.world.level.storage.loot.entries.LootItem; import net.minecraft.world.level.storage.loot.entries.TagEntry; -import net.minecraft.world.level.storage.loot.functions.LootingEnchantFunction; +import net.minecraft.world.level.storage.loot.functions.EnchantedCountIncreaseFunction; import net.minecraft.world.level.storage.loot.functions.SetItemCountFunction; import net.minecraft.world.level.storage.loot.functions.SmeltItemFunction; import net.minecraft.world.level.storage.loot.predicates.LootItemEntityPropertyCondition; import net.minecraft.world.level.storage.loot.predicates.LootItemKilledByPlayerCondition; -import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceWithLootingCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemRandomChanceWithEnchantedBonusCondition; import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraft.world.level.storage.loot.providers.number.UniformGenerator; public class GCEntityLoot extends GCEntityLootSubProvider { - protected GCEntityLoot() { - super(FeatureFlags.REGISTRY.allFlags()); + private final HolderLookup.Provider lookup; + + protected GCEntityLoot(HolderLookup.Provider lookup) { + super(FeatureFlags.REGISTRY.allFlags(), lookup); + this.lookup = lookup; } @Override @@ -62,7 +65,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.ROTTEN_FLESH) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 2.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) ) .withPool( @@ -72,10 +75,10 @@ public void generate() { .add(LootItem.lootTableItem(Items.CARROT)) .add( LootItem.lootTableItem(Items.POTATO) - .apply(SmeltItemFunction.smelted().when(LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.THIS, ENTITY_ON_FIRE))) + .apply(SmeltItemFunction.smelted().when(this.shouldSmeltLoot())) ) .when(LootItemKilledByPlayerCondition.killedByPlayer()) - .when(LootItemRandomChanceWithLootingCondition.randomChanceAndLootingBoost(0.025F, 0.01F)) + .when(LootItemRandomChanceWithEnchantedBonusCondition.randomChanceAndLootingBoost(this.lookup, 0.025F, 0.01F)) ) ); add( @@ -87,13 +90,13 @@ public void generate() { .add( LootItem.lootTableItem(Items.GUNPOWDER) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 2.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) ) .withPool( LootPool.lootPool() .add(TagEntry.expandTag(ItemTags.CREEPER_DROP_MUSIC_DISCS)) - .when(LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.KILLER, EntityPredicate.Builder.entity().of(EntityTypeTags.SKELETONS))) + .when(LootItemEntityPropertyCondition.hasProperties(LootContext.EntityTarget.ATTACKER, EntityPredicate.Builder.entity().of(EntityTypeTags.SKELETONS))) ) ); add( @@ -105,7 +108,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.ARROW) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 2.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) ) .withPool( @@ -114,7 +117,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.BONE) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 2.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) ) ); @@ -127,7 +130,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.STRING) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 2.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) ) .withPool( @@ -136,7 +139,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.SPIDER_EYE) .apply(SetItemCountFunction.setCount(UniformGenerator.between(-1.0F, 1.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) .when(LootItemKilledByPlayerCondition.killedByPlayer()) ) @@ -152,7 +155,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.EMERALD) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 1.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) .when(LootItemKilledByPlayerCondition.killedByPlayer()) ) @@ -166,7 +169,7 @@ public void generate() { .add( LootItem.lootTableItem(Items.EMERALD) .apply(SetItemCountFunction.setCount(UniformGenerator.between(0.0F, 1.0F))) - .apply(LootingEnchantFunction.lootingMultiplier(UniformGenerator.between(0.0F, 1.0F))) + .apply(EnchantedCountIncreaseFunction.lootingMultiplier(this.lookup, UniformGenerator.between(0.0F, 1.0F))) ) .when(LootItemKilledByPlayerCondition.killedByPlayer()) ) diff --git a/src/main/java/dev/galacticraft/mod/data/GCLootTableProvider.java b/src/main/java/dev/galacticraft/mod/data/GCLootTableProvider.java index c77e6d3bd..65b003c38 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCLootTableProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/GCLootTableProvider.java @@ -23,21 +23,23 @@ package dev.galacticraft.mod.data; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; +import net.minecraft.core.HolderLookup; import net.minecraft.data.loot.LootTableProvider; -import net.minecraft.world.level.storage.loot.BuiltInLootTables; import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import java.util.List; import java.util.Set; +import java.util.concurrent.CompletableFuture; public class GCLootTableProvider { - public static LootTableProvider create(FabricDataOutput output) { + public static LootTableProvider create(FabricDataOutput output, CompletableFuture lookup) { return new LootTableProvider( output, Set.of(), List.of( new LootTableProvider.SubProviderEntry(GCEntityLoot::new, LootContextParamSets.ENTITY) - ) + ), + lookup ); } } diff --git a/src/main/java/dev/galacticraft/mod/data/GCTranslationProvider.java b/src/main/java/dev/galacticraft/mod/data/GCTranslationProvider.java index 4e2960c26..c7e8c126f 100644 --- a/src/main/java/dev/galacticraft/mod/data/GCTranslationProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/GCTranslationProvider.java @@ -124,6 +124,9 @@ protected void generateTranslations(HolderLookup.@NotNull Provider registries) { this.add(RecipeCategory.CIRCUIT_FABRICATOR, "Circuit Fabricating"); this.add(RecipeCategory.COMPRESSOR, "Compressing"); + + this.add(BannerPattern.ROCKET, "Rocket"); + this.add(Chat.BED_FAIL, "Uh oh, what if the oxygen runs out when I am asleep? I'll need a Cryogenic Chamber to sleep in space!"); this.add(Chat.ROCKET_WARNING, "Press again to launch."); diff --git a/src/main/java/dev/galacticraft/mod/data/content/BootstrapDataProvider.java b/src/main/java/dev/galacticraft/mod/data/content/BootstrapDataProvider.java index 066fd12c9..461acd195 100644 --- a/src/main/java/dev/galacticraft/mod/data/content/BootstrapDataProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/content/BootstrapDataProvider.java @@ -27,7 +27,7 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.minecraft.core.HolderLookup; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; @@ -36,14 +36,14 @@ public class BootstrapDataProvider extends GCDynamicRegistryProvider { private final String name; - private final Consumer> consumer; + private final Consumer> consumer; @Contract(pure = true) - public static FabricDataGenerator.Pack.@NotNull RegistryDependentFactory> create(String name, Consumer> bootstrap) { + public static FabricDataGenerator.Pack.@NotNull RegistryDependentFactory> create(String name, Consumer> bootstrap) { return (output, registriesFuture) -> new BootstrapDataProvider<>(output, registriesFuture, name, bootstrap); } - private BootstrapDataProvider(FabricDataOutput output, CompletableFuture future, String name, Consumer> consumer) { + private BootstrapDataProvider(FabricDataOutput output, CompletableFuture future, String name, Consumer> consumer) { super(output, future); this.name = name; this.consumer = consumer; diff --git a/src/main/java/dev/galacticraft/mod/data/content/GCLevelStemProvider.java b/src/main/java/dev/galacticraft/mod/data/content/GCLevelStemProvider.java index 260599c32..15e7177fb 100644 --- a/src/main/java/dev/galacticraft/mod/data/content/GCLevelStemProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/content/GCLevelStemProvider.java @@ -31,7 +31,7 @@ import net.minecraft.data.CachedOutput; import net.minecraft.data.DataProvider; import net.minecraft.data.PackOutput; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.RegistryOps; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -46,9 +46,9 @@ public class GCLevelStemProvider implements DataProvider { private final PackOutput.PathProvider path; private final CompletableFuture registriesFuture; - private final Consumer> bootstrap; + private final Consumer> bootstrap; - public GCLevelStemProvider(FabricDataOutput output, CompletableFuture registriesFuture, Consumer> bootstrap) { + public GCLevelStemProvider(FabricDataOutput output, CompletableFuture registriesFuture, Consumer> bootstrap) { this.path = output.createPathProvider(PackOutput.Target.DATA_PACK, "dimension"); this.registriesFuture = registriesFuture; this.bootstrap = bootstrap; @@ -58,7 +58,7 @@ public GCLevelStemProvider(FabricDataOutput output, CompletableFuture run(CachedOutput output) { return this.registriesFuture.thenCompose(registries -> { Map entries = new HashMap<>(); - this.bootstrap.accept(new BootstapContext<>() { + this.bootstrap.accept(new BootstrapContext<>() { @Override public Holder.Reference register(ResourceKey resourceKey, LevelStem object, Lifecycle lifecycle) { entries.put(resourceKey.location(), object); @@ -74,7 +74,7 @@ public HolderGetter lookup(ResourceKey LevelStem.CODEC.encodeStart(ops, entry.getValue()).get().orThrow()) + var completableFuture = CompletableFuture.supplyAsync(() -> LevelStem.CODEC.encodeStart(ops, entry.getValue()).getOrThrow()) .thenCompose(json -> DataProvider.saveStable(output, json, this.path.json(entry.getKey()))); futures[i++] = completableFuture; } diff --git a/src/main/java/dev/galacticraft/mod/data/gen/SatelliteChunkGenerator.java b/src/main/java/dev/galacticraft/mod/data/gen/SatelliteChunkGenerator.java index a8b6756e2..06e5c7381 100644 --- a/src/main/java/dev/galacticraft/mod/data/gen/SatelliteChunkGenerator.java +++ b/src/main/java/dev/galacticraft/mod/data/gen/SatelliteChunkGenerator.java @@ -26,6 +26,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; import com.mojang.serialization.DynamicOps; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.*; import net.minecraft.core.registries.Registries; @@ -55,16 +56,17 @@ import net.minecraft.world.level.levelgen.blending.Blender; import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.levelgen.structure.StructureSet; +import net.minecraft.world.level.levelgen.structure.templatesystem.LiquidSettings; import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager; import org.jetbrains.annotations.ApiStatus; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Optional; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Executor; import java.util.stream.Stream; @ApiStatus.Internal @@ -89,7 +91,7 @@ public DataResult encode(StructureTemplate input, DynamicOps ops, T pr return DataResult.success(NbtOps.INSTANCE.convertTo(ops, input.save(new CompoundTag()))); } }; - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( Biome.CODEC.fieldOf("biome").forGetter(SatelliteChunkGenerator::getBiome), STRUCTURE_CODEC.fieldOf("structure").forGetter(SatelliteChunkGenerator::getStructure) ).apply(instance, SatelliteChunkGenerator::new)); @@ -109,7 +111,7 @@ public StructureTemplate getStructure() { } @Override - protected Codec codec() { + protected @NotNull MapCodec codec() { return CODEC; } @@ -126,14 +128,14 @@ public void spawnOriginalMobs(WorldGenRegion region) { } @Override - public CompletableFuture createBiomes(Executor executor, RandomState randomState, Blender blender, StructureManager structureManager, ChunkAccess chunkAccess) { - return CompletableFuture.completedFuture(chunkAccess); + public CompletableFuture createBiomes(RandomState noiseConfig, Blender blender, StructureManager structureAccessor, ChunkAccess chunkAccess) { + return super.createBiomes(noiseConfig, blender, structureAccessor, chunkAccess); } @Override public void applyBiomeDecoration(WorldGenLevel world, ChunkAccess chunk, StructureManager structureAccessor) { if (chunk.getPos().x == 0 && chunk.getPos().z == 0) { - this.structure.placeInWorld(world, new BlockPos(0, 60, 0), new BlockPos(0, 60, 0), new StructurePlaceSettings().setIgnoreEntities(true).setKeepLiquids(true).setRandom(world.getRandom()), world.getRandom(), 0); + this.structure.placeInWorld(world, new BlockPos(0, 60, 0), new BlockPos(0, 60, 0), new StructurePlaceSettings().setIgnoreEntities(true).setLiquidSettings(LiquidSettings.APPLY_WATERLOGGING).setRandom(world.getRandom()), world.getRandom(), 0); } } @@ -161,7 +163,7 @@ public void createReferences(WorldGenLevel world, StructureManager accessor, Chu } @Override - public CompletableFuture fillFromNoise(Executor executor, Blender arg, RandomState noiseConfig, StructureManager structureAccessor, ChunkAccess chunk) { + public @NotNull CompletableFuture fillFromNoise(Blender blender, RandomState noiseConfig, StructureManager structureAccessor, ChunkAccess chunk) { return CompletableFuture.completedFuture(chunk); } @@ -192,7 +194,7 @@ public Pair> findNearestMapStructure(ServerLevel wor } @Override - public Optional>> getTypeNameForDataFixer() { + public Optional>> getTypeNameForDataFixer() { return super.getTypeNameForDataFixer(); } diff --git a/src/main/java/dev/galacticraft/mod/data/loot/GCEntityLootSubProvider.java b/src/main/java/dev/galacticraft/mod/data/loot/GCEntityLootSubProvider.java index c8283e3de..bb806a48e 100644 --- a/src/main/java/dev/galacticraft/mod/data/loot/GCEntityLootSubProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/loot/GCEntityLootSubProvider.java @@ -24,8 +24,9 @@ import com.google.common.collect.Sets; import dev.galacticraft.mod.content.GCRegistry; +import net.minecraft.core.HolderLookup; import net.minecraft.data.loot.EntityLootSubProvider; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.flag.FeatureFlagSet; @@ -42,30 +43,30 @@ public abstract class GCEntityLootSubProvider extends EntityLootSubProvider { protected final FeatureFlagSet allowed; protected final FeatureFlagSet required; - protected GCEntityLootSubProvider(FeatureFlagSet allowed) { - this(allowed, allowed); + protected GCEntityLootSubProvider(FeatureFlagSet allowed, HolderLookup.Provider lookup) { + this(allowed, allowed, lookup); } - protected GCEntityLootSubProvider(FeatureFlagSet allowed, FeatureFlagSet required) { - super(allowed, required); + protected GCEntityLootSubProvider(FeatureFlagSet allowed, FeatureFlagSet required, HolderLookup.Provider lookup) { + super(allowed, required, lookup); this.allowed = allowed; this.required = required; } @Override - public void generate(BiConsumer biConsumer) { + public void generate(BiConsumer, LootTable.Builder> biConsumer) { this.generate(); - Set set = Sets.newHashSet(); + Set> set = Sets.newHashSet(); getRegistry().getEntries() .forEach( entityType -> { EntityType entityType2 = entityType.value(); if (entityType2.isEnabled(this.allowed)) { if (canHaveLootTable(entityType2)) { - Map map = this.map.remove(entityType2); - ResourceLocation resourceLocation = entityType2.getDefaultLootTable(); - if (!resourceLocation.equals(BuiltInLootTables.EMPTY) && entityType2.isEnabled(this.required) && (map == null || !map.containsKey(resourceLocation))) { - throw new IllegalStateException(String.format(Locale.ROOT, "Missing loottable '%s' for '%s'", resourceLocation, entityType.key().location())); + Map, LootTable.Builder> map = this.map.remove(entityType2); + ResourceKey key = entityType2.getDefaultLootTable(); + if (!key.equals(BuiltInLootTables.EMPTY) && entityType2.isEnabled(this.required) && (map == null || !map.containsKey(key))) { + throw new IllegalStateException(String.format(Locale.ROOT, "Missing loottable '%s' for '%s'", key, entityType.key().location())); } if (map != null) { @@ -78,13 +79,13 @@ public void generate(BiConsumer biConsumer) }); } } else { - Map map = this.map.remove(entityType2); + Map, LootTable.Builder> map = this.map.remove(entityType2); if (map != null) { throw new IllegalStateException( String.format( Locale.ROOT, "Weird loottables '%s' for '%s', not a LivingEntity so should not have loot", - map.keySet().stream().map(ResourceLocation::toString).collect(Collectors.joining(",")), + map.keySet().stream().map(ResourceKey::toString).collect(Collectors.joining(",")), entityType.key().location() ) ); diff --git a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java index 0fc0bc274..131ca85c9 100644 --- a/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/model/GCModelProvider.java @@ -207,11 +207,6 @@ public void generateBlockStateModels(BlockModelGenerators generator) { // MISC WORLD GEN this.createCavernousVines(generator); - generator.blockStateOutput.accept(MultiVariantGenerator.multiVariant(GCBlocks.MOON_BERRY_BUSH) - .with(PropertyDispatch.property(BlockStateProperties.AGE_3) - .generate(integer -> Variant.variant().with(VariantProperties.MODEL, generator.createSuffixedVariant(GCBlocks.MOON_BERRY_BUSH, "_stage" + integer, ModelTemplates.CROSS, TextureMapping::cross))) - ) - ); // DUMMY generator.createAirLikeBlock(GCBlocks.SOLAR_PANEL_PART, GCItems.BLUE_SOLAR_WAFER); @@ -251,10 +246,10 @@ public void generateBlockStateModels(BlockModelGenerators generator) { GCBlocks.PARACHEST.getStateDefinition().getPossibleStates().forEach(state -> { para.with(Condition.condition().term(ParaChestBlock.FACING, state.getValue(ParaChestBlock.FACING))/*.term(ParaChestBlock.COLOR, state.getValue(ParaChestBlock.COLOR))*/, Variant.variant() .with(VariantProperties.Y_ROT, getRotationFromDirection(state.getValue(ParaChestBlock.FACING))) - .with(VariantProperties.MODEL, new ResourceLocation("galacticraft:block/parachest/parachest"))); + .with(VariantProperties.MODEL, ResourceLocation.parse("galacticraft:block/parachest/parachest"))); para.with(Condition.condition().term(ParaChestBlock.COLOR, state.getValue(ParaChestBlock.COLOR)), Variant.variant() .with(VariantProperties.Y_ROT, getRotationFromDirection(state.getValue(ParaChestBlock.FACING))) - .with(VariantProperties.MODEL, new ResourceLocation("galacticraft:block/parachest/" + state.getValue(ParaChestBlock.COLOR) + "_chute"))); + .with(VariantProperties.MODEL, ResourceLocation.parse("galacticraft:block/parachest/" + state.getValue(ParaChestBlock.COLOR) + "_chute"))); }); generator.blockStateOutput.accept(para); } @@ -405,7 +400,6 @@ public void generateItemModels(ItemModelGenerators generator) { generator.generateFlatItem(GCItems.AMBIENT_THERMAL_CONTROLLER, ModelTemplates.FLAT_ITEM); // FOOD - generator.generateFlatItem(GCItems.MOON_BERRIES, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.CHEESE_CURD, ModelTemplates.FLAT_ITEM); generator.generateFlatItem(GCItems.CHEESE_SLICE, ModelTemplates.FLAT_ITEM); @@ -518,7 +512,7 @@ private static TextureMapping detailedTexture(Block block) { .put(TextureSlot.WALL, resourceLocation) .put(TextureSlot.SIDE, resourceLocation) .put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")) - .put(TextureSlot.BOTTOM, new ResourceLocation(TextureMapping.getBlockTexture(block).toString().replace("detailed_", ""))); + .put(TextureSlot.BOTTOM, ResourceLocation.parse(TextureMapping.getBlockTexture(block).toString().replace("detailed_", ""))); } private void createCheeseBlock(BlockModelGenerators generators) { diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java index b0483ce77..cea3f368f 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCDecorationRecipeProvider.java @@ -26,6 +26,7 @@ import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; @@ -35,12 +36,14 @@ import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; +import java.util.concurrent.CompletableFuture; + /** * Decoration block recipes */ public class GCDecorationRecipeProvider extends FabricRecipeProvider { - public GCDecorationRecipeProvider(FabricDataOutput output) { - super(output); + public GCDecorationRecipeProvider(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCGearRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCGearRecipeProvider.java index e1e429d30..704280afe 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCGearRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCGearRecipeProvider.java @@ -26,7 +26,8 @@ import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalItemTags; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; +import net.minecraft.core.HolderLookup; import net.minecraft.data.recipes.*; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; @@ -35,12 +36,14 @@ import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.SmeltingRecipe; +import java.util.concurrent.CompletableFuture; + /** * Armor, tools, and other gear recipes */ public class GCGearRecipeProvider extends FabricRecipeProvider { - public GCGearRecipeProvider(FabricDataOutput output) { - super(output); + public GCGearRecipeProvider(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override @@ -128,7 +131,7 @@ public void buildRecipes(RecipeOutput output) { .save(output); ShapedRecipeBuilder.shaped(RecipeCategory.MISC, GCItems.SENSOR_GLASSES) - .define('D', ConventionalItemTags.DIAMONDS) + .define('D', ConventionalItemTags.DIAMOND_GEMS) .define('S', Items.STRING) .define('L', GCItems.SENSOR_LENS) .define('M', GCItems.METEORIC_IRON_INGOT) diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java index 8bc4b65e7..47d52dc2f 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCMachineRecipes.java @@ -30,7 +30,8 @@ import dev.galacticraft.mod.tag.GCTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalItemTags; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; +import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; @@ -38,9 +39,11 @@ import net.minecraft.data.recipes.ShapelessRecipeBuilder; import net.minecraft.world.item.Items; +import java.util.concurrent.CompletableFuture; + public class GCMachineRecipes extends FabricRecipeProvider { - public GCMachineRecipes(FabricDataOutput output) { - super(output); + public GCMachineRecipes(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCMiscRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCMiscRecipeProvider.java index fa6e10fb1..8794882bd 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCMiscRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCMiscRecipeProvider.java @@ -26,7 +26,8 @@ import dev.galacticraft.mod.tag.GCTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; -import net.fabricmc.fabric.api.tag.convention.v1.ConventionalItemTags; +import net.fabricmc.fabric.api.tag.convention.v2.ConventionalItemTags; +import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.*; import net.minecraft.tags.ItemTags; @@ -35,12 +36,14 @@ import net.minecraft.world.item.crafting.*; import net.minecraft.world.level.ItemLike; +import java.util.concurrent.CompletableFuture; + /** * Intermediate crafting materials and food recipes. */ public class GCMiscRecipeProvider extends FabricRecipeProvider { - public GCMiscRecipeProvider(FabricDataOutput output) { - super(output); + public GCMiscRecipeProvider(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override @@ -338,7 +341,7 @@ public void buildRecipes(RecipeOutput output) { // SimpleCookingRecipeBuilder.smelting(Ingredient.of(GCBlocks.CHEESE_ORE), RecipeCategory.FOOD, GCItems.CHEESE_CURD, 0.35F, 200) // .unlockedBy(getHasName(GCBlocks.CHEESE_ORE), has(GCBlocks.CHEESE_ORE)) -// .save(output); +// .save(result); ShapelessRecipeBuilder.shapeless(RecipeCategory.FOOD, GCItems.BURGER_BUN, 2) .requires(Items.WHEAT) diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java index 090236f60..81308b2c2 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCOreRecipeProvider.java @@ -27,6 +27,7 @@ import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; @@ -37,14 +38,15 @@ import org.jetbrains.annotations.Nullable; import java.util.List; +import java.util.concurrent.CompletableFuture; /** * Ingot and raw ore recipes */ public class GCOreRecipeProvider extends FabricRecipeProvider { - public GCOreRecipeProvider(FabricDataOutput output) { - super(output); + public GCOreRecipeProvider(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/data/recipes/GCRocketRecipes.java b/src/main/java/dev/galacticraft/mod/data/recipes/GCRocketRecipes.java index 523ff3625..53047038f 100644 --- a/src/main/java/dev/galacticraft/mod/data/recipes/GCRocketRecipes.java +++ b/src/main/java/dev/galacticraft/mod/data/recipes/GCRocketRecipes.java @@ -26,14 +26,17 @@ import dev.galacticraft.mod.tag.GCTags; import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider; +import net.minecraft.core.HolderLookup; import net.minecraft.data.recipes.RecipeCategory; import net.minecraft.data.recipes.RecipeOutput; import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.world.item.Items; +import java.util.concurrent.CompletableFuture; + public class GCRocketRecipes extends FabricRecipeProvider { - public GCRocketRecipes(FabricDataOutput output) { - super(output); + public GCRocketRecipes(FabricDataOutput output, CompletableFuture lookup) { + super(output, lookup); } @Override diff --git a/src/main/java/dev/galacticraft/mod/data/tag/GCBannerTagProvider.java b/src/main/java/dev/galacticraft/mod/data/tag/GCBannerTagProvider.java index c7e9321d4..c35723d34 100644 --- a/src/main/java/dev/galacticraft/mod/data/tag/GCBannerTagProvider.java +++ b/src/main/java/dev/galacticraft/mod/data/tag/GCBannerTagProvider.java @@ -40,6 +40,6 @@ public GCBannerTagProvider(FabricDataOutput output, CompletableFuture.FabricTagBuilder tag(TagKey tag) { diff --git a/src/main/java/dev/galacticraft/mod/events/GCEventHandlers.java b/src/main/java/dev/galacticraft/mod/events/GCEventHandlers.java index e02025ee2..bb67b99e0 100644 --- a/src/main/java/dev/galacticraft/mod/events/GCEventHandlers.java +++ b/src/main/java/dev/galacticraft/mod/events/GCEventHandlers.java @@ -25,11 +25,9 @@ import dev.galacticraft.api.universe.celestialbody.CelestialBody; import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.api.universe.celestialbody.landable.teleporter.CelestialTeleporter; -import dev.galacticraft.impl.rocket.RocketDataImpl; import dev.galacticraft.mod.content.block.special.CryogenicChamberBlock; -import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.misc.footprint.FootprintManager; -import dev.galacticraft.mod.network.packets.FootprintRemovedPacket; +import dev.galacticraft.mod.network.s2c.FootprintRemovedPacket; import dev.galacticraft.mod.util.Translations; import net.fabricmc.fabric.api.entity.event.v1.EntitySleepEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; @@ -38,6 +36,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.GlobalPos; +import net.minecraft.core.Holder; import net.minecraft.network.chat.Component; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerLevel; @@ -45,7 +44,6 @@ import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BedBlock; @@ -59,7 +57,6 @@ public static void init() { EntitySleepEvents.ALLOW_SLEEPING.register(GCEventHandlers::sleepInSpace); EntitySleepEvents.ALLOW_SLEEP_TIME.register(GCEventHandlers::canCryoSleep); EntitySleepEvents.STOP_SLEEPING.register(GCEventHandlers::onWakeFromCryoSleep); - GiveCommandEvents.MODIFY.register(GCEventHandlers::modifyOnGive); ServerTickEvents.END_WORLD_TICK.register(GCEventHandlers::onWorldTick); } @@ -81,8 +78,8 @@ public static Direction changeSleepPosition(LivingEntity entity, BlockPos sleepi public static Player.BedSleepingProblem sleepInSpace(Player player, BlockPos sleepingPos) { Level level = player.level(); - CelestialBody body = CelestialBody.getByDimension(level).orElse(null); - if (body != null && level.getBlockState(sleepingPos).getBlock() instanceof BedBlock && !body.atmosphere().breathable()) { + Holder> body = level.galacticraft$getCelestialBody(); + if (body != null && level.getBlockState(sleepingPos).getBlock() instanceof BedBlock && !body.value().atmosphere().breathable()) { player.sendSystemMessage(Component.translatable(Translations.Chat.BED_FAIL)); return Player.BedSleepingProblem.NOT_POSSIBLE_HERE; } @@ -102,14 +99,6 @@ public static void onWakeFromCryoSleep(LivingEntity entity, BlockPos sleepingPos } } - public static ItemStack modifyOnGive(ItemStack previousItemStack) { - // This will set default data of an empty Rocket item when /give command is used, it also checks required tags for Rocket item to be rendered properly. - if (previousItemStack.is(GCItems.ROCKET) && (!previousItemStack.hasTag() || previousItemStack.hasTag() && !previousItemStack.getTag().getAllKeys().containsAll(RocketDataImpl.DEFAULT_ROCKET.getAllKeys()))) { - previousItemStack.setTag(RocketDataImpl.DEFAULT_ROCKET); - } - return previousItemStack; - } - public static void onPlayerChangePlanets(MinecraftServer server, ServerPlayer player, CelestialBody body, CelestialBody fromBody) { if (body.type() instanceof Landable landable && player.galacticraft$isCelestialScreenActive() && (player.galacticraft$getCelestialScreenState() == null || player.galacticraft$getCelestialScreenState().canTravel(server.registryAccess(), fromBody, body))) { player.galacticraft$closeCelestialScreen(); diff --git a/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java b/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java index 73180ea9f..51c17d215 100644 --- a/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java +++ b/src/main/java/dev/galacticraft/mod/lookup/GCApiLookupProviders.java @@ -24,40 +24,37 @@ import dev.galacticraft.api.gas.Gases; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; -import dev.galacticraft.mod.Constant; +import dev.galacticraft.machinelib.api.item.SingleVariantFixedItemBackedFluidStorage; import dev.galacticraft.mod.api.pipe.Pipe; import dev.galacticraft.mod.api.wire.Wire; import dev.galacticraft.mod.content.GCBlockEntityTypes; -import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.content.item.OxygenTankItem; -import dev.galacticraft.mod.storage.SingleTypeStorage; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidVariant; -import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; import team.reborn.energy.api.EnergyStorage; @SuppressWarnings("UnstableApiUsage") public class GCApiLookupProviders { - private static final Block[] MACHINE_BLOCKS = new Block[]{ - GCBlocks.COAL_GENERATOR, - GCBlocks.BASIC_SOLAR_PANEL, - GCBlocks.ADVANCED_SOLAR_PANEL, - GCBlocks.CIRCUIT_FABRICATOR, - GCBlocks.COMPRESSOR, - GCBlocks.ELECTRIC_COMPRESSOR, - GCBlocks.ELECTRIC_FURNACE, - GCBlocks.ELECTRIC_ARC_FURNACE, - GCBlocks.REFINERY, - GCBlocks.FUEL_LOADER, - GCBlocks.OXYGEN_COLLECTOR, - GCBlocks.OXYGEN_COMPRESSOR, - GCBlocks.OXYGEN_DECOMPRESSOR, - GCBlocks.OXYGEN_SEALER, - GCBlocks.OXYGEN_BUBBLE_DISTRIBUTOR, - GCBlocks.ENERGY_STORAGE_MODULE, - GCBlocks.OXYGEN_STORAGE_MODULE + private static final BlockEntityType[] MACHINE_BLOCKS = new BlockEntityType[]{ + GCBlockEntityTypes.COAL_GENERATOR, + GCBlockEntityTypes.BASIC_SOLAR_PANEL, + GCBlockEntityTypes.ADVANCED_SOLAR_PANEL, + GCBlockEntityTypes.CIRCUIT_FABRICATOR, + GCBlockEntityTypes.COMPRESSOR, + GCBlockEntityTypes.ELECTRIC_COMPRESSOR, + GCBlockEntityTypes.ELECTRIC_FURNACE, + GCBlockEntityTypes.ELECTRIC_ARC_FURNACE, + GCBlockEntityTypes.REFINERY, + GCBlockEntityTypes.FUEL_LOADER, + GCBlockEntityTypes.OXYGEN_COLLECTOR, + GCBlockEntityTypes.OXYGEN_COMPRESSOR, + GCBlockEntityTypes.OXYGEN_DECOMPRESSOR, + GCBlockEntityTypes.OXYGEN_SEALER, + GCBlockEntityTypes.OXYGEN_BUBBLE_DISTRIBUTOR, + GCBlockEntityTypes.ENERGY_STORAGE_MODULE, + GCBlockEntityTypes.OXYGEN_STORAGE_MODULE }; @SuppressWarnings("rawtypes") private static final BlockEntityType[] WIRE_TYPES = new BlockEntityType[]{ @@ -73,7 +70,7 @@ public class GCApiLookupProviders { }; public static void register() { - MachineBlockEntity.registerComponents(MACHINE_BLOCKS); + MachineBlockEntity.registerProviders(MACHINE_BLOCKS); FluidStorage.SIDED.registerForBlockEntities((blockEntity, direction) -> { if (direction == null || !((Pipe) blockEntity).canConnect(direction)) return null; @@ -86,8 +83,8 @@ public static void register() { }, WIRE_TYPES); FluidStorage.ITEM.registerForItems((itemStack, context) -> { - long amount = itemStack.getTag() != null ? itemStack.getTag().getLong(Constant.Nbt.VALUE) : 0; - return new SingleTypeStorage<>(FluidVariant.of(Gases.OXYGEN), context, ((OxygenTankItem) itemStack.getItem()).capacity, FluidVariant.blank(), amount); + long capacity = ((OxygenTankItem) itemStack.getItem()).capacity; + return new SingleVariantFixedItemBackedFluidStorage(itemStack, context, capacity / 100, capacity / 100, capacity, FluidVariant.of(Gases.OXYGEN)); }, GCItems.SMALL_OXYGEN_TANK, GCItems.MEDIUM_OXYGEN_TANK, GCItems.LARGE_OXYGEN_TANK); FluidStorage.ITEM.registerSelf(GCItems.INFINITE_OXYGEN_TANK); } diff --git a/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java b/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java index ed47ab138..5265a7e69 100644 --- a/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java +++ b/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java @@ -22,6 +22,7 @@ package dev.galacticraft.mod.machine.storage; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.Tag; @@ -29,13 +30,14 @@ import net.minecraft.world.ContainerHelper; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeInput; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.Collections; import java.util.List; -public class VariableSizedContainer implements Container { +public class VariableSizedContainer implements Container, RecipeInput { private int targetSize; private final ArrayList stacks; private final List listeners = new ArrayList<>(); @@ -103,6 +105,11 @@ public boolean isEmpty() { return this.stacks.get(i); } + @Override + public int size() { + return this.stacks.size(); + } + @Override public @NotNull ItemStack removeItem(int i, int j) { ItemStack itemStack = ContainerHelper.removeItem(this.stacks, i, j); @@ -170,26 +177,26 @@ public void clearContent() { Collections.fill(this.stacks, ItemStack.EMPTY); } - public CompoundTag toTag() { + public CompoundTag toTag(HolderLookup.Provider provider) { CompoundTag tag = new CompoundTag(); tag.putInt("TargetSize", this.targetSize); ListTag list = new ListTag(); for (ItemStack stack : this.stacks) { - CompoundTag item =new CompoundTag(); - stack.save(item); + CompoundTag item = new CompoundTag(); + stack.save(provider, item); list.add(item); } tag.put("Items", list); return tag; } - public void readTag(CompoundTag tag) { + public void readTag(CompoundTag tag, HolderLookup.Provider provider) { this.targetSize = tag.getInt("TargetSize"); ListTag items = tag.getList("Items", Tag.TAG_COMPOUND); this.stacks.clear(); this.stacks.ensureCapacity(items.size()); for (int i = 0; i < items.size(); i++) { - this.stacks.add(ItemStack.of(items.getCompound(i))); + this.stacks.add(ItemStack.parseOptional(provider, items.getCompound(i))); } while (this.stacks.size() < this.targetSize-1) { this.stacks.add(ItemStack.EMPTY); diff --git a/src/main/java/dev/galacticraft/mod/misc/banner/GCBannerPatterns.java b/src/main/java/dev/galacticraft/mod/misc/banner/GCBannerPatterns.java index b5a21d0a3..cb262202e 100644 --- a/src/main/java/dev/galacticraft/mod/misc/banner/GCBannerPatterns.java +++ b/src/main/java/dev/galacticraft/mod/misc/banner/GCBannerPatterns.java @@ -23,17 +23,16 @@ package dev.galacticraft.mod.misc.banner; import dev.galacticraft.mod.Constant; -import net.minecraft.core.Registry; -import net.minecraft.core.registries.BuiltInRegistries; +import dev.galacticraft.mod.util.Translations; import net.minecraft.core.registries.Registries; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.block.entity.BannerPattern; public class GCBannerPatterns { - public static final ResourceKey ROCKET_KEY = Constant.key(Registries.BANNER_PATTERN, "rocket"); - public static final BannerPattern ROCKET = new BannerPattern(ROCKET_KEY.location().toString()); + public static final ResourceKey ROCKET = Constant.key(Registries.BANNER_PATTERN, "rocket"); - public static void register() { - Registry.register(BuiltInRegistries.BANNER_PATTERN, ROCKET_KEY, ROCKET); + public static void bootstrapRegistries(BootstrapContext context) { + context.register(ROCKET, new BannerPattern(Constant.id("rocket"), Translations.BannerPattern.ROCKET)); } } diff --git a/src/main/java/dev/galacticraft/mod/misc/footprint/Footprint.java b/src/main/java/dev/galacticraft/mod/misc/footprint/Footprint.java index 6f506c8b1..6a27b0a38 100644 --- a/src/main/java/dev/galacticraft/mod/misc/footprint/Footprint.java +++ b/src/main/java/dev/galacticraft/mod/misc/footprint/Footprint.java @@ -23,9 +23,13 @@ package dev.galacticraft.mod.misc.footprint; import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.UUIDUtil; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.level.Level; @@ -36,6 +40,24 @@ import java.util.UUID; public class Footprint { + public static final StreamCodec STREAM_CODEC = StreamCodecs.composite( + ResourceLocation.STREAM_CODEC, + f -> f.dimension, + ByteBufCodecs.DOUBLE, + f -> f.position.x, + ByteBufCodecs.DOUBLE, + f -> f.position.y, + ByteBufCodecs.DOUBLE, + f -> f.position.z, + ByteBufCodecs.FLOAT, + f -> f.rotation, + ByteBufCodecs.SHORT, + f -> f.age, + UUIDUtil.STREAM_CODEC, + f -> f.owner, + (id, x, y, z, r, a, o) -> new Footprint(id, new Vector3d(x, y, z), r, a, o) + ); + public static final short MAX_AGE = 3200; public final ResourceLocation dimension; public final float rotation; @@ -122,18 +144,4 @@ public static Vector3d getFootprintPosition(Level level, float rotation, Vector3 return position; } - - public void write(FriendlyByteBuf buf) { - buf.writeResourceLocation(dimension); - buf.writeDouble(position.x()); - buf.writeDouble(position.y()); - buf.writeDouble(position.z()); - buf.writeFloat(rotation); - buf.writeShort(age); - buf.writeUUID(owner); - } - - public static Footprint read(FriendlyByteBuf buf) { - return new Footprint(buf.readResourceLocation(), new Vector3d(buf.readDouble(), buf.readDouble(), buf.readDouble()), buf.readFloat(), buf.readShort(), buf.readUUID()); - } } diff --git a/src/main/java/dev/galacticraft/mod/misc/footprint/ServerFootprintManager.java b/src/main/java/dev/galacticraft/mod/misc/footprint/ServerFootprintManager.java index e137dc851..12e291f35 100644 --- a/src/main/java/dev/galacticraft/mod/misc/footprint/ServerFootprintManager.java +++ b/src/main/java/dev/galacticraft/mod/misc/footprint/ServerFootprintManager.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.misc.footprint; -import dev.galacticraft.mod.network.packets.FootprintPacket; +import dev.galacticraft.mod.network.s2c.FootprintPacket; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.server.level.ServerLevel; diff --git a/src/main/java/dev/galacticraft/mod/mixin/BuiltInLootTablesAccessor.java b/src/main/java/dev/galacticraft/mod/mixin/BuiltInLootTablesAccessor.java deleted file mode 100644 index 8c562a2f0..000000000 --- a/src/main/java/dev/galacticraft/mod/mixin/BuiltInLootTablesAccessor.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.mixin; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.level.storage.loot.BuiltInLootTables; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(BuiltInLootTables.class) -public interface BuiltInLootTablesAccessor { - @Invoker("register") - static ResourceLocation callRegisterLootTable(ResourceLocation id) { - throw new UnsupportedOperationException("Invoker was not transformed."); - } -} diff --git a/src/main/java/dev/galacticraft/mod/mixin/EntityMixin.java b/src/main/java/dev/galacticraft/mod/mixin/EntityMixin.java index ab0bc177e..58e1bdd5a 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/EntityMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/EntityMixin.java @@ -26,11 +26,9 @@ import dev.galacticraft.mod.content.entity.damage.GCDamageTypes; import dev.galacticraft.mod.misc.footprint.Footprint; import dev.galacticraft.mod.tag.GCTags; -import dev.galacticraft.mod.world.dimension.GCDimensions; import net.minecraft.core.BlockPos; import net.minecraft.core.SectionPos; import net.minecraft.core.registries.Registries; -import net.minecraft.server.level.ServerLevel; import net.minecraft.tags.TagKey; import net.minecraft.util.Mth; import net.minecraft.util.RandomSource; @@ -42,9 +40,7 @@ import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.portal.PortalInfo; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.Nullable; import org.joml.Vector3d; @@ -55,7 +51,6 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.UUID; @@ -76,13 +71,13 @@ public abstract class EntityMixin implements EntityAccessor { @Shadow private Level level; - @Inject(method = "findDimensionEntryPoint", at = @At("HEAD"), cancellable = true) - private void getTeleportTargetGC(ServerLevel destination, CallbackInfoReturnable cir) { - if (destination.dimension().equals(GCDimensions.MOON) || this.level.dimension().equals(GCDimensions.MOON)) { //TODO lander/parachute stuff - BlockPos pos = destination.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, destination.getSharedSpawnPos()); - cir.setReturnValue(new PortalInfo(new Vec3((double) pos.getX() + 0.5D, pos.getY(), (double) pos.getZ() + 0.5D), this.getDeltaMovement(), this.yRot, this.xRot)); - } - } +// @Inject(method = "findDimensionEntryPoint", at = @At("HEAD"), cancellable = true) +// private void getTeleportTargetGC(ServerLevel destination, CallbackInfoReturnable cir) { +// if (destination.dimension().equals(GCDimensions.MOON) || this.level.dimension().equals(GCDimensions.MOON)) { //TODO lander/parachute stuff +// BlockPos pos = destination.getHeightmapPos(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, destination.getSharedSpawnPos()); +// cir.setReturnValue(new PortalInfo(new Vec3((double) pos.getX() + 0.5D, pos.getY(), (double) pos.getZ() + 0.5D), this.getDeltaMovement(), this.yRot, this.xRot)); +// } +// } @Shadow public abstract boolean updateFluidHeightAndDoFluidPushing(TagKey tag, double d); @@ -160,7 +155,6 @@ private void checkWaterStateGC(CallbackInfo ci) { // GC 4 ticks footprints on the client and server, however we will just do it on the server @Inject(method = "move", at = @At("HEAD")) private void tickFootprints(MoverType type, Vec3 motion, CallbackInfo ci) { - var level = level(); if (!getType().is(GCTags.HAS_FOOTPRINTS)) return; double motionSqrd = Mth.lengthSquared(motion.x, motion.z); @@ -169,12 +163,12 @@ private void tickFootprints(MoverType type, Vec3 motion, CallbackInfo ci) { boolean isFlying = false; if ((Object) this instanceof Player player) isFlying = player.getAbilities().flying; - if (motionSqrd > 0.001 && level.dimensionTypeRegistration().is(GCTags.FOOTPRINTS_DIMENSIONS) && getVehicle() == null && !isFlying) { + if (motionSqrd > 0.001 && this.level.dimensionTypeRegistration().is(GCTags.FOOTPRINTS_DIMENSIONS) && getVehicle() == null && !isFlying) { int iPosX = Mth.floor(getX()); int iPosY = Mth.floor(getY() - 0.05); int iPosZ = Mth.floor(getZ()); BlockPos pos1 = new BlockPos(iPosX, iPosY, iPosZ); - BlockState state = level.getBlockState(pos1); + BlockState state = this.level.getBlockState(pos1); // If the block below is the moon block if (state.is(GCTags.FOOTPRINTS)) { @@ -199,7 +193,7 @@ private void tickFootprints(MoverType type, Vec3 motion, CallbackInfo ci) { pos = Footprint.getFootprintPosition(level, getYRot() - 180, pos, position()); long chunkKey = ChunkPos.asLong(SectionPos.blockToSectionCoord(pos.x), SectionPos.blockToSectionCoord(pos.z)); - level.galacticraft$getFootprintManager().addFootprint(chunkKey, new Footprint(level.dimensionTypeId().location(), pos, getYRot(), getUUID())); + level.galacticraft$getFootprintManager().addFootprint(chunkKey, new Footprint(level.dimensionTypeRegistration().unwrapKey().get().location(), pos, getYRot(), getUUID())); // Increment and cap step counter at 1 galacticraft$setLastStep((galacticraft$getLastStep() + 1) % 2); diff --git a/src/main/java/dev/galacticraft/mod/mixin/ItemEntityMixin.java b/src/main/java/dev/galacticraft/mod/mixin/ItemEntityMixin.java index 69af0b14c..e06018655 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/ItemEntityMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/ItemEntityMixin.java @@ -22,9 +22,8 @@ package dev.galacticraft.mod.mixin; +import dev.galacticraft.api.component.GCDataComponents; import dev.galacticraft.mod.content.item.GCItems; -import dev.galacticraft.mod.content.item.HotThrowableMeteorChunkItem; -import net.minecraft.nbt.CompoundTag; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.item.ItemEntity; @@ -49,14 +48,12 @@ public ItemEntityMixin(EntityType entityType, Level level) { @Inject(at = @At("RETURN"), method = "tick") void coolMeteorChunk(CallbackInfo ci) { ItemStack stack = this.getItem(); - CompoundTag tag = stack.getTag(); if (stack.is(GCItems.HOT_THROWABLE_METEOR_CHUNK)) { - if (tag != null) { - int ticksUntilCool = tag.getInt(HotThrowableMeteorChunkItem.TICKS_UNTIL_COOL); - if (ticksUntilCool == 0) { - this.setItem(new ItemStack(GCItems.THROWABLE_METEOR_CHUNK, stack.getCount())); - } - tag.putInt(HotThrowableMeteorChunkItem.TICKS_UNTIL_COOL, ticksUntilCool - 1); + int ttc = stack.getComponents().getOrDefault(GCDataComponents.TICKS_UNTIL_COOL, 0); + if (ttc == 0) { + this.setItem(new ItemStack(GCItems.THROWABLE_METEOR_CHUNK, stack.getCount())); + } else { + stack.set(GCDataComponents.TICKS_UNTIL_COOL, ttc - 1); } if (this.isInWater()) { diff --git a/src/main/java/dev/galacticraft/mod/mixin/LanternBlockMixin.java b/src/main/java/dev/galacticraft/mod/mixin/LanternBlockMixin.java index 05b1df70c..f37702e65 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/LanternBlockMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/LanternBlockMixin.java @@ -23,10 +23,9 @@ package dev.galacticraft.mod.mixin; import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyConfig; -import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.mod.content.GCBlocks; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -47,8 +46,8 @@ public LanternBlockMixin(Properties settings) { @Deprecated public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean moved) { super.onPlace(state, world, pos, oldState, moved); - CelestialBody> body = CelestialBody.getByDimension(world).orElse(null); - if (body != null && !body.atmosphere().breathable()) { + Holder> holder = world.galacticraft$getCelestialBody(); + if (holder != null && !holder.value().atmosphere().breathable()) { if (state.getBlock() == Blocks.LANTERN) { world.setBlockAndUpdate(pos, GCBlocks.UNLIT_LANTERN.defaultBlockState().setValue(LanternBlock.HANGING, state.getValue(LanternBlock.HANGING)).setValue(LanternBlock.WATERLOGGED, state.getValue(LanternBlock.WATERLOGGED))); } diff --git a/src/main/java/dev/galacticraft/mod/mixin/LivingEntityMixin.java b/src/main/java/dev/galacticraft/mod/mixin/LivingEntityMixin.java index 7f3a8fc95..f49db3eff 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/LivingEntityMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/LivingEntityMixin.java @@ -99,8 +99,8 @@ public void setCryogenicChamberCooldown(int cryogenicChamberCooldown) { } @Inject(method = "defineSynchedData", at = @At("TAIL")) - private void gc$sleepData(CallbackInfo ci) { - this.entityData.define(IS_IN_CRYO_SLEEP_ID, false); + private void gc$sleepData(SynchedEntityData.Builder compositeStateBuilder, CallbackInfo ci) { + compositeStateBuilder.define(IS_IN_CRYO_SLEEP_ID, false); } @Inject(method = "setPosToBed", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/dev/galacticraft/mod/mixin/ServerPlayerMixin.java b/src/main/java/dev/galacticraft/mod/mixin/ServerPlayerMixin.java index ddabb66b0..c8381d217 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/ServerPlayerMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/ServerPlayerMixin.java @@ -29,6 +29,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; @@ -79,7 +80,7 @@ private void writeCelestialData(CompoundTag nbt, CallbackInfo ci) { nbt.putBoolean("CelestialActive", this.celestialActive); if (this.rocketData != null) { CompoundTag nbt1 = new CompoundTag(); - this.rocketData.toNbt(nbt1); + RocketData.CODEC.encode(this.rocketData, NbtOps.INSTANCE, nbt1); nbt.put("CelestialState", nbt1); } } @@ -88,7 +89,7 @@ private void writeCelestialData(CompoundTag nbt, CallbackInfo ci) { private void readCelestialData(CompoundTag nbt, CallbackInfo ci) { this.celestialActive = nbt.getBoolean("CelestialActive"); if (nbt.contains("CelestialState")) { - this.rocketData = RocketData.fromNbt(nbt.getCompound("CelestialState")); + this.rocketData = RocketData.CODEC.decode(NbtOps.INSTANCE, nbt.getCompound("CelestialState")).getOrThrow().getFirst(); } } diff --git a/src/main/java/dev/galacticraft/mod/mixin/TorchBlockMixin.java b/src/main/java/dev/galacticraft/mod/mixin/TorchBlockMixin.java index 0a44afed2..5792b00ce 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/TorchBlockMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/TorchBlockMixin.java @@ -23,10 +23,9 @@ package dev.galacticraft.mod.mixin; import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.api.universe.celestialbody.CelestialBodyConfig; -import dev.galacticraft.api.universe.celestialbody.landable.Landable; import dev.galacticraft.mod.content.GCBlocks; import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -48,8 +47,8 @@ public TorchBlockMixin(Properties settings) { @Deprecated public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean moved) { super.onPlace(state, world, pos, oldState, moved); - CelestialBody> body = CelestialBody.getByDimension(world).orElse(null); - if (body != null && !body.atmosphere().breathable()) { + Holder> body = world.galacticraft$getCelestialBody(); + if (body != null && !body.value().atmosphere().breathable()) { if (state.getBlock() == Blocks.TORCH) { world.setBlockAndUpdate(pos, GCBlocks.UNLIT_TORCH.defaultBlockState()); } else if (state.getBlock() == Blocks.WALL_TORCH) { diff --git a/src/main/java/dev/galacticraft/mod/mixin/client/CameraMixin.java b/src/main/java/dev/galacticraft/mod/mixin/client/CameraMixin.java index efb6f2fdf..4091c0242 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/client/CameraMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/client/CameraMixin.java @@ -41,12 +41,11 @@ @Mixin(Camera.class) public abstract class CameraMixin { - @Shadow - protected abstract void move(double d, double e, double f); - @Shadow protected abstract void setRotation(float f, float g); + @Shadow protected abstract void move(float f, float g, float h); + @Unique private static float sleepDirectionToRotationCryo(Direction direction) { return switch (direction) { diff --git a/src/main/java/dev/galacticraft/mod/mixin/client/HumanoidModelMixin.java b/src/main/java/dev/galacticraft/mod/mixin/client/HumanoidModelMixin.java index 914a8f849..6720845f7 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/client/HumanoidModelMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/client/HumanoidModelMixin.java @@ -27,6 +27,7 @@ import dev.galacticraft.mod.content.item.RocketItem; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.core.Holder; import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.LivingEntity; @@ -40,21 +41,36 @@ @Mixin(HumanoidModel.class) public class HumanoidModelMixin { - @Shadow @Final public ModelPart head; + @Shadow + @Final + public ModelPart head; - @Shadow @Final public ModelPart leftArm; + @Shadow + @Final + public ModelPart leftArm; - @Shadow @Final public ModelPart rightArm; + @Shadow + @Final + public ModelPart rightArm; - @Shadow @Final public ModelPart leftLeg; + @Shadow + @Final + public ModelPart leftLeg; - @Shadow @Final public ModelPart rightLeg; + @Shadow + @Final + public ModelPart rightLeg; - @Shadow @Final public ModelPart body; + @Shadow + @Final + public ModelPart body; - @Shadow @Final public ModelPart hat; + @Shadow + @Final + public ModelPart hat; - @Shadow public HumanoidModel.ArmPose rightArmPose; + @Shadow + public HumanoidModel.ArmPose rightArmPose; @Inject(at = @At("HEAD"), method = "setupAnim(Lnet/minecraft/world/entity/LivingEntity;FFFFF)V") private void standInRocketGC(T livingEntity, float f, float g, float h, float i, float j, CallbackInfo ci) { @@ -67,10 +83,8 @@ private void standInRocketGC(T livingEntity, float f, float g, float h, float i, @Inject(method = "setupAnim(Lnet/minecraft/world/entity/LivingEntity;FFFFF)V", at = @At("TAIL")) private void gc$modifyPlayerAnim(LivingEntity entity, float f, float g, float h, float i, float j, CallbackInfo ci) { - - CelestialBody.getByDimension(entity.level()).ifPresent(celestialBody -> { - if (celestialBody.gravity() > .8) - return; + Holder> holder = entity.level().galacticraft$getCelestialBody(); + if (holder != null && holder.value().gravity() < 0.8) { float speedModifier = 0.1162F * 2; final float floatPI = 3.1415927F; @@ -85,7 +99,7 @@ private void standInRocketGC(T livingEntity, float f, float g, float h, float i, this.leftLeg.xRot += Mth.cos(f * 0.1162F * 2 + floatPI) * 1.4F * g; this.rightLeg.xRot -= Mth.cos(f * 0.6662F) * 1.4F * g; this.rightLeg.xRot += Mth.cos(f * 0.1162F * 2) * 1.4F * g; - }); + } if (entity.getItemInHand(InteractionHand.MAIN_HAND).getItem() instanceof RocketItem || entity.getItemInHand(InteractionHand.OFF_HAND).getItem() instanceof RocketItem) { float armXRot = Mth.PI + 0.3F; @@ -97,8 +111,8 @@ private void standInRocketGC(T livingEntity, float f, float g, float h, float i, this.rightArm.yRot = 0.0F; this.rightArm.zRot = (float) -Math.PI / 10.0F; } - - + + if (entity.isInCryoSleep()) { // TODO: possibly cleaner way of doing this? this.hat.xRot = 45F; this.hat.yRot = 0; diff --git a/src/main/java/dev/galacticraft/mod/mixin/client/LevelRendererMixin.java b/src/main/java/dev/galacticraft/mod/mixin/client/LevelRendererMixin.java index 466296187..db2601aa6 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/client/LevelRendererMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/client/LevelRendererMixin.java @@ -45,25 +45,27 @@ @Mixin(LevelRenderer.class) public class LevelRendererMixin { @Unique - private OverworldRenderer gc$worldRenderer; + private OverworldRenderer worldRenderer; @Inject(method = "", at = @At("TAIL")) private void gc$setupRenderer(Minecraft minecraft, EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, RenderBuffers renderBuffers, CallbackInfo ci) { - this.gc$worldRenderer = new OverworldRenderer(); + this.worldRenderer = new OverworldRenderer(); } @Inject(method = "renderSky", at = @At("HEAD"), cancellable = true) - public void gc$renderSky(PoseStack poseStack, Matrix4f matrix4f, float partialTicks, Camera camera, boolean bl, Runnable runnable, CallbackInfo ci) { + public void gc$renderSky(Matrix4f matrix4f, Matrix4f projectionMatrix, float tickDelta, Camera camera, boolean thickFog, Runnable fogCallback, CallbackInfo ci) { Player player = Minecraft.getInstance().player; if (player.getVehicle() instanceof RocketEntity && player.getVehicle().getY() > 200) { - runnable.run(); - gc$worldRenderer.renderOverworldSky(player, poseStack, matrix4f, partialTicks, camera, bl, runnable); + fogCallback.run(); + PoseStack poseStack = new PoseStack(); + poseStack.mulPose(matrix4f); + this.worldRenderer.renderOverworldSky(player, poseStack, matrix4f, tickDelta, camera, thickFog, fogCallback); ci.cancel(); } } @Inject(method = "renderClouds", at = @At("HEAD"), cancellable = true) - public void gc$preventCloudRendering(PoseStack poseStack, Matrix4f matrix4f, float f, double d, double e, double g, CallbackInfo ci) { + public void gc$preventCloudRendering(PoseStack matrices, Matrix4f matrix4f, Matrix4f matrix4f2, float tickDelta, double cameraX, double cameraY, double cameraZ, CallbackInfo ci) { Player player = Minecraft.getInstance().player; if (player != null && player.getVehicle() instanceof RocketEntity && player.getVehicle().getY() > Constant.OVERWORLD_SKYPROVIDER_STARTHEIGHT) { // Have clouds slowly fade out diff --git a/src/main/java/dev/galacticraft/mod/mixin/client/LivingEntityRendererMixin.java b/src/main/java/dev/galacticraft/mod/mixin/client/LivingEntityRendererMixin.java index d9ca7c46a..309991566 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/client/LivingEntityRendererMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/client/LivingEntityRendererMixin.java @@ -60,26 +60,26 @@ private static float sleepDirectionToRotationCryo(Direction direction) { } @Inject(method = "setupRotations", at = @At("HEAD")) - private void rotateToMatchRocket(LivingEntity entity, PoseStack poseStack, float ageInTicks, float rotationYaw, float partialTicks, CallbackInfo ci) { + private void rotateToMatchRocket(LivingEntity entity, PoseStack pose, float animationProgress, float bodyYaw, float tickDelta, float scale, CallbackInfo ci) { if (entity.isPassenger()) { if (entity.getVehicle() instanceof RocketEntity rocket) { double rotationOffset = -0.5F; - poseStack.translate(0, -rotationOffset, 0); + pose.translate(0, -rotationOffset, 0); float anglePitch = rocket.xRotO; float angleYaw = rocket.yRotO; - poseStack.mulPose(Axis.YN.rotationDegrees(angleYaw)); - poseStack.mulPose(Axis.ZP.rotationDegrees(anglePitch)); - poseStack.translate(0, rotationOffset, 0); + pose.mulPose(Axis.YN.rotationDegrees(angleYaw)); + pose.mulPose(Axis.ZP.rotationDegrees(anglePitch)); + pose.translate(0, rotationOffset, 0); } } } @Inject(method = "setupRotations", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getBedOrientation()Lnet/minecraft/core/Direction;"), cancellable = true) - private void galacticraft$renderCryoChamberPos(LivingEntity livingEntity, PoseStack poseStack, float f, float g, float h, CallbackInfo ci) { - if (livingEntity.isInCryoSleep()) { - Direction direction = livingEntity.getBedOrientation(); - float j = direction != null ? sleepDirectionToRotationCryo(direction) : g; - poseStack.mulPose(Axis.YP.rotationDegrees(j)); + private void galacticraft$renderCryoChamberPos(LivingEntity entity, PoseStack pose, float animationProgress, float bodyYaw, float tickDelta, float scale, CallbackInfo ci) { + if (entity.isInCryoSleep()) { + Direction direction = entity.getBedOrientation(); + float j = direction != null ? sleepDirectionToRotationCryo(direction) : bodyYaw; + pose.mulPose(Axis.YP.rotationDegrees(j)); ci.cancel(); } } diff --git a/src/main/java/dev/galacticraft/mod/mixin/client/LocalPlayerMixin.java b/src/main/java/dev/galacticraft/mod/mixin/client/LocalPlayerMixin.java index 9d7e1217c..faccbeefc 100644 --- a/src/main/java/dev/galacticraft/mod/mixin/client/LocalPlayerMixin.java +++ b/src/main/java/dev/galacticraft/mod/mixin/client/LocalPlayerMixin.java @@ -25,7 +25,7 @@ import com.mojang.authlib.GameProfile; import dev.galacticraft.mod.content.entity.ControllableEntity; import dev.galacticraft.mod.content.item.RocketItem; -import dev.galacticraft.mod.network.packets.ControlEntityPacket; +import dev.galacticraft.mod.network.c2s.ControlEntityPayload; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; @@ -65,7 +65,7 @@ private void gcRocketJumpCheck(CallbackInfo ci) { if (player.isPassenger()) { if (player.getVehicle() instanceof ControllableEntity controllable) { controllable.inputTick(input.leftImpulse, input.forwardImpulse, input.up, input.down, input.left, input.right, input.jumping, input.shiftKeyDown); - ClientPlayNetworking.send(new ControlEntityPacket(input.leftImpulse, input.forwardImpulse, input.up, input.down, input.left, input.right, input.jumping, input.shiftKeyDown)); + ClientPlayNetworking.send(new ControlEntityPayload(input.leftImpulse, input.forwardImpulse, input.up, input.down, input.left, input.right, input.jumping, input.shiftKeyDown)); } } } diff --git a/src/main/java/dev/galacticraft/mod/network/GCPackets.java b/src/main/java/dev/galacticraft/mod/network/GCPackets.java new file mode 100644 index 000000000..d628ddb64 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/GCPackets.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network; + +import dev.galacticraft.mod.network.c2s.*; +import dev.galacticraft.mod.network.s2c.*; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; + +public class GCPackets { + public static void register() { + PayloadTypeRegistry.playS2C().register(BubbleSizePayload.TYPE, BubbleSizePayload.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(BubbleUpdatePayload.TYPE, BubbleUpdatePayload.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(FootprintPacket.TYPE, FootprintPacket.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(FootprintRemovedPacket.TYPE, FootprintRemovedPacket.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(OpenCelestialScreenPayload.TYPE, OpenCelestialScreenPayload.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(ResetPerspectivePacket.TYPE, ResetPerspectivePacket.STREAM_CODEC); + PayloadTypeRegistry.playS2C().register(RocketSpawnPacket.TYPE, RocketSpawnPacket.STREAM_CODEC); + + PayloadTypeRegistry.playC2S().register(ControlEntityPayload.TYPE, ControlEntityPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(OpenRocketPayload.TYPE, OpenRocketPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(SatelliteCreationPayload.TYPE, SatelliteCreationPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(BubbleMaxPayload.TYPE, BubbleMaxPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(BubbleVisibilityPayload.TYPE, BubbleVisibilityPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(PlanetTeleportPayload.TYPE, PlanetTeleportPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(SelectPartPayload.TYPE, SelectPartPayload.STREAM_CODEC); + PayloadTypeRegistry.playC2S().register(OpenGcInventoryPayload.TYPE, OpenGcInventoryPayload.STREAM_CODEC); + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/GCServerPacketReceivers.java b/src/main/java/dev/galacticraft/mod/network/GCServerPacketReceivers.java index f246440ae..5055aa645 100644 --- a/src/main/java/dev/galacticraft/mod/network/GCServerPacketReceivers.java +++ b/src/main/java/dev/galacticraft/mod/network/GCServerPacketReceivers.java @@ -22,90 +22,27 @@ package dev.galacticraft.mod.network; -import dev.galacticraft.api.accessor.SatelliteAccessor; -import dev.galacticraft.api.registry.AddonRegistries; -import dev.galacticraft.api.universe.celestialbody.CelestialBody; -import dev.galacticraft.impl.universe.celestialbody.type.SatelliteType; -import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.content.entity.orbital.RocketEntity; -import dev.galacticraft.mod.events.GCEventHandlers; -import dev.galacticraft.mod.network.packets.*; -import dev.galacticraft.mod.screen.GCPlayerInventoryMenu; -import dev.galacticraft.mod.screen.RocketMenu; -import net.fabricmc.fabric.api.networking.v1.PacketType; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.network.c2s.*; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.SimpleMenuProvider; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; /** * Handles server-bound (C2S) packets. */ public class GCServerPacketReceivers { public static void register() { - ServerPlayNetworking.registerGlobalReceiver(Constant.Packet.OPEN_GC_INVENTORY, (server, player, handler, buf, responseSender) -> server.execute(() -> player.openMenu(new SimpleMenuProvider(GCPlayerInventoryMenu::new, Component.empty()) { - @Override - public boolean shouldCloseCurrentScreen() { - return false; - } - }))); - ServerPlayNetworking.registerGlobalReceiver(Constant.Packet.OPEN_GC_ROCKET, (server, player, handler, buf, responseSender) -> server.execute(() -> player.openMenu(new ExtendedScreenHandlerFactory() { - @Override - public AbstractContainerMenu createMenu(int syncId, Inventory inventory, Player player) { - return new RocketMenu(syncId, inventory, player, (RocketEntity) player.getVehicle()); - } - - @Override - public Component getDisplayName() { - return Component.empty(); - } - - @Override - public void writeScreenOpeningData(ServerPlayer player, FriendlyByteBuf buf) { - assert player.getVehicle() instanceof RocketEntity; - RocketEntity rocket = (RocketEntity) player.getVehicle(); - buf.writeInt(rocket.getId()); - } - - @Override - public boolean shouldCloseCurrentScreen() { - return false; - } - }))); - - registerPacket(BubbleMaxPacket.TYPE); - registerPacket(SelectPartPacket.TYPE); - registerPacket(ToggleBubbleVisibilityPacket.TYPE); - registerPacket(ControlEntityPacket.TYPE); - - ServerPlayNetworking.registerGlobalReceiver(Constant.Packet.PLANET_TP, ((server, player, handler, buf, responseSender) -> { - FriendlyByteBuf buffer = new FriendlyByteBuf(buf.copy()); - if (player.galacticraft$isCelestialScreenActive()) { - server.execute(() -> { - ResourceLocation id = buffer.readResourceLocation(); - CelestialBody body = ((SatelliteAccessor) server).galacticraft$getSatellites().get(id); - CelestialBody fromBody = CelestialBody.getByDimension(player.level()).orElseThrow(); - if (body == null) body = server.registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).get(id); - GCEventHandlers.onPlayerChangePlanets(server, player, body, fromBody); - }); - } else { - player.connection.disconnect(Component.literal("Invalid planet teleport packet received.")); - } - })); - - ServerPlayNetworking.registerGlobalReceiver(Constant.Packet.CREATE_SATELLITE, (server, player, handler, buf, responseSender) -> { - SatelliteType.registerSatellite(server, player, server.registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).getHolderOrThrow(ResourceKey.create(AddonRegistries.CELESTIAL_BODY, buf.readResourceLocation())), server.getStructureManager().get(Constant.Structure.SPACE_STATION).orElseThrow()); - }); + registerPacket(ControlEntityPayload.TYPE); + registerPacket(OpenRocketPayload.TYPE); + registerPacket(SatelliteCreationPayload.TYPE); + registerPacket(BubbleVisibilityPayload.TYPE); + registerPacket(SelectPartPayload.TYPE); + registerPacket(OpenGcInventoryPayload.TYPE); + registerPacket(PlanetTeleportPayload.TYPE); + registerPacket(BubbleMaxPayload.TYPE); } - public static void registerPacket(PacketType type) { - ServerPlayNetworking.registerGlobalReceiver(type, GCPacket::handle); + public static

void registerPacket(CustomPacketPayload.Type

type) { + ServerPlayNetworking.registerGlobalReceiver(type, C2SPayload::handle); } } diff --git a/src/main/java/dev/galacticraft/mod/network/packets/BubbleMaxPacket.java b/src/main/java/dev/galacticraft/mod/network/c2s/BubbleMaxPayload.java similarity index 54% rename from src/main/java/dev/galacticraft/mod/network/packets/BubbleMaxPacket.java rename to src/main/java/dev/galacticraft/mod/network/c2s/BubbleMaxPayload.java index 267e5ee66..a94577545 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/BubbleMaxPacket.java +++ b/src/main/java/dev/galacticraft/mod/network/c2s/BubbleMaxPayload.java @@ -20,28 +20,31 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.mod.network.c2s; -import dev.galacticraft.mod.Constant.Packet; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; import dev.galacticraft.mod.screen.OxygenBubbleDistributorMenu; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; -public record BubbleMaxPacket(byte max) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.BUBBLE_MAX, BubbleMaxPacket::new); - - public BubbleMaxPacket(FriendlyByteBuf buf) { - this(buf.readByte()); - } +public record BubbleMaxPayload(byte max) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.BYTE.map(BubbleMaxPayload::new, packet -> packet.max); + public static final ResourceLocation ID = Constant.id("bubble_max"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); @Override - public void handle(Player player, PacketSender responseSender) { - if (player.containerMenu instanceof OxygenBubbleDistributorMenu sHandler) { - OxygenBubbleDistributorBlockEntity machine = sHandler.machine; - if (machine.getSecurity().hasAccess(player)) { + public void handle(ServerPlayNetworking.@NotNull Context context) { + + if (context.player().containerMenu instanceof OxygenBubbleDistributorMenu menu) { + OxygenBubbleDistributorBlockEntity machine = menu.be; + if (machine.getSecurity().hasAccess(context.player())) { if (max > 0) { machine.setTargetSize(max); } @@ -50,12 +53,7 @@ public void handle(Player player, PacketSender responseSender) { } @Override - public void write(FriendlyByteBuf buf) { - buf.writeByte(max); - } - - @Override - public PacketType getType() { + public @NotNull Type type() { return TYPE; } } diff --git a/src/main/java/dev/galacticraft/mod/network/packets/ToggleBubbleVisibilityPacket.java b/src/main/java/dev/galacticraft/mod/network/c2s/BubbleVisibilityPayload.java similarity index 55% rename from src/main/java/dev/galacticraft/mod/network/packets/ToggleBubbleVisibilityPacket.java rename to src/main/java/dev/galacticraft/mod/network/c2s/BubbleVisibilityPayload.java index 365d912a3..ffe4ccd75 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/ToggleBubbleVisibilityPacket.java +++ b/src/main/java/dev/galacticraft/mod/network/c2s/BubbleVisibilityPayload.java @@ -20,40 +20,37 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.mod.network.c2s; -import dev.galacticraft.mod.Constant.Packet; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; import dev.galacticraft.mod.screen.OxygenBubbleDistributorMenu; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; -public record ToggleBubbleVisibilityPacket(boolean visible) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.BUBBLE_VISIBLE, ToggleBubbleVisibilityPacket::new); - - public ToggleBubbleVisibilityPacket(FriendlyByteBuf buf) { - this(buf.readBoolean()); - } +public record BubbleVisibilityPayload(boolean visible) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.BOOL.map(BubbleVisibilityPayload::new, packet -> packet.visible); + public static final ResourceLocation ID = Constant.id("bubble_visible"); + public static final Type TYPE = new Type<>(ID); @Override - public void handle(Player player, PacketSender responseSender) { - if (player.containerMenu instanceof OxygenBubbleDistributorMenu sHandler) { - OxygenBubbleDistributorBlockEntity machine = sHandler.machine; - if (machine.getSecurity().hasAccess(player)) { + public void handle(ServerPlayNetworking.@NotNull Context context) { + if (context.player().containerMenu instanceof OxygenBubbleDistributorMenu sHandler) { + OxygenBubbleDistributorBlockEntity machine = sHandler.be; + if (machine.getSecurity().hasAccess(context.player())) { machine.setBubbleVisible(visible); } } } @Override - public void write(FriendlyByteBuf buf) { - buf.writeBoolean(visible); - } - - @Override - public PacketType getType() { + public @NotNull Type type() { return TYPE; } } diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/ControlEntityPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/ControlEntityPayload.java new file mode 100644 index 000000000..82993ec49 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/ControlEntityPayload.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.entity.ControllableEntity; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public record ControlEntityPayload(float leftImpulse, float forwardImpulse, boolean up, boolean down, boolean left, boolean right, boolean jumping, boolean shiftKeyDown) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = StreamCodecs.composite( + ByteBufCodecs.FLOAT, + p -> p.leftImpulse, + ByteBufCodecs.FLOAT, + p -> p.forwardImpulse, + ByteBufCodecs.BOOL, + p -> p.up, + ByteBufCodecs.BOOL, + p -> p.down, + ByteBufCodecs.BOOL, + p -> p.left, + ByteBufCodecs.BOOL, + p -> p.right, + ByteBufCodecs.BOOL, + p -> p.jumping, + ByteBufCodecs.BOOL, + p -> p.shiftKeyDown, + ControlEntityPayload::new + ); + public static final ResourceLocation ID = Constant.id("control_entity"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + if (context.player().isPassenger() && context.player().getVehicle() instanceof ControllableEntity controllable) { + controllable.inputTick(leftImpulse(), forwardImpulse(), up(), down(), left(), right(), jumping(), shiftKeyDown()); + } + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/OpenGcInventoryPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/OpenGcInventoryPayload.java new file mode 100644 index 000000000..dede0519b --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/OpenGcInventoryPayload.java @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.screen.GCPlayerInventoryMenu; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.SimpleMenuProvider; +import org.jetbrains.annotations.NotNull; + +public record OpenGcInventoryPayload() implements C2SPayload { + public static final OpenGcInventoryPayload INSTANCE = new OpenGcInventoryPayload(); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(INSTANCE);; + public static final ResourceLocation ID = Constant.id("open_gc_inventory"); + public static final Type TYPE = new Type<>(ID); + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + context.player().openMenu(new SimpleMenuProvider(GCPlayerInventoryMenu::new, Component.empty()) { + @Override + public boolean shouldCloseCurrentScreen() { + return false; + } + }); + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/OpenRocketPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/OpenRocketPayload.java new file mode 100644 index 000000000..8c808fcaf --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/OpenRocketPayload.java @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.entity.orbital.RocketEntity; +import dev.galacticraft.mod.screen.RocketMenu; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerFactory; +import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import org.jetbrains.annotations.NotNull; + +public record OpenRocketPayload() implements C2SPayload { + public static final OpenRocketPayload INSTANCE = new OpenRocketPayload(); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(INSTANCE); + public static final ResourceLocation ID = Constant.id("open_rocket"); + public static final Type TYPE = new Type<>(ID); + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + context.player().openMenu(new ExtendedScreenHandlerFactory<>() { + @Override + public Integer getScreenOpeningData(ServerPlayer player) { + return player.getVehicle().getId(); + } + + @Override + public AbstractContainerMenu createMenu(int syncId, Inventory inventory, Player player) { + return new RocketMenu(syncId, inventory, player, (RocketEntity) player.getVehicle()); + } + + @Override + public @NotNull Component getDisplayName() { + return Component.empty(); + } + + @Override + public boolean shouldCloseCurrentScreen() { + return false; + } + }); + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/PlanetTeleportPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/PlanetTeleportPayload.java new file mode 100644 index 000000000..657b4d4a5 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/PlanetTeleportPayload.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.api.accessor.SatelliteAccessor; +import dev.galacticraft.api.registry.AddonRegistries; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.events.GCEventHandlers; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public record PlanetTeleportPayload(ResourceLocation id) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = ResourceLocation.STREAM_CODEC.map(PlanetTeleportPayload::new, p -> p.id); + public static final ResourceLocation ID = Constant.id("planet_teleport"); + public static final Type TYPE = new Type<>(ID); + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + if (context.player().galacticraft$isCelestialScreenActive()) { + CelestialBody body = ((SatelliteAccessor) context.server()).galacticraft$getSatellites().get(id); + Holder> fromBody = context.player().level().galacticraft$getCelestialBody(); + if (body == null) body = context.server().registryAccess().registryOrThrow(AddonRegistries.CELESTIAL_BODY).get(id); + GCEventHandlers.onPlayerChangePlanets(context.server(), context.player(), body, fromBody.value()); + } else { + context.player().connection.disconnect(Component.literal("Invalid planet teleport packet received.")); + } + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/SatelliteCreationPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/SatelliteCreationPayload.java new file mode 100644 index 000000000..2afac6eac --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/SatelliteCreationPayload.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.api.registry.AddonRegistries; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.impl.universe.celestialbody.type.SatelliteType; +import dev.galacticraft.mod.Constant; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.core.Holder; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public record SatelliteCreationPayload(Holder> body) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = ByteBufCodecs.holderRegistry(AddonRegistries.CELESTIAL_BODY).map(SatelliteCreationPayload::new, p -> p.body); + public static final ResourceLocation ID = Constant.id("create_satellite"); + public static final Type TYPE = new Type<>(ID); + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + SatelliteType.registerSatellite(context.server(), context.player(), this.body, context.server().getStructureManager().get(Constant.Structure.SPACE_STATION).orElseThrow()); + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/c2s/SelectPartPayload.java b/src/main/java/dev/galacticraft/mod/network/c2s/SelectPartPayload.java new file mode 100644 index 000000000..dce90b3a9 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/c2s/SelectPartPayload.java @@ -0,0 +1,73 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.c2s; + +import dev.galacticraft.api.rocket.part.RocketPartTypes; +import dev.galacticraft.impl.network.c2s.C2SPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.screen.RocketWorkbenchMenu; +import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public record SelectPartPayload(RocketPartTypes partType, @Nullable ResourceLocation part) implements C2SPayload { + public static final StreamCodec STREAM_CODEC = StreamCodec.ofMember( + SelectPartPayload::write, + SelectPartPayload::new + ); + + public static final ResourceLocation ID = Constant.id("select_part"); + public static final Type TYPE = new Type<>(ID); + + public SelectPartPayload(FriendlyByteBuf buf) { + this(buf.readEnum(RocketPartTypes.class), buf.readBoolean() ? buf.readResourceLocation() : null); + } + + private void write(FriendlyByteBuf buf) { + buf.writeEnum(this.partType); + if (this.part != null) { + buf.writeBoolean(true); + buf.writeResourceLocation(this.part); + } else { + buf.writeBoolean(false); + } + } + + @Override + public void handle(ServerPlayNetworking.@NotNull Context context) { + if (context.player().containerMenu instanceof RocketWorkbenchMenu menu) { + menu.getSelection(this.partType).setSelection(this.part); + menu.workbench.setChanged(); + } + } + + @Override + public Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/ControlEntityPacket.java b/src/main/java/dev/galacticraft/mod/network/packets/ControlEntityPacket.java deleted file mode 100644 index cf7365926..000000000 --- a/src/main/java/dev/galacticraft/mod/network/packets/ControlEntityPacket.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.network.packets; - -import dev.galacticraft.mod.Constant.Packet; -import dev.galacticraft.mod.content.entity.ControllableEntity; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; - -public record ControlEntityPacket(float leftImpulse, float forwardImpulse, boolean up, boolean down, boolean left, boolean right, boolean jumping, boolean shiftKeyDown) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.CONTROLLABLE_ENTITY, ControlEntityPacket::new); - - public ControlEntityPacket(FriendlyByteBuf buf) { - this(buf.readFloat(), buf.readFloat(), buf.readBoolean(), buf.readBoolean(), buf.readBoolean(), buf.readBoolean(), buf.readBoolean(), buf.readBoolean()); - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeFloat(leftImpulse); - buf.writeFloat(forwardImpulse); - buf.writeBoolean(up); - buf.writeBoolean(down); - buf.writeBoolean(left); - buf.writeBoolean(right); - buf.writeBoolean(jumping); - buf.writeBoolean(shiftKeyDown); - } - - @Override - public PacketType getType() { - return TYPE; - } - - @Override - public void handle(Player player, PacketSender responseSender) { - if (player.isPassenger()) - if (player.getVehicle() instanceof ControllableEntity controllable) - controllable.inputTick(leftImpulse(), forwardImpulse(), up(), down(), left(), right(), jumping(), shiftKeyDown()); - } -} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/FootprintRemovedPacket.java b/src/main/java/dev/galacticraft/mod/network/packets/FootprintRemovedPacket.java deleted file mode 100644 index 0dc1432e3..000000000 --- a/src/main/java/dev/galacticraft/mod/network/packets/FootprintRemovedPacket.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.network.packets; - -import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.misc.footprint.Footprint; -import dev.galacticraft.mod.misc.footprint.FootprintManager; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; - -import java.util.ArrayList; -import java.util.List; - -public record FootprintRemovedPacket(long packedPos, BlockPos pos) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Constant.Packet.FOOTPRINT_REMOVED, FootprintRemovedPacket::new); - - public FootprintRemovedPacket(FriendlyByteBuf buf) { - this(buf.readLong(), buf.readBlockPos()); - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeLong(packedPos); - buf.writeBlockPos(pos); - } - - @Override - public void handle(Player player, PacketSender responseSender) { - long packedPos = packedPos(); - BlockPos pos = pos(); - FootprintManager manager = player.level().galacticraft$getFootprintManager(); - List footprintList = manager.getFootprints().get(packedPos); - List toRemove = new ArrayList<>(); - - if (footprintList != null) { - for (Footprint footprint : footprintList) { - if (footprint.position.x > pos.getX() && footprint.position.x < pos.getX() + 1 && footprint.position.z > pos.getZ() && footprint.position.z < pos.getZ() + 1) { - toRemove.add(footprint); - } - } - } - - if (!toRemove.isEmpty()) { - footprintList.removeAll(toRemove); - manager.getFootprints().put(packedPos, footprintList); - } - } - - @Override - public PacketType getType() { - return TYPE; - } -} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/RocketSpawnPacket.java b/src/main/java/dev/galacticraft/mod/network/packets/RocketSpawnPacket.java deleted file mode 100644 index ed84775f1..000000000 --- a/src/main/java/dev/galacticraft/mod/network/packets/RocketSpawnPacket.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.network.packets; - -import dev.galacticraft.api.rocket.RocketData; -import dev.galacticraft.mod.Constant.Packet; -import dev.galacticraft.mod.content.entity.orbital.RocketEntity; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.client.Minecraft; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.player.Player; - -import java.util.UUID; - -public record RocketSpawnPacket(EntityType type, int id, UUID uuid, double x, double y, double z, float xRot, float yRot, RocketData data) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.ROCKET_SPAWN, RocketSpawnPacket::new); - public RocketSpawnPacket(FriendlyByteBuf buf) { - this(BuiltInRegistries.ENTITY_TYPE.byId(buf.readVarInt()), buf.readVarInt(), buf.readUUID(), buf.readDouble(), buf.readDouble(), buf.readDouble(), (buf.readByte() * 360) / 256.0F, (buf.readByte() * 360) / 256.0F, RocketData.fromNetwork(buf)); - } - - @Override - public void handle(Player player, PacketSender responseSender) { - RocketEntity entity = (RocketEntity) type.create(player.level()); - assert entity != null; - entity.syncPacketPositionCodec(x, y, z); - entity.setPos(x, y, z); - entity.setXRot(xRot); - entity.setYRot(yRot); - entity.setId(id); - entity.setUUID(uuid); - - entity.setData(data); - - Minecraft.getInstance().level.addEntity(entity); - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeVarInt(BuiltInRegistries.ENTITY_TYPE.getId(type)); - buf.writeVarInt(id); - buf.writeUUID(uuid); - buf.writeDouble(x); - buf.writeDouble(y); - buf.writeDouble(z); - buf.writeByte((int) (xRot / 360F * 256F)); - buf.writeByte((int) (yRot / 360F * 256F)); - data.toNetwork(buf); - } - - @Override - public PacketType getType() { - return TYPE; - } -} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/SelectPartPacket.java b/src/main/java/dev/galacticraft/mod/network/packets/SelectPartPacket.java deleted file mode 100644 index 6e56a45bc..000000000 --- a/src/main/java/dev/galacticraft/mod/network/packets/SelectPartPacket.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.network.packets; - -import dev.galacticraft.api.rocket.part.RocketPart; -import dev.galacticraft.api.rocket.part.RocketPartTypes; -import dev.galacticraft.mod.Constant.Packet; -import dev.galacticraft.mod.screen.RocketWorkbenchMenu; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.core.Registry; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.resources.ResourceKey; -import net.minecraft.world.entity.player.Player; -import org.jetbrains.annotations.Nullable; - -public class SelectPartPacket implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.SELECT_PART, SelectPartPacket::new); - - private final RocketPartTypes type; - @Nullable - private final ResourceKey> key; - - public SelectPartPacket(RocketPartTypes type, @Nullable ResourceKey> key) { - this.type = type; - this.key = (ResourceKey>) key; - } - - public SelectPartPacket(FriendlyByteBuf buf) { - this.type = buf.readEnum(RocketPartTypes.class); - this.key = buf.readBoolean() ? ResourceKey.create(((ResourceKey>>) type.key), buf.readResourceLocation()) : null; - } - - @Override - public void handle(Player player, PacketSender responseSender) { - if (player.containerMenu instanceof RocketWorkbenchMenu menu) { - menu.getSelection(type).setSelection(key == null ? null : key.location()); - menu.workbench.setChanged(); - } - } - - @Override - public void write(FriendlyByteBuf buf) { - buf.writeEnum(type); - if (key != null) { - buf.writeBoolean(true); - buf.writeResourceLocation(key.location()); - } else { - buf.writeBoolean(false); - } - } - - @Override - public PacketType getType() { - return TYPE; - } -} diff --git a/src/main/java/dev/galacticraft/mod/network/s2c/BubbleSizePayload.java b/src/main/java/dev/galacticraft/mod/network/s2c/BubbleSizePayload.java new file mode 100644 index 000000000..9088f9cdd --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/s2c/BubbleSizePayload.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.s2c; + +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.SectionPos; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.entity.BlockEntity; +import org.jetbrains.annotations.NotNull; + +public record BubbleSizePayload(BlockPos pos, double size) implements S2CPayload { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + p -> p.pos, + ByteBufCodecs.DOUBLE, + p -> p.size, + BubbleSizePayload::new + ); + + public static final ResourceLocation ID = Constant.id("bubble_size"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); + + public BubbleSizePayload { + if (size < 0) { + throw new IllegalArgumentException("Size cannot be negative"); + } + } + + @Override + public Runnable handle(@NotNull ClientPlayNetworking.Context context) { + return () -> { + ClientLevel level = context.client().level; + if (level != null && level.hasChunk(SectionPos.blockToSectionCoord(this.pos().getX()), SectionPos.blockToSectionCoord(this.pos().getZ()))) { + BlockEntity entity = level.getBlockEntity(this.pos()); + if (entity instanceof OxygenBubbleDistributorBlockEntity machine) { + machine.setSize(this.size()); + } + } + }; + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/s2c/BubbleUpdatePayload.java b/src/main/java/dev/galacticraft/mod/network/s2c/BubbleUpdatePayload.java new file mode 100644 index 000000000..1730429ea --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/s2c/BubbleUpdatePayload.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.s2c; + +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.core.BlockPos; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +public record BubbleUpdatePayload(BlockPos pos, byte maxSize, double size, boolean visible) implements S2CPayload { + public static final ResourceLocation ID = Constant.id("bubble_update"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + BlockPos.STREAM_CODEC, + p -> p.pos, + ByteBufCodecs.BYTE, + p -> p.maxSize, + ByteBufCodecs.DOUBLE, + p -> p.size, + ByteBufCodecs.BOOL, + p -> p.visible, + BubbleUpdatePayload::new + ); + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> { + if (context.player().level().getBlockEntity(this.pos) instanceof OxygenBubbleDistributorBlockEntity machine) { + machine.setTargetSize(this.maxSize); + machine.setSize(this.size); + machine.setBubbleVisible(this.visible); + } + }; + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/FootprintPacket.java b/src/main/java/dev/galacticraft/mod/network/s2c/FootprintPacket.java similarity index 50% rename from src/main/java/dev/galacticraft/mod/network/packets/FootprintPacket.java rename to src/main/java/dev/galacticraft/mod/network/s2c/FootprintPacket.java index d8546c271..dc5660312 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/FootprintPacket.java +++ b/src/main/java/dev/galacticraft/mod/network/s2c/FootprintPacket.java @@ -20,51 +20,41 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.mod.network.s2c; +import dev.galacticraft.impl.network.s2c.S2CPayload; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.client.render.FootprintRenderer; import dev.galacticraft.mod.misc.footprint.Footprint; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; -import java.util.ArrayList; import java.util.List; -public record FootprintPacket(long packedPos, List footprints) implements GCPacket { - public static final PacketType TYPE = PacketType.create(Constant.Packet.FOOTPRINT, FootprintPacket::new); - - public FootprintPacket(FriendlyByteBuf buf) { - this(buf.readLong(), readFootprints(buf)); - } +public record FootprintPacket(long chunk, List footprints) implements S2CPayload { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + StreamCodecs.LONG, + p -> p.chunk, + ByteBufCodecs.list().apply(Footprint.STREAM_CODEC), + p -> p.footprints, + FootprintPacket::new + ); + public static final ResourceLocation ID = Constant.id("footprint"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); @Override - public void write(FriendlyByteBuf buf) { - buf.writeLong(packedPos); - buf.writeInt(footprints.size()); - for (Footprint footprint : footprints) { - footprint.write(buf); - } - } - - public static List readFootprints(FriendlyByteBuf buf) { - int length = buf.readInt(); - List footprints = new ArrayList<>(length); - for (int i = 0; i < length; i++) { - footprints.add(Footprint.read(buf)); - } - return footprints; + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> FootprintRenderer.setFootprints(this.chunk, this.footprints); } @Override - public PacketType getType() { + public @NotNull Type type() { return TYPE; } - - @Override - public void handle(Player player, PacketSender responseSender) { - FootprintRenderer.setFootprints(packedPos(), footprints()); - } } diff --git a/src/main/java/dev/galacticraft/mod/network/s2c/FootprintRemovedPacket.java b/src/main/java/dev/galacticraft/mod/network/s2c/FootprintRemovedPacket.java new file mode 100644 index 000000000..5e313117d --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/s2c/FootprintRemovedPacket.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.s2c; + +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.misc.footprint.Footprint; +import dev.galacticraft.mod.misc.footprint.FootprintManager; +import dev.galacticraft.mod.util.StreamCodecs; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.core.BlockPos; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public record FootprintRemovedPacket(long chunk, BlockPos pos) implements S2CPayload { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + StreamCodecs.LONG, + p -> p.chunk, + BlockPos.STREAM_CODEC, + p -> p.pos, + FootprintRemovedPacket::new + ); + public static final ResourceLocation ID = Constant.id("footprint_removed"); + public static final Type TYPE = new Type<>(ID); + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return () -> { + BlockPos pos = pos(); + FootprintManager manager = context.player().level().galacticraft$getFootprintManager(); + List footprintList = manager.getFootprints().get(this.chunk); + List toRemove = new ArrayList<>(); + + if (footprintList != null) { + for (Footprint footprint : footprintList) { + if (footprint.position.x > pos.getX() && footprint.position.x < pos.getX() + 1 && footprint.position.z > pos.getZ() && footprint.position.z < pos.getZ() + 1) { + toRemove.add(footprint); + } + } + } + + if (!toRemove.isEmpty()) { + footprintList.removeAll(toRemove); + manager.getFootprints().put(this.chunk, footprintList); + } + }; + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/s2c/OpenCelestialScreenPayload.java b/src/main/java/dev/galacticraft/mod/network/s2c/OpenCelestialScreenPayload.java new file mode 100644 index 000000000..0f7ed4a58 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/s2c/OpenCelestialScreenPayload.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.s2c; + +import dev.galacticraft.api.registry.AddonRegistries; +import dev.galacticraft.api.rocket.RocketData; +import dev.galacticraft.api.universe.celestialbody.CelestialBody; +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.client.gui.screen.ingame.CelestialSelectionScreen; +import dev.galacticraft.mod.util.StreamCodecs; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.core.Holder; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public record OpenCelestialScreenPayload(@Nullable RocketData data, Holder> celestialBody) implements S2CPayload { + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + StreamCodecs.ofNullable(RocketData.STREAM_CODEC), + p -> p.data, + ByteBufCodecs.holderRegistry(AddonRegistries.CELESTIAL_BODY), + p -> p.celestialBody, + OpenCelestialScreenPayload::new + ); + + public static final ResourceLocation ID = Constant.id("open_celestial_screen"); + public static final Type TYPE = new Type<>(ID); + + @Override + public @NotNull Type type() { + return TYPE; + } + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return new Runnable() { + @Override + public void run() { + context.client().setScreen(new CelestialSelectionScreen(false, OpenCelestialScreenPayload.this.data(), true, OpenCelestialScreenPayload.this.celestialBody.value())); + } + }; + } +} diff --git a/src/main/java/dev/galacticraft/mod/network/packets/ResetThirdPersonPacket.java b/src/main/java/dev/galacticraft/mod/network/s2c/ResetPerspectivePacket.java similarity index 53% rename from src/main/java/dev/galacticraft/mod/network/packets/ResetThirdPersonPacket.java rename to src/main/java/dev/galacticraft/mod/network/s2c/ResetPerspectivePacket.java index 489338439..943a98c9e 100644 --- a/src/main/java/dev/galacticraft/mod/network/packets/ResetThirdPersonPacket.java +++ b/src/main/java/dev/galacticraft/mod/network/s2c/ResetPerspectivePacket.java @@ -20,35 +20,33 @@ * SOFTWARE. */ -package dev.galacticraft.mod.network.packets; +package dev.galacticraft.mod.network.s2c; -import dev.galacticraft.mod.Constant.Packet; +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.attachments.GCClientPlayer; -import net.fabricmc.fabric.api.networking.v1.FabricPacket; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.PacketType; +import io.netty.buffer.ByteBuf; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; import net.minecraft.client.Minecraft; -import net.minecraft.client.player.LocalPlayer; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.world.entity.player.Player; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; -public record ResetThirdPersonPacket() implements GCPacket { - public static final PacketType TYPE = PacketType.create(Packet.RESET_THIRD_PERSON, ResetThirdPersonPacket::new); +public record ResetPerspectivePacket() implements S2CPayload { + public static final ResetPerspectivePacket INSTANCE = new ResetPerspectivePacket(); + public static final StreamCodec STREAM_CODEC = StreamCodec.unit(INSTANCE); - public ResetThirdPersonPacket(FriendlyByteBuf buf) { - this(); - } - - @Override - public void write(FriendlyByteBuf buf) {} + public static final ResourceLocation ID = Constant.id("reset_perspective"); + public static final Type TYPE = new Type<>(ID); @Override - public PacketType getType() { - return TYPE; + public Runnable handle(@NotNull ClientPlayNetworking.Context context) { + return () -> Minecraft.getInstance().options.setCameraType(GCClientPlayer.get(context.player()).getCameraType()); } @Override - public void handle(Player player, PacketSender responseSender) { - Minecraft.getInstance().options.setCameraType(GCClientPlayer.get((LocalPlayer) player).getCameraType()); + public @NotNull Type type() { + return TYPE; } } diff --git a/src/main/java/dev/galacticraft/mod/network/s2c/RocketSpawnPacket.java b/src/main/java/dev/galacticraft/mod/network/s2c/RocketSpawnPacket.java new file mode 100644 index 000000000..99f10ed89 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/network/s2c/RocketSpawnPacket.java @@ -0,0 +1,98 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.network.s2c; + +import dev.galacticraft.api.rocket.RocketData; +import dev.galacticraft.impl.network.s2c.S2CPayload; +import dev.galacticraft.mod.Constant; +import dev.galacticraft.mod.content.entity.orbital.RocketEntity; +import dev.galacticraft.mod.util.StreamCodecs; +import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; +import net.minecraft.client.multiplayer.ClientLevel; +import net.minecraft.core.UUIDUtil; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.network.protocol.common.custom.CustomPacketPayload; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.EntityType; +import org.jetbrains.annotations.NotNull; + +import java.util.UUID; + +public record RocketSpawnPacket(EntityType eType, int id, UUID uuid, double x, double y, double z, float xRot, float yRot, RocketData data) implements S2CPayload { + public static final StreamCodec STREAM_CODEC = StreamCodecs.composite( + ByteBufCodecs.registry(Registries.ENTITY_TYPE), + p -> p.eType, + ByteBufCodecs.VAR_INT, + p -> p.id, + UUIDUtil.STREAM_CODEC, + p -> p.uuid, + ByteBufCodecs.DOUBLE, + p -> p.x, + ByteBufCodecs.DOUBLE, + p -> p.y, + ByteBufCodecs.DOUBLE, + p -> p.z, + ByteBufCodecs.FLOAT, + p -> p.xRot, + ByteBufCodecs.FLOAT, + p -> p.yRot, + RocketData.STREAM_CODEC, + p -> p.data, + RocketSpawnPacket::new + ); + + public static final ResourceLocation ID = Constant.id("spawn_rocket"); + public static final CustomPacketPayload.Type TYPE = new CustomPacketPayload.Type<>(ID); + + @Override + public Runnable handle(ClientPlayNetworking.@NotNull Context context) { + return new Runnable() { + @Override + public void run() { + ClientLevel level = context.client().level; + assert level != null; + + RocketEntity entity = (RocketEntity) RocketSpawnPacket.this.eType.create(level); + assert entity != null; + entity.syncPacketPositionCodec(x, y, z); + entity.setPos(x, y, z); + entity.setXRot(xRot); + entity.setYRot(yRot); + entity.setId(id); + entity.setUUID(uuid); + + entity.setData(data); + + level.addEntity(entity); + } + }; + } + + @Override + public @NotNull Type type() { + return TYPE; + } +} diff --git a/src/main/java/dev/galacticraft/mod/particle/EntityParticleOption.java b/src/main/java/dev/galacticraft/mod/particle/EntityParticleOption.java index 3038942c8..e841a1e8f 100644 --- a/src/main/java/dev/galacticraft/mod/particle/EntityParticleOption.java +++ b/src/main/java/dev/galacticraft/mod/particle/EntityParticleOption.java @@ -22,68 +22,39 @@ package dev.galacticraft.mod.particle; -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; +import com.mojang.serialization.MapCodec; +import io.netty.buffer.ByteBuf; import net.minecraft.core.UUIDUtil; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.ExtraCodecs; +import net.minecraft.network.codec.StreamCodec; +import org.jetbrains.annotations.NotNull; -import java.util.Locale; import java.util.UUID; public class EntityParticleOption implements ParticleOptions { - public static final Codec CODEC = RecordCodecBuilder.create( - instance -> instance.group( - BuiltInRegistries.PARTICLE_TYPE.byNameCodec().fieldOf("particle").forGetter(EntityParticleOption::getType), - UUIDUtil.CODEC.fieldOf("uuid").forGetter(EntityParticleOption::getEntityUUID) - ).apply(instance, EntityParticleOption::new) - ); + private final ParticleType type; + private final UUID uuid; - public static final ParticleOptions.Deserializer DESERIALIZER = new ParticleOptions.Deserializer<>() { - @Override - public EntityParticleOption fromCommand(ParticleType particleTypeIn, StringReader reader) throws CommandSyntaxException { - reader.expect(' '); - return new EntityParticleOption(particleTypeIn, UUID.fromString(reader.readString())); - } - - @Override - public EntityParticleOption fromNetwork(ParticleType particleTypeIn, FriendlyByteBuf buffer) { - return new EntityParticleOption(particleTypeIn, buffer.readUUID()); - } - }; - - private final ParticleType particleType; - private final UUID entityUUID; - - public EntityParticleOption(ParticleType particleType, UUID entityUUID) { - this.particleType = particleType; - this.entityUUID = entityUUID; + public EntityParticleOption(ParticleType type, UUID uuid) { + this.type = type; + this.uuid = uuid; } - @Override - public ParticleType getType() { - return particleType; + public static MapCodec codec(ParticleType type) { + return UUIDUtil.CODEC.xmap(uuid -> new EntityParticleOption(type, uuid), o -> o.uuid).fieldOf("uuid"); } - @Override - public void writeToNetwork(FriendlyByteBuf buffer) { - buffer.writeBoolean(this.entityUUID != null); - if (this.entityUUID != null) { - buffer.writeUUID(this.entityUUID); - } + public static StreamCodec streamCodec(ParticleType type) { + return UUIDUtil.STREAM_CODEC.map(uuid -> new EntityParticleOption(type, uuid), o -> o.uuid); } @Override - public String writeToString() { - return String.format(Locale.ROOT, "%s %s", BuiltInRegistries.PARTICLE_TYPE.getKey(this.getType()), this.entityUUID.toString()); + public @NotNull ParticleType getType() { + return this.type; } - public UUID getEntityUUID() { - return entityUUID; + public UUID getUuid() { + return this.uuid; } } diff --git a/src/main/java/dev/galacticraft/mod/particle/GCParticleTypes.java b/src/main/java/dev/galacticraft/mod/particle/GCParticleTypes.java index bdab8ed48..ea00dc3a5 100644 --- a/src/main/java/dev/galacticraft/mod/particle/GCParticleTypes.java +++ b/src/main/java/dev/galacticraft/mod/particle/GCParticleTypes.java @@ -40,10 +40,10 @@ public class GCParticleTypes { public static final SimpleParticleType SPARK_PARTICLE = PARTICLES.register(Particle.SPARK, FabricParticleTypes.simple()); public static final SimpleParticleType DRIPPING_SULFURIC_ACID = PARTICLES.register(Particle.DRIPPING_SULFURIC_ACID, FabricParticleTypes.simple()); public static final SimpleParticleType FALLING_SULFURIC_ACID = PARTICLES.register(Particle.FALLING_SULFURIC_ACID, FabricParticleTypes.simple()); // Why does this exist? - public static final ComplexParticleType LAUNCH_SMOKE_PARTICLE = PARTICLES.register(Particle.LAUNCH_SMOKE, new ComplexParticleType<>(false, LaunchSmokeParticleOption.DESERIALIZER, LaunchSmokeParticleOption.CODEC)); // FabricParticleTypes.complex doesn't support codec ): this was fixed in 1.20.5 snapshots - public static final ComplexParticleType LAUNCH_FLAME = PARTICLES.register(Particle.LAUNCH_FLAME, new ComplexParticleType<>(false, EntityParticleOption.DESERIALIZER, EntityParticleOption.CODEC)); - public static final ComplexParticleType LAUNCH_FLAME_LAUNCHED = PARTICLES.register(Particle.LAUNCH_FLAME_LAUNCHED, new ComplexParticleType<>(false, EntityParticleOption.DESERIALIZER, EntityParticleOption.CODEC)); - public static final ComplexParticleType ACID_VAPOR_PARTICLE = PARTICLES.register(Particle.ACID_VAPOR_PARTICLE, new ComplexParticleType<>(false, ScaleParticleType.DESERIALIZER, ScaleParticleType.CODEC)); + public static final ParticleType LAUNCH_SMOKE_PARTICLE = PARTICLES.register(Particle.LAUNCH_SMOKE, FabricParticleTypes.complex(false, LaunchSmokeParticleOption.CODEC, LaunchSmokeParticleOption.STREAM_CODEC)); + public static final ParticleType LAUNCH_FLAME = PARTICLES.register(Particle.LAUNCH_FLAME, FabricParticleTypes.complex(false, EntityParticleOption::codec, EntityParticleOption::streamCodec)); + public static final ParticleType LAUNCH_FLAME_LAUNCHED = PARTICLES.register(Particle.LAUNCH_FLAME_LAUNCHED, FabricParticleTypes.complex(false, EntityParticleOption::codec, EntityParticleOption::streamCodec)); + public static final ParticleType ACID_VAPOR_PARTICLE = PARTICLES.register(Particle.ACID_VAPOR_PARTICLE, FabricParticleTypes.complex(false, ScaleParticleType::codec, ScaleParticleType::streamCodec)); public static void register() {} } diff --git a/src/main/java/dev/galacticraft/mod/particle/LaunchSmokeParticleOption.java b/src/main/java/dev/galacticraft/mod/particle/LaunchSmokeParticleOption.java index 76d83e14b..b776a3864 100644 --- a/src/main/java/dev/galacticraft/mod/particle/LaunchSmokeParticleOption.java +++ b/src/main/java/dev/galacticraft/mod/particle/LaunchSmokeParticleOption.java @@ -22,69 +22,34 @@ package dev.galacticraft.mod.particle; -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.particles.ParticleType; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import org.jetbrains.annotations.NotNull; -import java.util.Locale; - -public class LaunchSmokeParticleOption implements ParticleOptions { - public static final Codec CODEC = RecordCodecBuilder.create( +public record LaunchSmokeParticleOption(boolean launched, float scale) implements ParticleOptions { + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( instance -> instance.group( - Codec.BOOL.fieldOf("launched").forGetter(LaunchSmokeParticleOption::isLaunched), - Codec.FLOAT.fieldOf("scale").forGetter(LaunchSmokeParticleOption::getScale) + Codec.BOOL.fieldOf("launched").forGetter(LaunchSmokeParticleOption::launched), + Codec.FLOAT.fieldOf("scale").forGetter(LaunchSmokeParticleOption::scale) ).apply(instance, LaunchSmokeParticleOption::new) ); - public static final ParticleOptions.Deserializer DESERIALIZER = new ParticleOptions.Deserializer<>() { - public LaunchSmokeParticleOption fromCommand(ParticleType particleType, StringReader stringReader) throws CommandSyntaxException { - stringReader.expect(' '); - boolean launched = stringReader.readBoolean(); - float scale = stringReader.readFloat(); - return new LaunchSmokeParticleOption(launched, scale); - } - - public LaunchSmokeParticleOption fromNetwork(ParticleType particleType, FriendlyByteBuf buffer) { - return new LaunchSmokeParticleOption(buffer.readBoolean(), buffer.readFloat()); - } - }; - - private final boolean launched; - private final float scale; - - public LaunchSmokeParticleOption(boolean launched, float scale) { - this.launched = launched; - this.scale = scale; - } + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.BOOL, + o -> o.launched, + ByteBufCodecs.FLOAT, + o -> o.scale, + LaunchSmokeParticleOption::new + ); @Override - public ParticleType getType() { + public @NotNull ParticleType getType() { return GCParticleTypes.LAUNCH_SMOKE_PARTICLE; } - - @Override - public void writeToNetwork(FriendlyByteBuf buffer) { - buffer.writeBoolean(this.launched); - buffer.writeFloat(this.scale); - } - - @Override - public String writeToString() { - return String.format( - Locale.ROOT, "%s %s %.2f", BuiltInRegistries.PARTICLE_TYPE.getKey(this.getType()), this.launched, this.scale - ); - } - - public boolean isLaunched() { - return launched; - } - - public float getScale() { - return scale; - } } diff --git a/src/main/java/dev/galacticraft/mod/particle/ScaleParticleType.java b/src/main/java/dev/galacticraft/mod/particle/ScaleParticleType.java index 01a81d93a..1c7520bf3 100644 --- a/src/main/java/dev/galacticraft/mod/particle/ScaleParticleType.java +++ b/src/main/java/dev/galacticraft/mod/particle/ScaleParticleType.java @@ -22,48 +22,33 @@ package dev.galacticraft.mod.particle; -import com.mojang.brigadier.StringReader; -import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.core.particles.ParticleOptions; +import com.mojang.serialization.MapCodec; +import io.netty.buffer.ByteBuf; import net.minecraft.core.particles.ParticleType; -import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.particles.ScalableParticleOptionsBase; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; +import org.jetbrains.annotations.NotNull; -import java.util.Locale; +public class ScaleParticleType extends ScalableParticleOptionsBase { + private final ParticleType type; -public record ScaleParticleType(float scale) implements ParticleOptions { - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - Codec.FLOAT.fieldOf("scale").forGetter(type -> type.scale) - ).apply(instance, ScaleParticleType::new)); - public static final Deserializer DESERIALIZER = new Deserializer<>() { - @Override - public ScaleParticleType fromCommand(ParticleType particleType, StringReader reader) throws CommandSyntaxException { - reader.expect(' '); - return new ScaleParticleType(reader.readFloat()); - } - - @Override - public ScaleParticleType fromNetwork(ParticleType particleType, FriendlyByteBuf buffer) { - return new ScaleParticleType(buffer.readFloat()); - } - }; + public ScaleParticleType(ParticleType type, float scale) { + super(scale); + this.type = type; + } - @Override - public ParticleType getType() { - return GCParticleTypes.ACID_VAPOR_PARTICLE; // TODO: make this more general purpose + public static MapCodec codec(ParticleType type) { + return Codec.FLOAT.xmap(uuid -> new ScaleParticleType(type, uuid), ScalableParticleOptionsBase::getScale).fieldOf("scale"); } - @Override - public void writeToNetwork(FriendlyByteBuf buffer) { - buffer.writeFloat(this.scale); + public static StreamCodec streamCodec(ParticleType type) { + return ByteBufCodecs.FLOAT.map(uuid -> new ScaleParticleType(type, uuid), ScalableParticleOptionsBase::getScale); } @Override - public String writeToString() { - return String.format( - Locale.ROOT, "%s %.2f", BuiltInRegistries.PARTICLE_TYPE.getKey(this.getType()), this.scale - ); + public @NotNull ParticleType getType() { + return this.type; } } diff --git a/src/main/java/dev/galacticraft/mod/recipe/CompressingRecipe.java b/src/main/java/dev/galacticraft/mod/recipe/CompressingRecipe.java index 1a1c89ce1..839c9223c 100644 --- a/src/main/java/dev/galacticraft/mod/recipe/CompressingRecipe.java +++ b/src/main/java/dev/galacticraft/mod/recipe/CompressingRecipe.java @@ -22,11 +22,11 @@ package dev.galacticraft.mod.recipe; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.Recipe; import net.minecraft.world.item.crafting.RecipeType; -public interface CompressingRecipe extends Recipe { +public interface CompressingRecipe extends Recipe { @Override default RecipeType getType() { return GCRecipes.COMPRESSING_TYPE; diff --git a/src/main/java/dev/galacticraft/mod/recipe/FabricationRecipe.java b/src/main/java/dev/galacticraft/mod/recipe/FabricationRecipe.java index ea4cd9df7..c769e8a9a 100644 --- a/src/main/java/dev/galacticraft/mod/recipe/FabricationRecipe.java +++ b/src/main/java/dev/galacticraft/mod/recipe/FabricationRecipe.java @@ -23,70 +23,68 @@ package dev.galacticraft.mod.recipe; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.galacticraft.mod.Constant; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.ExtraCodecs; -import net.minecraft.world.Container; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.Ingredient; -import net.minecraft.world.item.crafting.Recipe; -import net.minecraft.world.item.crafting.RecipeSerializer; -import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.item.crafting.*; import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; -public class FabricationRecipe implements Recipe { +public class FabricationRecipe implements Recipe { private final String group; - private final ItemStack output; - private final NonNullList input = NonNullList.withSize(1, Ingredient.EMPTY); + private final ItemStack result; + private final NonNullList ingredients = NonNullList.withSize(1, Ingredient.EMPTY); private final int time; - public FabricationRecipe(String group, Ingredient input, ItemStack output, int time) { + public FabricationRecipe(String group, Ingredient ingredients, ItemStack result, int time) { this.group = group; - this.input.set(0, input); - this.output = output; + this.ingredients.set(0, ingredients); + this.result = result; this.time = time; } @Override - public boolean canCraftInDimensions(int width, int height) { - return width * height > 0; + public boolean matches(RecipeInput input, Level world) { + return this.ingredients.get(0).test(input.getItem(0)); } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { - return this.output; + public @NotNull ItemStack assemble(RecipeInput input, HolderLookup.Provider lookup) { + return this.getResultItem(lookup).copy(); } @Override - public NonNullList getIngredients() { - return this.input; + public boolean canCraftInDimensions(int width, int height) { + return width * height > 0; } @Override - public boolean matches(Container inventory, Level world) { - return this.input.get(0).test(inventory.getItem(0)); + public @NotNull ItemStack getResultItem(HolderLookup.Provider registriesLookup) { + return this.result; } @Override - public ItemStack assemble(Container container, RegistryAccess registryAccess) { - return this.getResultItem(registryAccess).copy(); + public @NotNull NonNullList getIngredients() { + return this.ingredients; } @Override - public RecipeType getType() { + public @NotNull RecipeType getType() { return GCRecipes.FABRICATION_TYPE; } @Override - public RecipeSerializer getSerializer() { + public @NotNull RecipeSerializer getSerializer() { return GCRecipes.FABRICATION_SERIALIZER; } @Override - public String getGroup() { + public @NotNull String getGroup() { return this.group; } @@ -96,29 +94,33 @@ public int getProcessingTime() { public static class Serializer implements RecipeSerializer { public static final Serializer INSTANCE = new Serializer(); - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - ExtraCodecs.strictOptionalField(Codec.STRING, "group", "").forGetter(recipe -> recipe.group), - Ingredient.CODEC.fieldOf("ingredient").forGetter(recipe -> recipe.input.get(0)), - ItemStack.CODEC.fieldOf("result").forGetter(recipe -> recipe.output), - ExtraCodecs.strictOptionalField(Codec.INT, "time", 300).forGetter(recipe -> recipe.time) + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + Codec.STRING.optionalFieldOf("group", "").forGetter(recipe -> recipe.group), + Ingredient.CODEC.fieldOf("ingredient").forGetter(recipe -> recipe.ingredients.get(0)), + ItemStack.CODEC.fieldOf("result").forGetter(recipe -> recipe.result), + Codec.INT.optionalFieldOf("time", 300).forGetter(recipe -> recipe.time) ).apply(instance, FabricationRecipe::new)); - @Override - public Codec codec() { - return CODEC; - } + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, + r -> r.group, + Ingredient.CONTENTS_STREAM_CODEC, + r -> r.ingredients.get(0), + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + FabricationRecipe::new + ); @Override - public FabricationRecipe fromNetwork(FriendlyByteBuf buf) { - return new FabricationRecipe(buf.readUtf(Constant.Misc.MAX_STRING_READ), Ingredient.fromNetwork(buf), buf.readItem(), buf.readInt()); + public @NotNull MapCodec codec() { + return CODEC; } @Override - public void toNetwork(FriendlyByteBuf buf, FabricationRecipe recipe) { - buf.writeUtf(recipe.group); - recipe.input.get(0).toNetwork(buf); - buf.writeItem(recipe.output); - buf.writeInt(recipe.time); + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; } } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/recipe/GCRecipeType.java b/src/main/java/dev/galacticraft/mod/recipe/GCRecipeType.java index a494aaf54..c84f20ed9 100644 --- a/src/main/java/dev/galacticraft/mod/recipe/GCRecipeType.java +++ b/src/main/java/dev/galacticraft/mod/recipe/GCRecipeType.java @@ -24,14 +24,14 @@ import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.Container; import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeInput; import net.minecraft.world.item.crafting.RecipeType; -public class GCRecipeType> implements RecipeType { +public class GCRecipeType> implements RecipeType { @Override public String toString() { ResourceLocation id = BuiltInRegistries.RECIPE_TYPE.getKey(this); - return id == null ? "Unregistered GCRecipeType" : id.toString(); + return id == null ? "" : id.toString(); } } diff --git a/src/main/java/dev/galacticraft/mod/recipe/ShapedCompressingRecipe.java b/src/main/java/dev/galacticraft/mod/recipe/ShapedCompressingRecipe.java index ae911d0b1..1873dcbc6 100644 --- a/src/main/java/dev/galacticraft/mod/recipe/ShapedCompressingRecipe.java +++ b/src/main/java/dev/galacticraft/mod/recipe/ShapedCompressingRecipe.java @@ -22,74 +22,68 @@ package dev.galacticraft.mod.recipe; -import com.google.common.annotations.VisibleForTesting; -import com.google.gson.JsonArray; -import com.google.gson.JsonSyntaxException; import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.galacticraft.mod.Constant; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.ExtraCodecs; -import net.minecraft.util.GsonHelper; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.item.crafting.ShapedRecipePattern; import net.minecraft.world.level.Level; - -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import org.jetbrains.annotations.NotNull; public class ShapedCompressingRecipe implements CompressingRecipe { - private final ShapedRecipePattern pattern; - private final ItemStack output; private final String group; + private final ShapedRecipePattern pattern; + private final ItemStack result; private final int time; - public ShapedCompressingRecipe(String group, ShapedRecipePattern pattern, ItemStack output, int time) { + public ShapedCompressingRecipe(String group, ShapedRecipePattern pattern, ItemStack result, int time) { this.group = group; this.pattern = pattern; - this.output = output; + this.result = result; this.time = time; } @Override - public RecipeSerializer getSerializer() { + public @NotNull RecipeSerializer getSerializer() { return GCRecipes.SHAPED_COMPRESSING_SERIALIZER; } @Override - public String getGroup() { + public @NotNull String getGroup() { return this.group; } @Override - public NonNullList getIngredients() { - return this.pattern.ingredients(); + public @NotNull ItemStack getResultItem(HolderLookup.Provider registriesLookup) { + return this.result; } @Override - public boolean canCraftInDimensions(int width, int height) { - return width >= this.pattern.width() && height >= this.pattern.height(); + public @NotNull NonNullList getIngredients() { + return this.pattern.ingredients(); } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { - return this.output; + public boolean canCraftInDimensions(int width, int height) { + return width >= this.pattern.width() && height >= this.pattern.height(); } @Override - public boolean matches(CraftingContainer inv, Level world) { - return this.pattern.matches(inv); + public boolean matches(CraftingInput input, Level level) { + return this.pattern.matches(input); } @Override - public ItemStack assemble(CraftingContainer container, RegistryAccess registryAccess) { - return this.getResultItem(registryAccess).copy(); + public @NotNull ItemStack assemble(CraftingInput craftingInput, HolderLookup.Provider provider) { + return this.getResultItem(provider).copy(); } public int getWidth() { @@ -100,107 +94,10 @@ public int getHeight() { return this.pattern.height(); } - private static NonNullList getIngredients(String[] pattern, Map key, int width, int height) { - NonNullList defaultedList = NonNullList.withSize(width * height, Ingredient.EMPTY); - Set set = new HashSet<>(key.keySet()); - set.remove(" "); - - for (int i = 0; i < pattern.length; ++i) { - for (int j = 0; j < pattern[i].length(); ++j) { - String string = pattern[i].substring(j, j + 1); - Ingredient ingredient = key.get(string); - if (ingredient == null) { - throw new JsonSyntaxException("Pattern references symbol '" + string + "' but it's not defined in the key"); - } - - set.remove(string); - defaultedList.set(j + width * i, ingredient); - } - } - - if (!set.isEmpty()) { - throw new JsonSyntaxException("Key defines symbols that aren't used in pattern: " + set); - } else { - return defaultedList; - } - } - - @VisibleForTesting - static String[] combinePattern(String... lines) { - int i = Integer.MAX_VALUE; - int j = 0; - int k = 0; - int l = 0; - - for (int m = 0; m < lines.length; ++m) { - String string = lines[m]; - i = Math.min(i, findNextIngredient(string)); - int n = findNextIngredientReverse(string); - j = Math.max(j, n); - if (n < 0) { - if (k == m) { - ++k; - } - - ++l; - } else { - l = 0; - } - } - - if (lines.length == l) { - return new String[0]; - } else { - String[] strings = new String[lines.length - l - k]; - - for (int o = 0; o < strings.length; ++o) { - strings[o] = lines[o + k].substring(i, j + 1); - } - - return strings; - } - } - - private static int findNextIngredient(String pattern) { - int i = 0; - while (i < pattern.length() && pattern.charAt(i) == ' ') { - ++i; - } - - return i; - } - - private static int findNextIngredientReverse(String pattern) { - int i = pattern.length() - 1; - while (i >= 0 && pattern.charAt(i) == ' ') { - --i; - } - - return i; - } - - private static String[] getPattern(JsonArray json) { - String[] strings = new String[json.size()]; - if (strings.length > 3) { - throw new JsonSyntaxException("Invalid pattern: too many rows, 3 is maximum"); - } else if (strings.length == 0) { - throw new JsonSyntaxException("Invalid pattern: empty pattern not allowed"); - } else { - for (int i = 0; i < strings.length; ++i) { - String string = GsonHelper.convertToString(json.get(i), "pattern[" + i + "]"); - if (string.length() > 3) { - throw new JsonSyntaxException("Invalid pattern: too many columns, 3 is maximum"); - } - - if (i > 0 && strings[0].length() != string.length()) { - throw new JsonSyntaxException("Invalid pattern: each row must be the same width"); - } - - strings[i] = string; - } - - return strings; - } + @Override + public boolean isIncomplete() { + NonNullList nonNullList = this.getIngredients(); + return nonNullList.isEmpty() || nonNullList.stream().filter(ingredient -> !ingredient.isEmpty()).anyMatch(ingredient -> ingredient.getItems().length == 0); } @Override @@ -210,35 +107,36 @@ public int getTime() { public static class Serializer implements RecipeSerializer { public static final Serializer INSTANCE = new Serializer(); - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - ExtraCodecs.strictOptionalField(Codec.STRING, "group", "").forGetter(recipe -> recipe.group), - ShapedRecipePattern.MAP_CODEC.forGetter(recipe -> recipe.pattern), - ItemStack.CODEC.fieldOf("result").forGetter(recipe -> recipe.output), - ExtraCodecs.strictOptionalField(Codec.INT, "time", 200).forGetter(recipe -> recipe.time) - ).apply(instance, ShapedCompressingRecipe::new)); + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec( + instance -> instance.group( + Codec.STRING.optionalFieldOf("group", "").forGetter(recipe -> recipe.group), + ShapedRecipePattern.MAP_CODEC.forGetter(recipe -> recipe.pattern), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(recipe -> recipe.result), + Codec.INT.optionalFieldOf("time", 200).forGetter(recipe -> recipe.time) + ) + .apply(instance, ShapedCompressingRecipe::new) + ); + + public static final StreamCodec STREAM_CODEC = StreamCodec.composite( + ByteBufCodecs.STRING_UTF8, + r -> r.group, + ShapedRecipePattern.STREAM_CODEC, + r -> r.pattern, + ItemStack.STREAM_CODEC, + r -> r.result, + ByteBufCodecs.INT, + r -> r.time, + ShapedCompressingRecipe::new + ); @Override - public Codec codec() { + public @NotNull MapCodec codec() { return CODEC; } @Override - public ShapedCompressingRecipe fromNetwork(FriendlyByteBuf buf) { - ShapedRecipePattern pattern = ShapedRecipePattern.fromNetwork(buf); - String string = buf.readUtf(Constant.Misc.MAX_STRING_READ); - int time = buf.readInt(); - - ItemStack output = buf.readItem(); - return new ShapedCompressingRecipe(string, pattern, output, time); - } - - @Override - public void toNetwork(FriendlyByteBuf buf, ShapedCompressingRecipe recipe) { - recipe.pattern.toNetwork(buf); - buf.writeUtf(recipe.group); - buf.writeInt(recipe.time); - - buf.writeItem(recipe.output); + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; } } } diff --git a/src/main/java/dev/galacticraft/mod/recipe/ShapelessCompressingRecipe.java b/src/main/java/dev/galacticraft/mod/recipe/ShapelessCompressingRecipe.java index 7be461247..f2e18a833 100644 --- a/src/main/java/dev/galacticraft/mod/recipe/ShapelessCompressingRecipe.java +++ b/src/main/java/dev/galacticraft/mod/recipe/ShapelessCompressingRecipe.java @@ -24,44 +24,45 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import dev.galacticraft.mod.Constant; +import net.minecraft.core.HolderLookup; import net.minecraft.core.NonNullList; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.util.ExtraCodecs; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.entity.player.StackedContents; -import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingInput; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; public record ShapelessCompressingRecipe(String group, - ItemStack output, - NonNullList input, int time) implements CompressingRecipe { + ItemStack result, + NonNullList ingredients, int time) implements CompressingRecipe { @Override - public RecipeSerializer getSerializer() { + public @NotNull RecipeSerializer getSerializer() { return GCRecipes.SHAPELESS_COMPRESSING_SERIALIZER; } @Override - public String getGroup() { + public @NotNull String getGroup() { return this.group; } @Override - public NonNullList getIngredients() { - return this.input; + public @NotNull NonNullList getIngredients() { + return this.ingredients; } @Override - public boolean matches(CraftingContainer inv, Level world) { + public boolean matches(CraftingInput inv, Level world) { StackedContents recipeFinder = new StackedContents(); int i = 0; - for (int j = 0; j < inv.getContainerSize(); ++j) { + for (int j = 0; j < inv.size(); ++j) { ItemStack itemStack = inv.getItem(j); if (!itemStack.isEmpty()) { ++i; @@ -69,80 +70,80 @@ public boolean matches(CraftingContainer inv, Level world) { } } - return i == this.input.size() && recipeFinder.canCraft(this, null); + return i == this.ingredients.size() && recipeFinder.canCraft(this, null); } @Override - public ItemStack assemble(CraftingContainer container, RegistryAccess registryAccess) { - return this.getResultItem(registryAccess).copy(); + public @NotNull ItemStack assemble(CraftingInput input, HolderLookup.Provider lookup) { + return this.getResultItem(lookup).copy(); } @Override public boolean canCraftInDimensions(int width, int height) { - return width * height >= this.input.size(); + return width * height >= this.ingredients.size(); } @Override - public ItemStack getResultItem(RegistryAccess registryAccess) { - return this.output; + public @NotNull ItemStack getResultItem(HolderLookup.Provider registriesLookup) { + return this.result; } public static class Serializer implements RecipeSerializer { public static final Serializer INSTANCE = new Serializer(); - public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( - ExtraCodecs.strictOptionalField(Codec.STRING, "group", "").forGetter(ShapelessCompressingRecipe::group), - ItemStack.ITEM_WITH_COUNT_CODEC.fieldOf("result").forGetter(ShapelessCompressingRecipe::output), + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group( + Codec.STRING.optionalFieldOf("group", "").forGetter(ShapelessCompressingRecipe::group), + ItemStack.STRICT_CODEC.fieldOf("result").forGetter(recipe -> recipe.result), Ingredient.CODEC_NONEMPTY .listOf() .fieldOf("ingredients") .flatXmap( - list -> { - Ingredient[] ingredients = (Ingredient[])list.stream().filter(ingredient -> !ingredient.isEmpty()).toArray(i -> new Ingredient[i]); - if (ingredients.length == 0) { + ingredients -> { + Ingredient[] ingredients2 = ingredients.stream().filter(ingredient -> !ingredient.isEmpty()).toArray(Ingredient[]::new); + if (ingredients2.length == 0) { return DataResult.error(() -> "No ingredients for shapeless recipe"); } else { - return ingredients.length > 9 + return ingredients2.length > 9 ? DataResult.error(() -> "Too many ingredients for shapeless recipe") - : DataResult.success(NonNullList.of(Ingredient.EMPTY, ingredients)); + : DataResult.success(NonNullList.of(Ingredient.EMPTY, ingredients2)); } }, DataResult::success ) - .forGetter(ShapelessCompressingRecipe::input), - ExtraCodecs.strictOptionalField(Codec.INT, "time", 200).forGetter(ShapelessCompressingRecipe::time) + .forGetter(recipe -> recipe.ingredients), + Codec.INT.optionalFieldOf("time", 200).forGetter(ShapelessCompressingRecipe::time) ).apply(instance, ShapelessCompressingRecipe::new)); + private static final StreamCodec STREAM_CODEC = StreamCodec.of(Serializer::toNetwork, Serializer::fromNetwork); @Override - public Codec codec() { + public @NotNull MapCodec codec() { return CODEC; } @Override - public ShapelessCompressingRecipe fromNetwork(FriendlyByteBuf buf) { - String group = buf.readUtf(Constant.Misc.MAX_STRING_READ); - int time = buf.readInt(); - int size = buf.readVarInt(); - NonNullList ingredients = NonNullList.withSize(size, Ingredient.EMPTY); - - for (int i = 0; i < ingredients.size(); ++i) { - ingredients.set(i, Ingredient.fromNetwork(buf)); - } + public @NotNull StreamCodec streamCodec() { + return STREAM_CODEC; + } + + private static ShapelessCompressingRecipe fromNetwork(RegistryFriendlyByteBuf buf) { + String group = buf.readUtf(); + int i = buf.readVarInt(); + int time = buf.readVarInt(); + NonNullList ingredients = NonNullList.withSize(i, Ingredient.EMPTY); + ingredients.replaceAll(empty -> Ingredient.CONTENTS_STREAM_CODEC.decode(buf)); + ItemStack result = ItemStack.STREAM_CODEC.decode(buf); - ItemStack itemStack = buf.readItem(); - return new ShapelessCompressingRecipe(group, itemStack, ingredients, time); + return new ShapelessCompressingRecipe(group, result, ingredients, time); } - @Override - public void toNetwork(FriendlyByteBuf buf, ShapelessCompressingRecipe recipe) { + private static void toNetwork(RegistryFriendlyByteBuf buf, ShapelessCompressingRecipe recipe) { buf.writeUtf(recipe.group); - buf.writeInt(recipe.time); - buf.writeVarInt(recipe.input.size()); - - for (Ingredient ingredient : recipe.input) { - ingredient.toNetwork(buf); + buf.writeVarInt(recipe.ingredients.size()); + buf.writeVarInt(recipe.time); + for (Ingredient ingredient : recipe.ingredients) { + Ingredient.CONTENTS_STREAM_CODEC.encode(buf, ingredient); } - buf.writeItem(recipe.output); + ItemStack.STREAM_CODEC.encode(buf, recipe.result); } } diff --git a/src/main/java/dev/galacticraft/mod/screen/CoalGeneratorMenu.java b/src/main/java/dev/galacticraft/mod/screen/CoalGeneratorMenu.java index 8a75adc7b..9190a197c 100644 --- a/src/main/java/dev/galacticraft/mod/screen/CoalGeneratorMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/CoalGeneratorMenu.java @@ -23,34 +23,30 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.mod.content.block.entity.machine.CoalGeneratorBlockEntity; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.core.BlockPos; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Inventory; import org.jetbrains.annotations.NotNull; -import java.util.function.Consumer; - public class CoalGeneratorMenu extends MachineMenu { private int fuelTime; private int fuelLength; public CoalGeneratorMenu(int syncId, @NotNull ServerPlayer player, @NotNull CoalGeneratorBlockEntity machine) { - super(syncId, player, machine); + super(GCMenuTypes.COAL_GENERATOR, syncId, player, machine); } - public CoalGeneratorMenu(int syncId, @NotNull Inventory inventory, @NotNull FriendlyByteBuf buf) { - super(syncId, inventory, buf, 8, 84, GCMachineTypes.COAL_GENERATOR); + public CoalGeneratorMenu(int syncId, @NotNull Inventory inventory, @NotNull BlockPos pos) { + super(GCMenuTypes.COAL_GENERATOR, syncId, inventory, pos, 8, 84); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); - - consumer.accept(MenuSyncHandler.simple(this.machine::getFuelTime, this::setFuelTime)); - consumer.accept(MenuSyncHandler.simple(this.machine::getFuelLength, this::setFuelLength)); + public void registerData(@NotNull MenuData data) { + super.registerData(data); + data.registerInt(this.be::getFuelTime, this::setFuelTime); + data.registerInt(this.be::getFuelLength, this::setFuelLength); } public int getFuelTime() { diff --git a/src/main/java/dev/galacticraft/mod/screen/CompressorMenu.java b/src/main/java/dev/galacticraft/mod/screen/CompressorMenu.java index 30dc2ef48..60c831e24 100644 --- a/src/main/java/dev/galacticraft/mod/screen/CompressorMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/CompressorMenu.java @@ -22,35 +22,33 @@ package dev.galacticraft.mod.screen; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.content.block.entity.machine.CompressorBlockEntity; import dev.galacticraft.mod.recipe.CompressingRecipe; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; +import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.crafting.CraftingInput; +import org.jetbrains.annotations.NotNull; -import java.util.function.Consumer; - -public class CompressorMenu extends RecipeMachineMenu { +public class CompressorMenu extends RecipeMachineMenu { private int fuelTime = 0; private int fuelLength = 0; - public CompressorMenu(int syncId, ServerPlayer player, CompressorBlockEntity machine) { - super(syncId, player, machine); + public CompressorMenu(int syncId, Player player, CompressorBlockEntity machine) { + super(GCMenuTypes.COMPRESSOR, syncId, player, machine); } - public CompressorMenu(int syncId, Inventory inv, FriendlyByteBuf buf) { - super(syncId, inv, buf, 8, 84, GCMachineTypes.COMPRESSOR); + public CompressorMenu(int syncId, Inventory inv, BlockPos pos) { + super(GCMenuTypes.COMPRESSOR, syncId, inv, pos, 8, 84); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); - consumer.accept(MenuSyncHandler.simple(this.machine::getFuelTime, this::setFuelTime)); - consumer.accept(MenuSyncHandler.simple(this.machine::getFuelLength, this::setFuelLength)); + public void registerData(@NotNull MenuData data) { + super.registerData(data); + data.registerInt(this.be::getFuelTime, this::setFuelTime); + data.registerInt(this.be::getFuelLength, this::setFuelLength); } public int getFuelLength() { diff --git a/src/main/java/dev/galacticraft/mod/screen/FuelLoaderMenu.java b/src/main/java/dev/galacticraft/mod/screen/FuelLoaderMenu.java index e42b84707..50a7027af 100644 --- a/src/main/java/dev/galacticraft/mod/screen/FuelLoaderMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/FuelLoaderMenu.java @@ -23,15 +23,12 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.mod.content.block.entity.machine.FuelLoaderBlockEntity; import net.minecraft.core.BlockPos; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Inventory; - -import java.util.function.Consumer; +import org.jetbrains.annotations.NotNull; public class FuelLoaderMenu extends MachineMenu { public long rocketAmount; @@ -39,18 +36,18 @@ public class FuelLoaderMenu extends MachineMenu { public BlockPos connectionPos = BlockPos.ZERO; public FuelLoaderMenu(int syncId, ServerPlayer player, FuelLoaderBlockEntity machine) { - super(syncId, player, machine); + super(GCMenuTypes.FUEL_LOADER, syncId, player, machine); } - public FuelLoaderMenu(int syncId, Inventory inv, FriendlyByteBuf buf) { - super(syncId, inv, buf, 8, 84, GCMachineTypes.FUEL_LOADER); + public FuelLoaderMenu(int syncId, Inventory inv, BlockPos pos) { + super(GCMenuTypes.FUEL_LOADER, syncId, inv, pos, 8, 84); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); - consumer.accept(MenuSyncHandler.simple(() -> this.machine.getConnectionPos().asLong(), l -> this.connectionPos = (BlockPos.of(l)))); - consumer.accept(MenuSyncHandler.simple(() -> this.machine.linkedRocket == null ? 0 : this.machine.linkedRocket.getFuelTankAmount(), l -> this.rocketAmount = l)); - consumer.accept(MenuSyncHandler.simple(() -> this.machine.linkedRocket == null ? 0 : this.machine.linkedRocket.getFuelTankCapacity(), l -> this.rocketCapacity = l)); + public void registerData(@NotNull MenuData data) { + super.registerData(data); + data.register(BlockPos.STREAM_CODEC, this.be::getConnectionPos, p -> this.connectionPos = p); + data.registerLong(() -> this.be.linkedRocket == null ? 0 : this.be.linkedRocket.getFuelTankAmount(), l -> this.rocketAmount = l); + data.registerLong(() -> this.be.linkedRocket == null ? 0 : this.be.linkedRocket.getFuelTankCapacity(), l -> this.rocketCapacity = l); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/screen/GCMenuTypes.java b/src/main/java/dev/galacticraft/mod/screen/GCMenuTypes.java index 347b34086..ec8270c79 100644 --- a/src/main/java/dev/galacticraft/mod/screen/GCMenuTypes.java +++ b/src/main/java/dev/galacticraft/mod/screen/GCMenuTypes.java @@ -24,55 +24,53 @@ import dev.galacticraft.machinelib.api.menu.MachineMenu; import dev.galacticraft.machinelib.api.menu.RecipeMachineMenu; +import dev.galacticraft.machinelib.api.menu.SynchronizedMenuType; import dev.galacticraft.mod.Constant; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.content.block.entity.machine.*; import dev.galacticraft.mod.recipe.CompressingRecipe; import dev.galacticraft.mod.recipe.FabricationRecipe; import net.fabricmc.fabric.api.screenhandler.v1.ExtendedScreenHandlerType; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.world.Container; +import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.world.flag.FeatureFlags; -import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.inventory.MenuType; -import net.minecraft.world.item.crafting.BlastingRecipe; -import net.minecraft.world.item.crafting.SmeltingRecipe; +import net.minecraft.world.item.crafting.*; public class GCMenuTypes { - public static final MenuType COAL_GENERATOR = MachineMenu.createType(CoalGeneratorMenu::new); - public static final MenuType> BASIC_SOLAR_PANEL = MachineMenu.createType(SolarPanelMenu::new, () -> GCMachineTypes.BASIC_SOLAR_PANEL); - public static final MenuType> ADVANCED_SOLAR_PANEL = MachineMenu.createType(SolarPanelMenu::new, () -> GCMachineTypes.ADVANCED_SOLAR_PANEL); + public static final MenuType COAL_GENERATOR = SynchronizedMenuType.create(CoalGeneratorMenu::new); + public static final MenuType> BASIC_SOLAR_PANEL = SynchronizedMenuType.create(SolarPanelMenu::new); + public static final MenuType> ADVANCED_SOLAR_PANEL = SynchronizedMenuType.create(SolarPanelMenu::new); - public static final MenuType> CIRCUIT_FABRICATOR = RecipeMachineMenu.createType(() -> GCMachineTypes.CIRCUIT_FABRICATOR, 94); - public static final MenuType COMPRESSOR = MachineMenu.createType(CompressorMenu::new); + public static final MenuType> CIRCUIT_FABRICATOR = SynchronizedMenuType.create(RecipeMachineMenu::new, 94); + public static final MenuType COMPRESSOR = SynchronizedMenuType.create(CompressorMenu::new); - public static final MenuType> ELECTRIC_COMPRESSOR = RecipeMachineMenu.createType(() -> GCMachineTypes.ELECTRIC_COMPRESSOR); - public static final MenuType> ELECTRIC_FURNACE = RecipeMachineMenu.createType(() -> GCMachineTypes.ELECTRIC_FURNACE); - public static final MenuType> ELECTRIC_ARC_FURNACE = RecipeMachineMenu.createType(() -> GCMachineTypes.ELECTRIC_ARC_FURNACE); + public static final MenuType> ELECTRIC_COMPRESSOR = SynchronizedMenuType.createSimple(RecipeMachineMenu::new); + public static final MenuType> ELECTRIC_FURNACE = SynchronizedMenuType.createSimple(RecipeMachineMenu::new); + public static final MenuType> ELECTRIC_ARC_FURNACE = SynchronizedMenuType.createSimple(RecipeMachineMenu::new); - public static final MenuType> REFINERY = MachineMenu.createSimple(86, () -> GCMachineTypes.REFINERY); + public static final MenuType> REFINERY = SynchronizedMenuType.create(MachineMenu::new, 86); - public static final MenuType OXYGEN_COLLECTOR = MachineMenu.createType(OxygenCollectorMenu::new); + public static final MenuType OXYGEN_COLLECTOR = SynchronizedMenuType.create(OxygenCollectorMenu::new); - public static final MenuType> OXYGEN_COMPRESSOR = MachineMenu.createSimple(() -> GCMachineTypes.OXYGEN_COMPRESSOR); - public static final MenuType> OXYGEN_DECOMPRESSOR = MachineMenu.createSimple(() -> GCMachineTypes.OXYGEN_DECOMPRESSOR); + public static final MenuType> OXYGEN_COMPRESSOR = SynchronizedMenuType.createSimple(MachineMenu::new); + public static final MenuType> OXYGEN_DECOMPRESSOR = SynchronizedMenuType.createSimple(MachineMenu::new); - public static final MenuType> OXYGEN_SEALER = MachineMenu.createSimple(() -> GCMachineTypes.OXYGEN_SEALER); + public static final MenuType> OXYGEN_SEALER = SynchronizedMenuType.createSimple(MachineMenu::new); - public static final MenuType OXYGEN_BUBBLE_DISTRIBUTOR = MachineMenu.createType(OxygenBubbleDistributorMenu::new); + public static final MenuType OXYGEN_BUBBLE_DISTRIBUTOR = SynchronizedMenuType.create(OxygenBubbleDistributorMenu::new); - public static final MenuType> OXYGEN_STORAGE_MODULE = MachineMenu.createSimple(() -> GCMachineTypes.OXYGEN_STORAGE_MODULE); - public static final MenuType> ENERGY_STORAGE_MODULE = MachineMenu.createSimple(() -> GCMachineTypes.ENERGY_STORAGE_MODULE); + public static final MenuType> OXYGEN_STORAGE_MODULE = SynchronizedMenuType.createSimple(MachineMenu::new); + public static final MenuType> ENERGY_STORAGE_MODULE = SynchronizedMenuType.createSimple(MachineMenu::new); - public static final MenuType PLAYER_INV_GC = new MenuType<>(GCPlayerInventoryMenu::new, FeatureFlags.VANILLA_SET); + public static final MenuType FUEL_LOADER = SynchronizedMenuType.create(FuelLoaderMenu::new); - public static final ExtendedScreenHandlerType FUEL_LOADER = new ExtendedScreenHandlerType<>(FuelLoaderMenu::new); + public static final MenuType PLAYER_INV_GC = new MenuType<>(GCPlayerInventoryMenu::new, FeatureFlags.VANILLA_SET); public static final MenuType AIRLOCK_CONTROLLER_MENU = new MenuType<>(AirlockControllerMenu::new, FeatureFlags.VANILLA_SET); - public static final MenuType ROCKET_WORKBENCH = new ExtendedScreenHandlerType<>(RocketWorkbenchMenu::new); - public static final ExtendedScreenHandlerType ROCKET = new ExtendedScreenHandlerType<>(RocketMenu::new); - public static final MenuType PARACHEST = new ExtendedScreenHandlerType<>(ParachestMenu::new); + public static final MenuType ROCKET_WORKBENCH = new ExtendedScreenHandlerType<>(RocketWorkbenchMenu::new, RocketWorkbenchMenu.OpeningData.CODEC); + public static final MenuType ROCKET = new ExtendedScreenHandlerType<>(RocketMenu::new, ByteBufCodecs.INT); + public static final MenuType PARACHEST = new ExtendedScreenHandlerType<>(ParachestMenu::new, ParachestMenu.OpeningData.STREAM_CODEC); public static void register() { Registry.register(BuiltInRegistries.MENU, Constant.id(Constant.Menu.PLAYER_INVENTORY_MENU), PLAYER_INV_GC); diff --git a/src/main/java/dev/galacticraft/mod/screen/GCPlayerInventoryMenu.java b/src/main/java/dev/galacticraft/mod/screen/GCPlayerInventoryMenu.java index 99b317f6b..b889885a1 100644 --- a/src/main/java/dev/galacticraft/mod/screen/GCPlayerInventoryMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/GCPlayerInventoryMenu.java @@ -34,7 +34,6 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -124,7 +123,7 @@ private EquipmentSlot getPreferredEquipmentSlot(ItemStack stack) { Item item_1 = stack.getItem(); if (item_1 instanceof ThermalArmorItem thermalArmorItem) return thermalArmorItem.getSlotGroup().getSlot(); - return LivingEntity.getEquipmentSlotForItem(stack); + return this.player.getEquipmentSlotForItem(stack); } @Override @@ -140,7 +139,7 @@ public OxygenTankSlot(Container gearInventory, int slotId, int x, int y) { @Override public boolean mayPlace(ItemStack stack) { - return FILTER.test(stack.getItem(), stack.getTag()); + return FILTER.test(stack.getItem(), stack.getComponentsPatch()); } @Override diff --git a/src/main/java/dev/galacticraft/mod/screen/OxygenBubbleDistributorMenu.java b/src/main/java/dev/galacticraft/mod/screen/OxygenBubbleDistributorMenu.java index fd2b4cc94..5d3ea1ae7 100644 --- a/src/main/java/dev/galacticraft/mod/screen/OxygenBubbleDistributorMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/OxygenBubbleDistributorMenu.java @@ -23,58 +23,34 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.mod.content.block.entity.machine.OxygenBubbleDistributorBlockEntity; -import dev.galacticraft.mod.screen.sync.BooleanMenuSyncHandler; -import dev.galacticraft.mod.screen.sync.DoubleMenuSyncHandler; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; +import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; import org.jetbrains.annotations.NotNull; -import java.util.function.Consumer; - public class OxygenBubbleDistributorMenu extends MachineMenu { public boolean bubbleVisible; public byte targetSize; public double size; - public OxygenBubbleDistributorMenu(int syncId, ServerPlayer player, OxygenBubbleDistributorBlockEntity machine) { - super(syncId, player, machine); + public OxygenBubbleDistributorMenu(int syncId, Player player, OxygenBubbleDistributorBlockEntity machine) { + super(GCMenuTypes.OXYGEN_BUBBLE_DISTRIBUTOR, syncId, player, machine); this.bubbleVisible = machine.isBubbleVisible(); this.size = machine.getSize(); this.targetSize = machine.getTargetSize(); } - public OxygenBubbleDistributorMenu(int syncId, Inventory inv, FriendlyByteBuf buf) { - super(syncId, inv, buf, 8, 84, GCMachineTypes.OXYGEN_BUBBLE_DISTRIBUTOR); + public OxygenBubbleDistributorMenu(int syncId, Inventory inv, BlockPos pos) { + super(GCMenuTypes.OXYGEN_BUBBLE_DISTRIBUTOR, syncId, inv, pos, 8, 84); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); - consumer.accept(new MenuSyncHandler() { - private byte value; - - @Override - public boolean needsSyncing() { - return this.value != OxygenBubbleDistributorMenu.this.targetSize; - } - - @Override - public void sync(@NotNull FriendlyByteBuf buf) { - this.value = OxygenBubbleDistributorMenu.this.targetSize; - buf.writeByte(this.value); - } - - @Override - public void read(@NotNull FriendlyByteBuf buf) { - this.value = buf.readByte(); - OxygenBubbleDistributorMenu.this.targetSize = this.value; - } - }); - consumer.accept(new DoubleMenuSyncHandler(this.machine::getSize, value -> this.size = value)); - consumer.accept(new BooleanMenuSyncHandler(this.machine::isBubbleVisible, t -> this.bubbleVisible = t)); + public void registerData(@NotNull MenuData data) { + super.registerData(data); + data.registerByte(this.be::getTargetSize, b -> this.targetSize = (byte) b); + data.registerDouble(this.be::getSize, d -> this.size = d); + data.registerBoolean(this.be::isBubbleVisible, b -> this.bubbleVisible = b); } } diff --git a/src/main/java/dev/galacticraft/mod/screen/OxygenCollectorMenu.java b/src/main/java/dev/galacticraft/mod/screen/OxygenCollectorMenu.java index 702b70d38..25c2ef60f 100644 --- a/src/main/java/dev/galacticraft/mod/screen/OxygenCollectorMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/OxygenCollectorMenu.java @@ -23,30 +23,28 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.mod.content.block.entity.machine.OxygenCollectorBlockEntity; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; +import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Inventory; - -import java.util.function.Consumer; +import net.minecraft.world.entity.player.Player; +import org.jetbrains.annotations.NotNull; public class OxygenCollectorMenu extends MachineMenu { public int collectionAmount = 0; - public OxygenCollectorMenu(int syncId, ServerPlayer player, OxygenCollectorBlockEntity machine) { - super(syncId, player, machine); + public OxygenCollectorMenu(int syncId, Player player, OxygenCollectorBlockEntity machine) { + super(GCMenuTypes.OXYGEN_COLLECTOR, syncId, player, machine); } - public OxygenCollectorMenu(int syncId, Inventory inv, FriendlyByteBuf buf) { - super(syncId, inv, buf, 8, 84, GCMachineTypes.OXYGEN_COLLECTOR); + public OxygenCollectorMenu(int syncId, Inventory inv, BlockPos pos) { + super(GCMenuTypes.OXYGEN_COLLECTOR, syncId, inv, pos, 8, 84); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); - consumer.accept(MenuSyncHandler.simple(this.machine::getCollectionAmount, this::setCollectionAmount)); + public void registerData(@NotNull MenuData data) { + super.registerData(data); + data.registerInt(this.be::getCollectionAmount, this::setCollectionAmount); } public void setCollectionAmount(int collectionAmount) { diff --git a/src/main/java/dev/galacticraft/mod/screen/ParachestMenu.java b/src/main/java/dev/galacticraft/mod/screen/ParachestMenu.java index 5e284b789..ca332218b 100644 --- a/src/main/java/dev/galacticraft/mod/screen/ParachestMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/ParachestMenu.java @@ -23,8 +23,10 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.mod.content.GCBlockEntityTypes; -import dev.galacticraft.mod.content.block.special.ParaChestBlockEntity; -import net.minecraft.network.FriendlyByteBuf; +import io.netty.buffer.ByteBuf; +import net.minecraft.core.BlockPos; +import net.minecraft.network.VarInt; +import net.minecraft.network.codec.StreamCodec; import net.minecraft.world.Container; import net.minecraft.world.SimpleContainer; import net.minecraft.world.entity.player.Inventory; @@ -33,20 +35,17 @@ import net.minecraft.world.inventory.Slot; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; +import org.jetbrains.annotations.Nullable; public class ParachestMenu extends AbstractContainerMenu { private final Container container; - public ParachestMenu(int syncId, Inventory playerInventory, FriendlyByteBuf buf) { - this(syncId, playerInventory, getContainer(playerInventory.player.level(), buf)); + public ParachestMenu(int syncId, Inventory playerInventory, OpeningData data) { + this(syncId, playerInventory, getContainer(playerInventory.player.level(), data)); } - public static Container getContainer(Level level, FriendlyByteBuf buf) { - boolean isBe = buf.readBoolean(); - if (isBe) - return GCBlockEntityTypes.PARACHEST.getBlockEntity(level, buf.readBlockPos()); - else - return new SimpleContainer(buf.readVarInt()); + public static Container getContainer(Level level, OpeningData data) { + return data.pos != null ? GCBlockEntityTypes.PARACHEST.getBlockEntity(level, data.pos) : new SimpleContainer(data.size); } public ParachestMenu(int syncId, Inventory playerInventory, Container container) { @@ -120,4 +119,27 @@ public boolean stillValid(Player player) { public Container getContainer() { return this.container; } + + public record OpeningData(@Nullable BlockPos pos, int size) { + public static final StreamCodec STREAM_CODEC = StreamCodec.of( + (b, v) -> { + if (v.pos != null) { + b.writeBoolean(true); + b.writeLong(v.pos.asLong()); + } else { + b.writeBoolean(false); + VarInt.write(b, v.size); + } + }, + b -> b.readBoolean() ? new OpeningData(BlockPos.of(b.readLong())) : new OpeningData(VarInt.read(b)) + ); + + public OpeningData(BlockPos blockPos) { + this(blockPos, 0); + } + + public OpeningData(int size) { + this(null, size); + } + } } diff --git a/src/main/java/dev/galacticraft/mod/screen/RocketMenu.java b/src/main/java/dev/galacticraft/mod/screen/RocketMenu.java index 75d7c597a..9b3ea6369 100644 --- a/src/main/java/dev/galacticraft/mod/screen/RocketMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/RocketMenu.java @@ -23,7 +23,6 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.mod.content.entity.orbital.RocketEntity; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -33,8 +32,8 @@ public class RocketMenu extends AbstractContainerMenu { public final Player player; public final RocketEntity rocket; - protected RocketMenu(int syncId, Inventory playerInventory, FriendlyByteBuf buf) { - this(syncId, playerInventory, playerInventory.player, (RocketEntity) playerInventory.player.level().getEntity(buf.readInt())); + protected RocketMenu(int syncId, Inventory playerInventory, int id) { + this(syncId, playerInventory, playerInventory.player, (RocketEntity) playerInventory.player.level().getEntity(id)); } public RocketMenu(int syncId, Inventory playerInventory, Player player, RocketEntity rocket) { diff --git a/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java b/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java index b27abb67d..231c45b28 100644 --- a/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java @@ -32,21 +32,27 @@ import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.machine.storage.VariableSizedContainer; import dev.galacticraft.mod.mixin.AbstractContainerMenuAccessor; +import dev.galacticraft.mod.util.StreamCodecs; import dev.galacticraft.mod.world.inventory.RocketResultSlot; +import io.netty.buffer.ByteBuf; +import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.StackedContents; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.EitherHolder; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -129,15 +135,15 @@ public void removed(Player player) { this.upgrade.inventory.removeListener(this); } - public RocketWorkbenchMenu(int syncId, Inventory playerInventory, FriendlyByteBuf buf) { - this(syncId, (RocketWorkbenchBlockEntity) playerInventory.player.level().getBlockEntity(buf.readBlockPos()), playerInventory); + public RocketWorkbenchMenu(int syncId, Inventory playerInventory, OpeningData data) { + this(syncId, (RocketWorkbenchBlockEntity) playerInventory.player.level().getBlockEntity(data.pos), playerInventory); - if (buf.readBoolean()) this.cone.setSelection(buf.readResourceLocation()); - if (buf.readBoolean()) this.body.setSelection(buf.readResourceLocation()); - if (buf.readBoolean()) this.fins.setSelection(buf.readResourceLocation()); - if (buf.readBoolean()) this.booster.setSelection(buf.readResourceLocation()); - if (buf.readBoolean()) this.engine.setSelection(buf.readResourceLocation()); - if (buf.readBoolean()) this.upgrade.setSelection(buf.readResourceLocation()); + this.cone.setSelection(data.cone); + this.body.setSelection(data.body); + this.fins.setSelection(data.fin); + this.booster.setSelection(data.booster); + this.engine.setSelection(data.engine); + this.upgrade.setSelection(data.upgrade); } public static int calculateAdditionalHeight(RocketPartRecipe cone, RocketPartRecipe body, RocketPartRecipe fins, RocketPartRecipe booster, RocketPartRecipe engine, RocketPartRecipe upgrade) { @@ -186,6 +192,22 @@ public RocketWorkbenchBlockEntity.RecipeSelection getSelection(RocketPartType }; } + public RocketData createData() { + return new RocketData( + maybeHolder(RocketRegistries.ROCKET_CONE, this.cone.selection), + maybeHolder(RocketRegistries.ROCKET_BODY, this.body.selection), + maybeHolder(RocketRegistries.ROCKET_FIN, this.fins.selection), + maybeHolder(RocketRegistries.ROCKET_BOOSTER, this.booster.selection), + maybeHolder(RocketRegistries.ROCKET_ENGINE, this.engine.selection), + maybeHolder(RocketRegistries.ROCKET_UPGRADE, this.upgrade.selection), + 0xFFFFFFFF + ); + } + + private static @Nullable EitherHolder maybeHolder(ResourceKey> key, @Nullable ResourceLocation id) { + return id == null ? null : new EitherHolder<>(ResourceKey.create(key, id)); + } + @Override public boolean stillValid(Player player) { return Container.stillValidBlockEntity(this.workbench, player); @@ -308,7 +330,7 @@ public void onSizeChanged() { @Override public void onItemChanged() { - RocketData rocketData = RocketData.create(-1, this.cone.getSelectionKey(), this.body.getSelectionKey(), this.fins.getSelectionKey(), this.booster.getSelectionKey(), this.engine.getSelectionKey(), this.upgrade.getSelectionKey()); + RocketData rocketData = this.createData(); boolean craftable = rocketData.isValid(); RocketPartRecipe recipe = this.cone.getRecipe(); craftable = craftable && (recipe != null && recipe.matches(this.cone.inventory, this.workbench.getLevel())); @@ -324,9 +346,7 @@ public void onItemChanged() { craftable = craftable && (recipe == null ||recipe.matches(this.upgrade.inventory, this.workbench.getLevel())); if (craftable) { ItemStack stack = new ItemStack(GCItems.ROCKET, 1); - CompoundTag tag = new CompoundTag(); - rocketData.toNbt(tag); - stack.setTag(tag); + stack.applyComponents(rocketData.asPatch()); this.workbench.output.setItem(0, stack); } else { this.workbench.output.setItem(0, ItemStack.EMPTY); @@ -377,7 +397,7 @@ public RocketCraftingSlot(Container container, int slot, int x, int y, ResourceF @Override public boolean mayPlace(ItemStack stack) { - return stack.isEmpty() || this.filter.test(stack.getItem(), stack.getTag()); + return stack.isEmpty() || this.filter.test(stack.getItem(), stack.getComponentsPatch()); } @Override @@ -385,4 +405,27 @@ public int getMaxStackSize() { return 1; } } + + public record OpeningData(BlockPos pos, ResourceLocation cone, ResourceLocation body, + ResourceLocation fin, ResourceLocation booster, + ResourceLocation engine, ResourceLocation upgrade) { + private static final StreamCodec OPT_ID = StreamCodecs.ofNullable(ResourceLocation.STREAM_CODEC); + public static final StreamCodec CODEC = StreamCodecs.composite( + BlockPos.STREAM_CODEC, + OpeningData::pos, + OPT_ID, + OpeningData::cone, + OPT_ID, + OpeningData::body, + OPT_ID, + OpeningData::fin, + OPT_ID, + OpeningData::booster, + OPT_ID, + OpeningData::engine, + OPT_ID, + OpeningData::upgrade, + OpeningData::new + ); + } } diff --git a/src/main/java/dev/galacticraft/mod/screen/SolarPanelMenu.java b/src/main/java/dev/galacticraft/mod/screen/SolarPanelMenu.java index a1e598692..7f96e4a0c 100644 --- a/src/main/java/dev/galacticraft/mod/screen/SolarPanelMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/SolarPanelMenu.java @@ -23,28 +23,26 @@ package dev.galacticraft.mod.screen; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; -import dev.galacticraft.machinelib.api.machine.MachineType; import dev.galacticraft.machinelib.api.menu.MachineMenu; -import dev.galacticraft.machinelib.api.menu.sync.MenuSyncHandler; +import dev.galacticraft.machinelib.api.menu.MenuData; import dev.galacticraft.machinelib.api.util.BlockFace; import dev.galacticraft.mod.api.block.entity.SolarPanel; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; +import net.minecraft.core.BlockPos; import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.MenuType; import org.jetbrains.annotations.NotNull; -import java.util.function.Consumer; - public class SolarPanelMenu extends MachineMenu { private final boolean followsSun; private final boolean nightCollection; - private boolean[] blockage; + private final boolean[] blockage = new boolean[9]; private @NotNull SolarPanel.SolarPanelSource source; private long energyGeneration; - public SolarPanelMenu(int syncId, @NotNull ServerPlayer player, @NotNull Machine machine) { - super(syncId, player, machine); + public SolarPanelMenu(MenuType> type, int syncId, @NotNull Player player, @NotNull Machine machine) { + super(type, syncId, player, machine); this.followsSun = machine.followsSun(); this.nightCollection = machine.nightCollection(); @@ -52,27 +50,26 @@ public SolarPanelMenu(int syncId, @NotNull ServerPlayer player, @NotNull Machine this.energyGeneration = machine.getCurrentEnergyGeneration(); } - protected SolarPanelMenu(int syncId, @NotNull Inventory inventory, @NotNull FriendlyByteBuf buf, @NotNull MachineType> type) { - this(syncId, inventory, buf, 8, 84, type); + protected SolarPanelMenu(MenuType> type, int syncId, @NotNull Inventory inventory, @NotNull BlockPos pos) { + this(type, syncId, inventory, pos, 8, 84); } - protected SolarPanelMenu(int syncId, @NotNull Inventory inventory, @NotNull FriendlyByteBuf buf, int invX, int invY, @NotNull MachineType> type) { - super(syncId, inventory, buf, invX, invY, type); + protected SolarPanelMenu(MenuType> type, int syncId, @NotNull Inventory inventory, @NotNull BlockPos pos, int invX, int invY) { + super(type, syncId, inventory, pos, invX, invY); - this.followsSun = buf.readBoolean(); - this.nightCollection = buf.readBoolean(); - this.source = SolarPanel.SolarPanelSource.values()[buf.readByte()]; - this.energyGeneration = buf.readVarLong(); + this.followsSun = this.be.followsSun(); + this.nightCollection = this.be.nightCollection(); + this.source = this.be.getSource(); + this.energyGeneration = this.be.getCurrentEnergyGeneration(); } @Override - public void registerSyncHandlers(Consumer consumer) { - super.registerSyncHandlers(consumer); + public void registerData(@NotNull MenuData data) { + super.registerData(data); - consumer.accept(MenuSyncHandler.simple(this.machine::getCurrentEnergyGeneration, this::setEnergyGeneration)); - consumer.accept(MenuSyncHandler.simple(this.machine::getSource, this::setSource, SolarPanel.SolarPanelSource.values())); - this.blockage = new boolean[9]; - consumer.accept(MenuSyncHandler.booleans(this.machine.getBlockage(), this.blockage)); + data.registerLong(this.be::getCurrentEnergyGeneration, this::setEnergyGeneration); + data.registerEnum(SolarPanel.SolarPanelSource.values(), this.be::getSource, this::setSource); + data.registerBits(9, this.be.getBlockage(), this.blockage); } public boolean @NotNull [/*9*/] getBlockage() { diff --git a/src/main/java/dev/galacticraft/mod/storage/PlaceholderItemStorage.java b/src/main/java/dev/galacticraft/mod/storage/PlaceholderItemStorage.java index 292b014b5..bae63221d 100644 --- a/src/main/java/dev/galacticraft/mod/storage/PlaceholderItemStorage.java +++ b/src/main/java/dev/galacticraft/mod/storage/PlaceholderItemStorage.java @@ -24,7 +24,6 @@ import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant; import net.fabricmc.fabric.api.transfer.v1.item.base.SingleItemStorage; -import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; import net.minecraft.world.item.Item; import org.jetbrains.annotations.NotNull; @@ -34,13 +33,8 @@ public void setItem(@NotNull Item item) { this.amount = 1; } - @Override - public long extract(ItemVariant extractedVariant, long maxAmount, TransactionContext transaction) { - return super.extract(extractedVariant, maxAmount, transaction); - } - @Override protected long getCapacity(ItemVariant variant) { - return variant.isBlank() ? 64 : variant.getItem().getMaxStackSize(); + return variant.isBlank() ? 64 : variant.toStack().getMaxStackSize(); } } diff --git a/src/main/java/dev/galacticraft/mod/storage/SingleTypeStorage.java b/src/main/java/dev/galacticraft/mod/storage/SingleTypeStorage.java deleted file mode 100644 index 92c8f0818..000000000 --- a/src/main/java/dev/galacticraft/mod/storage/SingleTypeStorage.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.storage; - -import com.google.common.collect.Iterators; -import dev.galacticraft.mod.Constant; -import net.fabricmc.fabric.api.transfer.v1.context.ContainerItemContext; -import net.fabricmc.fabric.api.transfer.v1.item.ItemVariant; -import net.fabricmc.fabric.api.transfer.v1.storage.Storage; -import net.fabricmc.fabric.api.transfer.v1.storage.StorageView; -import net.fabricmc.fabric.api.transfer.v1.storage.TransferVariant; -import net.fabricmc.fabric.api.transfer.v1.transaction.TransactionContext; -import net.fabricmc.fabric.api.transfer.v1.transaction.base.SnapshotParticipant; -import net.minecraft.nbt.CompoundTag; -import org.jetbrains.annotations.NotNull; - -import java.util.Iterator; - -public class SingleTypeStorage> extends SnapshotParticipant implements Storage, StorageView { - private final V resource; - private final long capacity; - private final V blankResource; - protected final ContainerItemContext context; - private long amount; - - public SingleTypeStorage(V resource, ContainerItemContext context, long capacity, V blankResource, long amount) { - this.resource = resource; - this.capacity = capacity; - this.blankResource = blankResource; - this.context = context; - this.amount = amount; - } - - public void setAmount(long amount) { - this.amount = amount; - } - - @Override - public long insert(@NotNull V resource, long maxAmount, TransactionContext transaction) { - if (resource.equals(this.resource)) { - updateSnapshots(transaction); - maxAmount = Math.min(maxAmount, this.capacity - this.amount); - this.amount += maxAmount; - CompoundTag tag = this.context.getItemVariant().copyOrCreateNbt(); - tag.putLong(Constant.Nbt.VALUE, this.getAmount()); - if (context.exchange(ItemVariant.of(this.context.getItemVariant().getItem(), tag), 1, transaction) == 1) { - return maxAmount; - } - } - return 0; - } - - @Override - public long extract(@NotNull V resource, long maxAmount, TransactionContext transaction) { - if (resource.equals(this.resource)) { - updateSnapshots(transaction); - maxAmount = Math.min(maxAmount, this.amount); - this.amount -= maxAmount; - CompoundTag tag = this.context.getItemVariant().copyOrCreateNbt(); - tag.putLong(Constant.Nbt.VALUE, this.getAmount()); - if (context.exchange(ItemVariant.of(this.context.getItemVariant().getItem(), tag), 1, transaction) == 1) { - return maxAmount; - } - } - return 0; - } - - @Override - public boolean isResourceBlank() { - return this.amount == 0; - } - - @Override - public V getResource() { - return this.amount == 0 ? this.blankResource : this.resource; - } - - @Override - public long getAmount() { - return this.amount; - } - - @Override - public long getCapacity() { - return this.capacity; - } - - @Override - public @NotNull Iterator> iterator() { - return Iterators.singletonIterator(this); - } - - @Override - protected Long createSnapshot() { - return this.amount; - } - - @Override - protected void readSnapshot(Long snapshot) { - this.amount = snapshot; - } -} diff --git a/src/main/java/dev/galacticraft/mod/structure/GCStructureSets.java b/src/main/java/dev/galacticraft/mod/structure/GCStructureSets.java index 0963af0ff..2df0ad91f 100644 --- a/src/main/java/dev/galacticraft/mod/structure/GCStructureSets.java +++ b/src/main/java/dev/galacticraft/mod/structure/GCStructureSets.java @@ -27,7 +27,7 @@ import net.minecraft.core.HolderGetter; import net.minecraft.core.Vec3i; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.levelgen.structure.BuiltinStructureSets; import net.minecraft.world.level.levelgen.structure.Structure; @@ -45,7 +45,7 @@ public static final class Moon { public static final ResourceKey BOSS = ResourceKey.create(Registries.STRUCTURE_SET, Constant.id("moon_boss")); } - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter structureLookup = context.lookup(Registries.STRUCTURE); HolderGetter structureSetLookup = context.lookup(Registries.STRUCTURE_SET); diff --git a/src/main/java/dev/galacticraft/mod/structure/GCStructureTemplatePools.java b/src/main/java/dev/galacticraft/mod/structure/GCStructureTemplatePools.java index 3f181a694..58581450c 100644 --- a/src/main/java/dev/galacticraft/mod/structure/GCStructureTemplatePools.java +++ b/src/main/java/dev/galacticraft/mod/structure/GCStructureTemplatePools.java @@ -23,13 +23,12 @@ package dev.galacticraft.mod.structure; import com.google.common.collect.ImmutableList; -import com.mojang.datafixers.util.Either; import com.mojang.datafixers.util.Pair; import dev.galacticraft.mod.Constant; import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.ProcessorLists; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; @@ -42,7 +41,7 @@ import java.util.function.Function; public final class GCStructureTemplatePools { - private static final ResourceKey EMPTY = ResourceKey.create(Registries.TEMPLATE_POOL, new ResourceLocation("empty")); + private static final ResourceKey EMPTY = ResourceKey.create(Registries.TEMPLATE_POOL, ResourceLocation.withDefaultNamespace("empty")); public static final class Moon { public static final class PillagerOutpost { public static final ResourceKey ENTRANCE = key("moon_pillager_outpost/entrances"); @@ -74,7 +73,7 @@ private static ResourceKey key(String id) { return Constant.key(Registries.TEMPLATE_POOL, id); } - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter templateLookup = context.lookup(Registries.TEMPLATE_POOL); Holder empty = templateLookup.getOrThrow(EMPTY); Holder emptyList = context.lookup(Registries.PROCESSOR_LIST).getOrThrow(ProcessorLists.EMPTY); @@ -281,6 +280,6 @@ public static void bootstrapRegistries(BootstapContext co } public static Function single(ResourceLocation id, Holder list) { // Legacy means that air CAN be replaced by worldgen. - return projection -> new LegacySinglePoolElement(Either.left(id), list, projection); + return StructurePoolElement.legacy(id.toString(), list); } } diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonConfiguration.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonConfiguration.java index 7f1f38d50..a22fdaa8e 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonConfiguration.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonConfiguration.java @@ -24,7 +24,6 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; -import net.minecraft.Util; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; @@ -67,7 +66,7 @@ public DungeonConfiguration(BlockState brickBlock, int yPosition, int hallwayLen } public CompoundTag write(CompoundTag tagCompound) { - tagCompound.put("brickBlock", Util.getOrThrow(BlockState.CODEC.encodeStart(NbtOps.INSTANCE, this.brickBlock), RuntimeException::new)); + tagCompound.put("brickBlock", BlockState.CODEC.encodeStart(NbtOps.INSTANCE, this.brickBlock).getOrThrow()); tagCompound.putInt("yPosition", this.yPosition); tagCompound.putInt("hallwayLengthMin", this.hallwayLengthMin); tagCompound.putInt("hallwayLengthMax", this.hallwayLengthMax); @@ -80,7 +79,7 @@ public CompoundTag write(CompoundTag tagCompound) { public void read(CompoundTag tagCompound) { try { - this.brickBlock = Util.getOrThrow(BlockState.CODEC.decode(NbtOps.INSTANCE, tagCompound.get("brickBlock")), RuntimeException::new).getFirst(); + this.brickBlock = BlockState.CODEC.decode(NbtOps.INSTANCE, tagCompound.get("brickBlock")).getOrThrow().getFirst(); this.yPosition = tagCompound.getInt("yPosition"); this.hallwayLengthMin = tagCompound.getInt("hallwayLengthMin"); this.hallwayLengthMax = tagCompound.getInt("hallwayLengthMax"); diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStart.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStart.java index 84a8fde6b..e23563e3f 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStart.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStart.java @@ -27,7 +27,6 @@ import dev.galacticraft.mod.structure.GCStructurePieceTypes; import net.minecraft.nbt.CompoundTag; import net.minecraft.util.RandomSource; -import net.minecraft.world.level.Level; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.StructurePiece; import net.minecraft.world.level.levelgen.structure.StructurePieceAccessor; diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStructure.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStructure.java index 505c82eba..9ec069944 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStructure.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/DungeonStructure.java @@ -22,28 +22,26 @@ package dev.galacticraft.mod.structure.dungeon; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.galacticraft.mod.world.gen.structure.GCStructureTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.registries.Registries; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.WorldgenRandom; import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.levelgen.structure.StructurePiece; import net.minecraft.world.level.levelgen.structure.StructureType; import net.minecraft.world.level.levelgen.structure.pieces.StructurePiecesBuilder; -import net.minecraft.world.level.levelgen.structure.structures.IglooPieces; import java.util.List; import java.util.Optional; import java.util.Random; public class DungeonStructure extends Structure { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec((instance) -> instance.group( StructureSettings.CODEC.fieldOf("config").forGetter((moonRuinsStructure) -> moonRuinsStructure.settings), DungeonConfiguration.CODEC.fieldOf("dungeon_configuration").forGetter(dungeonStructure -> dungeonStructure.configuration) ).apply(instance, DungeonStructure::new)); diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomChest.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomChest.java index 95ff00b63..46d7fb43a 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomChest.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomChest.java @@ -26,7 +26,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; import net.minecraft.util.RandomSource; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.StructureManager; @@ -36,6 +36,7 @@ import net.minecraft.world.level.block.entity.ChestBlockEntity; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.structure.BoundingBox; +import net.minecraft.world.level.storage.loot.LootTable; public class RoomChest extends RoomEmpty { public RoomChest(CompoundTag tag) { @@ -59,7 +60,7 @@ public void postProcess(WorldGenLevel worldIn, StructureManager structureManager ChestBlockEntity chest = (ChestBlockEntity) worldIn.getBlockEntity(blockpos); if (chest != null) { - ResourceLocation chesttype = RoomTreasure.MOONCHEST; + ResourceKey chesttype = RoomTreasure.MOONCHEST; // if (worldIn.provider instanceof IGalacticraftWorldProvider) { // chesttype = ((IGalacticraftWorldProvider) worldIn.provider).getDungeonChestType(); // } diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomSpawner.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomSpawner.java index d3882de92..807d0d8eb 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomSpawner.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomSpawner.java @@ -27,7 +27,6 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; import net.minecraft.util.RandomSource; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.ChunkPos; @@ -35,12 +34,9 @@ import net.minecraft.world.level.StructureManager; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.entity.SpawnerBlockEntity; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.structure.BoundingBox; -import java.util.Random; - public class RoomSpawner extends RoomEmpty { public RoomSpawner(CompoundTag tag) { super(GCStructurePieceTypes.ROOM_SPAWNER, tag); diff --git a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomTreasure.java b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomTreasure.java index 94dbbf832..8b8fb19a5 100644 --- a/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomTreasure.java +++ b/src/main/java/dev/galacticraft/mod/structure/dungeon/RoomTreasure.java @@ -26,8 +26,9 @@ import dev.galacticraft.mod.structure.GCStructurePieceTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.ResourceKey; import net.minecraft.util.RandomSource; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.StructureManager; @@ -37,11 +38,11 @@ import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.StructurePiece; import net.minecraft.world.level.storage.loot.BuiltInLootTables; +import net.minecraft.world.level.storage.loot.LootTable; public class RoomTreasure extends SizedPiece { - public static ResourceLocation MOONCHEST = Constant.id("dungeon_tier_1"); - public static final ResourceLocation TABLE_TIER_1_DUNGEON = BuiltInLootTables.register(MOONCHEST); + public static ResourceKey MOONCHEST = BuiltInLootTables.register(ResourceKey.create(Registries.LOOT_TABLE, Constant.id("dungeon_tier_1"))); public RoomTreasure(CompoundTag tag) { super(GCStructurePieceTypes.ROOM_TREASURE, tag); diff --git a/src/main/java/dev/galacticraft/mod/tag/GCTags.java b/src/main/java/dev/galacticraft/mod/tag/GCTags.java index f87692d5b..61ab871dc 100644 --- a/src/main/java/dev/galacticraft/mod/tag/GCTags.java +++ b/src/main/java/dev/galacticraft/mod/tag/GCTags.java @@ -35,10 +35,10 @@ import net.minecraft.world.level.material.Fluid; public class GCTags { - public static final TagKey OIL = TagKey.create(Registries.FLUID, new ResourceLocation(Constant.COMMON_NAMESPACE, "oil")); - public static final TagKey FUEL = TagKey.create(Registries.FLUID, new ResourceLocation(Constant.COMMON_NAMESPACE, "fuel")); - public static final TagKey SULFURIC_ACID = TagKey.create(Registries.FLUID, new ResourceLocation(Constant.COMMON_NAMESPACE, "sulfuric_acid")); - public static final TagKey LIQUID_OXYGEN = TagKey.create(Registries.FLUID, new ResourceLocation(Constant.COMMON_NAMESPACE, "oxygen")); + public static final TagKey OIL = TagKey.create(Registries.FLUID, ResourceLocation.fromNamespaceAndPath(Constant.COMMON_NAMESPACE, "oil")); + public static final TagKey FUEL = TagKey.create(Registries.FLUID, ResourceLocation.fromNamespaceAndPath(Constant.COMMON_NAMESPACE, "fuel")); + public static final TagKey SULFURIC_ACID = TagKey.create(Registries.FLUID, ResourceLocation.fromNamespaceAndPath(Constant.COMMON_NAMESPACE, "sulfuric_acid")); + public static final TagKey LIQUID_OXYGEN = TagKey.create(Registries.FLUID, ResourceLocation.fromNamespaceAndPath(Constant.COMMON_NAMESPACE, "oxygen")); public static final TagKey OXYGEN = TagKey.create(Registries.FLUID, Constant.id("oxygen")); public static final TagKey INFINIBURN_MOON = TagKey.create(Registries.BLOCK, Constant.id("infiniburn_moon")); @@ -59,17 +59,17 @@ public class GCTags { public static final TagKey MOON_RUINS_HAS_STRUCTURE = TagKey.create(Registries.BIOME, Constant.id("has_structure/moon_ruins")); public static final TagKey MOON_BOSS_HAS_STRUCTURE = TagKey.create(Registries.BIOME, Constant.id("has_structure/moon_boss")); - public static final TagKey ALUMINUM_INGOTS = commonTag("aluminum_ingots"); - public static final TagKey RAW_ALUMINUM_ORES = commonTag("raw_aluminum_ores"); - public static final TagKey LEAD_INGOTS = commonTag("lead_ingots"); - public static final TagKey RAW_LEAD_ORES = commonTag("raw_lead_ores"); - public static final TagKey SILICONS = commonTag("silicons"); - public static final TagKey STEEL_INGOTS = commonTag("steel_ingots"); - public static final TagKey TIN_INGOTS = commonTag("tin_ingots"); - public static final TagKey RAW_TIN_ORES = commonTag("raw_tin_ores"); - public static final TagKey COMPRESSED_STEEL = commonTag("compressed_steel"); - public static final TagKey COMPRESSED_IRON = commonTag("compressed_iron"); - public static final TagKey COMPRESSED_TIN = commonTag("compressed_tin"); + public static final TagKey ALUMINUM_INGOTS = commonTag("ingots/aluminum"); + public static final TagKey RAW_ALUMINUM_ORES = commonTag("raw_materials/aluminum"); + public static final TagKey LEAD_INGOTS = commonTag("ingots/lead"); + public static final TagKey RAW_LEAD_ORES = commonTag("raw_materials/lead"); + public static final TagKey SILICONS = commonTag("gems/silicon"); + public static final TagKey STEEL_INGOTS = commonTag("ingots/steel"); + public static final TagKey TIN_INGOTS = commonTag("ingots/tin"); + public static final TagKey RAW_TIN_ORES = commonTag("raw_materials/tin"); + public static final TagKey COMPRESSED_STEEL = commonTag("plates/steel"); + public static final TagKey COMPRESSED_IRON = commonTag("plates/iron"); + public static final TagKey COMPRESSED_TIN = commonTag("plates/tin"); public static final TagKey MOON_RUINS = TagKey.create(Registries.STRUCTURE, Constant.id("moon_ruins")); @@ -79,7 +79,7 @@ public class GCTags { public static final TagKey> HAS_FOOTPRINTS = TagKey.create(Registries.ENTITY_TYPE, Constant.id("has_footprints")); public static TagKey commonTag(String path) { - return TagKey.create(Registries.ITEM, new ResourceLocation(Constant.COMMON_NAMESPACE, path)); + return TagKey.create(Registries.ITEM, ResourceLocation.fromNamespaceAndPath(Constant.COMMON_NAMESPACE, path)); } public static void register() { diff --git a/src/main/java/dev/galacticraft/mod/util/DrawableUtil.java b/src/main/java/dev/galacticraft/mod/util/DrawableUtil.java index ac9f394fb..c475a4044 100644 --- a/src/main/java/dev/galacticraft/mod/util/DrawableUtil.java +++ b/src/main/java/dev/galacticraft/mod/util/DrawableUtil.java @@ -76,13 +76,13 @@ public static void drawProgressTexture(PoseStack matrices, float x0, float x1, f public static void drawTexturedQuad_F(Matrix4f matrices, float x0, float x1, float y0, float y1, float z, float u0, float u1, float v0, float v1) { RenderSystem.setShader(GameRenderer::getPositionTexShader); - BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); - bufferBuilder.vertex(matrices, x0, y1, z).uv(u0, v1).endVertex(); - bufferBuilder.vertex(matrices, x1, y1, z).uv(u1, v1).endVertex(); - bufferBuilder.vertex(matrices, x1, y0, z).uv(u1, v0).endVertex(); - bufferBuilder.vertex(matrices, x0, y0, z).uv(u0, v0).endVertex(); - BufferUploader.drawWithShader(bufferBuilder.end()); + BufferBuilder bufferBuilder = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX); + bufferBuilder + .addVertex(matrices, x0, y1, z).setUv(u0, v1) + .addVertex(matrices, x1, y1, z).setUv(u1, v1) + .addVertex(matrices, x1, y0, z).setUv(u1, v0) + .addVertex(matrices, x0, y0, z).setUv(u0, v0); + BufferUploader.drawWithShader(bufferBuilder.buildOrThrow()); } public static void drawTextureColor(PoseStack matrices, int x, int y, int z, float u, float v, int width, int height, int textureHeight, int textureWidth, int red, int green, int blue, int alpha) { @@ -93,14 +93,13 @@ public static void drawTextureColor(PoseStack matrices, int x0, int x1, int y0, drawTexturedQuadColor(matrices.last().pose(), x0, x1, y0, y1, z, (u + 0.0F) / (float)textureWidth, (u + (float)regionWidth) / (float)textureWidth, (v + 0.0F) / (float)textureHeight, (v + (float)regionHeight) / (float)textureHeight, red, green, blue, alpha); } - public static void drawTexturedQuadColor(Matrix4f matrices, int x0, int x1, int y0, int y1, int z, float u0, float u1, float v0, float v1, int red, int green, int blue, int alwha) { - BufferBuilder bufferBuilder = Tesselator.getInstance().getBuilder(); - bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR_TEX); - bufferBuilder.vertex(matrices, (float)x0, (float)y1, (float)z).color(red, green, blue, 255).uv(u0, v1).endVertex(); - bufferBuilder.vertex(matrices, (float)x1, (float)y1, (float)z).color(red, green, blue, 255).uv(u1, v1).endVertex(); - bufferBuilder.vertex(matrices, (float)x1, (float)y0, (float)z).color(red, green, blue, 255).uv(u1, v0).endVertex(); - bufferBuilder.vertex(matrices, (float)x0, (float)y0, (float)z).color(red, green, blue, 255).uv(u0, v0).endVertex(); - BufferUploader.draw(bufferBuilder.end()); + public static void drawTexturedQuadColor(Matrix4f matrices, int x0, int x1, int y0, int y1, int z, float u0, float u1, float v0, float v1, int red, int green, int blue, int alpha) { + BufferBuilder bufferBuilder = Tesselator.getInstance().begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR); + bufferBuilder.addVertex(matrices, (float)x0, (float)y1, (float)z).setColor(red, green, blue, alpha).setUv(u0, v1) + .addVertex(matrices, (float)x1, (float)y1, (float)z).setColor(red, green, blue, alpha).setUv(u1, v1) + .addVertex(matrices, (float)x1, (float)y0, (float)z).setColor(red, green, blue, alpha).setUv(u1, v0) + .addVertex(matrices, (float)x0, (float)y0, (float)z).setColor(red, green, blue, alpha).setUv(u0, v0); + BufferUploader.draw(bufferBuilder.buildOrThrow()); } public static String roundForDisplay(double d, int places) { diff --git a/src/main/java/dev/galacticraft/mod/util/StreamCodecs.java b/src/main/java/dev/galacticraft/mod/util/StreamCodecs.java new file mode 100644 index 000000000..3375a4a83 --- /dev/null +++ b/src/main/java/dev/galacticraft/mod/util/StreamCodecs.java @@ -0,0 +1,364 @@ +/* + * Copyright (c) 2019-2024 Team Galacticraft + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package dev.galacticraft.mod.util; + + +import com.mojang.datafixers.util.*; +import com.mojang.serialization.Codec; +import io.netty.buffer.ByteBuf; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.NbtOps; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.network.VarInt; +import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceKey; +import org.jetbrains.annotations.Contract; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.Objects; +import java.util.function.Function; +import java.util.function.IntFunction; + +public interface StreamCodecs { + StreamCodec LONG = StreamCodec.of( + ByteBuf::writeLong, + ByteBuf::readLong + ); + + static StreamCodec ofRegistryEntry(ResourceKey> registry) { + return StreamCodec.of( + (b, v) -> b.writeResourceLocation(b.registryAccess().registryOrThrow(registry).getKey(v)), + b -> Objects.requireNonNull(b.registryAccess().registryOrThrow(registry).get(b.readResourceLocation())) + ); + } + + static StreamCodec ofNullable(StreamCodec codec) { + return StreamCodec.of( + (b, v) -> { + if (v == null) { + b.writeBoolean(false); + } else { + b.writeBoolean(true); + codec.encode(b, v); + } + }, + b -> b.readBoolean() ? codec.decode(b) : null + ); + } + + static StreamCodec> ofHolder(ResourceKey> registry) { + return StreamCodec.of( + (b, v) -> b.writeResourceLocation(b.registryAccess().registryOrThrow(registry).getKey(v.value())), + b -> Objects.requireNonNull(b.registryAccess().registryOrThrow(registry).getHolderOrThrow(ResourceKey.create(registry, b.readResourceLocation()))) + ); + } + + static StreamCodec> ofReference(ResourceKey> registry) { + return StreamCodec.of( + (b, v) -> b.writeResourceKey(v.key()), + b -> Objects.requireNonNull(b.registryAccess().registryOrThrow(registry).getHolderOrThrow(b.readResourceKey(registry))) + ); + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, + Function7 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + Function8 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, + Function9 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, StreamCodec codec10, Function from10, + Function10 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object), codec10.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + codec10.encode(object, from10.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, StreamCodec codec10, Function from10, + StreamCodec codec11, Function from11, + Function11 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object), codec10.decode(object), codec11.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + codec10.encode(object, from10.apply(object2)); + codec11.encode(object, from11.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, StreamCodec codec10, Function from10, + StreamCodec codec11, Function from11, StreamCodec codec12, Function from12, + Function12 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object), codec10.decode(object), codec11.decode(object), codec12.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + codec10.encode(object, from10.apply(object2)); + codec11.encode(object, from11.apply(object2)); + codec12.encode(object, from12.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, StreamCodec codec10, Function from10, + StreamCodec codec11, Function from11, StreamCodec codec12, Function from12, + StreamCodec codec13, Function from13, + Function13 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object), codec10.decode(object), codec11.decode(object), codec12.decode(object), codec13.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + codec10.encode(object, from10.apply(object2)); + codec11.encode(object, from11.apply(object2)); + codec12.encode(object, from12.apply(object2)); + codec13.encode(object, from13.apply(object2)); + } + }; + } + + static StreamCodec composite( + StreamCodec codec1, Function from1, StreamCodec codec2, Function from2, + StreamCodec codec3, Function from3, StreamCodec codec4, Function from4, + StreamCodec codec5, Function from5, StreamCodec codec6, Function from6, + StreamCodec codec7, Function from7, StreamCodec codec8, Function from8, + StreamCodec codec9, Function from9, StreamCodec codec10, Function from10, + StreamCodec codec11, Function from11, StreamCodec codec12, Function from12, + StreamCodec codec13, Function from13, StreamCodec codec14, Function from14, + Function14 to + ) { + return new StreamCodec<>() { + @Override + public @NotNull C decode(B object) { + return to.apply(codec1.decode(object), codec2.decode(object), codec3.decode(object), codec4.decode(object), codec5.decode(object), codec6.decode(object), codec7.decode(object), codec8.decode(object), codec9.decode(object), codec10.decode(object), codec11.decode(object), codec12.decode(object), codec13.decode(object), codec14.decode(object)); + } + + @Override + public void encode(B object, C object2) { + codec1.encode(object, from1.apply(object2)); + codec2.encode(object, from2.apply(object2)); + codec3.encode(object, from3.apply(object2)); + codec4.encode(object, from4.apply(object2)); + codec5.encode(object, from5.apply(object2)); + codec6.encode(object, from6.apply(object2)); + codec7.encode(object, from7.apply(object2)); + codec8.encode(object, from8.apply(object2)); + codec9.encode(object, from9.apply(object2)); + codec10.encode(object, from10.apply(object2)); + codec11.encode(object, from11.apply(object2)); + codec12.encode(object, from12.apply(object2)); + codec13.encode(object, from13.apply(object2)); + codec14.encode(object, from14.apply(object2)); + } + }; + } + + @Contract(value = "_, _ -> new", pure = true) + static @NotNull StreamCodec array(StreamCodec codec, IntFunction constructor) { + return StreamCodec.of( + (b, a) -> { + VarInt.write(b, a.length); + for (T t : a) { + codec.encode(b, t); + } + }, + b -> { + int len = VarInt.read(b); + T[] a = constructor.apply(len); + for (int i = 0; i < len; i++) { + a[i] = codec.decode(b); + } + return a; + } + ); + } + + static > StreamCodec ofEnum(E[] values) { + return StreamCodec.of((b, e) -> b.writeByte(e.ordinal()), b -> values[b.readByte()]); + } + + static StreamCodec wrapCodec(Codec codec) { + return StreamCodec.of( + (b, v) -> b.writeNbt(codec.encode(v, NbtOps.INSTANCE, new CompoundTag()).getOrThrow()), + b -> codec.decode(NbtOps.INSTANCE, b.readNbt()).getOrThrow().getFirst() + ); + } +} diff --git a/src/main/java/dev/galacticraft/mod/util/Translations.java b/src/main/java/dev/galacticraft/mod/util/Translations.java index d5bc983ee..a3cea2e1d 100644 --- a/src/main/java/dev/galacticraft/mod/util/Translations.java +++ b/src/main/java/dev/galacticraft/mod/util/Translations.java @@ -34,6 +34,10 @@ interface RecipeCategory { String COMPRESSOR = "category.recipe_viewer.compressing"; } + interface BannerPattern { + String ROCKET = "banner_pattern.galacticraft.rocket"; + } + interface Chat { String BED_FAIL = "chat.galacticraft.bed_fail"; String ROCKET_WARNING = "chat.galacticraft.rocket.warning"; diff --git a/src/main/java/dev/galacticraft/mod/village/GCVillagerProfessions.java b/src/main/java/dev/galacticraft/mod/village/GCVillagerProfessions.java index 5b21970d6..73de8b559 100644 --- a/src/main/java/dev/galacticraft/mod/village/GCVillagerProfessions.java +++ b/src/main/java/dev/galacticraft/mod/village/GCVillagerProfessions.java @@ -35,10 +35,11 @@ import net.minecraft.sounds.SoundEvents; import net.minecraft.world.entity.ai.village.poi.PoiType; import net.minecraft.world.entity.npc.VillagerProfession; +import net.minecraft.world.entity.npc.VillagerTrades; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.saveddata.maps.MapDecoration; +import net.minecraft.world.level.saveddata.maps.MapDecorationTypes; import org.jetbrains.annotations.Nullable; public class GCVillagerProfessions { @@ -52,36 +53,36 @@ public static void register() { Registry.register(BuiltInRegistries.VILLAGER_PROFESSION, Constant.id("lunar_cartographer"), LUNAR_CARTOGRAPHER); TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 1, factories -> { - factories.add(new GCVillagerTrades.BuyForOneEmeraldFactory(Items.PAPER, 24, 16, 2)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.MAP, 7, 1, 1)); + factories.add(new VillagerTrades.EmeraldForItems(Items.PAPER, 24, 16, 2)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.MAP, 7, 1, 1)); }); TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 2, factories -> { - factories.add(new GCVillagerTrades.BuyForOneEmeraldFactory(Items.GLASS_PANE, 11, 16, 10)); - factories.add(new GCVillagerTrades.SellMapFactory(13, GCTags.MOON_RUINS, MapDecoration.Type.RED_X, 12, 5)); + factories.add(new VillagerTrades.EmeraldForItems(Items.GLASS_PANE, 11, 16, 10)); + factories.add(new VillagerTrades.TreasureMapForEmeralds(13, GCTags.MOON_RUINS, "filled_map.moon_ruins", MapDecorationTypes.RED_X, 12, 5)); }); TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 3, factories -> { - factories.add(new GCVillagerTrades.BuyForOneEmeraldFactory(Items.COMPASS, 1, 12, 20)); + factories.add(new VillagerTrades.EmeraldForItems(Items.COMPASS, 1, 12, 20)); // factories.add(new GalacticraftTradeOffers.SellMapFactory(14, GalacticraftStructures.MOON_RUINS, MapIcon.Type.MANSION, 12, 10)); }); TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 4, factories -> { - factories.add(new GCVillagerTrades.SellItemFactory(Items.ITEM_FRAME, 7, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.WHITE_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.BLUE_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.LIGHT_BLUE_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.RED_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.PINK_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.GREEN_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.LIME_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.GRAY_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.BLACK_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.PURPLE_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.MAGENTA_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.CYAN_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.BROWN_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.YELLOW_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.ORANGE_BANNER, 3, 1, 15)); - factories.add(new GCVillagerTrades.SellItemFactory(Items.LIGHT_GRAY_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.ITEM_FRAME, 7, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.WHITE_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.BLUE_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.LIGHT_BLUE_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.RED_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.PINK_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.GREEN_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.LIME_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.GRAY_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.BLACK_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.PURPLE_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.MAGENTA_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.CYAN_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.BROWN_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.YELLOW_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.ORANGE_BANNER, 3, 1, 15)); + factories.add(new VillagerTrades.ItemsForEmeralds(Items.LIGHT_GRAY_BANNER, 3, 1, 15)); }); - TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 5, factories -> factories.add(new GCVillagerTrades.SellItemFactory(Items.GLOBE_BANNER_PATTERN, 8, 1, 30))); + TradeOfferHelper.registerVillagerOffers(LUNAR_CARTOGRAPHER, 5, factories -> factories.add(new VillagerTrades.ItemsForEmeralds(Items.GLOBE_BANNER_PATTERN, 8, 1, 30))); } } diff --git a/src/main/java/dev/galacticraft/mod/village/GCVillagerTrades.java b/src/main/java/dev/galacticraft/mod/village/GCVillagerTrades.java deleted file mode 100644 index 297884259..000000000 --- a/src/main/java/dev/galacticraft/mod/village/GCVillagerTrades.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.village; - -import dev.galacticraft.mod.content.item.GCItems; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.tags.TagKey; -import net.minecraft.util.RandomSource; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.npc.VillagerTrades; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.item.MapItem; -import net.minecraft.world.item.trading.MerchantOffer; -import net.minecraft.world.level.ItemLike; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.levelgen.structure.Structure; -import net.minecraft.world.level.saveddata.maps.MapDecoration; -import net.minecraft.world.level.saveddata.maps.MapItemSavedData; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -public class GCVillagerTrades { - public static class BuyForOneEmeraldFactory implements VillagerTrades.ItemListing { - private final Item buy; - private final int price; - private final int maxUses; - private final int experience; - private final float multiplier; - - public BuyForOneEmeraldFactory(ItemLike item, int price, int maxUses, int experience) { - this.buy = item.asItem(); - this.price = price; - this.maxUses = maxUses; - this.experience = experience; - this.multiplier = 0.05F; - } - - public MerchantOffer getOffer(Entity entity, RandomSource random) { - ItemStack itemStack = new ItemStack(this.buy, this.price); - return new MerchantOffer(itemStack, new ItemStack(GCItems.LUNAR_SAPPHIRE), this.maxUses, this.experience, this.multiplier); - } - } - - public static class SellMapFactory implements VillagerTrades.ItemListing { - private final int price; - private final TagKey structure; - private final MapDecoration.Type iconType; - private final int maxUses; - private final int experience; - - public SellMapFactory(int price, TagKey feature, MapDecoration.Type iconType, int maxUses, int experience) { - this.price = price; - this.structure = feature; - this.iconType = iconType; - this.maxUses = maxUses; - this.experience = experience; - } - - @Nullable - public MerchantOffer getOffer(Entity entity, @NotNull RandomSource random) { - if (!(entity.level() instanceof ServerLevel world)) { - return null; - } else { - BlockPos blockPos = world.findNearestMapStructure(this.structure, entity.blockPosition(), 100, true); - if (blockPos != null) { - ItemStack itemStack = MapItem.create(world, blockPos.getX(), blockPos.getZ(), (byte) 2, true, true); - MapItem.renderBiomePreviewMap(world, itemStack); - MapItemSavedData.addTargetDecoration(itemStack, blockPos, "+", this.iconType); -// itemStack.setCustomName(Text.translatable("filled_map." + this.structure.getName().toLowerCase(Locale.ROOT))); port - return new MerchantOffer(new ItemStack(GCItems.LUNAR_SAPPHIRE, this.price), new ItemStack(Items.COMPASS), itemStack, this.maxUses, this.experience, 0.2F); - } else { - return null; - } - } - } - } - - public static class SellItemFactory implements VillagerTrades.ItemListing { - private final ItemStack sell; - private final int price; - private final int count; - private final int maxUses; - private final int experience; - private final float multiplier; - - public SellItemFactory(Block block, int price, int count, int maxUses, int experience) { - this(new ItemStack(block), price, count, maxUses, experience); - } - - public SellItemFactory(Item item, int price, int count, int experience) { - this(new ItemStack(item), price, count, 12, experience); - } - - public SellItemFactory(Item item, int price, int count, int maxUses, int experience) { - this(new ItemStack(item), price, count, maxUses, experience); - } - - public SellItemFactory(ItemStack stack, int price, int count, int maxUses, int experience) { - this(stack, price, count, maxUses, experience, 0.05F); - } - - public SellItemFactory(ItemStack stack, int price, int count, int maxUses, int experience, float multiplier) { - this.sell = stack; - this.price = price; - this.count = count; - this.maxUses = maxUses; - this.experience = experience; - this.multiplier = multiplier; - } - - public MerchantOffer getOffer(Entity entity, RandomSource random) { - return new MerchantOffer(new ItemStack(GCItems.LUNAR_SAPPHIRE, this.price), new ItemStack(this.sell.getItem(), this.count), this.maxUses, this.experience, this.multiplier); - } - } -} diff --git a/src/main/java/dev/galacticraft/mod/world/biome/GCBiomes.java b/src/main/java/dev/galacticraft/mod/world/biome/GCBiomes.java index ef8505213..cb5d4437a 100644 --- a/src/main/java/dev/galacticraft/mod/world/biome/GCBiomes.java +++ b/src/main/java/dev/galacticraft/mod/world/biome/GCBiomes.java @@ -25,7 +25,7 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeGenerationSettings; @@ -69,7 +69,7 @@ public static Biome createSpaceBiome(HolderGetter holderGetter, H .temperatureAdjustment(Biome.TemperatureModifier.NONE).build(); } - public static void bootstrapRegistries(BootstapContext context) { // moj-map typo :( + public static void bootstrapRegistries(BootstrapContext context) { // moj-map typo :( HolderGetter featureLookup = context.lookup(Registries.PLACED_FEATURE); HolderGetter> carverLookup = context.lookup(Registries.CONFIGURED_CARVER); context.register(SPACE, createSpaceBiome(context.lookup(Registries.PLACED_FEATURE), context.lookup(Registries.CONFIGURED_CARVER))); diff --git a/src/main/java/dev/galacticraft/mod/world/biome/MoonBiomes.java b/src/main/java/dev/galacticraft/mod/world/biome/MoonBiomes.java index 40932e697..0618305b4 100644 --- a/src/main/java/dev/galacticraft/mod/world/biome/MoonBiomes.java +++ b/src/main/java/dev/galacticraft/mod/world/biome/MoonBiomes.java @@ -24,7 +24,6 @@ import dev.galacticraft.mod.content.GCEntityTypes; import dev.galacticraft.mod.content.GCSounds; -import dev.galacticraft.mod.world.gen.carver.GCCarvers; import dev.galacticraft.mod.world.gen.carver.GCConfiguredCarvers; import dev.galacticraft.mod.world.gen.feature.GCOrePlacedFeatures; import net.minecraft.core.HolderGetter; diff --git a/src/main/java/dev/galacticraft/mod/world/biome/VenusBiomes.java b/src/main/java/dev/galacticraft/mod/world/biome/VenusBiomes.java index 3ac241ef0..a84ed59ac 100644 --- a/src/main/java/dev/galacticraft/mod/world/biome/VenusBiomes.java +++ b/src/main/java/dev/galacticraft/mod/world/biome/VenusBiomes.java @@ -24,12 +24,10 @@ import dev.galacticraft.mod.content.GCEntityTypes; import dev.galacticraft.mod.content.GCSounds; -import dev.galacticraft.mod.world.gen.feature.GCOrePlacedFeatures; import net.minecraft.core.HolderGetter; import net.minecraft.sounds.Musics; import net.minecraft.world.entity.MobCategory; import net.minecraft.world.level.biome.*; -import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver; import net.minecraft.world.level.levelgen.placement.PlacedFeature; diff --git a/src/main/java/dev/galacticraft/mod/world/biome/source/GCMultiNoiseBiomeSourceParameterLists.java b/src/main/java/dev/galacticraft/mod/world/biome/source/GCMultiNoiseBiomeSourceParameterLists.java index c314971ef..58b6d9473 100644 --- a/src/main/java/dev/galacticraft/mod/world/biome/source/GCMultiNoiseBiomeSourceParameterLists.java +++ b/src/main/java/dev/galacticraft/mod/world/biome/source/GCMultiNoiseBiomeSourceParameterLists.java @@ -29,7 +29,7 @@ import dev.galacticraft.mod.world.biome.GCBiomes; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; @@ -196,7 +196,7 @@ public static void register() { MultiNoiseBiomeSourceParameterListPresetAccessor.getByName().put(VENUS_PRESET_ID, VENUS_PRESET); } - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter lookup = context.lookup(Registries.BIOME); context.register(MOON, new MultiNoiseBiomeSourceParameterList(MOON_PRESET, lookup)); context.register(VENUS, new MultiNoiseBiomeSourceParameterList(VENUS_PRESET, lookup)); diff --git a/src/main/java/dev/galacticraft/mod/world/dimension/GCDimensionTypes.java b/src/main/java/dev/galacticraft/mod/world/dimension/GCDimensionTypes.java index cc2808a09..af9af75ad 100644 --- a/src/main/java/dev/galacticraft/mod/world/dimension/GCDimensionTypes.java +++ b/src/main/java/dev/galacticraft/mod/world/dimension/GCDimensionTypes.java @@ -25,7 +25,7 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.tag.GCTags; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.util.valueproviders.UniformInt; import net.minecraft.world.level.dimension.DimensionType; @@ -38,7 +38,7 @@ public class GCDimensionTypes { public static final ResourceKey MOON = key("moon"); public static final ResourceKey VENUS = key("venus"); - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { context.register(MOON, new DimensionType( OptionalLong.empty(), true, @@ -56,6 +56,7 @@ public static void bootstrapRegistries(BootstapContext context) { 0.1f, new DimensionType.MonsterSettings(false, false, UniformInt.of(0, 7), 0) )); + context.register(VENUS, new DimensionType( OptionalLong.empty(), // fixedTime true, // hasSkyLight diff --git a/src/main/java/dev/galacticraft/mod/world/dimension/GCLevelStems.java b/src/main/java/dev/galacticraft/mod/world/dimension/GCLevelStems.java index 89bc3328f..d274663a1 100644 --- a/src/main/java/dev/galacticraft/mod/world/dimension/GCLevelStems.java +++ b/src/main/java/dev/galacticraft/mod/world/dimension/GCLevelStems.java @@ -27,7 +27,7 @@ import dev.galacticraft.mod.world.gen.GCNoiseGeneratorSettings; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.MultiNoiseBiomeSource; @@ -43,7 +43,7 @@ public class GCLevelStems { public static final ResourceKey MOON = key("moon"); public static final ResourceKey VENUS = key("venus"); - public static void bootstrapRegistries(@NotNull BootstapContext context) { + public static void bootstrapRegistries(@NotNull BootstrapContext context) { HolderGetter typeLookup = context.lookup(Registries.DIMENSION_TYPE); HolderGetter biomeLookup = context.lookup(Registries.BIOME); HolderGetter noiseLookup = context.lookup(Registries.NOISE_SETTINGS); diff --git a/src/main/java/dev/galacticraft/mod/world/gen/GCDensityFunctions.java b/src/main/java/dev/galacticraft/mod/world/gen/GCDensityFunctions.java index 08cb76b74..e9b8e049a 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/GCDensityFunctions.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/GCDensityFunctions.java @@ -23,23 +23,23 @@ package dev.galacticraft.mod.world.gen; import dev.galacticraft.mod.Constant; -import net.minecraft.core.Holder; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.levelgen.DensityFunction; import net.minecraft.world.level.levelgen.DensityFunctions; import net.minecraft.world.level.levelgen.NoiseRouterData; -import net.minecraft.world.level.levelgen.Noises; import net.minecraft.world.level.levelgen.synth.BlendedNoise; public class GCDensityFunctions { public static final ResourceKey NOODLES = createKey("caves/noodles"); + public static final class Moon { public static final ResourceKey EROSION = createKey("moon/erosion"); public static final ResourceKey FINAL_DENSITY = createKey("moon/final_density"); } + public static final class Venus { // Final Density handles overall terrain shape public static final ResourceKey FINAL_DENSITY = createKey("venus/final_density"); @@ -48,12 +48,14 @@ public static final class Venus { private static ResourceKey createKey(String id) { return ResourceKey.create(Registries.DENSITY_FUNCTION, Constant.id(id)); } - public static void bootstrapRegistries(BootstapContext context) { + + public static void bootstrapRegistries(BootstrapContext context) { var vanillaRegistry = context.lookup(Registries.DENSITY_FUNCTION); var noiseRegistry = context.lookup(Registries.NOISE); DensityFunction shiftX = getFunction(vanillaRegistry, NoiseRouterData.SHIFT_X); DensityFunction shiftZ = getFunction(vanillaRegistry, NoiseRouterData.SHIFT_Z); DensityFunction y = getFunction(vanillaRegistry, NoiseRouterData.Y); + // DensityFunction noodles = registerAndWrap(context, NOODLES, DensityFunctions.rangeChoice( // DensityFunctions.interpolated( // DensityFunctions.rangeChoice( @@ -100,7 +102,7 @@ public static void bootstrapRegistries(BootstapContext context) // )); // DensityFunction erosion = registerAndWrap(context, Moon.EROSION, DensityFunctions.flatCache( // DensityFunctions.shiftedNoise2d( -// shiftX, shiftZ, 1, noiseRegistry.getOrThrow(GCNoiseData.EROSION) +// shiftX, shiftZ, 1.0, noiseRegistry.getOrThrow(GCNoiseData.EROSION) // ) // )); // context.register(Moon.FINAL_DENSITY, DensityFunctions.min( @@ -129,7 +131,7 @@ public static void bootstrapRegistries(BootstapContext context) )); } - private static DensityFunction registerAndWrap(BootstapContext context, ResourceKey key, DensityFunction densityFunction) { + private static DensityFunction registerAndWrap(BootstrapContext context, ResourceKey key, DensityFunction densityFunction) { return new DensityFunctions.HolderHolder(context.register(key, densityFunction)); } diff --git a/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseData.java b/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseData.java index 8dded283c..a3795d785 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseData.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseData.java @@ -24,7 +24,7 @@ import dev.galacticraft.mod.Constant; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.levelgen.synth.NormalNoise; @@ -37,14 +37,14 @@ private static ResourceKey createKey(String id) { return ResourceKey.create(Registries.NOISE, Constant.id(id)); } - public static void bootstrapRegistries(BootstapContext context) { - register(context, EROSION, -11, 1, 1, 0, 1, 1); - register(context, BASALT_MARE, 5, 0, 0.1, 0.2, 0.1, 0, 0, 0, 0); - register(context, BASALT_MARE_HEIGHT, -12, 0.3); + public static void bootstrapRegistries(BootstrapContext context) { +// register(context, EROSION, -11, 1, 1, 0, 1, 1); +// register(context, BASALT_MARE, 5, 0, 0.1, 0.2, 0.1, 0, 0, 0, 0); +// register(context, BASALT_MARE_HEIGHT, -12, 0.3); } private static void register( - BootstapContext context, + BootstrapContext context, ResourceKey key, int firstOctave, double amplitude, diff --git a/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseGeneratorSettings.java b/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseGeneratorSettings.java index 105c190f3..a2f527fd7 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseGeneratorSettings.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/GCNoiseGeneratorSettings.java @@ -24,11 +24,10 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlocks; -import dev.galacticraft.mod.world.gen.surfacebuilder.MoonSurfaceRules; -import dev.galacticraft.mod.world.gen.surfacebuilder.VenusSurfaceRules; +import dev.galacticraft.mod.world.gen.surfacerule.VenusSurfaceRules; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.OverworldBiomeBuilder; import net.minecraft.world.level.block.Blocks; @@ -44,7 +43,7 @@ public class GCNoiseGeneratorSettings { public static final ResourceKey MOON = key("moon"); public static final ResourceKey VENUS = key("venus"); - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter densityLookup = context.lookup(Registries.DENSITY_FUNCTION); HolderGetter noiseLookup = context.lookup(Registries.NOISE); diff --git a/src/main/java/dev/galacticraft/mod/world/gen/PlanetChunkGenerator.java b/src/main/java/dev/galacticraft/mod/world/gen/PlanetChunkGenerator.java index 2bbc254a2..c762fb2ad 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/PlanetChunkGenerator.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/PlanetChunkGenerator.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.world.gen; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.Holder; import net.minecraft.server.level.WorldGenRegion; @@ -41,7 +41,6 @@ import java.util.List; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Executor; /** * Empty for now, possibly future replacement for {@link net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator} @@ -53,7 +52,7 @@ public PlanetChunkGenerator(BiomeSource biomeSource) { } @Override - protected Codec codec() { + protected MapCodec codec() { return null; } @@ -78,8 +77,8 @@ public int getGenDepth() { } @Override - public CompletableFuture fillFromNoise(Executor executor, Blender blender, RandomState randomState, StructureManager structureManager, ChunkAccess chunkAccess) { - return null; + public CompletableFuture fillFromNoise(Blender blender, RandomState noiseConfig, StructureManager structureAccessor, ChunkAccess chunk) { + return CompletableFuture.completedFuture(chunk); } @Override diff --git a/src/main/java/dev/galacticraft/mod/world/gen/carver/GCConfiguredCarvers.java b/src/main/java/dev/galacticraft/mod/world/gen/carver/GCConfiguredCarvers.java index 88bafa0c4..d3a445fb5 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/carver/GCConfiguredCarvers.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/carver/GCConfiguredCarvers.java @@ -28,7 +28,7 @@ import net.minecraft.core.HolderSet; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.util.valueproviders.ConstantFloat; import net.minecraft.util.valueproviders.TrapezoidFloat; @@ -51,7 +51,7 @@ public class GCConfiguredCarvers { return Constant.key(Registries.CONFIGURED_CARVER, s); } - public static void bootstrapRegistries(BootstapContext> context) { + public static void bootstrapRegistries(BootstrapContext> context) { context.register(MOON_CANYON_CARVER, WorldCarver.CANYON.configured(new CanyonCarverConfiguration( 0.05f, UniformHeight.of(VerticalAnchor.absolute(10), VerticalAnchor.absolute(67)), diff --git a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCConfiguredFeature.java b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCConfiguredFeature.java index 14a6a0dbd..e9b1dc95e 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCConfiguredFeature.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCConfiguredFeature.java @@ -25,7 +25,7 @@ import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlocks; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; @@ -36,7 +36,7 @@ public class GCConfiguredFeature { public static final ResourceKey> OIL_LAKE = ResourceKey.create(Registries.CONFIGURED_FEATURE, Constant.id("oil_lake")); - public static void bootstrapRegistries(BootstapContext> context) { + public static void bootstrapRegistries(BootstrapContext> context) { context.register(OIL_LAKE, new ConfiguredFeature<>(Feature.LAKE, new LakeFeature.Configuration(BlockStateProvider.simple(GCBlocks.CRUDE_OIL), BlockStateProvider.simple(Blocks.STONE)))); } diff --git a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOreConfiguredFeature.java b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOreConfiguredFeature.java index 31bd00c3d..3513b90b9 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOreConfiguredFeature.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOreConfiguredFeature.java @@ -26,7 +26,7 @@ import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.tag.GCTags; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.levelgen.feature.ConfiguredFeature; @@ -75,7 +75,7 @@ public class GCOreConfiguredFeature { return Constant.key(Registries.CONFIGURED_FEATURE, s); } - public static void bootstrapRegistries(BootstapContext> context) { + public static void bootstrapRegistries(BootstrapContext> context) { context.register(ORE_SILICON_SMALL, new ConfiguredFeature<>(Feature.ORE, new OreConfiguration(SILICON_ORES, 6, 0.5F))); context.register(ORE_SILICON_LARGE, new ConfiguredFeature<>(Feature.ORE, new OreConfiguration(SILICON_ORES, 9, 0.7F))); context.register(ORE_TIN, new ConfiguredFeature<>(Feature.ORE, new OreConfiguration(TIN_ORES, 7))); diff --git a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOrePlacedFeatures.java b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOrePlacedFeatures.java index 174d14b7b..d263d527a 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOrePlacedFeatures.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCOrePlacedFeatures.java @@ -28,7 +28,7 @@ import net.fabricmc.fabric.api.biome.v1.ModificationPhase; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.VerticalAnchor; @@ -74,7 +74,7 @@ public static void register() { }); } - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter> lookup = context.lookup(Registries.CONFIGURED_FEATURE); context.register(ORE_SILICON, new PlacedFeature(lookup.getOrThrow(GCOreConfiguredFeature.ORE_SILICON_SMALL), modifiersWithCount(5, HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))))); context.register(ORE_SILICON_LARGE, new PlacedFeature(lookup.getOrThrow(GCOreConfiguredFeature.ORE_SILICON_LARGE), modifiersWithRarity(11, HeightRangePlacement.triangle(VerticalAnchor.aboveBottom(-80), VerticalAnchor.aboveBottom(80))))); diff --git a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCPlacedFeatures.java b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCPlacedFeatures.java index 57b1c51af..10cde6e4a 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/feature/GCPlacedFeatures.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/feature/GCPlacedFeatures.java @@ -26,7 +26,7 @@ import net.fabricmc.fabric.api.biome.v1.BiomeModifications; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.data.worldgen.features.MiscOverworldFeatures; import net.minecraft.data.worldgen.placement.PlacementUtils; import net.minecraft.resources.ResourceKey; @@ -42,7 +42,7 @@ public class GCPlacedFeatures { public static final ResourceKey OIL_LAKE = ResourceKey.create(Registries.PLACED_FEATURE, Constant.id("oil_lake")); - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter> configuredFeatureLookup = context.lookup(Registries.CONFIGURED_FEATURE); context.register(OIL_LAKE, new PlacedFeature(configuredFeatureLookup.getOrThrow(GCConfiguredFeature.OIL_LAKE), List.of( PlacementUtils.HEIGHTMAP_WORLD_SURFACE, diff --git a/src/main/java/dev/galacticraft/mod/world/gen/spawner/EvolvedPillagerSpawner.java b/src/main/java/dev/galacticraft/mod/world/gen/spawner/EvolvedPillagerSpawner.java index 019a1ba68..a16c07208 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/spawner/EvolvedPillagerSpawner.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/spawner/EvolvedPillagerSpawner.java @@ -127,7 +127,7 @@ private boolean spawnPillager(ServerLevel world, BlockPos pos, RandomSource rand } patrolEntity.setPos(pos.getX(), pos.getY(), pos.getZ()); - patrolEntity.finalizeSpawn(world, world.getCurrentDifficultyAt(pos), MobSpawnType.PATROL, null, null); + patrolEntity.finalizeSpawn(world, world.getCurrentDifficultyAt(pos), MobSpawnType.PATROL, null); world.addFreshEntityWithPassengers(patrolEntity); return true; } else { diff --git a/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructureTypes.java b/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructureTypes.java index 0908fe74f..9a7117080 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructureTypes.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructureTypes.java @@ -22,12 +22,9 @@ package dev.galacticraft.mod.world.gen.structure; -import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCRegistry; import dev.galacticraft.mod.structure.dungeon.DungeonStructure; -import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.levelgen.structure.StructureType; public class GCStructureTypes { diff --git a/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructures.java b/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructures.java index e67db288f..30af32d90 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructures.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/structure/GCStructures.java @@ -34,8 +34,7 @@ import net.minecraft.core.HolderOwner; import net.minecraft.core.HolderSet; import net.minecraft.core.registries.Registries; -import net.minecraft.data.worldgen.BootstapContext; -import net.minecraft.data.worldgen.Structures; +import net.minecraft.data.worldgen.BootstrapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.tags.TagKey; import net.minecraft.util.random.WeightedRandomList; @@ -69,10 +68,10 @@ private static ResourceKey key(String id) { return Constant.key(Registries.STRUCTURE, id); } - public static void bootstrapRegistries(BootstapContext context) { + public static void bootstrapRegistries(BootstrapContext context) { HolderGetter biomeLookup = context.lookup(Registries.BIOME); HolderGetter templatePoolLookup = context.lookup(Registries.TEMPLATE_POOL); - context.register(Moon.RUINS, new MoonRuinsStructure(Structures.structure(biomeLookup.get(GCTags.MOON_RUINS_HAS_STRUCTURE).orElseGet(() -> createEmptyTag(GCTags.MOON_RUINS_HAS_STRUCTURE)), TerrainAdjustment.BEARD_THIN))); + context.register(Moon.RUINS, new MoonRuinsStructure(new Structure.StructureSettings(biomeLookup.getOrThrow(GCTags.MOON_RUINS_HAS_STRUCTURE)))); context.register(Moon.PILLAGER_BASE, new JigsawStructure( new Structure.StructureSettings(biomeLookup.get(GCTags.MOON_PILLAGER_BASE_HAS_STRUCTURE).orElseGet(() -> createEmptyTag(GCTags.MOON_PILLAGER_BASE_HAS_STRUCTURE)), Map.of(MobCategory.MONSTER, new StructureSpawnOverride(StructureSpawnOverride.BoundingBoxType.STRUCTURE, @@ -96,7 +95,7 @@ public static void bootstrapRegistries(BootstapContext context) { true, Heightmap.Types.WORLD_SURFACE_WG )); - context.register(Moon.BOSS, new DungeonStructure(Structures.structure(biomeLookup.get(GCTags.MOON_BOSS_HAS_STRUCTURE).orElseGet(() -> createEmptyTag(GCTags.MOON_BOSS_HAS_STRUCTURE)), TerrainAdjustment.NONE), new DungeonConfiguration(GCBlocks.MOON_DUNGEON_BRICK.defaultBlockState(), 25, 8, 16, + context.register(Moon.BOSS, new DungeonStructure(new Structure.StructureSettings(biomeLookup.getOrThrow(GCTags.MOON_BOSS_HAS_STRUCTURE)), new DungeonConfiguration(GCBlocks.MOON_DUNGEON_BRICK.defaultBlockState(), 25, 8, 16, 5, 6, GCStructurePieceTypes.ROOM_BOSS, GCStructurePieceTypes.ROOM_TREASURE))); } diff --git a/src/main/java/dev/galacticraft/mod/world/gen/structure/MoonRuinsStructure.java b/src/main/java/dev/galacticraft/mod/world/gen/structure/MoonRuinsStructure.java index c4c9e78e9..a472360f5 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/structure/MoonRuinsStructure.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/structure/MoonRuinsStructure.java @@ -22,7 +22,7 @@ package dev.galacticraft.mod.world.gen.structure; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import dev.galacticraft.mod.structure.MoonRuinsGenerator; import net.minecraft.core.BlockPos; @@ -35,7 +35,7 @@ import java.util.Optional; public class MoonRuinsStructure extends Structure { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + public static final MapCodec CODEC = RecordCodecBuilder.mapCodec((instance) -> instance.group( StructureSettings.CODEC.fieldOf("config").forGetter((moonRuinsStructure) -> moonRuinsStructure.settings) ).apply(instance, MoonRuinsStructure::new)); diff --git a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/BiomeTagRule.java b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/BiomeTagRule.java similarity index 82% rename from src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/BiomeTagRule.java rename to src/main/java/dev/galacticraft/mod/world/gen/surfacerule/BiomeTagRule.java index d63825eee..6ada517e7 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/BiomeTagRule.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/BiomeTagRule.java @@ -20,9 +20,9 @@ * SOFTWARE. */ -package dev.galacticraft.mod.world.gen.surfacebuilder; +package dev.galacticraft.mod.world.gen.surfacerule; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.core.registries.Registries; import net.minecraft.tags.TagKey; @@ -32,20 +32,16 @@ import org.jetbrains.annotations.NotNull; public record BiomeTagRule(@NotNull TagKey tag) implements SurfaceRules.ConditionSource { - private static final Codec CODEC; - - static { - CODEC = RecordCodecBuilder.create(instance -> instance.group(TagKey.codec(Registries.BIOME).fieldOf("tag").forGetter(rule -> rule.tag)).apply(instance, BiomeTagRule::new)); - } + private static final MapCodec CODEC = RecordCodecBuilder.mapCodec(instance -> instance.group(TagKey.codec(Registries.BIOME).fieldOf("tag").forGetter(rule -> rule.tag)).apply(instance, BiomeTagRule::new)); @Override public KeyDispatchDataCodec codec() { - return KeyDispatchDataCodec.of(CODEC); + return KeyDispatchDataCodec.of(BiomeTagRule.CODEC); } @Override public SurfaceRules.Condition apply(SurfaceRules.Context context) { - return new Predicate(context); + return null; } private class Predicate extends SurfaceRules.LazyYCondition { diff --git a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/MoonSurfaceRules.java b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/MoonSurfaceRules.java similarity index 97% rename from src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/MoonSurfaceRules.java rename to src/main/java/dev/galacticraft/mod/world/gen/surfacerule/MoonSurfaceRules.java index 038b7bf0e..ef7eed49d 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/MoonSurfaceRules.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/MoonSurfaceRules.java @@ -20,9 +20,9 @@ * SOFTWARE. */ -package dev.galacticraft.mod.world.gen.surfacebuilder; +package dev.galacticraft.mod.world.gen.surfacerule; -import com.mojang.serialization.Codec; +import com.mojang.serialization.MapCodec; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.world.biome.GCBiomes; @@ -111,6 +111,6 @@ public class MoonSurfaceRules { } public static void register() { - Registry.register(BuiltInRegistries.MATERIAL_RULE, Constant.id("moon"), Codec.unit(MOON)); + Registry.register(BuiltInRegistries.MATERIAL_RULE, Constant.id("moon"), MapCodec.unit(MOON)); } } diff --git a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/VenusSurfaceRules.java b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/VenusSurfaceRules.java similarity index 97% rename from src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/VenusSurfaceRules.java rename to src/main/java/dev/galacticraft/mod/world/gen/surfacerule/VenusSurfaceRules.java index 5be9a62d0..b912b4b69 100644 --- a/src/main/java/dev/galacticraft/mod/world/gen/surfacebuilder/VenusSurfaceRules.java +++ b/src/main/java/dev/galacticraft/mod/world/gen/surfacerule/VenusSurfaceRules.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package dev.galacticraft.mod.world.gen.surfacebuilder; +package dev.galacticraft.mod.world.gen.surfacerule; import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.world.biome.GCBiomes; diff --git a/src/main/java/dev/galacticraft/mod/world/inventory/GearInventory.java b/src/main/java/dev/galacticraft/mod/world/inventory/GearInventory.java index 12c4008df..8209623ae 100644 --- a/src/main/java/dev/galacticraft/mod/world/inventory/GearInventory.java +++ b/src/main/java/dev/galacticraft/mod/world/inventory/GearInventory.java @@ -22,46 +22,46 @@ package dev.galacticraft.mod.world.inventory; +import net.minecraft.core.HolderLookup; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.world.SimpleContainer; import net.minecraft.world.item.ItemStack; +import org.jetbrains.annotations.NotNull; /** * Vanilla copy of {@link net.minecraft.world.inventory.PlayerEnderChestContainer} save methods */ public class GearInventory extends SimpleContainer { - public GearInventory() { super(12); } @Override - public void fromTag(ListTag listTag) { - for(int i = 0; i < this.getContainerSize(); ++i) { + public void fromTag(ListTag list, HolderLookup.Provider lookup) { + for (int i = 0; i < this.getContainerSize(); i++) { this.setItem(i, ItemStack.EMPTY); } - for(int i = 0; i < listTag.size(); ++i) { - CompoundTag compoundTag = listTag.getCompound(i); - int j = compoundTag.getByte("Slot") & 255; - if (j >= 0 && j < this.getContainerSize()) { - this.setItem(j, ItemStack.of(compoundTag)); + for (int i = 0; i < list.size(); i++) { + CompoundTag tag = list.getCompound(i); + int j = tag.getByte("Slot") & 255; + if (j < this.getContainerSize()) { + this.setItem(j, ItemStack.parse(lookup, tag).orElse(ItemStack.EMPTY)); } } } @Override - public ListTag createTag() { + public @NotNull ListTag createTag(HolderLookup.Provider lookup) { ListTag listTag = new ListTag(); - for(int i = 0; i < this.getContainerSize(); ++i) { - ItemStack itemStack = this.getItem(i); - if (!itemStack.isEmpty()) { + for (int i = 0; i < this.getContainerSize(); i++) { + ItemStack stack = this.getItem(i); + if (!stack.isEmpty()) { CompoundTag compoundTag = new CompoundTag(); compoundTag.putByte("Slot", (byte)i); - itemStack.save(compoundTag); - listTag.add(compoundTag); + listTag.add(stack.save(lookup, compoundTag)); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index eee30c83b..eb081bbaa 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -158,6 +158,7 @@ "dev/galacticraft/mod/accessor/CryogenicAccessor" ], "net/minecraft/class_1937": [ + "dev/galacticraft/api/accessor/LevelBodyAccessor", "dev/galacticraft/api/accessor/LevelOxygenAccessor", "dev/galacticraft/mod/accessor/LevelAccessor" ], @@ -166,7 +167,7 @@ } }, "depends": { - "minecraft": ">=1.20.4", + "minecraft": ">=1.21", "fabricloader": ">=0.15.3" }, "suggests": { diff --git a/src/main/resources/galacticraft-api.mixins.json b/src/main/resources/galacticraft-api.mixins.json index e7cd42a52..a0113348c 100644 --- a/src/main/resources/galacticraft-api.mixins.json +++ b/src/main/resources/galacticraft-api.mixins.json @@ -1,16 +1,15 @@ { "required": true, "package": "dev.galacticraft.impl.internal.mixin", - "compatibilityLevel": "JAVA_17", + "compatibilityLevel": "JAVA_21", "mixins": [ + "LevelCelestialBodyMixin", "LevelTimeAccessMixin", "MinecraftServerMixin", "gear.LivingEntityMixin", "gear.PlayerListMixin", "gear.ServerPlayerMixin", - "gravity.ArrowGravityMixin", "gravity.EntityGravityMixin", - "gravity.LivingEntityMixin", "oxygen.ChunkHolderMixin", "oxygen.ChunkSerializerMixin", "oxygen.EmptyLevelChunkMixin", @@ -19,8 +18,6 @@ "oxygen.LevelChunkSectionMixin", "oxygen.LevelMixin", "oxygen.ProtoChunkMixin", - "registry.RegistryDataLoaderMixin", - "registry.RegistrySynchronizationMixin", "research.AdvancementRewardsMixin", "research.ServerPlayerMixin" ], diff --git a/src/main/resources/galacticraft.accesswidener b/src/main/resources/galacticraft.accesswidener index 089429b6f..097883651 100644 --- a/src/main/resources/galacticraft.accesswidener +++ b/src/main/resources/galacticraft.accesswidener @@ -1,53 +1,32 @@ accessWidener v1 named # constructors -accessible method net/minecraft/client/particle/DripParticle$DripHangParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V -accessible method net/minecraft/client/particle/DripParticle$FallingParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V -accessible method net/minecraft/client/resources/model/SimpleBakedModel$Builder (ZZZLnet/minecraft/client/renderer/block/model/ItemTransforms;Lnet/minecraft/client/renderer/block/model/ItemOverrides;)V -accessible method net/minecraft/client/renderer/block/model/ItemOverrides ()V -accessible method net/minecraft/world/level/block/StairBlock (Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V -accessible method net/minecraft/world/item/AxeItem (Lnet/minecraft/world/item/Tier;FFLnet/minecraft/world/item/Item$Properties;)V -accessible method net/minecraft/world/item/HoeItem (Lnet/minecraft/world/item/Tier;IFLnet/minecraft/world/item/Item$Properties;)V -accessible method net/minecraft/world/item/PickaxeItem (Lnet/minecraft/world/item/Tier;IFLnet/minecraft/world/item/Item$Properties;)V -accessible method net/minecraft/world/level/levelgen/structure/pools/LegacySinglePoolElement (Lcom/mojang/datafixers/util/Either;Lnet/minecraft/core/Holder;Lnet/minecraft/world/level/levelgen/structure/pools/StructureTemplatePool$Projection;)V +accessible method net/minecraft/client/particle/DripParticle$DripHangParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;Lnet/minecraft/core/particles/ParticleOptions;)V +accessible method net/minecraft/client/particle/DripParticle$FallingParticle (Lnet/minecraft/client/multiplayer/ClientLevel;DDDLnet/minecraft/world/level/material/Fluid;)V # private classes -accessible class net/minecraft/world/level/biome/MultiNoiseBiomeSourceParameterList$Preset$SourceProvider -accessible class net/minecraft/world/level/levelgen/SurfaceRules$Condition -accessible class net/minecraft/world/level/levelgen/SurfaceRules$LazyYCondition -accessible class net/minecraft/world/level/levelgen/SurfaceRules$Context -accessible class net/minecraft/data/models/BlockModelGenerators$BlockStateGeneratorSupplier -accessible class net/minecraft/client/resources/model/ModelManager$ReloadState -accessible class net/minecraft/core/registries/BuiltInRegistries$RegistryBootstrap -accessible class net/minecraft/core/RegistrySynchronization$NetworkedRegistryData +accessible class net/minecraft/data/models/BlockModelGenerators$BlockStateGeneratorSupplier +accessible class net/minecraft/world/level/levelgen/SurfaceRules$Condition +accessible class net/minecraft/world/level/levelgen/SurfaceRules$LazyYCondition +accessible class net/minecraft/world/level/levelgen/SurfaceRules$Context +accessible class net/minecraft/world/level/biome/MultiNoiseBiomeSourceParameterList$Preset$SourceProvider # fields in final classes -accessible field net/minecraft/world/level/levelgen/SurfaceRules$Context biome Ljava/util/function/Supplier; +accessible field net/minecraft/world/level/levelgen/SurfaceRules$Context biome Ljava/util/function/Supplier; # final classes extendable class net/minecraft/world/SimpleMenuProvider # static methods -accessible method net/minecraft/world/level/levelgen/NoiseRouterData overworld (Lnet/minecraft/core/HolderGetter;Lnet/minecraft/core/HolderGetter;ZZ)Lnet/minecraft/world/level/levelgen/NoiseRouter; -accessible method net/minecraft/world/level/block/ChestBlock isCatSittingOnChest (Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/core/BlockPos;)Z -accessible method net/minecraft/data/models/model/ModelTemplates createItem (Ljava/lang/String;[Lnet/minecraft/data/models/model/TextureSlot;)Lnet/minecraft/data/models/model/ModelTemplate; -accessible method net/minecraft/data/loot/BlockLootSubProvider createSilkTouchOnlyTable (Lnet/minecraft/world/level/ItemLike;)Lnet/minecraft/world/level/storage/loot/LootTable$Builder; -accessible method net/minecraft/data/worldgen/Structures structure (Lnet/minecraft/core/HolderSet;Lnet/minecraft/world/level/levelgen/structure/TerrainAdjustment;)Lnet/minecraft/world/level/levelgen/structure/Structure$StructureSettings; -accessible method net/minecraft/stats/Stats makeCustomStat (Ljava/lang/String;Lnet/minecraft/stats/StatFormatter;)Lnet/minecraft/resources/ResourceLocation; -accessible method net/minecraft/world/level/storage/loot/BuiltInLootTables register (Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/resources/ResourceLocation; - -# private fields -accessible field net/minecraft/client/resources/model/ModelManager bakedRegistry Ljava/util/Map; -accessible field net/minecraft/data/worldgen/ProcessorLists EMPTY Lnet/minecraft/resources/ResourceKey; -accessible field net/minecraft/world/level/block/DispenserBlock DISPENSER_REGISTRY Ljava/util/Map; -accessible field net/minecraft/client/renderer/LevelRenderer ticks I +accessible method net/minecraft/data/models/model/ModelTemplates createItem (Ljava/lang/String;[Lnet/minecraft/data/models/model/TextureSlot;)Lnet/minecraft/data/models/model/ModelTemplate; +accessible method net/minecraft/world/level/storage/loot/BuiltInLootTables register (Lnet/minecraft/resources/ResourceKey;)Lnet/minecraft/resources/ResourceKey; +accessible method net/minecraft/stats/Stats makeCustomStat (Ljava/lang/String;Lnet/minecraft/stats/StatFormatter;)Lnet/minecraft/resources/ResourceLocation; # private final fields accessible field net/minecraft/data/models/BlockModelGenerators texturedModels Ljava/util/Map; -mutable field net/minecraft/data/models/BlockModelGenerators texturedModels Ljava/util/Map; +mutable field net/minecraft/data/models/BlockModelGenerators texturedModels Ljava/util/Map; accessible field net/minecraft/data/models/BlockModelGenerators fullBlockModelCustomGenerators Ljava/util/Map; -mutable field net/minecraft/data/models/BlockModelGenerators fullBlockModelCustomGenerators Ljava/util/Map; -accessible field net/minecraft/client/renderer/block/model/BlockModel textureMap Ljava/util/Map; +mutable field net/minecraft/data/models/BlockModelGenerators fullBlockModelCustomGenerators Ljava/util/Map; # private static fields accessible field net/minecraft/data/loot/EntityLootSubProvider SPECIAL_LOOT_TABLE_TYPES Ljava/util/Set; @@ -60,5 +39,5 @@ accessible field net/minecraft/client/particle/Particle MAXIMUM_COLLISION_VELOCI accessible field net/minecraft/client/renderer/LevelRenderer RAIN_RADIUS I accessible field net/minecraft/client/renderer/LevelRenderer RAIN_DIAMETER I -# private methods -extendable method net/minecraft/world/entity/LivingEntity setPosToBed (Lnet/minecraft/core/BlockPos;)V \ No newline at end of file +# private fields +accessible field net/minecraft/client/renderer/LevelRenderer ticks I diff --git a/src/main/resources/galacticraft.mixins.json b/src/main/resources/galacticraft.mixins.json index 66514a244..8dfb516ba 100644 --- a/src/main/resources/galacticraft.mixins.json +++ b/src/main/resources/galacticraft.mixins.json @@ -2,14 +2,13 @@ "required": true, "package": "dev.galacticraft.mod.mixin", "plugin": "dev.galacticraft.mod.GalacticraftMixinPlugin", - "compatibilityLevel": "JAVA_17", + "compatibilityLevel": "JAVA_21", "mixins": [ "AbstractContainerMenuAccessor", "AbstractSkeletonEntityAccessor", "BlockBehaviourMixin", "BucketItemAccessor", "BucketItemMixin", - "BuiltInLootTablesAccessor", "DimensionTypeMixin", "EntityMixin", "FlowingFluidMixin", diff --git a/src/main/resources/waila_plugins.json b/src/main/resources/waila_plugins.json index f8c69b9ee..b60143106 100644 --- a/src/main/resources/waila_plugins.json +++ b/src/main/resources/waila_plugins.json @@ -1,6 +1,6 @@ { "galacticraft:plugin": { - "initializer": "dev.galacticraft.mod.compat.waila.GalacticraftWailaPlugin", + "initializer": "dev.galacticraft.mod.compat.GalacticraftWailaPlugin", "side": "*" } } \ No newline at end of file diff --git a/src/test/java/dev/galacticraft/mod/gametest/ConfigTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/ConfigTestSuite.java index 03aa22a09..22f7343ab 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/ConfigTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/ConfigTestSuite.java @@ -49,11 +49,13 @@ public void create() { @BasicTest(batch = "config") public void load() { - writeConfig(""" + writeConfig( + """ { "debug_log": true } - """); + """ + ); ConfigImpl config = new ConfigImpl(CONFIG_FILE); assertTrue(config.isDebugLogEnabled()); diff --git a/src/test/java/dev/galacticraft/mod/gametest/GratingTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/GratingTestSuite.java index 60ec50a92..79c7613c4 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/GratingTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/GratingTestSuite.java @@ -53,8 +53,7 @@ public void gratingFlowingWaterTest(GameTestHelper context) { if (!context.getBlockState(pos2).getFluidState().isEmpty()) { context.fail(String.format("Expected grating to not be filled with fluid but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos2).getFluidState().getType())), pos2); - } - else { + } else { for (var x = -1; x < 2; x++) { for (var z = -1; z < 2; z++) { if (mutable.set(xz + x, 4, xz + z).equals(pos4)) { @@ -67,23 +66,18 @@ public void gratingFlowingWaterTest(GameTestHelper context) { context.runAtTickTime(context.getTick() + 40L, () -> { if (!context.getBlockState(pos3).getFluidState().is(FluidTags.WATER)) { context.fail(String.format("Expected water to flow downward but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos3).getFluidState().getType())), pos3); - } - else if (!context.getBlockState(pos2).getFluidState().is(FluidTags.WATER)) { + } else if (!context.getBlockState(pos2).getFluidState().is(FluidTags.WATER)) { context.fail(String.format("Expected grating to be filled with water but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos2).getFluidState().getType())), pos2); - } - else if (!context.getBlockState(pos1).getFluidState().is(FluidTags.WATER)) { + } else if (!context.getBlockState(pos1).getFluidState().is(FluidTags.WATER)) { context.fail(String.format("Expected water to be found below grating but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos1).getFluidState().getType())), pos1); - } - else { + } else { context.setBlock(pos4, Blocks.AIR); context.runAtTickTime(context.getTick() + 50L, () -> context.succeedWhen(() -> { if (!context.getBlockState(pos3).getFluidState().isEmpty()) { context.fail(String.format("Expected water to drain itself but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos3).getFluidState().getType())), pos3); - } - else if (!context.getBlockState(pos2).getFluidState().isEmpty()) { + } else if (!context.getBlockState(pos2).getFluidState().isEmpty()) { context.fail(String.format("Expected grating to not be filled with fluid but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos2).getFluidState().getType())), pos2); - } - else if (!context.getBlockState(pos1).getFluidState().isEmpty()) { + } else if (!context.getBlockState(pos1).getFluidState().isEmpty()) { context.fail(String.format("Expected no fluid to be found below grating but found %s instead!", BuiltInRegistries.FLUID.getKey(context.getBlockState(pos1).getFluidState().getType())), pos1); } })); @@ -115,8 +109,7 @@ public void gratingFlowingWaterWithFallingStateTest(GameTestHelper context) { if (z == 1) { context.setBlock(mutable, grating.setValue(FluidLoggable.FLUID, BuiltInRegistries.FLUID.getKey(Fluids.WATER))); gratingWaterPos = mutable.immutable(); - } - else { + } else { context.setBlock(mutable, grating); } } @@ -148,7 +141,8 @@ public void dispenserDispenseFluidToGrating(GameTestHelper context) { var blockEntity = context.getBlockEntity(pos1); if (blockEntity instanceof DispenserBlockEntity dispenserBlockEntity) { - dispenserBlockEntity.addItem(new ItemStack(Items.WATER_BUCKET)); + dispenserBlockEntity.setItem(0, new ItemStack(Items.WATER_BUCKET)); + dispenserBlockEntity.setChanged(); } context.runAtTickTime(context.getTick() + 10L, () -> context.setBlock(pos2, Blocks.REDSTONE_BLOCK.defaultBlockState())); @@ -194,7 +188,8 @@ public void dispenserPickupFluidFromGrating(GameTestHelper context) { var blockEntity = context.getBlockEntity(pos1); if (blockEntity instanceof DispenserBlockEntity dispenserBlockEntity) { - dispenserBlockEntity.addItem(new ItemStack(Items.BUCKET)); + dispenserBlockEntity.setItem(0, new ItemStack(Items.BUCKET)); + dispenserBlockEntity.setChanged(); } context.runAtTickTime(context.getTick() + 10L, () -> context.setBlock(pos2, Blocks.REDSTONE_BLOCK.defaultBlockState())); diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/AdvancedSolarPanelTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/AdvancedSolarPanelTestSuite.java index b00f727e9..29e392f72 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/AdvancedSolarPanelTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/AdvancedSolarPanelTestSuite.java @@ -24,7 +24,7 @@ import dev.galacticraft.machinelib.api.gametest.MachineGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.AdvancedSolarPanelBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; @@ -36,7 +36,7 @@ @TestSuite("advanced_solar_panel") public final class AdvancedSolarPanelTestSuite extends MachineGameTest { public AdvancedSolarPanelTestSuite() { - super(GCMachineTypes.ADVANCED_SOLAR_PANEL); + super(GCBlocks.ADVANCED_SOLAR_PANEL); } @Override diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/BasicSolarPanelTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/BasicSolarPanelTestSuite.java index 18864a299..6c88af1a5 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/BasicSolarPanelTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/BasicSolarPanelTestSuite.java @@ -24,7 +24,7 @@ import dev.galacticraft.machinelib.api.gametest.MachineGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.BasicSolarPanelBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; @@ -36,7 +36,7 @@ @TestSuite("basic_solar_panel") public final class BasicSolarPanelTestSuite extends MachineGameTest { public BasicSolarPanelTestSuite() { - super(GCMachineTypes.BASIC_SOLAR_PANEL); + super(GCBlocks.BASIC_SOLAR_PANEL); } @Override diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/CircuitFabricatorTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/CircuitFabricatorTestSuite.java index 1936b578e..0534e0b00 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/CircuitFabricatorTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/CircuitFabricatorTestSuite.java @@ -24,28 +24,28 @@ import dev.galacticraft.machinelib.api.gametest.RecipeGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.CircuitFabricatorBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.recipe.FabricationRecipe; import net.minecraft.gametest.framework.GameTestGenerator; import net.minecraft.gametest.framework.TestFunction; -import net.minecraft.world.Container; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.RecipeInput; import org.jetbrains.annotations.NotNull; import java.util.List; @TestSuite("circuit_fabricator") -public final class CircuitFabricatorTestSuite extends RecipeGameTest { +public final class CircuitFabricatorTestSuite extends RecipeGameTest { public CircuitFabricatorTestSuite() { - super(GCMachineTypes.CIRCUIT_FABRICATOR, List.of( + super(GCBlocks.CIRCUIT_FABRICATOR, List.of( machine -> machine.energyStorage().setEnergy(Long.MAX_VALUE / 2), - machine -> machine.itemStorage().getSlot(CircuitFabricatorBlockEntity.DIAMOND_SLOT).set(Items.DIAMOND, 1), - machine -> machine.itemStorage().getSlot(CircuitFabricatorBlockEntity.REDSTONE_SLOT).set(Items.REDSTONE, 1), - machine -> machine.itemStorage().getSlot(CircuitFabricatorBlockEntity.SILICON_SLOT_1).set(GCItems.RAW_SILICON, 1), - machine -> machine.itemStorage().getSlot(CircuitFabricatorBlockEntity.SILICON_SLOT_2).set(GCItems.RAW_SILICON, 1), - machine -> machine.itemStorage().getSlot(CircuitFabricatorBlockEntity.INPUT_SLOT).set(Items.REDSTONE_TORCH, 1) + machine -> machine.itemStorage().slot(CircuitFabricatorBlockEntity.DIAMOND_SLOT).set(Items.DIAMOND, 1), + machine -> machine.itemStorage().slot(CircuitFabricatorBlockEntity.REDSTONE_SLOT).set(Items.REDSTONE, 1), + machine -> machine.itemStorage().slot(CircuitFabricatorBlockEntity.SILICON_SLOT_1).set(GCItems.RAW_SILICON, 1), + machine -> machine.itemStorage().slot(CircuitFabricatorBlockEntity.SILICON_SLOT_2).set(GCItems.RAW_SILICON, 1), + machine -> machine.itemStorage().slot(CircuitFabricatorBlockEntity.INPUT_SLOT).set(Items.REDSTONE_TORCH, 1) ), CircuitFabricatorBlockEntity.OUTPUT_SLOT, 300); } diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/CoalGeneratorTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/CoalGeneratorTestSuite.java index 678453309..01359acce 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/CoalGeneratorTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/CoalGeneratorTestSuite.java @@ -26,7 +26,7 @@ import dev.galacticraft.machinelib.api.gametest.annotation.MachineTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.CoalGeneratorBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; @@ -40,19 +40,19 @@ @TestSuite("coal_generator") public final class CoalGeneratorTestSuite extends MachineGameTest { public CoalGeneratorTestSuite() { - super(GCMachineTypes.COAL_GENERATOR); + super(GCBlocks.COAL_GENERATOR); } @MachineTest public Runnable fuelBurning(CoalGeneratorBlockEntity machine) { - ItemResourceSlot slot = machine.itemStorage().getSlot(CoalGeneratorBlockEntity.INPUT_SLOT); + ItemResourceSlot slot = machine.itemStorage().slot(CoalGeneratorBlockEntity.INPUT_SLOT); slot.set(Items.COAL, 1); return () -> Assertions.assertTrue(slot.isEmpty(), "Failed to consume fuel"); } @MachineTest public Runnable fuelConsumption(CoalGeneratorBlockEntity machine) { - ItemResourceSlot slot = machine.itemStorage().getSlot(CoalGeneratorBlockEntity.INPUT_SLOT); + ItemResourceSlot slot = machine.itemStorage().slot(CoalGeneratorBlockEntity.INPUT_SLOT); slot.set(Items.COAL, 1); return () -> Assertions.assertNotEquals(0, machine.getFuelLength(), "Failed to burn fuel"); @@ -60,7 +60,7 @@ public Runnable fuelConsumption(CoalGeneratorBlockEntity machine) { @MachineTest(workTime = 320) public Runnable multipleFuelBurning(CoalGeneratorBlockEntity machine) { - ItemResourceSlot slot = machine.itemStorage().getSlot(CoalGeneratorBlockEntity.INPUT_SLOT); + ItemResourceSlot slot = machine.itemStorage().slot(CoalGeneratorBlockEntity.INPUT_SLOT); slot.set(Items.COAL, 2); return () -> Assertions.assertTrue(slot.isEmpty(), "Failed to consume two coals!"); diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/CompressorTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/CompressorTestSuite.java index feabada9b..582d8851c 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/CompressorTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/CompressorTestSuite.java @@ -26,34 +26,34 @@ import dev.galacticraft.machinelib.api.gametest.annotation.MachineTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; import dev.galacticraft.machinelib.api.storage.slot.ItemResourceSlot; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.CompressorBlockEntity; import dev.galacticraft.mod.recipe.CompressingRecipe; import net.minecraft.gametest.framework.GameTestGenerator; import net.minecraft.gametest.framework.TestFunction; -import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingInput; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Assertions; import java.util.List; @TestSuite("compressor") -public final class CompressorTestSuite extends RecipeGameTest { +public final class CompressorTestSuite extends RecipeGameTest { public CompressorTestSuite() { - super(GCMachineTypes.COMPRESSOR, List.of( + super(GCBlocks.COMPRESSOR, List.of( machine -> machine.fuelLength = machine.fuelTime = 5000, - machine -> machine.itemStorage().getSlot(CompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1), - machine -> machine.itemStorage().getSlot(CompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1) + machine -> machine.itemStorage().slot(CompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1), + machine -> machine.itemStorage().slot(CompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1) ), CompressorBlockEntity.OUTPUT_SLOT, 200); } @MachineTest public Runnable fuelConsumption(CompressorBlockEntity machine) { - ItemResourceSlot slot = machine.itemStorage().getSlot(CompressorBlockEntity.FUEL_SLOT); + ItemResourceSlot slot = machine.itemStorage().slot(CompressorBlockEntity.FUEL_SLOT); slot.set(Items.COAL, 1); - machine.itemStorage().getSlot(CompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1); - machine.itemStorage().getSlot(CompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1); + machine.itemStorage().slot(CompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1); + machine.itemStorage().slot(CompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1); return () -> { Assertions.assertTrue(slot.isEmpty(), "Failed to consume fuel"); Assertions.assertNotEquals(0, machine.getFuelLength(), "Failed to burn fuel"); diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricArcFurnaceTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricArcFurnaceTestSuite.java index b56965ccf..790d6e0da 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricArcFurnaceTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricArcFurnaceTestSuite.java @@ -24,24 +24,24 @@ import dev.galacticraft.machinelib.api.gametest.RecipeGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.ElectricArcFurnaceBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; import net.minecraft.gametest.framework.TestFunction; -import net.minecraft.world.Container; import net.minecraft.world.item.Items; import net.minecraft.world.item.crafting.BlastingRecipe; +import net.minecraft.world.item.crafting.SingleRecipeInput; import org.jetbrains.annotations.NotNull; import java.util.List; @TestSuite("electric_arc_furnace") -public final class ElectricArcFurnaceTestSuite extends RecipeGameTest { +public final class ElectricArcFurnaceTestSuite extends RecipeGameTest { public ElectricArcFurnaceTestSuite() { - super(GCMachineTypes.ELECTRIC_ARC_FURNACE, List.of( + super(GCBlocks.ELECTRIC_ARC_FURNACE, List.of( machine -> machine.energyStorage().setEnergy(Long.MAX_VALUE / 2), - machine -> machine.itemStorage().getSlot(ElectricArcFurnaceBlockEntity.INPUT_SLOT).set(Items.RAW_IRON, 1) + machine -> machine.itemStorage().slot(ElectricArcFurnaceBlockEntity.INPUT_SLOT).set(Items.RAW_IRON, 1) ), ElectricArcFurnaceBlockEntity.OUTPUT_SLOTS, ElectricArcFurnaceBlockEntity.OUTPUT_LENGTH, 100); } diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricCompressorTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricCompressorTestSuite.java index 197bd018e..ebc474c2c 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricCompressorTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricCompressorTestSuite.java @@ -24,25 +24,25 @@ import dev.galacticraft.machinelib.api.gametest.RecipeGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.ElectricCompressorBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import dev.galacticraft.mod.recipe.CompressingRecipe; import net.minecraft.gametest.framework.GameTestGenerator; import net.minecraft.gametest.framework.TestFunction; -import net.minecraft.world.inventory.CraftingContainer; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingInput; import org.jetbrains.annotations.NotNull; import java.util.List; @TestSuite("electric_compressor") -public final class ElectricCompressorTestSuite extends RecipeGameTest { +public final class ElectricCompressorTestSuite extends RecipeGameTest { public ElectricCompressorTestSuite() { - super(GCMachineTypes.ELECTRIC_COMPRESSOR, List.of( + super(GCBlocks.ELECTRIC_COMPRESSOR, List.of( machine -> machine.energyStorage().setEnergy(Long.MAX_VALUE / 2), - machine -> machine.itemStorage().getSlot(ElectricCompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1), - machine -> machine.itemStorage().getSlot(ElectricCompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1) + machine -> machine.itemStorage().slot(ElectricCompressorBlockEntity.INPUT_SLOTS).set(Items.IRON_INGOT, 1), + machine -> machine.itemStorage().slot(ElectricCompressorBlockEntity.INPUT_SLOTS + 1).set(Items.IRON_INGOT, 1) ), ElectricCompressorBlockEntity.OUTPUT_SLOTS, ElectricCompressorBlockEntity.OUTPUT_LENGTH, 200); } diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricFurnaceTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricFurnaceTestSuite.java index 4d98e7dfb..75e440b75 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricFurnaceTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/ElectricFurnaceTestSuite.java @@ -24,24 +24,24 @@ import dev.galacticraft.machinelib.api.gametest.RecipeGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.ElectricFurnaceBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; import net.minecraft.gametest.framework.TestFunction; -import net.minecraft.world.Container; import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.SingleRecipeInput; import net.minecraft.world.item.crafting.SmeltingRecipe; import org.jetbrains.annotations.NotNull; import java.util.List; @TestSuite("electric_furnace") -public final class ElectricFurnaceTestSuite extends RecipeGameTest { +public final class ElectricFurnaceTestSuite extends RecipeGameTest { public ElectricFurnaceTestSuite() { - super(GCMachineTypes.ELECTRIC_FURNACE, List.of( + super(GCBlocks.ELECTRIC_FURNACE, List.of( machine -> machine.energyStorage().setEnergy(Long.MAX_VALUE / 2), - machine -> machine.itemStorage().getSlot(ElectricFurnaceBlockEntity.INPUT_SLOT).set(Items.PORKCHOP, 1) + machine -> machine.itemStorage().slot(ElectricFurnaceBlockEntity.INPUT_SLOT).set(Items.PORKCHOP, 1) ), ElectricFurnaceBlockEntity.OUTPUT_SLOT, 200); } diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/EnergyStorageModuleTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/EnergyStorageModuleTestSuite.java index dc577d60d..61adbd045 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/EnergyStorageModuleTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/EnergyStorageModuleTestSuite.java @@ -24,7 +24,7 @@ import dev.galacticraft.machinelib.api.gametest.MachineGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.EnergyStorageModuleBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.minecraft.gametest.framework.GameTestGenerator; @@ -36,7 +36,7 @@ @TestSuite("energy_storage_module") public final class EnergyStorageModuleTestSuite extends MachineGameTest { public EnergyStorageModuleTestSuite() { - super(GCMachineTypes.ENERGY_STORAGE_MODULE); + super(GCBlocks.ENERGY_STORAGE_MODULE); } @Override diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/FuelLoaderTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/FuelLoaderTestSuite.java index 1cfd7bd9f..bd4f84df0 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/FuelLoaderTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/FuelLoaderTestSuite.java @@ -24,7 +24,7 @@ import dev.galacticraft.machinelib.api.gametest.MachineGameTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; -import dev.galacticraft.mod.content.GCMachineTypes; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.block.entity.machine.FuelLoaderBlockEntity; import dev.galacticraft.mod.content.block.entity.machine.RefineryBlockEntity; import dev.galacticraft.mod.content.item.GCItems; @@ -37,7 +37,7 @@ @TestSuite("fuel_loader") public final class FuelLoaderTestSuite extends MachineGameTest { public FuelLoaderTestSuite() { - super(GCMachineTypes.FUEL_LOADER); + super(GCBlocks.FUEL_LOADER); } @Override diff --git a/src/test/java/dev/galacticraft/mod/gametest/machine/RefineryTestSuite.java b/src/test/java/dev/galacticraft/mod/gametest/machine/RefineryTestSuite.java index c79aeed08..436422ac1 100644 --- a/src/test/java/dev/galacticraft/mod/gametest/machine/RefineryTestSuite.java +++ b/src/test/java/dev/galacticraft/mod/gametest/machine/RefineryTestSuite.java @@ -26,8 +26,8 @@ import dev.galacticraft.machinelib.api.gametest.annotation.MachineTest; import dev.galacticraft.machinelib.api.gametest.annotation.TestSuite; import dev.galacticraft.machinelib.api.storage.slot.FluidResourceSlot; +import dev.galacticraft.mod.content.GCBlocks; import dev.galacticraft.mod.content.GCFluids; -import dev.galacticraft.mod.content.GCMachineTypes; import dev.galacticraft.mod.content.block.entity.machine.RefineryBlockEntity; import dev.galacticraft.mod.content.item.GCItems; import net.fabricmc.fabric.api.transfer.v1.fluid.FluidConstants; @@ -41,7 +41,7 @@ @TestSuite("refinery") public final class RefineryTestSuite extends MachineGameTest { public RefineryTestSuite() { - super(GCMachineTypes.REFINERY); + super(GCBlocks.REFINERY); } @Override @@ -56,8 +56,8 @@ public RefineryTestSuite() { @MachineTest public Runnable crafting(RefineryBlockEntity machine) { - FluidResourceSlot fuel = machine.fluidStorage().getSlot(RefineryBlockEntity.FUEL_TANK); - FluidResourceSlot oil = machine.fluidStorage().getSlot(RefineryBlockEntity.OIL_TANK); + FluidResourceSlot fuel = machine.fluidStorage().slot(RefineryBlockEntity.FUEL_TANK); + FluidResourceSlot oil = machine.fluidStorage().slot(RefineryBlockEntity.OIL_TANK); oil.set(GCFluids.CRUDE_OIL, FluidConstants.BUCKET); machine.energyStorage().setEnergy(Long.MAX_VALUE / 2); @@ -69,8 +69,8 @@ public Runnable crafting(RefineryBlockEntity machine) { @MachineTest public Runnable craftingFailFull(RefineryBlockEntity machine) { - FluidResourceSlot fuel = machine.fluidStorage().getSlot(RefineryBlockEntity.FUEL_TANK); - FluidResourceSlot oil = machine.fluidStorage().getSlot(RefineryBlockEntity.OIL_TANK); + FluidResourceSlot fuel = machine.fluidStorage().slot(RefineryBlockEntity.FUEL_TANK); + FluidResourceSlot oil = machine.fluidStorage().slot(RefineryBlockEntity.OIL_TANK); machine.energyStorage().setEnergy(Long.MAX_VALUE / 2); fuel.set(GCFluids.FUEL, fuel.getCapacity()); diff --git a/src/test/resources/fabric.mod.json b/src/test/resources/fabric.mod.json index 24a47b569..3404913a5 100644 --- a/src/test/resources/fabric.mod.json +++ b/src/test/resources/fabric.mod.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "id": "galacticraft-test", - "version": "$version", + "version": "0.1.0", "name": "Galacticraft Test Mod", "description": "The test mod for Galacticraft 5.", "license": "MIT", From a17fe4784ed658a9c70ecebd2173af755299d0cb Mon Sep 17 00:00:00 2001 From: marcus8448 Date: Fri, 23 Aug 2024 22:19:57 -0700 Subject: [PATCH 07/10] fix: remapping conflicts --- .../storage/VariableSizedContainer.java | 25 ++++++++++++++----- .../mod/screen/RocketWorkbenchMenu.java | 12 ++++----- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java b/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java index 5265a7e69..0ddb4a54c 100644 --- a/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java +++ b/src/main/java/dev/galacticraft/mod/machine/storage/VariableSizedContainer.java @@ -37,10 +37,11 @@ import java.util.Collections; import java.util.List; -public class VariableSizedContainer implements Container, RecipeInput { +public class VariableSizedContainer implements Container { private int targetSize; private final ArrayList stacks; private final List listeners = new ArrayList<>(); + private final RecipeInput input = new VariableRecipeInput(); public VariableSizedContainer(int targetSize) { this.targetSize = targetSize; @@ -105,11 +106,6 @@ public boolean isEmpty() { return this.stacks.get(i); } - @Override - public int size() { - return this.stacks.size(); - } - @Override public @NotNull ItemStack removeItem(int i, int j) { ItemStack itemStack = ContainerHelper.removeItem(this.stacks, i, j); @@ -202,8 +198,25 @@ public void readTag(CompoundTag tag, HolderLookup.Provider provider) { this.stacks.add(ItemStack.EMPTY); } } + + public RecipeInput asInput() { + return this.input; + } + public interface Listener { void onSizeChanged(); void onItemChanged(); } + + private class VariableRecipeInput implements RecipeInput { + @Override + public @NotNull ItemStack getItem(int slot) { + return VariableSizedContainer.this.getItem(slot); + } + + @Override + public int size() { + return VariableSizedContainer.this.stacks.size(); + } + } } diff --git a/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java b/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java index 231c45b28..f3a437043 100644 --- a/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java +++ b/src/main/java/dev/galacticraft/mod/screen/RocketWorkbenchMenu.java @@ -333,17 +333,17 @@ public void onItemChanged() { RocketData rocketData = this.createData(); boolean craftable = rocketData.isValid(); RocketPartRecipe recipe = this.cone.getRecipe(); - craftable = craftable && (recipe != null && recipe.matches(this.cone.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe != null && recipe.matches(this.cone.inventory.asInput(), this.workbench.getLevel())); recipe = this.body.getRecipe(); - craftable = craftable && (recipe != null && recipe.matches(this.body.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe != null && recipe.matches(this.body.inventory.asInput(), this.workbench.getLevel())); recipe = this.fins.getRecipe(); - craftable = craftable && (recipe != null && recipe.matches(this.fins.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe != null && recipe.matches(this.fins.inventory.asInput(), this.workbench.getLevel())); recipe = this.booster.getRecipe(); - craftable = craftable && (recipe == null || recipe.matches(this.booster.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe == null || recipe.matches(this.booster.inventory.asInput(), this.workbench.getLevel())); recipe = this.engine.getRecipe(); - craftable = craftable && (recipe != null && recipe.matches(this.engine.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe != null && recipe.matches(this.engine.inventory.asInput(), this.workbench.getLevel())); recipe = this.upgrade.getRecipe(); - craftable = craftable && (recipe == null ||recipe.matches(this.upgrade.inventory, this.workbench.getLevel())); + craftable = craftable && (recipe == null ||recipe.matches(this.upgrade.inventory.asInput(), this.workbench.getLevel())); if (craftable) { ItemStack stack = new ItemStack(GCItems.ROCKET, 1); stack.applyComponents(rocketData.asPatch()); From 094dcd93653849c0c0ed635b964ca8a094f78d8c Mon Sep 17 00:00:00 2001 From: marcus8448 Date: Sat, 24 Aug 2024 18:40:39 -0700 Subject: [PATCH 08/10] chore: attempt to improve project documentation --- .github/CONTRIBUTING.md | 115 ++++++++++++++---- .github/ISSUE_TEMPLATE/bug_report.yml | 27 +--- .github/ISSUE_TEMPLATE/config.yml | 2 +- .github/ISSUE_TEMPLATE/crash_report.yml | 42 +++++++ .github/PULL_REQUEST_TEMPLATE/bug_fix.md | 16 --- .github/PULL_REQUEST_TEMPLATE/feature.md | 19 --- README.md | 31 +++-- src/main/generated/README.md | 16 --- .../java/dev/galacticraft/mod/Constant.java | 5 - .../mod/GalacticraftMixinPlugin.java | 11 +- .../mod/mixin/HashCacheMixin.java | 45 ------- 11 files changed, 161 insertions(+), 168 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/crash_report.yml delete mode 100644 .github/PULL_REQUEST_TEMPLATE/bug_fix.md delete mode 100644 .github/PULL_REQUEST_TEMPLATE/feature.md delete mode 100644 src/main/generated/README.md delete mode 100644 src/main/java/dev/galacticraft/mod/mixin/HashCacheMixin.java diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 641011810..346150e1d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,23 +1,92 @@ -Contributing -============ - -* Use appropriate formatting - * Java - * 4 Spaces (No tabs PLEASE) - * Brackets on the same line - * Space between all keywords, operators and values - * Long lines are OK - do not break long lines unless there is a logical, tabular break pattern (for example initialising elements in a long array) or if Vanilla does so - * Generally you should explicitly use `this`. - * Generally you should use braces { } following `if ()` and `for ()` statements, even if it is only one line. - * Interfaces - do not put the prefix 'I' on the file name (example `Rotatable`, not `IRotatable`) - * JSON - * 2 Spaces indent (NO TABS) - * Keep arrays on the same line (do not wrap) - * Spaces after `,` and `:` - * Commits - * Use the [Conventional Commits](https://www.conventionalcommits.org/) specification when creating commits. - * Pull Requests - * Pull request titles must use the [Conventional Commits](https://www.conventionalcommits.org/) specification, just like commit names. -* Name all variables correctly -* All PRs require at least one successful review from a team member to merge - * Please do not submit simple PRs like minor readme changes or spelling fixes, unless they are a part of larger changes such as a new feature or bugfix. +Contributing to Galacticraft += + +Thanks for your interest in contributing to Galacticraft! + +## Testing and Bug Reports + +### Builds +> [!IMPORTANT] +> Galacticraft 5 is still under development!\ +> It is possible that saves will become corrupted and/or unloadable after updates.\ +> It is strongly discouraged to use these builds for anything but testing.\ +> No support will be provided regarding the use of these builds. + +Pre-alpha builds are created after every commit to the `main` branch of this repository.\ +They can be found on the [GitHub Actions][actions] tab (select a commit and look for "Artifacts" at the bottom). + +### Bug Reports +* Before opening a new bug report, please check to see if your issue has already been reported. +* Please create a separate bug report for each bug that you find. + * This makes it easier to keep track of what is and is not fixed. +* Please include either the commit hash (e.g., `a17fe4784ed658a9c70ecebd2173af755299d0cb`) +or the GitHub actions build number (e.g., #253) in your report. + * Commit hashes are preferred, but the build number is acceptable too. + * This helps us figure out when a bug may have been introduced, + or if there are any commit(s) that may have already fixed this bug. + +## Translations +Translations are submitted through [Crowdin][crowdin]. +If your language is missing, or you're having trouble accessing the site, +please get in touch on our [Discord server][discord]. + +## Contributing Code + +If you're planning on fixing an open bug, +please comment on the issue tracker to let people know that you're working on it. + +If you're planning on contributing a larger feature, +please get in contact with us [on Discord][discord], so that we can avoid duplicating work. + +Please try to keep pull requests focused on one feature or subsystem +to keep them small and ensure a quick review process. + +### Code style +Mainly: +* Indent using four spaces +* Braces `{}` go on the same line + +Overall, follow the style of the file you're in. +Feel free to use `var` for variables with obvious types. + +### Managing resources +> [!IMPORTANT] +> Do not manually edit or add any files to [`src/main/generated`][generated] as they will be deleted. + +#### Textures, Music and Complex Models +These (and other non-generatable) resources belong in the [`src/main/resources`] directory. + +#### Simple Models, Loot Tables, and Tags +These (and other generatable) resources are programmatically created using Minecraft's datagen system. +See the [`dev.galacticraft.mod.data`](/src/main/java/dev/galacticraft/mod/data) package to see how these are generated. + +### Before Committing Changes + +#### Data Generation +If you've added, removed, or otherwise modified resource generation code, +you'll need to re-run the data generator to see your changes. + +This can be found as the `Data Generation` configuration in your IDE, or run from Gradle: +```shell +./gradlew runDatagen +``` + +#### License Headers +If you've added any new classes, be sure to check that they have the standard [license header][license header] applied. + +If any files are missing the header, you can add it by executing the following Gradle task: +```shell +./gradlew updateLicenses +``` + +#### Commit Message +We use [conventional commits][conventional commits] specification to write commit messages. +However, we tend to squash-merge pull requests, so you are not required to do this. + + +[actions]: https://github.com/TeamGalacticraft/Galacticraft/actions/workflows/build.yml?query=branch%3Amain+is%3Asuccess +[conventional commits]: https://www.conventionalcommits.org +[crowdin]: https://teamgalacticraft.crowdin.com/galacticraft +[discord]: https://discord.gg/n3QqhMYyFK +[generated]: /src/main/generated +[license header]: /LICENSE_HEADER.txt diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f94dd7d12..ddca860a9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,4 @@ -name: Bug Report +name: Bug Report (Generic) description: File a bug report labels: - 'status: triage' @@ -10,26 +10,14 @@ body: - type: markdown attributes: value: >- - Please note that support for compiling the mod is not currently provided. - For help with Galacticraft 4 and below, please use [TeamGalacticraft/Galacticraft-Legacy](https://github.com/TeamGalacticraft/Galacticraft-Legacy). For general Galacticraft help and support visit the [Galacticraft Central Discord](http://discord.galacticraftcentral.com/) - - type: dropdown - id: modloader - attributes: - label: Mod Loader - description: Which mod loader are you using? - options: - - Fabric - - Forge (NYI) - validations: - required: true - type: input id: version attributes: label: Version Information - description: What version (commit hash or branch) of Galacticraft are you using? + description: What version (commit hash or actions build number) of Galacticraft are you using? placeholder: 4cb9a5d validations: required: true @@ -38,20 +26,15 @@ body: attributes: label: Log or Crash Report description: >- - Please upload your log (latest.log or crash report) to [Github - Gist](https://gist.github.com/) + If relevant, upload your log (latest.log or crash report) to [GitHub + Gist](https://gist.github.com/) or another paste site and link it here. placeholder: 'https://gist.github.com/ghost/1a79a4d60de6718e8e5b326e338ae533' - validations: - required: true - type: textarea id: repro attributes: label: Reproduction steps - description: How do you trigger this bug? Please walk us through it step by step. + description: How do you trigger this bug? Please be as detailed as possible. value: | - 1. Do this - 2. Do that - 3. Crash! ... validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5065ff818..2639c1e69 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -5,7 +5,7 @@ contact_links: about: Please use GitHub discussions for feature requests. - name: Galacticraft Central Discord url: http://discord.galacticraftcentral.com/ - about: Please use this discord for general Galacticraft help and support. + about: Please use this discord for general Galacticraft (4) help and support. - name: Galacticraft Development Discord url: https://discord.gg/n3QqhMYyFK about: Please use this discord to discuss the development of, and help develop Galacticraft. diff --git a/.github/ISSUE_TEMPLATE/crash_report.yml b/.github/ISSUE_TEMPLATE/crash_report.yml new file mode 100644 index 000000000..255796d22 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/crash_report.yml @@ -0,0 +1,42 @@ +name: Bug Report (Crash) +description: File a crashing bug report +labels: + - 'status: triage' + - 'type: bug' +body: + - type: markdown + attributes: + value: Thanks for taking the time to submit a bug report! + - type: markdown + attributes: + value: >- + For help with Galacticraft 4 and below, please use [TeamGalacticraft/Galacticraft-Legacy](https://github.com/TeamGalacticraft/Galacticraft-Legacy). + + For general Galacticraft help and support visit the [Galacticraft Central Discord](http://discord.galacticraftcentral.com/) + - type: input + id: version + attributes: + label: Version Information + description: What version (commit hash or actions build number) of Galacticraft are you using? + placeholder: a17fe4784ed658a9c70ecebd2173af755299d0cb + validations: + required: true + - type: input + id: logs + attributes: + label: Log or Crash Report + description: >- + Please upload your log (latest.log or crash report) to [GitHub + Gist](https://gist.github.com/) or another paste site and link it here. + placeholder: 'https://gist.github.com/ghost/1a79a4d60de6718e8e5b326e338ae533' + validations: + required: true + - type: textarea + id: repro + attributes: + label: Reproduction steps + description: How do you trigger this crash? Please be as detailed as possible. + value: | + ... + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md b/.github/PULL_REQUEST_TEMPLATE/bug_fix.md deleted file mode 100644 index ac6e98873..000000000 --- a/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -name: Bug Fix -about: Fix a bug -title: 'fix: ...' -labels: 'type: bug' -assignees: '' ---- - -## Pre checks -- [ ] I have read the [Contributing guidelines](https://github.com/TeamGalacticraft/Galacticraft/blob/main/.github/CONTRIBUTING.md). -- [ ] I have checked for existing pull requests committing the same bug fix. - -## Changes: - 1. - 2. - 3. diff --git a/.github/PULL_REQUEST_TEMPLATE/feature.md b/.github/PULL_REQUEST_TEMPLATE/feature.md deleted file mode 100644 index 0d835f767..000000000 --- a/.github/PULL_REQUEST_TEMPLATE/feature.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -name: Add Feature -about: Implement a feature in Galacticraft -title: 'feat: ...' -labels: 'type: feature' -assignees: '' ---- - -## Pre checks -- [ ] I have read the [Contributing guidelines](https://github.com/TeamGalacticraft/Galacticraft/blob/main/.github/CONTRIBUTING.md). -- [ ] I have checked for existing pull requests committing the same feature. - -## Changes: -1. -2. -3. - -## Screenshots: - diff --git a/README.md b/README.md index 3f664381c..489e1b7dd 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,19 @@ -[![](https://img.shields.io/github/actions/workflow/status/TeamGalacticraft/Galacticraft/build.yml?style=flat-square&logo=github)](https://github.com/TeamGalacticraft/Galacticraft/actions/workflows/build.yml?query=branch%3Amain) +[![](https://img.shields.io/github/actions/workflow/status/TeamGalacticraft/Galacticraft/build.yml?style=flat-square&logo=github)][actions] [![](https://img.shields.io/github/issues/TeamGalacticraft/Galacticraft?style=flat-square&logo=github)](https://github.com/TeamGalacticraft/Galacticraft/issues) [![](https://img.shields.io/github/issues-pr/TeamGalacticraft/Galacticraft?logo=github&style=flat-square)](https://github.com/TeamGalacticraft/Galacticraft/pulls) -[![](https://img.shields.io/discord/775251052517523467.svg?colorB=5865F2&label=discord&style=flat-square&logo=discord&logoColor=azure)](https://discord.gg/n3QqhMYyFK) -[![](https://img.shields.io/twitch/status/galacticraftdev.svg?style=flat-square&logo=twitch&logoColor=azure)](https://twitch.tv/galacticraftdev) +[![](https://img.shields.io/discord/775251052517523467.svg?colorB=5865F2&label=discord&style=flat-square&logo=discord&logoColor=azure)][discord] +[![](https://img.shields.io/twitch/status/galacticraftdev.svg?style=flat-square&logo=twitch&logoColor=azure)][twitch] # Galacticraft 5 The classic Minecraft space mod, rewritten from the ground up for modern versions of the game. ## Common Questions Here we answer a few common questions we get regarding the release of the mod.\ -More information can be found in the `#faq` channel in [our Discord](https://discord.gg/n3QqhMYyFK). +More information can be found in the `#faq` channel in [our Discord][discord]. -**When will Galacticraft 5 for 1.21+ be released?**\ +**When will Galacticraft 5 be released?**\ There is currently no ETA for a release. -Keep an eye out on [our Discord server](https://discord.gg/n3QqhMYyFK) for an alpha release announcement. +Keep an eye out on [our Discord server][discord] for an alpha release announcement. **Will Galacticraft 5 be on Forge?**\ Yes, Forge development will start *after* we have a survival-playable alpha build out for Fabric. @@ -22,12 +22,21 @@ Yes, Forge development will start *after* we have a survival-playable alpha buil No, Galacticraft 5 is a complete rewrite, and does not have backwards compatibility with the old addon api. ## Pre-Alpha Builds -Pre-alpha builds are available for each commit to the `main` branch of this repository in the [Actions tab](https://github.com/TeamGalacticraft/Galacticraft/actions/workflows/build.yml?query=branch%3Amain) on GitHub. -These builds are not production ready or survival playable, they exist solely for testing.\ -Please note that ***NO SUPPORT*** will be provided for the use of these builds and asking for such may result in a ban or mute, -consider this your one and only warning. +> [!IMPORTANT] +> Galacticraft 5 is still under development!\ +> It is possible that saves will become corrupted and/or unloadable after updates.\ +> It is strongly discouraged to use these builds for anything but testing.\ +> No support will be provided regarding the use of these builds. + +Pre-alpha builds are created after every commit to the `main` branch of this repository.\ +They can be found on the [GitHub Actions][actions] tab (select a commit and look for "Artifacts" at the bottom). ## Contributing We welcome and encourage community contributions, -but before you start please read our [contributing guidelines](https://github.com/TeamGalacticraft/Galacticraft/blob/main/.github/CONTRIBUTING.md).\ +but before you start please read our [contributing guidelines][contributing].\ Pull requests require at least one team member's approving review, and a successful build before they will be merged. + +[actions]: https://github.com/TeamGalacticraft/Galacticraft/actions/workflows/build.yml +[contributing]: https://github.com/TeamGalacticraft/Galacticraft/blob/main/.github/CONTRIBUTING.md +[discord]: https://discord.gg/n3QqhMYyFK +[twitch]: https://twitch.tv/galacticraftdev diff --git a/src/main/generated/README.md b/src/main/generated/README.md deleted file mode 100644 index f230e5b11..000000000 --- a/src/main/generated/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Generated resources -**This directory contains generated resources. Do not edit them directly as they can be overwritten (or deleted).** - - -### Adding more resources -Resources that cannot be generated (e.g., music, textures, translations) -should be put into [src/main/resources](../resources). - -To generate additional resources, see the `dev.galacticraft.mod.data` package. - -### Updating generated resources -To regenerate resources, run the following command: -```bash -./gradlew runDatagen -``` -or the "Data Generation" run configuration in your IDE. diff --git a/src/main/java/dev/galacticraft/mod/Constant.java b/src/main/java/dev/galacticraft/mod/Constant.java index 4bc34e87a..5c26a4c69 100644 --- a/src/main/java/dev/galacticraft/mod/Constant.java +++ b/src/main/java/dev/galacticraft/mod/Constant.java @@ -773,11 +773,6 @@ interface Misc { int MAX_STRING_READ = 32767; } - @ApiStatus.Internal - interface Mixin { - String DATAGEN_SKIP_README = "HashCacheMixin"; - } - interface Recipe { String FABRICATION = "fabrication"; String COMPRESSING = "compressing"; diff --git a/src/main/java/dev/galacticraft/mod/GalacticraftMixinPlugin.java b/src/main/java/dev/galacticraft/mod/GalacticraftMixinPlugin.java index c4316c438..e486caf46 100644 --- a/src/main/java/dev/galacticraft/mod/GalacticraftMixinPlugin.java +++ b/src/main/java/dev/galacticraft/mod/GalacticraftMixinPlugin.java @@ -22,13 +22,10 @@ package dev.galacticraft.mod; -import net.fabricmc.fabric.impl.datagen.FabricDataGenHelper; -import net.fabricmc.loader.api.FabricLoader; import org.objectweb.asm.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; -import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -53,13 +50,7 @@ public void acceptTargets(Set myTargets, Set otherTargets) { @Override public List getMixins() { - List optionalMixins = new ArrayList<>(); - if (FabricLoader.getInstance().isDevelopmentEnvironment()) { - if (FabricDataGenHelper.ENABLED) { - optionalMixins.add(Constant.Mixin.DATAGEN_SKIP_README); - } - } - return optionalMixins; + return null; } @Override diff --git a/src/main/java/dev/galacticraft/mod/mixin/HashCacheMixin.java b/src/main/java/dev/galacticraft/mod/mixin/HashCacheMixin.java deleted file mode 100644 index 64c4c73ff..000000000 --- a/src/main/java/dev/galacticraft/mod/mixin/HashCacheMixin.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2019-2024 Team Galacticraft - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package dev.galacticraft.mod.mixin; - -import net.minecraft.data.HashCache; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; - -import java.nio.file.Path; -import java.util.Set; - -@Mixin(HashCache.class) -public class HashCacheMixin { - @Shadow @Final private Path rootDir; - - @Inject(method = "purgeStaleAndWrite", at = @At(value = "INVOKE", target = "Ljava/util/Set;add(Ljava/lang/Object;)Z"), locals = LocalCapture.CAPTURE_FAILEXCEPTION) - private void onPurgeStaleAndWrite(CallbackInfo ci, Set set) { - set.add(this.rootDir.resolve("README.md")); - } -} From c1ce0e2b07364332a59e046e012ae8bec13bf71a Mon Sep 17 00:00:00 2001 From: DuckyProgrammer <30835935+DuckyProgrammer@users.noreply.github.com> Date: Sun, 25 Aug 2024 13:06:48 -0400 Subject: [PATCH 09/10] fix: make multiblock parts break when the base block explodes (#348) Closes #333 * Fixed solar panel part blocks not breaking when the solar panel base was destroyed from an explosion. * Fixed issues as requested --- .../mod/api/block/MultiBlockMachineBlock.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java index 9fc13195b..0249d51a4 100644 --- a/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java +++ b/src/main/java/dev/galacticraft/mod/api/block/MultiBlockMachineBlock.java @@ -28,6 +28,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.block.Block; @@ -57,6 +58,18 @@ public BlockState playerWillDestroy(Level world, BlockPos pos, BlockState state, return returnState; } + @Override + public void wasExploded(Level world, BlockPos pos, Explosion explosion) { + for (BlockPos part : this.getOtherParts(world.getBlockState(pos))) { + part = pos.immutable().offset(part); + if (!(world.getBlockEntity(part) instanceof MultiBlockPart)) { + continue; + } + world.removeBlock(part, false); + } + super.wasExploded(world, pos, explosion); + } + @Override public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { for (BlockPos otherPart : this.getOtherParts(state)) { From 38dfb48af23482ad0c7b860fe072febcfa84cac8 Mon Sep 17 00:00:00 2001 From: marcus8448 Date: Sun, 25 Aug 2024 14:47:32 -0700 Subject: [PATCH 10/10] fix: solar panel part interaction, sky renderer matrix --- .../gui/screen/ingame/SolarPanelScreen.java | 3 + .../render/dimension/MoonSkyRenderer.java | 4 +- .../render/dimension/SpaceSkyRenderer.java | 4 +- .../mod/content/GCBlockEntityTypes.java | 63 +++++++++---------- .../AdvancedSolarPanelBlockEntity.java | 3 +- .../machine/SimpleMultiBlockMachineBlock.java | 7 +++ .../block/special/SolarPanelPartBlock.java | 13 ++-- 7 files changed, 52 insertions(+), 45 deletions(-) diff --git a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java index 920edce4c..d50b4b17d 100644 --- a/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java +++ b/src/main/java/dev/galacticraft/mod/client/gui/screen/ingame/SolarPanelScreen.java @@ -25,6 +25,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import dev.galacticraft.machinelib.api.block.entity.MachineBlockEntity; import dev.galacticraft.machinelib.client.api.screen.MachineScreen; +import dev.galacticraft.machinelib.client.api.util.GraphicsUtil; import dev.galacticraft.mod.Constant; import dev.galacticraft.mod.api.block.entity.SolarPanel; import dev.galacticraft.mod.api.solarpanel.LightSource; @@ -116,6 +117,8 @@ protected void renderTooltip(GuiGraphics graphics, int mouseX, int mouseY) { for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) { if (DrawableUtil.isWithin(mouseX, mouseY, this.leftPos + SOLAR_PANEL_X + x * SOLAR_PANEL_WIDTH, this.topPos + SOLAR_PANEL_Y + y * SOLAR_PANEL_HEIGHT, SOLAR_PANEL_WIDTH, SOLAR_PANEL_HEIGHT)) { + GraphicsUtil.highlightElement(graphics, this.leftPos, this.topPos, SOLAR_PANEL_X + x * SOLAR_PANEL_WIDTH, SOLAR_PANEL_Y + y * SOLAR_PANEL_HEIGHT, SOLAR_PANEL_WIDTH, SOLAR_PANEL_HEIGHT, 0x80ffffff); + if (this.menu.getBlockage()[y * 3 + x]) { graphics.renderTooltip(this.font, Component.translatable(Translations.SolarPanel.STATUS).setStyle(Constant.Text.Color.GRAY_STYLE).append(BLOCKED), mouseX, mouseY); } else { diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java index f640be1c8..e0516f798 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/MoonSkyRenderer.java @@ -43,8 +43,8 @@ public void render(WorldRenderContext context) { RenderSystem.disableBlend(); RenderSystem.depthMask(false); - PoseStack matrices = context.matrixStack(); - if (matrices == null) matrices = new PoseStack(); + PoseStack matrices = new PoseStack(); + matrices.mulPose(context.positionMatrix()); context.profiler().push("stars"); matrices.pushPose(); diff --git a/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java b/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java index 2070fc456..8d9bec797 100644 --- a/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java +++ b/src/main/java/dev/galacticraft/mod/client/render/dimension/SpaceSkyRenderer.java @@ -32,8 +32,8 @@ public class SpaceSkyRenderer implements DimensionRenderingRegistry.SkyRenderer @Override public void render(WorldRenderContext context) { - PoseStack matrices = context.matrixStack(); - if (matrices == null) matrices = new PoseStack(); + PoseStack matrices = new PoseStack(); + matrices.mulPose(context.positionMatrix()); context.profiler().push("stars"); matrices.pushPose(); diff --git a/src/main/java/dev/galacticraft/mod/content/GCBlockEntityTypes.java b/src/main/java/dev/galacticraft/mod/content/GCBlockEntityTypes.java index 2795e2bf2..ef7ac7397 100644 --- a/src/main/java/dev/galacticraft/mod/content/GCBlockEntityTypes.java +++ b/src/main/java/dev/galacticraft/mod/content/GCBlockEntityTypes.java @@ -31,7 +31,6 @@ import dev.galacticraft.mod.content.block.entity.networked.WireWalkwayBlockEntity; import dev.galacticraft.mod.content.block.special.ParaChestBlockEntity; import dev.galacticraft.mod.content.block.special.launchpad.LaunchPadBlockEntity; -import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.level.block.entity.BlockEntityType; @@ -39,50 +38,50 @@ public class GCBlockEntityTypes { public static final GCRegistry> BLOCK_ENTITIES = new GCRegistry<>(BuiltInRegistries.BLOCK_ENTITY_TYPE); // POWER GENERATION - public static final BlockEntityType COAL_GENERATOR = FabricBlockEntityTypeBuilder.create(CoalGeneratorBlockEntity::new, GCBlocks.COAL_GENERATOR).build(); - public static final BlockEntityType BASIC_SOLAR_PANEL = FabricBlockEntityTypeBuilder.create(BasicSolarPanelBlockEntity::new, GCBlocks.BASIC_SOLAR_PANEL).build(); - public static final BlockEntityType ADVANCED_SOLAR_PANEL = FabricBlockEntityTypeBuilder.create(AdvancedSolarPanelBlockEntity::new, GCBlocks.ADVANCED_SOLAR_PANEL).build(); + public static final BlockEntityType COAL_GENERATOR = BlockEntityType.Builder.of(CoalGeneratorBlockEntity::new, GCBlocks.COAL_GENERATOR).build(); + public static final BlockEntityType BASIC_SOLAR_PANEL = BlockEntityType.Builder.of(BasicSolarPanelBlockEntity::new, GCBlocks.BASIC_SOLAR_PANEL).build(); + public static final BlockEntityType ADVANCED_SOLAR_PANEL = BlockEntityType.Builder.of(AdvancedSolarPanelBlockEntity::new, GCBlocks.ADVANCED_SOLAR_PANEL).build(); // WIRES, PIPES, WALKWAYS - public static final BlockEntityType WIRE_T1 = FabricBlockEntityTypeBuilder.create((pos, state) -> WireBlockEntity.createT1(GCBlockEntityTypes.WIRE_T1, pos, state), GCBlocks.ALUMINUM_WIRE, GCBlocks.SEALABLE_ALUMINUM_WIRE).build(); - public static final BlockEntityType WIRE_T2 = FabricBlockEntityTypeBuilder.create((pos, state) -> WireBlockEntity.createT2(GCBlockEntityTypes.WIRE_T2, pos, state)).build(); - public static final BlockEntityType GLASS_FLUID_PIPE = FabricBlockEntityTypeBuilder.create(GlassFluidPipeBlockEntity::new, GCBlocks.GLASS_FLUID_PIPE).build(); - public static final BlockEntityType WALKWAY = FabricBlockEntityTypeBuilder.create(WalkwayBlockEntity::new, GCBlocks.WALKWAY).build(); - public static final BlockEntityType WIRE_WALKWAY = FabricBlockEntityTypeBuilder.create(WireWalkwayBlockEntity::new, GCBlocks.WIRE_WALKWAY).build(); - public static final BlockEntityType FLUID_PIPE_WALKWAY = FabricBlockEntityTypeBuilder.create(FluidPipeWalkwayBlockEntity::new, GCBlocks.FLUID_PIPE_WALKWAY).build(); + public static final BlockEntityType WIRE_T1 = BlockEntityType.Builder.of((pos, state) -> WireBlockEntity.createT1(GCBlockEntityTypes.WIRE_T1, pos, state), GCBlocks.ALUMINUM_WIRE, GCBlocks.SEALABLE_ALUMINUM_WIRE).build(); + public static final BlockEntityType WIRE_T2 = BlockEntityType.Builder.of((pos, state) -> WireBlockEntity.createT2(GCBlockEntityTypes.WIRE_T2, pos, state)).build(); + public static final BlockEntityType GLASS_FLUID_PIPE = BlockEntityType.Builder.of(GlassFluidPipeBlockEntity::new, GCBlocks.GLASS_FLUID_PIPE).build(); + public static final BlockEntityType WALKWAY = BlockEntityType.Builder.of(WalkwayBlockEntity::new, GCBlocks.WALKWAY).build(); + public static final BlockEntityType WIRE_WALKWAY = BlockEntityType.Builder.of(WireWalkwayBlockEntity::new, GCBlocks.WIRE_WALKWAY).build(); + public static final BlockEntityType FLUID_PIPE_WALKWAY = BlockEntityType.Builder.of(FluidPipeWalkwayBlockEntity::new, GCBlocks.FLUID_PIPE_WALKWAY).build(); // MACHINES - public static final BlockEntityType CIRCUIT_FABRICATOR = FabricBlockEntityTypeBuilder.create(CircuitFabricatorBlockEntity::new, GCBlocks.CIRCUIT_FABRICATOR).build(); - public static final BlockEntityType COMPRESSOR = FabricBlockEntityTypeBuilder.create(CompressorBlockEntity::new, GCBlocks.COMPRESSOR).build(); - public static final BlockEntityType ELECTRIC_COMPRESSOR = FabricBlockEntityTypeBuilder.create(ElectricCompressorBlockEntity::new, GCBlocks.ELECTRIC_COMPRESSOR).build(); - public static final BlockEntityType ELECTRIC_FURNACE = FabricBlockEntityTypeBuilder.create(ElectricFurnaceBlockEntity::new, GCBlocks.ELECTRIC_FURNACE).build(); - public static final BlockEntityType ELECTRIC_ARC_FURNACE = FabricBlockEntityTypeBuilder.create(ElectricArcFurnaceBlockEntity::new, GCBlocks.ELECTRIC_ARC_FURNACE).build(); - public static final BlockEntityType REFINERY = FabricBlockEntityTypeBuilder.create(RefineryBlockEntity::new, GCBlocks.REFINERY).build(); + public static final BlockEntityType CIRCUIT_FABRICATOR = BlockEntityType.Builder.of(CircuitFabricatorBlockEntity::new, GCBlocks.CIRCUIT_FABRICATOR).build(); + public static final BlockEntityType COMPRESSOR = BlockEntityType.Builder.of(CompressorBlockEntity::new, GCBlocks.COMPRESSOR).build(); + public static final BlockEntityType ELECTRIC_COMPRESSOR = BlockEntityType.Builder.of(ElectricCompressorBlockEntity::new, GCBlocks.ELECTRIC_COMPRESSOR).build(); + public static final BlockEntityType ELECTRIC_FURNACE = BlockEntityType.Builder.of(ElectricFurnaceBlockEntity::new, GCBlocks.ELECTRIC_FURNACE).build(); + public static final BlockEntityType ELECTRIC_ARC_FURNACE = BlockEntityType.Builder.of(ElectricArcFurnaceBlockEntity::new, GCBlocks.ELECTRIC_ARC_FURNACE).build(); + public static final BlockEntityType REFINERY = BlockEntityType.Builder.of(RefineryBlockEntity::new, GCBlocks.REFINERY).build(); // OXYGEN MACHINES - public static final BlockEntityType OXYGEN_COLLECTOR = FabricBlockEntityTypeBuilder.create(OxygenCollectorBlockEntity::new, GCBlocks.OXYGEN_COLLECTOR).build(); - public static final BlockEntityType OXYGEN_COMPRESSOR = FabricBlockEntityTypeBuilder.create(OxygenCompressorBlockEntity::new, GCBlocks.OXYGEN_COMPRESSOR).build(); - public static final BlockEntityType OXYGEN_DECOMPRESSOR = FabricBlockEntityTypeBuilder.create(OxygenDecompressorBlockEntity::new, GCBlocks.OXYGEN_DECOMPRESSOR).build(); - public static final BlockEntityType OXYGEN_SEALER = FabricBlockEntityTypeBuilder.create(OxygenSealerBlockEntity::new, GCBlocks.OXYGEN_SEALER).build(); - public static final BlockEntityType OXYGEN_BUBBLE_DISTRIBUTOR = FabricBlockEntityTypeBuilder.create(OxygenBubbleDistributorBlockEntity::new, GCBlocks.OXYGEN_BUBBLE_DISTRIBUTOR).build(); + public static final BlockEntityType OXYGEN_COLLECTOR = BlockEntityType.Builder.of(OxygenCollectorBlockEntity::new, GCBlocks.OXYGEN_COLLECTOR).build(); + public static final BlockEntityType OXYGEN_COMPRESSOR = BlockEntityType.Builder.of(OxygenCompressorBlockEntity::new, GCBlocks.OXYGEN_COMPRESSOR).build(); + public static final BlockEntityType OXYGEN_DECOMPRESSOR = BlockEntityType.Builder.of(OxygenDecompressorBlockEntity::new, GCBlocks.OXYGEN_DECOMPRESSOR).build(); + public static final BlockEntityType OXYGEN_SEALER = BlockEntityType.Builder.of(OxygenSealerBlockEntity::new, GCBlocks.OXYGEN_SEALER).build(); + public static final BlockEntityType OXYGEN_BUBBLE_DISTRIBUTOR = BlockEntityType.Builder.of(OxygenBubbleDistributorBlockEntity::new, GCBlocks.OXYGEN_BUBBLE_DISTRIBUTOR).build(); // RESOURCE STORAGE - public static final BlockEntityType ENERGY_STORAGE_MODULE = FabricBlockEntityTypeBuilder.create(EnergyStorageModuleBlockEntity::new, GCBlocks.ENERGY_STORAGE_MODULE).build(); - public static final BlockEntityType OXYGEN_STORAGE_MODULE = FabricBlockEntityTypeBuilder.create(OxygenStorageModuleBlockEntity::new, GCBlocks.OXYGEN_STORAGE_MODULE).build(); + public static final BlockEntityType ENERGY_STORAGE_MODULE = BlockEntityType.Builder.of(EnergyStorageModuleBlockEntity::new, GCBlocks.ENERGY_STORAGE_MODULE).build(); + public static final BlockEntityType OXYGEN_STORAGE_MODULE = BlockEntityType.Builder.of(OxygenStorageModuleBlockEntity::new, GCBlocks.OXYGEN_STORAGE_MODULE).build(); // ROCKETS - public static final BlockEntityType LAUNCH_PAD = FabricBlockEntityTypeBuilder.create(LaunchPadBlockEntity::new, GCBlocks.ROCKET_LAUNCH_PAD).build(); - public static final BlockEntityType FUEL_LOADER = FabricBlockEntityTypeBuilder.create(FuelLoaderBlockEntity::new, GCBlocks.FUEL_LOADER).build(); - public static final BlockEntityType PARACHEST = FabricBlockEntityTypeBuilder.create(ParaChestBlockEntity::new, GCBlocks.PARACHEST).build(); + public static final BlockEntityType LAUNCH_PAD = BlockEntityType.Builder.of(LaunchPadBlockEntity::new, GCBlocks.ROCKET_LAUNCH_PAD).build(); + public static final BlockEntityType FUEL_LOADER = BlockEntityType.Builder.of(FuelLoaderBlockEntity::new, GCBlocks.FUEL_LOADER).build(); + public static final BlockEntityType PARACHEST = BlockEntityType.Builder.of(ParaChestBlockEntity::new, GCBlocks.PARACHEST).build(); // MISC - public static final BlockEntityType SOLAR_PANEL_PART = FabricBlockEntityTypeBuilder.create(SolarPanelPartBlockEntity::new, GCBlocks.SOLAR_PANEL_PART).build(); - public static final BlockEntityType CRYOGENIC_CHAMBER = FabricBlockEntityTypeBuilder.create(CryogenicChamberBlockEntity::new, GCBlocks.CRYOGENIC_CHAMBER).build(); - public static final BlockEntityType CRYOGENIC_CHAMBER_PART = FabricBlockEntityTypeBuilder.create(CryogenicChamberPartBlockEntity::new, GCBlocks.CRYOGENIC_CHAMBER_PART).build(); - public static final BlockEntityType DUNGEON_BOSS_SPAWNER = BLOCK_ENTITIES.register(Constant.Block.BOSS_SPAWNER, FabricBlockEntityTypeBuilder.create(DungeonSpawnerBlockEntity::new, GCBlocks.BOSS_SPAWNER).build()); + public static final BlockEntityType SOLAR_PANEL_PART = BlockEntityType.Builder.of(SolarPanelPartBlockEntity::new, GCBlocks.SOLAR_PANEL_PART).build(); + public static final BlockEntityType CRYOGENIC_CHAMBER = BlockEntityType.Builder.of(CryogenicChamberBlockEntity::new, GCBlocks.CRYOGENIC_CHAMBER).build(); + public static final BlockEntityType CRYOGENIC_CHAMBER_PART = BlockEntityType.Builder.of(CryogenicChamberPartBlockEntity::new, GCBlocks.CRYOGENIC_CHAMBER_PART).build(); + public static final BlockEntityType DUNGEON_BOSS_SPAWNER = BLOCK_ENTITIES.register(Constant.Block.BOSS_SPAWNER, BlockEntityType.Builder.of(DungeonSpawnerBlockEntity::new, GCBlocks.BOSS_SPAWNER).build()); - public static final BlockEntityType AIRLOCK_CONTROLLER = FabricBlockEntityTypeBuilder.create(AirlockControllerBlockEntity::new, GCBlocks.AIR_LOCK_CONTROLLER).build(); - public static final BlockEntityType ROCKET_WORKBENCH = FabricBlockEntityTypeBuilder.create(RocketWorkbenchBlockEntity::new, GCBlocks.ROCKET_WORKBENCH).build(); + public static final BlockEntityType AIRLOCK_CONTROLLER = BlockEntityType.Builder.of(AirlockControllerBlockEntity::new, GCBlocks.AIR_LOCK_CONTROLLER).build(); + public static final BlockEntityType ROCKET_WORKBENCH = BlockEntityType.Builder.of(RocketWorkbenchBlockEntity::new, GCBlocks.ROCKET_WORKBENCH).build(); public static void register() { Registry.register(BuiltInRegistries.BLOCK_ENTITY_TYPE, Constant.id(Constant.Block.COAL_GENERATOR), COAL_GENERATOR); diff --git a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java index 96173e7a4..94c50dc45 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java +++ b/src/main/java/dev/galacticraft/mod/content/block/entity/machine/AdvancedSolarPanelBlockEntity.java @@ -36,7 +36,6 @@ import dev.galacticraft.mod.screen.GCMenuTypes; import dev.galacticraft.mod.screen.SolarPanelMenu; import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.state.BlockState; @@ -82,6 +81,6 @@ protected long calculateEnergyProduction(long time, double multiplier) { @Override public @Nullable MachineMenu createMenu(int syncId, Inventory inventory, Player player) { - return new SolarPanelMenu<>(GCMenuTypes.ADVANCED_SOLAR_PANEL, syncId, (ServerPlayer) player, this); + return new SolarPanelMenu<>(GCMenuTypes.ADVANCED_SOLAR_PANEL, syncId, player, this); } } \ No newline at end of file diff --git a/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java b/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java index a9b8094bb..002d8f043 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/machine/SimpleMultiBlockMachineBlock.java @@ -26,6 +26,8 @@ import dev.galacticraft.mod.api.block.MultiBlockPart; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntity; @@ -64,6 +66,11 @@ public void onMultiBlockPlaced(Level level, BlockPos blockPos, BlockState blockS } } + @Override + public InteractionResult multiBlockUseWithoutItem(BlockState baseState, Level level, BlockPos basePos, Player player) { + return this.useWithoutItem(baseState, level, basePos, player, null); + } + @Override public @Unmodifiable List getOtherParts(BlockState blockState) { return this.parts; diff --git a/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java b/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java index c7c0e3bb6..fa3cb2e93 100644 --- a/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java +++ b/src/main/java/dev/galacticraft/mod/content/block/special/SolarPanelPartBlock.java @@ -121,13 +121,12 @@ public boolean isPossibleToRespawnInThis(BlockState blockState) { @Override protected @NotNull InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, BlockHitResult hit) { - BlockEntity partEntity = level.getBlockEntity(pos); - if (level.isClientSide || level.isEmptyBlock(pos) || !(partEntity instanceof SolarPanelPartBlockEntity)) { - return InteractionResult.SUCCESS; + if (level.isClientSide) return InteractionResult.SUCCESS; + if (level.getBlockEntity(pos) instanceof SolarPanelPartBlockEntity part) { + BlockPos basePos = part.basePos; + BlockState base = level.getBlockState(basePos); + return ((MultiBlockBase) base.getBlock()).multiBlockUseWithoutItem(base, level, basePos, player); } - - BlockPos basePos = ((SolarPanelPartBlockEntity) partEntity).basePos; - BlockState base = level.getBlockState(basePos); - return ((MultiBlockBase)base.getBlock()).multiBlockUseWithoutItem(base, level, basePos, player); + return InteractionResult.PASS; } } \ No newline at end of file