From 759c3fbfc357946553ab51616865ef7bbbab7b62 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Thu, 23 Feb 2023 15:51:39 +0000 Subject: [PATCH] 1.19.4-pre1 --- .../java/reborncore/RebornCoreClient.java | 2 +- .../reborncore/client/ClientChunkManager.java | 2 - .../reborncore/client/ItemStackRenderer.java | 2 +- .../java/reborncore/client/RenderUtil.java | 2 - .../client/gui/builder/RedstoneConfigGui.java | 2 +- .../slot/elements/ConfigSlotElement.java | 4 +- .../builder/slot/elements/ElementBase.java | 2 +- .../client/gui/guibuilder/GuiBuilder.java | 4 +- .../client/multiblock/HologramRenderer.java | 6 +- .../common/crafting/RebornRecipe.java | 11 ++-- .../crafting/serde/AbstractRecipeSerde.java | 2 +- .../common/explosion/NuclearDamageSource.java | 37 ----------- .../common/network/NetworkManager.java | 2 +- .../PaddedShapedRecipeJsonBuilder.java | 2 +- .../common/recipes/RecipeCrafter.java | 29 ++++++--- RebornCore/src/main/resources/fabric.mod.json | 6 +- build.gradle | 2 +- gradle.properties | 8 +-- gradle/wrapper/gradle-wrapper.jar | Bin 61574 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 4 +- .../compat/rei/MachineRecipeDisplay.java | 2 +- .../client/gui/GuiAutoCrafting.java | 6 +- .../render/entitys/StorageUnitRenderer.java | 7 ++- .../render/entitys/TurbineRenderer.java | 14 +++-- .../datagen/TechRebornDataGen.groovy | 12 ++-- .../TRDynamicContent.groovy} | 12 +++- .../TRDynamicProvider.groovy} | 7 ++- .../recipe/recipes/RollingMachineRecipe.java | 13 ++-- .../iron/IronAlloyFurnaceBlockEntity.java | 4 +- .../machine/iron/IronFurnaceBlockEntity.java | 2 +- .../FusionControlComputerBlockEntity.java | 4 +- .../tier1/AutoCraftingTableBlockEntity.java | 6 +- .../tier1/ElectricFurnaceBlockEntity.java | 4 +- .../tier1/RollingMachineBlockEntity.java | 4 +- .../techreborn/blocks/cable/CableBlock.java | 7 ++- .../generator/BlockFusionControlComputer.java | 7 ++- .../blocks/misc/RubberButtonBlock.java | 3 +- .../blocks/misc/RubberDoorBlock.java | 3 +- .../blocks/misc/RubberPressurePlateBlock.java | 3 +- .../blocks/misc/RubberTrapdoorBlock.java | 3 +- .../techreborn/entities/EntityNukePrimed.java | 2 +- .../java/techreborn/events/ModRegistry.java | 59 +++++++++--------- .../techreborn/init/TRArmorMaterials.java | 9 +-- src/main/java/techreborn/init/TRContent.java | 6 ++ .../java/techreborn/init/TRDamageTypes.java | 20 ++++++ .../techreborn/init/TRDispenserBehavior.java | 2 +- .../java/techreborn/items/ScrapBoxItem.java | 2 +- .../techreborn/items/armor/BatpackItem.java | 2 +- .../items/armor/CloakingDeviceItem.java | 2 +- .../items/armor/QuantumSuitItem.java | 16 ++--- .../techreborn/items/armor/TRArmourItem.java | 5 +- .../items/tool/industrial/OmniToolItem.java | 3 +- .../java/techreborn/utils/RecipeUtils.java | 9 --- .../damageSources/ElectricalShockSource.java | 36 ----------- .../damageSources/FusionDamageSource.java | 36 ----------- .../assets/techreborn/lang/en_us.json | 4 +- src/main/resources/fabric.mod.json | 6 +- 58 files changed, 210 insertions(+), 263 deletions(-) delete mode 100644 RebornCore/src/main/java/reborncore/common/explosion/NuclearDamageSource.java rename src/datagen/groovy/techreborn/datagen/{worldgen/TRWorldGenBootstrap.groovy => dynamic/TRDynamicContent.groovy} (95%) rename src/datagen/groovy/techreborn/datagen/{worldgen/TRWorldGenProvider.groovy => dynamic/TRDynamicProvider.groovy} (86%) create mode 100644 src/main/java/techreborn/init/TRDamageTypes.java delete mode 100644 src/main/java/techreborn/utils/damageSources/ElectricalShockSource.java delete mode 100644 src/main/java/techreborn/utils/damageSources/FusionDamageSource.java diff --git a/RebornCore/src/client/java/reborncore/RebornCoreClient.java b/RebornCore/src/client/java/reborncore/RebornCoreClient.java index 0aac7f6db..89476d8c6 100644 --- a/RebornCore/src/client/java/reborncore/RebornCoreClient.java +++ b/RebornCore/src/client/java/reborncore/RebornCoreClient.java @@ -55,7 +55,7 @@ public class RebornCoreClient implements ClientModInitializer { }); ClientLifecycleEvents.CLIENT_STARTED.register(client -> { - String strangeMcLang = client.getLanguageManager().getLanguage().getCode(); + String strangeMcLang = client.getLanguageManager().getLanguage(); RebornCore.locale = Locale.forLanguageTag(strangeMcLang.substring(0, 2)); }); } diff --git a/RebornCore/src/client/java/reborncore/client/ClientChunkManager.java b/RebornCore/src/client/java/reborncore/client/ClientChunkManager.java index 2c183e8df..44f126aac 100644 --- a/RebornCore/src/client/java/reborncore/client/ClientChunkManager.java +++ b/RebornCore/src/client/java/reborncore/client/ClientChunkManager.java @@ -79,7 +79,6 @@ public class ClientChunkManager { final Tessellator tessellator = Tessellator.getInstance(); final BufferBuilder bufferBuilder = tessellator.getBuffer(); - RenderSystem.disableTexture(); RenderSystem.disableBlend(); RenderSystem.lineWidth(5.0F); @@ -100,7 +99,6 @@ public class ClientChunkManager { tessellator.draw(); RenderSystem.lineWidth(1.0F); RenderSystem.enableBlend(); - RenderSystem.enableTexture(); } } diff --git a/RebornCore/src/client/java/reborncore/client/ItemStackRenderer.java b/RebornCore/src/client/java/reborncore/client/ItemStackRenderer.java index ef3b530ca..96f53c46e 100644 --- a/RebornCore/src/client/java/reborncore/client/ItemStackRenderer.java +++ b/RebornCore/src/client/java/reborncore/client/ItemStackRenderer.java @@ -79,7 +79,7 @@ public class ItemStackRenderer implements HudRenderCallback { framebuffer.beginWrite(true); GlStateManager._clear(GL12.GL_COLOR_BUFFER_BIT | GL12.GL_DEPTH_BUFFER_BIT, MinecraftClient.IS_SYSTEM_MAC); - MinecraftClient.getInstance().getItemRenderer().renderInGui(item, 0, 0); + MinecraftClient.getInstance().getItemRenderer().renderInGui(stack, item, 0, 0); framebuffer.endWrite(); framebuffer.beginRead(); diff --git a/RebornCore/src/client/java/reborncore/client/RenderUtil.java b/RebornCore/src/client/java/reborncore/client/RenderUtil.java index 4a6395bfb..f249d73ba 100644 --- a/RebornCore/src/client/java/reborncore/client/RenderUtil.java +++ b/RebornCore/src/client/java/reborncore/client/RenderUtil.java @@ -146,7 +146,6 @@ public class RenderUtil { } public static void drawGradientRect(MatrixStack matrices, int zLevel, int left, int top, int right, int bottom, int startColor, int endColor) { - RenderSystem.disableTexture(); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.setShader(GameRenderer::getPositionColorProgram); @@ -172,7 +171,6 @@ public class RenderUtil { tessellator.draw(); RenderSystem.disableBlend(); - RenderSystem.enableTexture(); } } diff --git a/RebornCore/src/client/java/reborncore/client/gui/builder/RedstoneConfigGui.java b/RebornCore/src/client/java/reborncore/client/gui/builder/RedstoneConfigGui.java index 6dd9f583d..fb1197495 100644 --- a/RebornCore/src/client/java/reborncore/client/gui/builder/RedstoneConfigGui.java +++ b/RebornCore/src/client/java/reborncore/client/gui/builder/RedstoneConfigGui.java @@ -50,7 +50,7 @@ public class RedstoneConfigGui { int i = 0; int spread = configuration.getElements().size() == 3 ? 27 : 18; for (RedstoneConfiguration.Element element : configuration.getElements()) { - itemRenderer.renderInGuiWithOverrides(element.getIcon(), x - 3, y + (i * spread) - 5); + itemRenderer.renderInGuiWithOverrides(matrixStack, element.getIcon(), x - 3, y + (i * spread) - 5); guiBase.getTextRenderer().draw(matrixStack, Text.translatable("reborncore.gui.fluidconfig." + element.getName()), x + 15, y + (i * spread), -1); diff --git a/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ConfigSlotElement.java b/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ConfigSlotElement.java index 7657dbad7..f8d5e4674 100644 --- a/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ConfigSlotElement.java +++ b/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ConfigSlotElement.java @@ -114,8 +114,8 @@ public class ConfigSlotElement extends ElementBase { RenderSystem.enableBlend(); RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA); ItemRenderer renderItem = MinecraftClient.getInstance().getItemRenderer(); - renderItem.renderInGuiWithOverrides(stack, xPos, yPos); - renderItem.renderGuiItemOverlay(gui.getTextRenderer(), stack, xPos, yPos, null); + renderItem.renderInGuiWithOverrides(matrixStack, stack, xPos, yPos); + renderItem.renderGuiItemOverlay(matrixStack, gui.getTextRenderer(), stack, xPos, yPos, null); RenderSystem.disableDepthTest(); matrixStack.pop(); if (isHovering) { diff --git a/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ElementBase.java b/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ElementBase.java index 10037123d..c1f01542f 100644 --- a/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ElementBase.java +++ b/RebornCore/src/client/java/reborncore/client/gui/builder/slot/elements/ElementBase.java @@ -318,7 +318,7 @@ public class ElementBase { RenderSystem.blendFunc(GlStateManager.SrcFactor.SRC_ALPHA, GlStateManager.DstFactor.ONE_MINUS_SRC_ALPHA); ItemRenderer itemRenderer = MinecraftClient.getInstance().getItemRenderer(); - itemRenderer.renderInGuiWithOverrides(sprite.itemStack, x + gui.getGuiLeft(), y + gui.getGuiTop()); + itemRenderer.renderInGuiWithOverrides(matrixStack, sprite.itemStack, x + gui.getGuiLeft(), y + gui.getGuiTop()); matrixStack.pop(); } diff --git a/RebornCore/src/client/java/reborncore/client/gui/guibuilder/GuiBuilder.java b/RebornCore/src/client/java/reborncore/client/gui/guibuilder/GuiBuilder.java index e86b7fd95..ce90eceff 100644 --- a/RebornCore/src/client/java/reborncore/client/gui/guibuilder/GuiBuilder.java +++ b/RebornCore/src/client/java/reborncore/client/gui/guibuilder/GuiBuilder.java @@ -387,7 +387,7 @@ public class GuiBuilder { public void drawSlotTab(MatrixStack matrixStack, GuiBase gui, int x, int y, ItemStack stack) { RenderSystem.setShaderTexture(0, resourceLocation); gui.drawTexture(matrixStack, x, y, 217, 82, 24, 24); - gui.getMinecraft().getItemRenderer().renderInGuiWithOverrides(stack, x + 5, y + 4); + gui.getMinecraft().getItemRenderer().renderInGuiWithOverrides(matrixStack, stack, x + 5, y + 4); } @@ -461,7 +461,7 @@ public class GuiBuilder { @Override public void render(MatrixStack matrixStack, int index, int y, int x, int width, int height, int mouseX, int mouseY, boolean hovering, float delta) { - MinecraftClient.getInstance().textRenderer.drawTrimmed(tip, x, y, width, 11184810); + MinecraftClient.getInstance().textRenderer.drawTrimmed(matrixStack, tip, x, y, width, 11184810); } } } diff --git a/RebornCore/src/client/java/reborncore/client/multiblock/HologramRenderer.java b/RebornCore/src/client/java/reborncore/client/multiblock/HologramRenderer.java index 27faeb446..95a1e5a19 100644 --- a/RebornCore/src/client/java/reborncore/client/multiblock/HologramRenderer.java +++ b/RebornCore/src/client/java/reborncore/client/multiblock/HologramRenderer.java @@ -33,6 +33,7 @@ import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; import net.minecraft.client.render.block.BlockRenderManager; import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.render.model.json.ModelTransformationMode; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.fluid.FluidState; import net.minecraft.item.ItemStack; @@ -40,6 +41,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.random.Random; import net.minecraft.world.BlockRenderView; import net.minecraft.world.BlockView; +import net.minecraft.world.World; import reborncore.common.blockentity.MultiblockWriter; import java.util.function.BiPredicate; @@ -48,7 +50,7 @@ import java.util.function.BiPredicate; * Renders a hologram */ public -record HologramRenderer(BlockRenderView view, MatrixStack matrix, VertexConsumerProvider vertexConsumerProvider, +record HologramRenderer(World view, MatrixStack matrix, VertexConsumerProvider vertexConsumerProvider, float scale) implements MultiblockWriter { private static final BlockPos OUT_OF_WORLD_POS = new BlockPos(0, 260, 0); // Bad hack; disables lighting @@ -63,7 +65,7 @@ record HologramRenderer(BlockRenderView view, MatrixStack matrix, VertexConsumer if (state.getBlock() instanceof FluidBlock) { FluidState fluidState = ((FluidBlock) state.getBlock()).getFluidState(state); - MinecraftClient.getInstance().getItemRenderer().renderItem(new ItemStack(fluidState.getFluid().getBucketItem()), ModelTransformation.Mode.FIXED, 15728880, OverlayTexture.DEFAULT_UV, matrix, vertexConsumerProvider, 0); + MinecraftClient.getInstance().getItemRenderer().renderItem(new ItemStack(fluidState.getFluid().getBucketItem()), ModelTransformationMode.FIXED, 15728880, OverlayTexture.DEFAULT_UV, matrix, vertexConsumerProvider, view, 0); } else { matrix.translate(-0.5, -0.5, -0.5); VertexConsumer consumer = vertexConsumerProvider.getBuffer(RenderLayers.getBlockLayer(state)); diff --git a/RebornCore/src/main/java/reborncore/common/crafting/RebornRecipe.java b/RebornCore/src/main/java/reborncore/common/crafting/RebornRecipe.java index 29c91695f..a31ff9041 100644 --- a/RebornCore/src/main/java/reborncore/common/crafting/RebornRecipe.java +++ b/RebornCore/src/main/java/reborncore/common/crafting/RebornRecipe.java @@ -32,10 +32,12 @@ import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.Recipe; import net.minecraft.recipe.RecipeSerializer; +import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.registry.Registries; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; import reborncore.RebornCore; import reborncore.api.recipe.IRecipeCrafterProvider; import reborncore.common.crafting.ingredient.RebornIngredient; @@ -103,7 +105,7 @@ public class RebornRecipe implements Recipe, CustomOutputRecipe { return ingredients; } - public List getOutputs() { + public List getOutputs(@Nullable DynamicRegistryManager registryManager) { return Collections.unmodifiableList(outputs); } @@ -142,9 +144,8 @@ public class RebornRecipe implements Recipe, CustomOutputRecipe { throw new UnsupportedOperationException(); } - @Deprecated @Override - public ItemStack craft(Inventory inv) { + public ItemStack craft(Inventory inventory, @Nullable DynamicRegistryManager dynamicRegistryManager) { throw new UnsupportedOperationException(); } @@ -156,11 +157,11 @@ public class RebornRecipe implements Recipe, CustomOutputRecipe { /** * Do not call directly, this is implemented only as a fallback. - * {@link RebornRecipe#getOutputs()} will return all the outputs + * {@link RebornRecipe#getOutputs(DynamicRegistryManager)} will return all the outputs */ @Deprecated @Override - public ItemStack getOutput() { + public ItemStack getOutput(DynamicRegistryManager dynamicRegistryManager) { if (outputs.isEmpty()) { return ItemStack.EMPTY; } diff --git a/RebornCore/src/main/java/reborncore/common/crafting/serde/AbstractRecipeSerde.java b/RebornCore/src/main/java/reborncore/common/crafting/serde/AbstractRecipeSerde.java index 5dd33688a..51575927c 100644 --- a/RebornCore/src/main/java/reborncore/common/crafting/serde/AbstractRecipeSerde.java +++ b/RebornCore/src/main/java/reborncore/common/crafting/serde/AbstractRecipeSerde.java @@ -70,7 +70,7 @@ public abstract class AbstractRecipeSerde implements Rec protected void writeOutputs(R recipe, JsonObject jsonObject) { final JsonArray resultsArray = new JsonArray(); - for (ItemStack stack : recipe.getOutputs()) { + for (ItemStack stack : recipe.getOutputs(null)) { final JsonObject stackObject = new JsonObject(); stackObject.addProperty("item", Registries.ITEM.getId(stack.getItem()).toString()); diff --git a/RebornCore/src/main/java/reborncore/common/explosion/NuclearDamageSource.java b/RebornCore/src/main/java/reborncore/common/explosion/NuclearDamageSource.java deleted file mode 100644 index 4c1800335..000000000 --- a/RebornCore/src/main/java/reborncore/common/explosion/NuclearDamageSource.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of RebornCore, licensed under the MIT License (MIT). - * - * Copyright (c) 2021 TeamReborn - * - * 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 reborncore.common.explosion; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.damage.EntityDamageSource; - -/** - * Created by modmuss50 on 16/03/2016. - */ -public class NuclearDamageSource extends EntityDamageSource { - public NuclearDamageSource(Entity entity) { - super("nuke", entity); - } -} diff --git a/RebornCore/src/main/java/reborncore/common/network/NetworkManager.java b/RebornCore/src/main/java/reborncore/common/network/NetworkManager.java index d44ee5e5a..7444b52e5 100644 --- a/RebornCore/src/main/java/reborncore/common/network/NetworkManager.java +++ b/RebornCore/src/main/java/reborncore/common/network/NetworkManager.java @@ -30,7 +30,7 @@ import net.fabricmc.fabric.api.networking.v1.PacketSender; import net.fabricmc.fabric.api.networking.v1.PlayerLookup; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.block.entity.BlockEntity; -import net.minecraft.network.Packet; +import net.minecraft.network.packet.Packet; import net.minecraft.network.PacketByteBuf; import net.minecraft.server.MinecraftServer; import net.minecraft.server.network.ServerPlayerEntity; diff --git a/RebornCore/src/main/java/reborncore/common/recipes/PaddedShapedRecipeJsonBuilder.java b/RebornCore/src/main/java/reborncore/common/recipes/PaddedShapedRecipeJsonBuilder.java index 2592f7134..35480d92b 100644 --- a/RebornCore/src/main/java/reborncore/common/recipes/PaddedShapedRecipeJsonBuilder.java +++ b/RebornCore/src/main/java/reborncore/common/recipes/PaddedShapedRecipeJsonBuilder.java @@ -67,7 +67,7 @@ public class PaddedShapedRecipeJsonBuilder extends ShapedRecipeJsonBuilder { static class PaddedShapedRecipeJsonProvider extends PaddedShapedRecipeJsonBuilder.ShapedRecipeJsonProvider { public PaddedShapedRecipeJsonProvider(Identifier recipeId, Item output, int resultCount, String group, CraftingRecipeCategory category, List pattern, Map inputs, Advancement.Builder advancementBuilder, Identifier advancementId) { - super(recipeId, output, resultCount, group, category, pattern, inputs, advancementBuilder, advancementId); + super(recipeId, output, resultCount, group, category, pattern, inputs, advancementBuilder, advancementId, false); } @Override diff --git a/RebornCore/src/main/java/reborncore/common/recipes/RecipeCrafter.java b/RebornCore/src/main/java/reborncore/common/recipes/RecipeCrafter.java index 868bb4174..384b234ec 100644 --- a/RebornCore/src/main/java/reborncore/common/recipes/RecipeCrafter.java +++ b/RebornCore/src/main/java/reborncore/common/recipes/RecipeCrafter.java @@ -28,6 +28,7 @@ import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NbtCompound; +import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.util.math.BlockPos; import org.jetbrains.annotations.Nullable; import reborncore.RebornCore; @@ -41,6 +42,7 @@ import reborncore.common.util.ItemUtils; import reborncore.common.util.RebornInventory; import java.util.ArrayList; +import java.util.List; import java.util.Optional; /** @@ -154,21 +156,23 @@ public class RecipeCrafter implements IUpgradeHandler { } // If it has reached the recipe tick time if (currentRecipe != null && currentTickTime >= currentNeededTicks && hasAllInputs()) { + final List outputs = currentRecipe.getOutputs(getDynamicRegistryManager()); + boolean canGiveInvAll = true; // Checks to see if it can fit the output - for (int i = 0; i < currentRecipe.getOutputs().size(); i++) { - if (!canFitOutput(currentRecipe.getOutputs().get(i), outputSlots[i])) { + for (int i = 0; i < outputs.size(); i++) { + if (!canFitOutput(outputs.get(i), outputSlots[i])) { canGiveInvAll = false; } } // The slots that have been filled ArrayList filledSlots = new ArrayList<>(); if (canGiveInvAll && currentRecipe.onCraft(blockEntity)) { - for (int i = 0; i < currentRecipe.getOutputs().size(); i++) { + for (int i = 0; i < outputs.size(); i++) { // Checks it has not been filled if (!filledSlots.contains(outputSlots[i])) { // Fills the slot with the output stack - fitStack(currentRecipe.getOutputs().get(i).copy(), outputSlots[i]); + fitStack(outputs.get(i).copy(), outputSlots[i]); filledSlots.add(outputSlots[i]); } } @@ -207,10 +211,12 @@ public class RecipeCrafter implements IUpgradeHandler { if (!hasAllInputs(recipe)) continue; if (!recipe.canCraft(blockEntity)) continue; + final List outputs = recipe.getOutputs(getDynamicRegistryManager()); + // This checks to see if it can fit all the outputs boolean hasOutputSpace = true; - for (int i = 0; i < recipe.getOutputs().size(); i++) { - if (!canFitOutput(recipe.getOutputs().get(i), outputSlots[i])) { + for (int i = 0; i < outputs.size(); i++) { + if (!canFitOutput(outputs.get(i), outputSlots[i])) { hasOutputSpace = false; } } @@ -323,8 +329,10 @@ public class RecipeCrafter implements IUpgradeHandler { public boolean canCraftAgain() { for (RebornRecipe recipe : recipeType.getRecipes(blockEntity.getWorld())) { if (recipe.canCraft(blockEntity) && hasAllInputs(recipe)) { - for (int i = 0; i < recipe.getOutputs().size(); i++) { - if (!canFitOutput(recipe.getOutputs().get(i), outputSlots[i])) { + final List outputs = recipe.getOutputs(getDynamicRegistryManager()); + + for (int i = 0; i < outputs.size(); i++) { + if (!canFitOutput(outputs.get(i), outputSlots[i])) { return false; } } @@ -431,4 +439,9 @@ public class RecipeCrafter implements IUpgradeHandler { public boolean isMuffled() { return parentUpgradeHandler.map(IUpgradeHandler::isMuffled).orElse(false); } + + @Nullable + private DynamicRegistryManager getDynamicRegistryManager() { + return blockEntity.getWorld().getRegistryManager(); + } } diff --git a/RebornCore/src/main/resources/fabric.mod.json b/RebornCore/src/main/resources/fabric.mod.json index 5a61574dc..454ec0af4 100644 --- a/RebornCore/src/main/resources/fabric.mod.json +++ b/RebornCore/src/main/resources/fabric.mod.json @@ -28,11 +28,11 @@ } ], "depends": { - "fabricloader": ">=0.14.11", - "fabric-api": ">=0.68.1", + "fabricloader": ">=0.14.15", + "fabric-api": ">=0.75.0", "team_reborn_energy": ">=2.3.0", "fabric-biome-api-v1": ">=3.0.0", - "minecraft": ">=1.19.3- <1.19.4-" + "minecraft": ">=1.19.4- <1.19.5-" }, "authors": [ "Team Reborn", diff --git a/build.gradle b/build.gradle index 74fee424d..ed28ee969 100644 --- a/build.gradle +++ b/build.gradle @@ -194,7 +194,7 @@ dependencies { include project(":RebornCore") - optionalClientDependency("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}", true) + optionalClientDependency("me.shedaniel:RoughlyEnoughItems-fabric:${project.rei_version}", false) // Use groovy for datagen/gametest, if you are copying this you prob dont want it. gametestImplementation 'org.apache.groovy:groovy:4.0.6' diff --git a/gradle.properties b/gradle.properties index 36b0b8520..862b02735 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,10 +7,10 @@ mod_version=5.5.0 # Fabric Properties # check these on https://modmuss50.me/fabric.html -minecraft_version=1.19.3 -yarn_version=1.19.3+build.1 -loader_version=0.14.11 -fapi_version=0.69.1+1.19.3 +minecraft_version=1.19.4-pre1 +yarn_version=1.19.4-pre1+build.1 +loader_version=0.14.15 +fapi_version=0.75.0+1.19.4 # Dependencies energy_version=2.3.0 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 943f0cbfa754578e88a3dae77fce6e3dea56edbf..ccebba7710deaf9f98673a68957ea02138b60d0a 100644 GIT binary patch delta 5094 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 delta 5107 zcmY*d1zc0@|J{HQlai7V5+f#EN-H%&UP4MFm6QgFfuJK4DG4u#ARsbQL4i>MB1q|w zmWd#pqd~BR-yN@ieE-|$^W1aKIZtf&-p_fyw{(Uwc7_sWYDh^12cY!qXvcPQ!qF;q@b0nYU7 zP&ht}K7j%}P%%|ffm;4F0^i3P0R`a!2wm89L5P3Kfu;tTZJre<{N5}AzsH+E3DS`Q zJLIl`LRMf`JOTBLf(;IV(9(h{(}dXK!cPoSLm(o@fz8vRz}6fOw%3}3VYOsCczLF` za2RTsCWa2sS-uw(6|HLJg)Xf@S8#|+(Z5Y)ER+v+8;btfB3&9sWH6<=U}0)o-jIts zsi?Nko;No&JyZI%@1G&zsG5kKo^Zd7rk_9VIUao9;fC~nv(T0F&Af0&Rp`?x94EIS zUBPyBe5R5#okNiB1Xe--q4|hPyGzhJ?Lurt#Ci09BQ+}rlHpBhm;EmfLw{EbCz)sg zgseAE#f$met1jo;`Z6ihk?O1be3aa$IGV69{nzagziA!M*~E5lMc(Sp+NGm2IUjmn zql((DU9QP~Tn1pt6L`}|$Na-v(P+Zg&?6bAN@2u%KiB*Gmf}Z)R zMENRJgjKMqVbMpzPO{`!J~2Jyu7&xXnTDW?V?IJgy+-35q1)-J8T**?@_-2H`%X+6f5 zIRv`uLp&*?g7L~6+3O*saXT~gWsmhF*FNKw4X$29ePKi02G*)ysenhHv{u9-y?_do ztT(Cu04pk>51n}zu~=wgToY5Cx|MTlNw}GR>+`|6CAhQn=bh@S<7N)`w};;KTywDU z=QWO@RBj$WKOXSgCWg{BD`xl&DS!G}`Mm3$)=%3jzO_C+s+mfTFH5JL>}*(JKs@MqX|o2b#ZBX5P;p7;c)$F1y4HwvJ?KA938$rd)gn_U^CcUtmdaBW57 zlPph>Fz&L`cSScFjcj+7Jif3vxb20Ag~FPstm?9#OrD$e?Y~#1osDB0CFZ9Mu&%iE zSj~wZpFqu6!k%BT)}$F@Z%(d-Pqy07`N8ch2F7z^=S-!r-@j{#&{SM@a8O$P#SySx zZLD_z=I300OCA1YmKV0^lo@>^)THfZvW}s<$^w^#^Ce=kO5ymAnk>H7pK!+NJ-+F7 z1Bb6Y=r)0nZ+hRXUyD+BKAyecZxb+$JTHK5k(nWv*5%2a+u*GDt|rpReYQ}vft zXrIt#!kGO85o^~|9Oc-M5A!S@9Q)O$$&g8u>1=ew?T35h8B{-Z_S78oe=E(-YZhBPe@Y1sUt63A-Cdv>D1nIT~=Rub6$?8g>meFb7Ic@w^%@RN2z72oPZ#Ta%b(P1|&6I z61iO<8hT*)p19Bgd0JgXP{^c{P2~K@^DIXv=dF(u|DFfqD^dMIl8-x)xKIpJRZru@ zDxicyYJG}mh}=1Dfg%B$#H`CiAxPTj^;f4KRMZHUz-_x6)lEq!^mu%72*PI=t$6{Uql#dqm4 zClgaN63!&?v*enz4k1sbaM+yCqUf+i9rw$(YrY%ir1+%cWRB<;r}$8si!6QcNAk~J zk3?dejBaC`>=T<=y=>QVt*4kL>SwYwn$(4ES793qaH)>n(axyV3R5jdXDh#e-N0K- zuUgk|N^|3*D1!Wlz-!M*b}Zc5=;K6I+>1N$&Q%)&8LWUiTYi&aQIj(luA< zN5R<8Y8L#*i0xBio$jWcaiZ4S2w3#R@CGemesy~akKP)2GojQF6!$}!_RdUJPBevX zG#~uz%Yirb0@1wgQ;ayb=qD}6{=QXxjuZQ@@kxbN!QWhtEvuhS2yAZe8fZy6*4Inr zdSyR9Dec4HrE|I=z-U;IlH;_h#7e^Hq}gaJ<-z^}{*s!m^66wu2=(*EM0UaV*&u1q zJrq!K23TO8a(ecSQFdD$y+`xu)Xk36Z*;1i{hS=H2E<8<5yHuHG~22-S+Jq|3HMAw z%qBz3auT=M!=5F|Wqke|I^E8pmJ-}>_DwX5w%d3MSdC>xW%$ocm8w8HRdZ|^#cEt1 zM*I7S6sLQq;;Mecet(Q()+?s+&MeVLOvx}(MkvytkvLHl7h*N0AT1#AqC&(he(^%przH`KqA$z_dAvJJb409@F)fYwD$JW_{_Oie8!@VdJE zU>D$@B?LawAf5$;`AZ1E!krn=aAC%4+YQrzL!59yl1;|T2)u=RBYA8lk0Ek&gS!Rb zt0&hVuyhSa0}rpZGjTA>Gz}>Uv*4)F zf7S%D2nfA7x?gPEXZWk8DZimQs#xi0?So_k`2zb!UVQEAcbvjPLK9v>J~!awnxGpq zEh$EPOc4q&jywmglnC&D)1-P0DH!@)x;uJwMHdhPh>ZLWDw+p1pf52{X2dk{_|UOmakJa4MHu?CY`6Hhv!!d7=aNwiB5z zb*Wlq1zf^3iDlPf)b_SzI*{JCx2jN;*s~ra8NeB!PghqP!0po-ZL?0Jk;2~*~sCQ<%wU`mRImd)~!23RS?XJu|{u( ztFPy3*F=ZhJmBugTv48WX)4U*pNmm~4oD4}$*-92&<)n=R)5lT z-VpbEDk>(C1hoo#-H_u0`#%L6L$ zln(}h2*Cl(5(JtVM{YZ26@Fwmp;?Qt}9$_F%`?+-JHbC;bPZj8PLq9 zWo-KFw!i&r8WuA-!3F_m9!24Z(RhalAUR~_H#Ln=$%b5GY z)oB)zO%J5TY}&BXq^7#M>euVL%01Tzj4$6^ZOjT*7@zr~q@6GEjGi)nbwzSL`TiLN z{DVG~I$w@%^#tD{>1Ap@%=XogG_^Hvy_xiRn4yy?LKsC+ zU!S79X8orh&D%>1S`x2iyi&(iG&r#YT{}~iy(FIOo8?MZU#eo*c*(RjAGj@uDi zARJur)-*{n0PgW~&mFeg`MJ?(Kr;NUom)jh?ozZtyywN9bea6ikQlh}953Oul~N%4 z@Sx!@>?l1e7V*@HZMJx!gMo0TeXdU~#W6^n?YVQJ$)nuFRkvKbfwv_s*2g(!wPO|@ zvuXF=2MiPIX)A7x!|BthSa$GB%ECnuZe_Scx&AlnC z!~6C_SF24#@^VMIw)a-7{00}}Cr5NImPbW8OTIHoo6@NcxLVTna8<<;uy~YaaeMnd z;k_ynYc_8jQn9vW_W8QLkgaHtmwGC}wRcgZ^I^GPbz{lW)p#YYoinez1MjkY%6LBd z+Vr>j&^!?b-*Vk>8I!28o`r3w&^Lal8@=50zV4&9V9oXI{^r8;JmVeos&wf?O!;_o zk))^k*1fvYw9?WrS!sG2TcX`hH@Y3mF&@{i05;_AV{>Umi8{uZP_0W5_1V2yHU<)E z+qviK*7SJtnL;76{WK!?Pv$-!w$08<%8Qy|sB|P%GiV1<+dHw*sj!C~SjsB6+1L@so+Q~n# z+Uc5+Uz+mGmkR@>H7D*c?mm8WQz;3VOpktU_DeBi>3#@z zmLe;3gP<7KPy>~k47nEeT?G?7e2g6316Xdb_y+ja5C9Ayg6QTNr~&Kbs(1>7zp|f@le;9B z1e(+Ga%jPWR7oc}=XcB4$z?YD)l;%#U;}~gZzGViI=fwu9OAPCCK!0w>Ay^#$b49k zT&|M?JaIyRT<;@*t_jp1ifWPvL;{maf6o0T#X!#9YX;0Q;LTQ0}0tg^_Ru4pkSr4#P zmnW|D0`A#Ie6pEfBDv39=jN2;kiUoT6I&kChsbI!jMuY6zuZql5!&i%5!c zjsHlXtjT;NV?jAb`%vy)JOK_j1rponLqc>(2qgYlLPEs>|0QV<=Pw~C`fLFKJJitt zyC6003{rxCsmtGKjhB%W2W~*%vKH8l$pZoOFT*K@uL9%CD^3rh=ZtuTU1 zJpf4|%n^yjh#dKSSCJI8;YU*CD!8Wv20*e5`-fya^75@ADLU^RdHDg3Bk3k6)dGi7 z!!z;|O1h$8q!vO*w6 I6Xdi10eY*&F8}}l diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f398c33c4..fc10b601f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 65dcd68d6..79a61d421 100755 --- a/gradlew +++ b/gradlew @@ -144,7 +144,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -152,7 +152,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac diff --git a/src/client/java/techreborn/client/compat/rei/MachineRecipeDisplay.java b/src/client/java/techreborn/client/compat/rei/MachineRecipeDisplay.java index 46a08127b..6e2b926b6 100644 --- a/src/client/java/techreborn/client/compat/rei/MachineRecipeDisplay.java +++ b/src/client/java/techreborn/client/compat/rei/MachineRecipeDisplay.java @@ -52,7 +52,7 @@ public class MachineRecipeDisplay implements Display { public MachineRecipeDisplay(R recipe) { this.recipe = recipe; this.inputs = CollectionUtils.map(recipe.getRebornIngredients(), ing -> EntryIngredients.ofItemStacks(ing.getPreviewStacks())); - this.outputs = recipe.getOutputs().stream().map(EntryIngredients::of).collect(Collectors.toList()); + this.outputs = recipe.getOutputs(null).stream().map(EntryIngredients::of).collect(Collectors.toList()); this.time = recipe.getTime(); this.energy = recipe.getPower(); if (recipe instanceof BlastFurnaceRecipe) { diff --git a/src/client/java/techreborn/client/gui/GuiAutoCrafting.java b/src/client/java/techreborn/client/gui/GuiAutoCrafting.java index 31ac69db7..fe34fc582 100644 --- a/src/client/java/techreborn/client/gui/GuiAutoCrafting.java +++ b/src/client/java/techreborn/client/gui/GuiAutoCrafting.java @@ -51,8 +51,8 @@ public class GuiAutoCrafting extends GuiBase { this.blockEntityAutoCraftingTable = blockEntity; } - public void renderItemStack(ItemStack stack, int x, int y) { - MinecraftClient.getInstance().getItemRenderer().renderInGuiWithOverrides(stack, x, y); + public void renderItemStack(MatrixStack matrixStack, ItemStack stack, int x, int y) { + MinecraftClient.getInstance().getItemRenderer().renderInGuiWithOverrides(matrixStack, stack, x, y); } @Override @@ -79,7 +79,7 @@ public class GuiAutoCrafting extends GuiBase { CraftingRecipe recipe = blockEntityAutoCraftingTable.getCurrentRecipe(); if (recipe != null) { - renderItemStack(recipe.getOutput(), 95 + getGuiLeft(), 42 + getGuiTop()); + renderItemStack(matrixStack, recipe.getOutput(getMachine().getWorld().getRegistryManager()), 95 + getGuiLeft(), 42 + getGuiTop()); } builder.drawLockButton(matrixStack, this, 145, 4, mouseX, mouseY, layer, blockEntityAutoCraftingTable.locked); diff --git a/src/client/java/techreborn/client/render/entitys/StorageUnitRenderer.java b/src/client/java/techreborn/client/render/entitys/StorageUnitRenderer.java index 95ce55aab..3ed9695ad 100644 --- a/src/client/java/techreborn/client/render/entitys/StorageUnitRenderer.java +++ b/src/client/java/techreborn/client/render/entitys/StorageUnitRenderer.java @@ -32,6 +32,7 @@ import net.minecraft.client.render.WorldRenderer; import net.minecraft.client.render.block.entity.BlockEntityRenderer; import net.minecraft.client.render.block.entity.BlockEntityRendererFactory; import net.minecraft.client.render.model.json.ModelTransformation; +import net.minecraft.client.render.model.json.ModelTransformationMode; import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Direction; @@ -67,7 +68,7 @@ public class StorageUnitRenderer implements BlockEntityRenderer matrices.translate(-1, 1, 2); } int lightAbove = WorldRenderer.getLightmapCoordinates(storage.getWorld(), storage.getPos().offset(storage.getFacing())); - MinecraftClient.getInstance().getItemRenderer().renderItem(stack, ModelTransformation.Mode.FIXED, lightAbove, OverlayTexture.DEFAULT_UV, matrices, vertexConsumers, 0); + MinecraftClient.getInstance().getItemRenderer().renderItem(stack, ModelTransformationMode.FIXED, lightAbove, OverlayTexture.DEFAULT_UV, matrices, vertexConsumers, storage.getWorld(), 0); matrices.pop(); // Text rendering @@ -89,12 +90,12 @@ public class StorageUnitRenderer implements BlockEntityRenderer { + private static final Set ALL_DIRECTIONS = EnumSet.allOf(Direction.class); private static final TurbineModel MODEL = new TurbineModel(); public static final Identifier TEXTURE = new Identifier("techreborn:textures/block/machines/generators/wind_mill_turbine.png"); @@ -76,14 +80,14 @@ public class TurbineRenderer implements BlockEntityRenderer super(RenderLayer::getEntityCutoutNoCull); ModelPart.Cuboid[] baseCuboids = { - new ModelPart.Cuboid(0, 0, -2.0F, -2.0F, -1.0F, 4F, 4F, 2F, 0F, 0F, 0F, false, 64F, 64F), - new ModelPart.Cuboid(0, 6, -1.0F, -1.0F, -2.0F, 2F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F) + new ModelPart.Cuboid(0, 0, -2.0F, -2.0F, -1.0F, 4F, 4F, 2F, 0F, 0F, 0F, false, 64F, 64F, ALL_DIRECTIONS), + new ModelPart.Cuboid(0, 6, -1.0F, -1.0F, -2.0F, 2F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F, ALL_DIRECTIONS) }; base = new ModelPart(Arrays.asList(baseCuboids), new HashMap<>() { { ModelPart.Cuboid[] blade1Cuboids = { - new ModelPart.Cuboid(0, 9, -24.0F, -1.0F, -0.5F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F) + new ModelPart.Cuboid(0, 9, -24.0F, -1.0F, -0.5F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F, ALL_DIRECTIONS) }; ModelPart blade1 = new ModelPart(Arrays.asList(blade1Cuboids), Collections.emptyMap()); blade1.setPivot(0.0F, 0.0F, 0.0F); @@ -91,7 +95,7 @@ public class TurbineRenderer implements BlockEntityRenderer put("blade1", blade1); ModelPart.Cuboid[] blade2Cuboids = { - new ModelPart.Cuboid(0, 9, -24.0F, -1.0F, -0.5F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F) + new ModelPart.Cuboid(0, 9, -24.0F, -1.0F, -0.5F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F, ALL_DIRECTIONS) }; ModelPart blade2 = new ModelPart(Arrays.asList(blade2Cuboids), Collections.emptyMap()); blade2.setPivot(0.0F, 0.0F, 0.0F); @@ -99,7 +103,7 @@ public class TurbineRenderer implements BlockEntityRenderer put("blade2", blade2); ModelPart.Cuboid[] blade3Cuboids = { - new ModelPart.Cuboid(0, 9, -24.0F, -2.0F, -1.075F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F) + new ModelPart.Cuboid(0, 9, -24.0F, -2.0F, -1.075F, 24F, 2F, 1F, 0F, 0F, 0F, false, 64F, 64F, ALL_DIRECTIONS) }; ModelPart blade3 = new ModelPart(Arrays.asList(blade3Cuboids), Collections.emptyMap()); blade3.setPivot(0.0F, 0.0F, 0.0F); diff --git a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy index c55e4608e..6129dfdea 100644 --- a/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy +++ b/src/datagen/groovy/techreborn/datagen/TechRebornDataGen.groovy @@ -31,7 +31,6 @@ import net.minecraft.registry.RegistryKeys import techreborn.TechReborn import techreborn.datagen.models.BlockLootTableProvider import techreborn.datagen.models.ModelProvider -import techreborn.datagen.recipes.Json2Datagen import techreborn.datagen.recipes.crafting.CraftingRecipesProvider import techreborn.datagen.recipes.machine.alloy_smelter.AlloySmelterRecipesProvider import techreborn.datagen.recipes.machine.assembling_machine.AssemblingMachineRecipesProvider @@ -46,8 +45,8 @@ import techreborn.datagen.recipes.smelting.SmeltingRecipesProvider import techreborn.datagen.tags.TRBlockTagProvider import techreborn.datagen.tags.TRItemTagProvider import techreborn.datagen.tags.TRPointOfInterestTagProvider -import techreborn.datagen.worldgen.TRWorldGenBootstrap -import techreborn.datagen.worldgen.TRWorldGenProvider +import techreborn.datagen.dynamic.TRDynamicContent +import techreborn.datagen.dynamic.TRDynamicProvider class TechRebornDataGen implements DataGeneratorEntrypoint { @@ -85,7 +84,7 @@ class TechRebornDataGen implements DataGeneratorEntrypoint { add ModelProvider::new add BlockLootTableProvider::new - add TRWorldGenProvider::new + add TRDynamicProvider::new } @Override @@ -95,7 +94,8 @@ class TechRebornDataGen implements DataGeneratorEntrypoint { @Override void buildRegistry(RegistryBuilder registryBuilder) { - registryBuilder.addRegistry(RegistryKeys.CONFIGURED_FEATURE, TRWorldGenBootstrap::configuredFeatures) - registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, TRWorldGenBootstrap::placedFeatures) + registryBuilder.addRegistry(RegistryKeys.DAMAGE_TYPE, TRDynamicContent::damageTypes) + registryBuilder.addRegistry(RegistryKeys.CONFIGURED_FEATURE, TRDynamicContent::configuredFeatures) + registryBuilder.addRegistry(RegistryKeys.PLACED_FEATURE, TRDynamicContent::placedFeatures) } } diff --git a/src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenBootstrap.groovy b/src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicContent.groovy similarity index 95% rename from src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenBootstrap.groovy rename to src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicContent.groovy index 58f978088..9056989a9 100644 --- a/src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenBootstrap.groovy +++ b/src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicContent.groovy @@ -22,10 +22,12 @@ * SOFTWARE. */ -package techreborn.datagen.worldgen +package techreborn.datagen.dynamic import net.minecraft.block.BlockState import net.minecraft.block.Blocks +import net.minecraft.entity.damage.DamageEffects +import net.minecraft.entity.damage.DamageType import net.minecraft.registry.Registerable import net.minecraft.registry.RegistryEntryLookup import net.minecraft.registry.RegistryKeys @@ -52,12 +54,18 @@ import net.minecraft.world.gen.trunk.StraightTrunkPlacer import techreborn.blocks.misc.BlockRubberLog import techreborn.init.ModFluids import techreborn.init.TRContent +import techreborn.init.TRDamageTypes import techreborn.world.RubberTreeSpikeDecorator import techreborn.world.TROreFeatureConfig import techreborn.world.TargetDimension import techreborn.world.WorldGenerator -class TRWorldGenBootstrap { +class TRDynamicContent { + static void damageTypes(Registerable registry) { + registry.register(TRDamageTypes.ELECTRIC_SHOCK, new DamageType("electric_shock", 0.1F, DamageEffects.BURNING)) + registry.register(TRDamageTypes.FUSION, new DamageType("fusion", 0.1F, DamageEffects.BURNING)) + } + static void configuredFeatures(Registerable registry) { def placedFeatureLookup = registry.getRegistryLookup(RegistryKeys.PLACED_FEATURE) diff --git a/src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenProvider.groovy b/src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicProvider.groovy similarity index 86% rename from src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenProvider.groovy rename to src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicProvider.groovy index e79d09da1..2327d26df 100644 --- a/src/datagen/groovy/techreborn/datagen/worldgen/TRWorldGenProvider.groovy +++ b/src/datagen/groovy/techreborn/datagen/dynamic/TRDynamicProvider.groovy @@ -22,7 +22,7 @@ * SOFTWARE. */ -package techreborn.datagen.worldgen +package techreborn.datagen.dynamic import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput import net.fabricmc.fabric.api.datagen.v1.provider.FabricDynamicRegistryProvider @@ -31,8 +31,8 @@ import net.minecraft.registry.RegistryWrapper import java.util.concurrent.CompletableFuture -class TRWorldGenProvider extends FabricDynamicRegistryProvider { - TRWorldGenProvider(FabricDataOutput output, CompletableFuture registriesFuture) { +class TRDynamicProvider extends FabricDynamicRegistryProvider { + TRDynamicProvider(FabricDataOutput output, CompletableFuture registriesFuture) { super(output, registriesFuture) } @@ -40,6 +40,7 @@ class TRWorldGenProvider extends FabricDynamicRegistryProvider { protected void configure(RegistryWrapper.WrapperLookup registries, Entries entries) { entries.addAll(registries.getWrapperOrThrow(RegistryKeys.CONFIGURED_FEATURE)) entries.addAll(registries.getWrapperOrThrow(RegistryKeys.PLACED_FEATURE)) + entries.addAll(registries.getWrapperOrThrow(RegistryKeys.DAMAGE_TYPE)) } @Override diff --git a/src/main/java/techreborn/api/recipe/recipes/RollingMachineRecipe.java b/src/main/java/techreborn/api/recipe/recipes/RollingMachineRecipe.java index 1b3ed279e..9eeb1885b 100644 --- a/src/main/java/techreborn/api/recipe/recipes/RollingMachineRecipe.java +++ b/src/main/java/techreborn/api/recipe/recipes/RollingMachineRecipe.java @@ -30,6 +30,7 @@ import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.recipe.Ingredient; import net.minecraft.recipe.ShapedRecipe; +import net.minecraft.registry.DynamicRegistryManager; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; @@ -56,13 +57,13 @@ public class RollingMachineRecipe extends RebornRecipe { } @Override - public List getOutputs() { - return Collections.singletonList(shapedRecipe.getOutput()); + public List getOutputs(DynamicRegistryManager registryManager) { + return Collections.singletonList(shapedRecipe.getOutput(registryManager)); } @Override - public ItemStack getOutput() { - return shapedRecipe.getOutput(); + public ItemStack getOutput(DynamicRegistryManager registryManager) { + return shapedRecipe.getOutput(registryManager); } @Override @@ -76,8 +77,8 @@ public class RollingMachineRecipe extends RebornRecipe { } @Override - public ItemStack craft(Inventory inv) { - return shapedRecipe.craft((CraftingInventory) inv); + public ItemStack craft(Inventory inv, DynamicRegistryManager registryManager) { + return shapedRecipe.craft((CraftingInventory) inv, registryManager); } @Override diff --git a/src/main/java/techreborn/blockentity/machine/iron/IronAlloyFurnaceBlockEntity.java b/src/main/java/techreborn/blockentity/machine/iron/IronAlloyFurnaceBlockEntity.java index 6d227b47d..6e9ae0349 100644 --- a/src/main/java/techreborn/blockentity/machine/iron/IronAlloyFurnaceBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/iron/IronAlloyFurnaceBlockEntity.java @@ -88,7 +88,7 @@ public class IronAlloyFurnaceBlockEntity extends AbstractIronMachineBlockEntity ItemStack itemstack = null; for (RebornRecipe recipeType : ModRecipes.ALLOY_SMELTER.getRecipes(world)) { if (hasAllInputs(recipeType)) { - List outputs = recipeType.getOutputs(); + List outputs = recipeType.getOutputs(getWorld().getRegistryManager()); if(outputs.isEmpty()){ continue; @@ -121,7 +121,7 @@ public class IronAlloyFurnaceBlockEntity extends AbstractIronMachineBlockEntity return; } - ItemStack outputStack = currentRecipe.getOutputs().get(0); + ItemStack outputStack = currentRecipe.getOutputs(getWorld().getRegistryManager()).get(0); if (outputStack.isEmpty()) { return; } diff --git a/src/main/java/techreborn/blockentity/machine/iron/IronFurnaceBlockEntity.java b/src/main/java/techreborn/blockentity/machine/iron/IronFurnaceBlockEntity.java index b534d5bd6..2e91a913d 100644 --- a/src/main/java/techreborn/blockentity/machine/iron/IronFurnaceBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/iron/IronFurnaceBlockEntity.java @@ -105,7 +105,7 @@ public class IronFurnaceBlockEntity extends AbstractIronMachineBlockEntity imple Recipe matchingRecipe = refreshRecipe(stack); if (matchingRecipe != null) { - return matchingRecipe.getOutput().copy(); + return matchingRecipe.getOutput(getWorld().getRegistryManager()).copy(); } return ItemStack.EMPTY; diff --git a/src/main/java/techreborn/blockentity/machine/multiblock/FusionControlComputerBlockEntity.java b/src/main/java/techreborn/blockentity/machine/multiblock/FusionControlComputerBlockEntity.java index 8d5c81095..78bd7e088 100644 --- a/src/main/java/techreborn/blockentity/machine/multiblock/FusionControlComputerBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/multiblock/FusionControlComputerBlockEntity.java @@ -168,7 +168,7 @@ public class FusionControlComputerBlockEntity extends GenericMachineBlockEntity * @return {@code boolean} True if we have all inputs and can fit output */ private boolean validateRecipe(FusionReactorRecipe recipe) { - return hasAllInputs(recipe) && canFitStack(recipe.getOutputs().get(0), outputStackSlot, true); + return hasAllInputs(recipe) && canFitStack(recipe.getOutputs(getWorld().getRegistryManager()).get(0), outputStackSlot, true); } /** @@ -319,7 +319,7 @@ public class FusionControlComputerBlockEntity extends GenericMachineBlockEntity } } } else if (craftingTickTime >= currentRecipe.getTime()) { - ItemStack result = currentRecipe.getOutputs().get(0); + ItemStack result = currentRecipe.getOutputs(getWorld().getRegistryManager()).get(0); if (canFitStack(result, outputStackSlot, true)) { if (inventory.getStack(outputStackSlot).isEmpty()) { inventory.setStack(outputStackSlot, result.copy()); diff --git a/src/main/java/techreborn/blockentity/machine/tier1/AutoCraftingTableBlockEntity.java b/src/main/java/techreborn/blockentity/machine/tier1/AutoCraftingTableBlockEntity.java index 0855cc106..724d3ae07 100644 --- a/src/main/java/techreborn/blockentity/machine/tier1/AutoCraftingTableBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/tier1/AutoCraftingTableBlockEntity.java @@ -160,7 +160,7 @@ public class AutoCraftingTableBlockEntity extends PowerAcceptorBlockEntity if (!recipe.matches(crafting, world)) return false; - if (!hasOutputSpace(recipe.getOutput(), OUTPUT_SLOT)) return false; + if (!hasOutputSpace(recipe.getOutput(getWorld().getRegistryManager()), OUTPUT_SLOT)) return false; DefaultedList remainingStacks = recipe.getRemainder(crafting); for (ItemStack stack : remainingStacks) { @@ -225,11 +225,11 @@ public class AutoCraftingTableBlockEntity extends PowerAcceptorBlockEntity } } ItemStack output = inventory.getStack(OUTPUT_SLOT); - ItemStack outputStack = recipe.craft(getCraftingInventory()); + ItemStack outputStack = recipe.craft(getCraftingInventory(), getWorld().getRegistryManager()); if (output.isEmpty()) { inventory.setStack(OUTPUT_SLOT, outputStack.copy()); } else { - output.increment(recipe.getOutput().getCount()); + output.increment(recipe.getOutput(getWorld().getRegistryManager()).getCount()); } return true; } diff --git a/src/main/java/techreborn/blockentity/machine/tier1/ElectricFurnaceBlockEntity.java b/src/main/java/techreborn/blockentity/machine/tier1/ElectricFurnaceBlockEntity.java index 92f429093..ad5b26bd7 100644 --- a/src/main/java/techreborn/blockentity/machine/tier1/ElectricFurnaceBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/tier1/ElectricFurnaceBlockEntity.java @@ -96,7 +96,7 @@ public class ElectricFurnaceBlockEntity extends PowerAcceptorBlockEntity } private boolean canAcceptOutput(SmeltingRecipe recipe, int slot) { - ItemStack recipeOutput = recipe.getOutput(); + ItemStack recipeOutput = recipe.getOutput(getWorld().getRegistryManager()); if (recipeOutput.isEmpty()) { return false; } @@ -159,7 +159,7 @@ public class ElectricFurnaceBlockEntity extends PowerAcceptorBlockEntity } ItemStack outputStack = inventory.getStack(outputSlot); if (outputStack.isEmpty()) { - inventory.setStack(outputSlot, recipe.getOutput().copy()); + inventory.setStack(outputSlot, recipe.getOutput(getWorld().getRegistryManager()).copy()); } else { // Just increment. We already checked stack match and stack size outputStack.increment(1); diff --git a/src/main/java/techreborn/blockentity/machine/tier1/RollingMachineBlockEntity.java b/src/main/java/techreborn/blockentity/machine/tier1/RollingMachineBlockEntity.java index c7d39119b..17e254841 100644 --- a/src/main/java/techreborn/blockentity/machine/tier1/RollingMachineBlockEntity.java +++ b/src/main/java/techreborn/blockentity/machine/tier1/RollingMachineBlockEntity.java @@ -121,7 +121,7 @@ public class RollingMachineBlockEntity extends PowerAcceptorBlockEntity craftMatrix = balanceResult.get(); } } - currentRecipeOutput = currentRecipe.craft(craftMatrix); + currentRecipeOutput = currentRecipe.craft(craftMatrix, getWorld().getRegistryManager()); } else { currentRecipeOutput = ItemStack.EMPTY; } @@ -329,7 +329,7 @@ public class RollingMachineBlockEntity extends PowerAcceptorBlockEntity if (recipe == null) { return ItemStack.EMPTY; } - return recipe.getOutput(); + return recipe.getOutput(getWorld().getRegistryManager()); } public RollingMachineRecipe findMatchingRecipe(CraftingInventory inv, World world) { diff --git a/src/main/java/techreborn/blocks/cable/CableBlock.java b/src/main/java/techreborn/blocks/cable/CableBlock.java index c6c2877a3..6d16a5329 100644 --- a/src/main/java/techreborn/blocks/cable/CableBlock.java +++ b/src/main/java/techreborn/blocks/cable/CableBlock.java @@ -31,6 +31,7 @@ import net.minecraft.block.entity.BlockEntityTicker; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.fluid.Fluid; import net.minecraft.fluid.FluidState; @@ -38,6 +39,7 @@ import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemStack; import net.minecraft.particle.ParticleTypes; +import net.minecraft.registry.RegistryKeys; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; import net.minecraft.state.StateManager; @@ -65,7 +67,7 @@ import techreborn.blockentity.cable.CableBlockEntity; import techreborn.config.TechRebornConfig; import techreborn.init.ModSounds; import techreborn.init.TRContent; -import techreborn.utils.damageSources.ElectricalShockSource; +import techreborn.init.TRDamageTypes; import java.util.HashMap; import java.util.Map; @@ -240,7 +242,8 @@ public class CableBlock extends BlockWithEntity implements Waterloggable { if (type == TRContent.Cables.HV) { entity.setOnFireFor(1); } - entity.damage(new ElectricalShockSource(), 1F); + + entity.damage(TRDamageTypes.create(world, TRDamageTypes.ELECTRIC_SHOCK), 1F); blockEntityCable.setEnergy(0); } if (TechRebornConfig.uninsulatedElectrocutionSound) { diff --git a/src/main/java/techreborn/blocks/generator/BlockFusionControlComputer.java b/src/main/java/techreborn/blocks/generator/BlockFusionControlComputer.java index ef79d7d6b..5bf205891 100644 --- a/src/main/java/techreborn/blocks/generator/BlockFusionControlComputer.java +++ b/src/main/java/techreborn/blocks/generator/BlockFusionControlComputer.java @@ -27,9 +27,12 @@ package techreborn.blocks.generator; import net.minecraft.block.BlockState; import net.minecraft.block.entity.BlockEntity; import net.minecraft.entity.Entity; +import net.minecraft.entity.damage.DamageSource; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemPlacementContext; import net.minecraft.item.ItemUsageContext; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.util.ActionResult; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; @@ -41,7 +44,7 @@ import reborncore.common.util.Torus; import techreborn.blockentity.GuiType; import techreborn.blockentity.machine.multiblock.FusionControlComputerBlockEntity; import techreborn.init.TRContent; -import techreborn.utils.damageSources.FusionDamageSource; +import techreborn.init.TRDamageTypes; import java.util.List; @@ -87,7 +90,7 @@ public class BlockFusionControlComputer extends BlockMachineBase { if (worldIn.getBlockEntity(pos) instanceof FusionControlComputerBlockEntity) { if (((FusionControlComputerBlockEntity) worldIn.getBlockEntity(pos)).craftingTickTime != 0 && ((FusionControlComputerBlockEntity) worldIn.getBlockEntity(pos)).isMultiblockValid()) { - entityIn.damage(new FusionDamageSource(), 200F); + entityIn.damage(TRDamageTypes.create(worldIn, TRDamageTypes.FUSION), 200F); } } } diff --git a/src/main/java/techreborn/blocks/misc/RubberButtonBlock.java b/src/main/java/techreborn/blocks/misc/RubberButtonBlock.java index ca99fc55d..36b95419f 100644 --- a/src/main/java/techreborn/blocks/misc/RubberButtonBlock.java +++ b/src/main/java/techreborn/blocks/misc/RubberButtonBlock.java @@ -26,6 +26,7 @@ package techreborn.blocks.misc; import net.minecraft.block.ButtonBlock; import net.minecraft.sound.SoundEvents; +import techreborn.init.TRContent; import techreborn.utils.InitUtils; /** @@ -34,6 +35,6 @@ import techreborn.utils.InitUtils; public class RubberButtonBlock extends ButtonBlock { public RubberButtonBlock() { - super(InitUtils.setupRubberBlockSettings(true, 0.5F, 0.5F), 30, true, SoundEvents.BLOCK_WOODEN_BUTTON_CLICK_OFF, SoundEvents.BLOCK_WOODEN_BUTTON_CLICK_ON); + super(InitUtils.setupRubberBlockSettings(true, 0.5F, 0.5F), TRContent.RUBBER_WOOD_SET_TYPE, 30, true); } } diff --git a/src/main/java/techreborn/blocks/misc/RubberDoorBlock.java b/src/main/java/techreborn/blocks/misc/RubberDoorBlock.java index 2ef7d4123..1da96915c 100644 --- a/src/main/java/techreborn/blocks/misc/RubberDoorBlock.java +++ b/src/main/java/techreborn/blocks/misc/RubberDoorBlock.java @@ -26,6 +26,7 @@ package techreborn.blocks.misc; import net.minecraft.block.DoorBlock; import net.minecraft.sound.SoundEvents; +import techreborn.init.TRContent; import techreborn.utils.InitUtils; /** @@ -34,6 +35,6 @@ import techreborn.utils.InitUtils; public class RubberDoorBlock extends DoorBlock { public RubberDoorBlock() { - super(InitUtils.setupRubberBlockSettings(3.0F, 3.0F), SoundEvents.BLOCK_NETHER_WOOD_TRAPDOOR_CLOSE, SoundEvents.BLOCK_NETHER_WOOD_TRAPDOOR_OPEN); + super(InitUtils.setupRubberBlockSettings(3.0F, 3.0F), TRContent.RUBBER_WOOD_SET_TYPE); } } diff --git a/src/main/java/techreborn/blocks/misc/RubberPressurePlateBlock.java b/src/main/java/techreborn/blocks/misc/RubberPressurePlateBlock.java index c23c358b7..32aa1d488 100644 --- a/src/main/java/techreborn/blocks/misc/RubberPressurePlateBlock.java +++ b/src/main/java/techreborn/blocks/misc/RubberPressurePlateBlock.java @@ -26,6 +26,7 @@ package techreborn.blocks.misc; import net.minecraft.block.PressurePlateBlock; import net.minecraft.sound.SoundEvents; +import techreborn.init.TRContent; import techreborn.utils.InitUtils; /** @@ -34,7 +35,7 @@ import techreborn.utils.InitUtils; public class RubberPressurePlateBlock extends PressurePlateBlock { public RubberPressurePlateBlock() { - super(PressurePlateBlock.ActivationRule.EVERYTHING, InitUtils.setupRubberBlockSettings(true, 0.5F, 0.5F), SoundEvents.BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_OFF, SoundEvents.BLOCK_NETHER_WOOD_PRESSURE_PLATE_CLICK_ON); + super(PressurePlateBlock.ActivationRule.EVERYTHING, InitUtils.setupRubberBlockSettings(true, 0.5F, 0.5F), TRContent.RUBBER_WOOD_SET_TYPE); } } diff --git a/src/main/java/techreborn/blocks/misc/RubberTrapdoorBlock.java b/src/main/java/techreborn/blocks/misc/RubberTrapdoorBlock.java index 86b0b5d6f..390ccee87 100644 --- a/src/main/java/techreborn/blocks/misc/RubberTrapdoorBlock.java +++ b/src/main/java/techreborn/blocks/misc/RubberTrapdoorBlock.java @@ -26,6 +26,7 @@ package techreborn.blocks.misc; import net.minecraft.block.TrapdoorBlock; import net.minecraft.sound.SoundEvents; +import techreborn.init.TRContent; import techreborn.utils.InitUtils; /** @@ -34,6 +35,6 @@ import techreborn.utils.InitUtils; public class RubberTrapdoorBlock extends TrapdoorBlock { public RubberTrapdoorBlock() { - super(InitUtils.setupRubberBlockSettings(3.0F, 3.0F), SoundEvents.BLOCK_WOODEN_TRAPDOOR_CLOSE, SoundEvents.BLOCK_WOODEN_TRAPDOOR_OPEN); + super(InitUtils.setupRubberBlockSettings(3.0F, 3.0F), TRContent.RUBBER_WOOD_SET_TYPE); } } diff --git a/src/main/java/techreborn/entities/EntityNukePrimed.java b/src/main/java/techreborn/entities/EntityNukePrimed.java index 06064aeee..3cf96004a 100644 --- a/src/main/java/techreborn/entities/EntityNukePrimed.java +++ b/src/main/java/techreborn/entities/EntityNukePrimed.java @@ -79,7 +79,7 @@ public class EntityNukePrimed extends TntEntity { return; } RebornExplosion nukeExplosion = new RebornExplosion(getBlockPos(), world, TechRebornConfig.nukeRadius); - nukeExplosion.setLivingBase(getCausingEntity()); + nukeExplosion.setLivingBase(getOwner()); nukeExplosion.applyExplosion(); } } diff --git a/src/main/java/techreborn/events/ModRegistry.java b/src/main/java/techreborn/events/ModRegistry.java index 43c4f22c1..abea49690 100644 --- a/src/main/java/techreborn/events/ModRegistry.java +++ b/src/main/java/techreborn/events/ModRegistry.java @@ -28,6 +28,7 @@ import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.transfer.v1.item.ItemStorage; import net.minecraft.block.*; import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.ArmorItem; import net.minecraft.item.Item; import net.minecraft.item.Item.Settings; import net.minecraft.item.Items; @@ -105,7 +106,7 @@ public class ModRegistry { RebornRegistry.registerBlock(TRContent.RUBBER_SAPLING = InitUtils.setup(new BlockRubberSapling(), "rubber_sapling"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_SLAB = InitUtils.setup(new SlabBlock(InitUtils.setupRubberBlockSettings(2.0F, 15.0F)), "rubber_slab"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_FENCE = InitUtils.setup(new FenceBlock(InitUtils.setupRubberBlockSettings(2.0F, 15.0F)), "rubber_fence"), itemGroup); - RebornRegistry.registerBlock(TRContent.RUBBER_FENCE_GATE = InitUtils.setup(new FenceGateBlock(InitUtils.setupRubberBlockSettings(2.0F, 15.0F), SoundEvents.BLOCK_FENCE_GATE_CLOSE, SoundEvents.BLOCK_FENCE_GATE_OPEN), "rubber_fence_gate"), itemGroup); + RebornRegistry.registerBlock(TRContent.RUBBER_FENCE_GATE = InitUtils.setup(new FenceGateBlock(InitUtils.setupRubberBlockSettings(2.0F, 15.0F), TRContent.RUBBER_WOOD_TYPE), "rubber_fence_gate"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_STAIR = InitUtils.setup(new BlockRubberPlankStair(), "rubber_stair"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_TRAPDOOR = InitUtils.setup(new RubberTrapdoorBlock(), "rubber_trapdoor"), itemGroup); RebornRegistry.registerBlock(TRContent.RUBBER_BUTTON = InitUtils.setup(new RubberButtonBlock(), "rubber_button"), itemGroup); @@ -128,10 +129,10 @@ public class ModRegistry { Arrays.stream(Parts.values()).forEach(value -> RebornRegistry.registerItem(value.asItem())); Arrays.stream(Upgrades.values()).forEach(value -> RebornRegistry.registerItem(value.asItem())); - RebornRegistry.registerItem(TRContent.QUANTUM_HELMET = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, EquipmentSlot.HEAD), "quantum_helmet")); - RebornRegistry.registerItem(TRContent.QUANTUM_CHESTPLATE = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, EquipmentSlot.CHEST), "quantum_chestplate")); - RebornRegistry.registerItem(TRContent.QUANTUM_LEGGINGS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, EquipmentSlot.LEGS), "quantum_leggings")); - RebornRegistry.registerItem(TRContent.QUANTUM_BOOTS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, EquipmentSlot.FEET), "quantum_boots")); + RebornRegistry.registerItem(TRContent.QUANTUM_HELMET = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.HELMET), "quantum_helmet")); + RebornRegistry.registerItem(TRContent.QUANTUM_CHESTPLATE = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.CHESTPLATE), "quantum_chestplate")); + RebornRegistry.registerItem(TRContent.QUANTUM_LEGGINGS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.LEGGINGS), "quantum_leggings")); + RebornRegistry.registerItem(TRContent.QUANTUM_BOOTS = InitUtils.setup(new QuantumSuitItem(TRArmorMaterials.QUANTUM, ArmorItem.Type.BOOTS), "quantum_boots")); // Gem armor & tools // Todo: repair with tags @@ -141,10 +142,10 @@ public class ModRegistry { RebornRegistry.registerItem(TRContent.BRONZE_AXE = InitUtils.setup(new TRAxeItem(TRToolTier.BRONZE), "bronze_axe")); RebornRegistry.registerItem(TRContent.BRONZE_HOE = InitUtils.setup(new TRHoeItem(TRToolTier.BRONZE), "bronze_hoe")); - RebornRegistry.registerItem(TRContent.BRONZE_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, EquipmentSlot.HEAD), "bronze_helmet")); - RebornRegistry.registerItem(TRContent.BRONZE_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, EquipmentSlot.CHEST), "bronze_chestplate")); - RebornRegistry.registerItem(TRContent.BRONZE_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, EquipmentSlot.LEGS), "bronze_leggings")); - RebornRegistry.registerItem(TRContent.BRONZE_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, EquipmentSlot.FEET), "bronze_boots")); + RebornRegistry.registerItem(TRContent.BRONZE_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, ArmorItem.Type.HELMET), "bronze_helmet")); + RebornRegistry.registerItem(TRContent.BRONZE_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, ArmorItem.Type.CHESTPLATE), "bronze_chestplate")); + RebornRegistry.registerItem(TRContent.BRONZE_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, ArmorItem.Type.LEGGINGS), "bronze_leggings")); + RebornRegistry.registerItem(TRContent.BRONZE_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.BRONZE, ArmorItem.Type.BOOTS), "bronze_boots")); RebornRegistry.registerItem(TRContent.RUBY_SWORD = InitUtils.setup(new TRSwordItem(TRToolTier.RUBY), "ruby_sword")); RebornRegistry.registerItem(TRContent.RUBY_PICKAXE = InitUtils.setup(new TRPickaxeItem(TRToolTier.RUBY), "ruby_pickaxe")); @@ -152,10 +153,10 @@ public class ModRegistry { RebornRegistry.registerItem(TRContent.RUBY_AXE = InitUtils.setup(new TRAxeItem(TRToolTier.RUBY), "ruby_axe")); RebornRegistry.registerItem(TRContent.RUBY_HOE = InitUtils.setup(new TRHoeItem(TRToolTier.RUBY), "ruby_hoe")); - RebornRegistry.registerItem(TRContent.RUBY_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, EquipmentSlot.HEAD), "ruby_helmet")); - RebornRegistry.registerItem(TRContent.RUBY_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, EquipmentSlot.CHEST), "ruby_chestplate")); - RebornRegistry.registerItem(TRContent.RUBY_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, EquipmentSlot.LEGS), "ruby_leggings")); - RebornRegistry.registerItem(TRContent.RUBY_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, EquipmentSlot.FEET), "ruby_boots")); + RebornRegistry.registerItem(TRContent.RUBY_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, ArmorItem.Type.HELMET), "ruby_helmet")); + RebornRegistry.registerItem(TRContent.RUBY_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, ArmorItem.Type.CHESTPLATE), "ruby_chestplate")); + RebornRegistry.registerItem(TRContent.RUBY_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, ArmorItem.Type.LEGGINGS), "ruby_leggings")); + RebornRegistry.registerItem(TRContent.RUBY_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.RUBY, ArmorItem.Type.BOOTS), "ruby_boots")); RebornRegistry.registerItem(TRContent.SAPPHIRE_SWORD = InitUtils.setup(new TRSwordItem(TRToolTier.SAPPHIRE), "sapphire_sword")); RebornRegistry.registerItem(TRContent.SAPPHIRE_PICKAXE = InitUtils.setup(new TRPickaxeItem(TRToolTier.SAPPHIRE), "sapphire_pickaxe")); @@ -163,10 +164,10 @@ public class ModRegistry { RebornRegistry.registerItem(TRContent.SAPPHIRE_AXE = InitUtils.setup(new TRAxeItem(TRToolTier.SAPPHIRE), "sapphire_axe")); RebornRegistry.registerItem(TRContent.SAPPHIRE_HOE = InitUtils.setup(new TRHoeItem(TRToolTier.SAPPHIRE), "sapphire_hoe")); - RebornRegistry.registerItem(TRContent.SAPPHIRE_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, EquipmentSlot.HEAD), "sapphire_helmet")); - RebornRegistry.registerItem(TRContent.SAPPHIRE_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, EquipmentSlot.CHEST), "sapphire_chestplate")); - RebornRegistry.registerItem(TRContent.SAPPHIRE_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, EquipmentSlot.LEGS), "sapphire_leggings")); - RebornRegistry.registerItem(TRContent.SAPPHIRE_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, EquipmentSlot.FEET), "sapphire_boots")); + RebornRegistry.registerItem(TRContent.SAPPHIRE_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, ArmorItem.Type.HELMET), "sapphire_helmet")); + RebornRegistry.registerItem(TRContent.SAPPHIRE_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, ArmorItem.Type.CHESTPLATE), "sapphire_chestplate")); + RebornRegistry.registerItem(TRContent.SAPPHIRE_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, ArmorItem.Type.LEGGINGS), "sapphire_leggings")); + RebornRegistry.registerItem(TRContent.SAPPHIRE_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SAPPHIRE, ArmorItem.Type.BOOTS), "sapphire_boots")); RebornRegistry.registerItem(TRContent.PERIDOT_SWORD = InitUtils.setup(new TRSwordItem(TRToolTier.PERIDOT), "peridot_sword")); RebornRegistry.registerItem(TRContent.PERIDOT_PICKAXE = InitUtils.setup(new TRPickaxeItem(TRToolTier.PERIDOT), "peridot_pickaxe")); @@ -174,20 +175,20 @@ public class ModRegistry { RebornRegistry.registerItem(TRContent.PERIDOT_AXE = InitUtils.setup(new TRAxeItem(TRToolTier.PERIDOT), "peridot_axe")); RebornRegistry.registerItem(TRContent.PERIDOT_HOE = InitUtils.setup(new TRHoeItem(TRToolTier.PERIDOT), "peridot_hoe")); - RebornRegistry.registerItem(TRContent.PERIDOT_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, EquipmentSlot.HEAD), "peridot_helmet")); - RebornRegistry.registerItem(TRContent.PERIDOT_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, EquipmentSlot.CHEST), "peridot_chestplate")); - RebornRegistry.registerItem(TRContent.PERIDOT_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, EquipmentSlot.LEGS), "peridot_leggings")); - RebornRegistry.registerItem(TRContent.PERIDOT_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, EquipmentSlot.FEET), "peridot_boots")); + RebornRegistry.registerItem(TRContent.PERIDOT_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, ArmorItem.Type.HELMET), "peridot_helmet")); + RebornRegistry.registerItem(TRContent.PERIDOT_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, ArmorItem.Type.CHESTPLATE), "peridot_chestplate")); + RebornRegistry.registerItem(TRContent.PERIDOT_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, ArmorItem.Type.LEGGINGS), "peridot_leggings")); + RebornRegistry.registerItem(TRContent.PERIDOT_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.PERIDOT, ArmorItem.Type.BOOTS), "peridot_boots")); - RebornRegistry.registerItem(TRContent.SILVER_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, EquipmentSlot.HEAD), "silver_helmet")); - RebornRegistry.registerItem(TRContent.SILVER_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, EquipmentSlot.CHEST), "silver_chestplate")); - RebornRegistry.registerItem(TRContent.SILVER_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, EquipmentSlot.LEGS), "silver_leggings")); - RebornRegistry.registerItem(TRContent.SILVER_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, EquipmentSlot.FEET), "silver_boots")); + RebornRegistry.registerItem(TRContent.SILVER_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, ArmorItem.Type.HELMET), "silver_helmet")); + RebornRegistry.registerItem(TRContent.SILVER_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, ArmorItem.Type.CHESTPLATE), "silver_chestplate")); + RebornRegistry.registerItem(TRContent.SILVER_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, ArmorItem.Type.LEGGINGS), "silver_leggings")); + RebornRegistry.registerItem(TRContent.SILVER_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.SILVER, ArmorItem.Type.BOOTS), "silver_boots")); - RebornRegistry.registerItem(TRContent.STEEL_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, EquipmentSlot.HEAD), "steel_helmet")); - RebornRegistry.registerItem(TRContent.STEEL_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, EquipmentSlot.CHEST), "steel_chestplate")); - RebornRegistry.registerItem(TRContent.STEEL_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, EquipmentSlot.LEGS), "steel_leggings")); - RebornRegistry.registerItem(TRContent.STEEL_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, EquipmentSlot.FEET), "steel_boots")); + RebornRegistry.registerItem(TRContent.STEEL_HELMET = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, ArmorItem.Type.HELMET), "steel_helmet")); + RebornRegistry.registerItem(TRContent.STEEL_CHESTPLATE = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, ArmorItem.Type.CHESTPLATE), "steel_chestplate")); + RebornRegistry.registerItem(TRContent.STEEL_LEGGINGS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, ArmorItem.Type.LEGGINGS), "steel_leggings")); + RebornRegistry.registerItem(TRContent.STEEL_BOOTS = InitUtils.setup(new TRArmourItem(TRArmorMaterials.STEEL, ArmorItem.Type.BOOTS), "steel_boots")); // Battery RebornRegistry.registerItem(TRContent.RED_CELL_BATTERY = InitUtils.setup(new BatteryItem(TechRebornConfig.redCellBatteryMaxCharge, RcEnergyTier.LOW), "red_cell_battery")); diff --git a/src/main/java/techreborn/init/TRArmorMaterials.java b/src/main/java/techreborn/init/TRArmorMaterials.java index 2727cb6e5..b05f42a17 100644 --- a/src/main/java/techreborn/init/TRArmorMaterials.java +++ b/src/main/java/techreborn/init/TRArmorMaterials.java @@ -25,6 +25,7 @@ package techreborn.init; import net.minecraft.entity.EquipmentSlot; +import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorMaterial; import net.minecraft.recipe.Ingredient; import net.minecraft.sound.SoundEvent; @@ -89,13 +90,13 @@ public enum TRArmorMaterials implements ArmorMaterial { } @Override - public int getDurability(EquipmentSlot slotIn) { - return MAX_DAMAGE_ARRAY[slotIn.getEntitySlotId()] * maxDamageFactor; + public int getDurability(ArmorItem.Type type) { + return MAX_DAMAGE_ARRAY[type.getEquipmentSlot().getEntitySlotId()] * maxDamageFactor; } @Override - public int getProtectionAmount(EquipmentSlot slotIn) { - return damageReductionAmountArray[slotIn.getEntitySlotId()]; + public int getProtection(ArmorItem.Type type) { + return damageReductionAmountArray[type.getEquipmentSlot().getEntitySlotId()]; } @Override diff --git a/src/main/java/techreborn/init/TRContent.java b/src/main/java/techreborn/init/TRContent.java index 9bbe3f569..6b85499b0 100644 --- a/src/main/java/techreborn/init/TRContent.java +++ b/src/main/java/techreborn/init/TRContent.java @@ -26,12 +26,16 @@ package techreborn.init; import com.google.common.base.Preconditions; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.type.BlockSetTypeRegistry; +import net.fabricmc.fabric.api.object.builder.v1.block.type.WoodTypeRegistry; import net.minecraft.block.Block; +import net.minecraft.block.BlockSetType; import net.minecraft.block.ExperienceDroppingBlock; import net.minecraft.block.Material; import net.minecraft.block.SlabBlock; import net.minecraft.block.StairsBlock; import net.minecraft.block.WallBlock; +import net.minecraft.block.WoodType; import net.minecraft.entity.EntityType; import net.minecraft.item.Item; import net.minecraft.item.ItemConvertible; @@ -152,6 +156,8 @@ import java.util.stream.Stream; public class TRContent { public static Marker DATAGEN = MarkerFactory.getMarker("datagen"); + public static BlockSetType RUBBER_WOOD_SET_TYPE = BlockSetTypeRegistry.registerWood(new Identifier(TechReborn.MOD_ID, "rubber_wood")); + public static WoodType RUBBER_WOOD_TYPE = WoodTypeRegistry.register(new Identifier(TechReborn.MOD_ID, "rubber_wood"), RUBBER_WOOD_SET_TYPE); // Misc Blocks public static Block COMPUTER_CUBE; diff --git a/src/main/java/techreborn/init/TRDamageTypes.java b/src/main/java/techreborn/init/TRDamageTypes.java new file mode 100644 index 000000000..648d08654 --- /dev/null +++ b/src/main/java/techreborn/init/TRDamageTypes.java @@ -0,0 +1,20 @@ +package techreborn.init; + +import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.damage.DamageType; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.util.Identifier; +import net.minecraft.world.World; +import techreborn.TechReborn; + +public final class TRDamageTypes { + public static final RegistryKey ELECTRIC_SHOCK = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, new Identifier(TechReborn.MOD_ID, "electric_shock")); + public static final RegistryKey FUSION = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, new Identifier(TechReborn.MOD_ID, "fusion")); + + public static DamageSource create(World world, RegistryKey key) { + return new DamageSource( + world.getRegistryManager().get(RegistryKeys.DAMAGE_TYPE).entryOf(key) + ); + } +} diff --git a/src/main/java/techreborn/init/TRDispenserBehavior.java b/src/main/java/techreborn/init/TRDispenserBehavior.java index fa05db2a4..d83a1ba14 100644 --- a/src/main/java/techreborn/init/TRDispenserBehavior.java +++ b/src/main/java/techreborn/init/TRDispenserBehavior.java @@ -59,7 +59,7 @@ public class TRDispenserBehavior { public ItemStack dispenseSilently(BlockPointer pointer, ItemStack stack) { List scrapboxRecipeList = ModRecipes.SCRAPBOX.getRecipes(pointer.getWorld()); int random = Random.create().nextInt(scrapboxRecipeList.size()); - ItemStack out = scrapboxRecipeList.get(random).getOutputs().get(0).copy(); + ItemStack out = scrapboxRecipeList.get(random).getOutputs(null).get(0).copy(); stack.split(1); Direction facing = pointer.getBlockState().get(DispenserBlock.FACING); diff --git a/src/main/java/techreborn/items/ScrapBoxItem.java b/src/main/java/techreborn/items/ScrapBoxItem.java index a8f0b107d..7f9c06410 100644 --- a/src/main/java/techreborn/items/ScrapBoxItem.java +++ b/src/main/java/techreborn/items/ScrapBoxItem.java @@ -49,7 +49,7 @@ public class ScrapBoxItem extends Item { if (!world.isClient) { List scrapboxRecipeList = ModRecipes.SCRAPBOX.getRecipes(world); int random = world.random.nextInt(scrapboxRecipeList.size()); - ItemStack out = scrapboxRecipeList.get(random).getOutputs().get(0); + ItemStack out = scrapboxRecipeList.get(random).getOutputs(world.getRegistryManager()).get(0); WorldUtils.dropItem(out, world, player.getBlockPos()); stack.decrement(1); } diff --git a/src/main/java/techreborn/items/armor/BatpackItem.java b/src/main/java/techreborn/items/armor/BatpackItem.java index 01a8ba48d..45c188014 100644 --- a/src/main/java/techreborn/items/armor/BatpackItem.java +++ b/src/main/java/techreborn/items/armor/BatpackItem.java @@ -41,7 +41,7 @@ public class BatpackItem extends ArmorItem implements RcEnergyItem { public final RcEnergyTier tier; public BatpackItem(int maxCharge, ArmorMaterial material, RcEnergyTier tier) { - super(material, EquipmentSlot.CHEST, new Settings().maxCount(1).maxDamage(-1)); + super(material, Type.CHESTPLATE, new Settings().maxCount(1).maxDamage(-1)); this.maxCharge = maxCharge; this.tier = tier; } diff --git a/src/main/java/techreborn/items/armor/CloakingDeviceItem.java b/src/main/java/techreborn/items/armor/CloakingDeviceItem.java index 946ff899c..c89dad0e9 100644 --- a/src/main/java/techreborn/items/armor/CloakingDeviceItem.java +++ b/src/main/java/techreborn/items/armor/CloakingDeviceItem.java @@ -44,7 +44,7 @@ public class CloakingDeviceItem extends TRArmourItem implements RcEnergyItem, Ar // 40M FE capacity with 10k FE\t charge rate public CloakingDeviceItem() { - super(TRArmorMaterials.CLOAKING_DEVICE, EquipmentSlot.CHEST, new Item.Settings().maxDamage(-1).maxCount(1)); + super(TRArmorMaterials.CLOAKING_DEVICE, Type.CHESTPLATE, new Item.Settings().maxDamage(-1).maxCount(1)); } @Override diff --git a/src/main/java/techreborn/items/armor/QuantumSuitItem.java b/src/main/java/techreborn/items/armor/QuantumSuitItem.java index 38c8bc5f0..b4fbfca4e 100644 --- a/src/main/java/techreborn/items/armor/QuantumSuitItem.java +++ b/src/main/java/techreborn/items/armor/QuantumSuitItem.java @@ -57,25 +57,25 @@ public class QuantumSuitItem extends TRArmourItem implements ArmorBlockEntityTic public final boolean enableFlight = TechRebornConfig.quantumSuitEnableFlight; - public QuantumSuitItem(ArmorMaterial material, EquipmentSlot slot) { + public QuantumSuitItem(ArmorMaterial material, Type slot) { super(material, slot, new Item.Settings().maxDamage(-1).maxCount(1)); } @Override public Multimap getAttributeModifiers(ItemStack stack, EquipmentSlot equipmentSlot) { - var attributes = ArrayListMultimap.create(super.getAttributeModifiers(stack, slot)); + var attributes = ArrayListMultimap.create(super.getAttributeModifiers(stack, getSlotType())); attributes.removeAll(EntityAttributes.GENERIC_MOVEMENT_SPEED); - if (this.slot == EquipmentSlot.LEGS && equipmentSlot == EquipmentSlot.LEGS && enableSprint) { + if (this.getSlotType() == EquipmentSlot.LEGS && equipmentSlot == EquipmentSlot.LEGS && enableSprint) { if (getStoredEnergy(stack) > sprintingCost) { attributes.put(EntityAttributes.GENERIC_MOVEMENT_SPEED, new EntityAttributeModifier(MODIFIERS[equipmentSlot.getEntitySlotId()], "Movement Speed", 0.15, EntityAttributeModifier.Operation.ADDITION)); } } - if (equipmentSlot == this.slot && getStoredEnergy(stack) > 0) { - attributes.put(EntityAttributes.GENERIC_ARMOR, new EntityAttributeModifier(MODIFIERS[slot.getEntitySlotId()], "Armor modifier", 20, EntityAttributeModifier.Operation.ADDITION)); - attributes.put(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(MODIFIERS[slot.getEntitySlotId()], "Knockback modifier", 2, EntityAttributeModifier.Operation.ADDITION)); + if (equipmentSlot == this.getSlotType() && getStoredEnergy(stack) > 0) { + attributes.put(EntityAttributes.GENERIC_ARMOR, new EntityAttributeModifier(MODIFIERS[getSlotType().getEntitySlotId()], "Armor modifier", 20, EntityAttributeModifier.Operation.ADDITION)); + attributes.put(EntityAttributes.GENERIC_KNOCKBACK_RESISTANCE, new EntityAttributeModifier(MODIFIERS[getSlotType().getEntitySlotId()], "Knockback modifier", 2, EntityAttributeModifier.Operation.ADDITION)); } return ImmutableMultimap.copyOf(attributes); @@ -83,7 +83,7 @@ public class QuantumSuitItem extends TRArmourItem implements ArmorBlockEntityTic @Override public void tickArmor(ItemStack stack, PlayerEntity playerEntity) { - switch (this.slot) { + switch (this.getSlotType()) { case HEAD: if (playerEntity.isSubmergedInWater()) { if (tryUseEnergy(stack, breathingCost)) { @@ -132,7 +132,7 @@ public class QuantumSuitItem extends TRArmourItem implements ArmorBlockEntityTic @Override public void onRemoved(PlayerEntity playerEntity) { - if (this.slot == EquipmentSlot.CHEST && enableFlight) { + if (this.getSlotType() == EquipmentSlot.CHEST && enableFlight) { if (!playerEntity.isCreative() && !playerEntity.isSpectator()) { playerEntity.getAbilities().allowFlying = false; playerEntity.getAbilities().flying = false; diff --git a/src/main/java/techreborn/items/armor/TRArmourItem.java b/src/main/java/techreborn/items/armor/TRArmourItem.java index bf4e5c38a..20fdc8963 100644 --- a/src/main/java/techreborn/items/armor/TRArmourItem.java +++ b/src/main/java/techreborn/items/armor/TRArmourItem.java @@ -24,7 +24,6 @@ package techreborn.items.armor; -import net.minecraft.entity.EquipmentSlot; import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorMaterial; import net.minecraft.item.Item; @@ -44,11 +43,11 @@ public class TRArmourItem extends ArmorItem { UUID.fromString("2AD3F246-FEE1-4E67-B886-69FD380BB150") }; - public TRArmourItem(ArmorMaterial material, EquipmentSlot slot) { + public TRArmourItem(ArmorMaterial material, Type slot) { this(material, slot, new Item.Settings()); } - public TRArmourItem(ArmorMaterial material, EquipmentSlot slot, Item.Settings settings) { + public TRArmourItem(ArmorMaterial material, Type slot, Item.Settings settings) { super(material, slot, settings); } } diff --git a/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java b/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java index ecc4558ca..580045e78 100644 --- a/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java +++ b/src/main/java/techreborn/items/tool/industrial/OmniToolItem.java @@ -27,6 +27,7 @@ package techreborn.items.tool.industrial; import net.minecraft.block.BlockState; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.damage.DamageSource; +import net.minecraft.entity.damage.DamageSources; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -83,7 +84,7 @@ public class OmniToolItem extends MiningToolItem implements RcEnergyItem { @Override public boolean postHit(ItemStack stack, LivingEntity target, LivingEntity attacker) { if (tryUseEnergy(stack, hitCost)) { - target.damage(DamageSource.player((PlayerEntity) attacker), 8F); + target.damage(target.getWorld().getDamageSources().playerAttack((PlayerEntity) attacker), 8F); } return false; } diff --git a/src/main/java/techreborn/utils/RecipeUtils.java b/src/main/java/techreborn/utils/RecipeUtils.java index 3a8f9154e..974ce4cb3 100644 --- a/src/main/java/techreborn/utils/RecipeUtils.java +++ b/src/main/java/techreborn/utils/RecipeUtils.java @@ -44,15 +44,6 @@ public class RecipeUtils { return recipe.getIngredients().size() == 1 && recipe.getIngredients().get(0).test(input); } - /** - * Used to get the matching output of a recipe type that only has 1 input - */ - public static > ItemStack getMatchingRecipeOutput(World world, RecipeType type, ItemStack input) { - return getMatchingRecipe(world, type, input) - .map(Recipe::getOutput) - .orElse(ItemStack.EMPTY); - } - public static > List> getRecipes(World world, RecipeType type) { return world.getRecipeManager().values().stream().filter(iRecipe -> iRecipe.getType() == type).collect(Collectors.toList()); } diff --git a/src/main/java/techreborn/utils/damageSources/ElectricalShockSource.java b/src/main/java/techreborn/utils/damageSources/ElectricalShockSource.java deleted file mode 100644 index 9025529b9..000000000 --- a/src/main/java/techreborn/utils/damageSources/ElectricalShockSource.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of TechReborn, licensed under the MIT License (MIT). - * - * Copyright (c) 2020 TechReborn - * - * 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 techreborn.utils.damageSources; - -import net.minecraft.entity.damage.DamageSource; - -/** - * Created by modmuss50 on 06/03/2016. - */ -public class ElectricalShockSource extends DamageSource { - public ElectricalShockSource() { - super("shock"); - } -} diff --git a/src/main/java/techreborn/utils/damageSources/FusionDamageSource.java b/src/main/java/techreborn/utils/damageSources/FusionDamageSource.java deleted file mode 100644 index 5545f2883..000000000 --- a/src/main/java/techreborn/utils/damageSources/FusionDamageSource.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * This file is part of TechReborn, licensed under the MIT License (MIT). - * - * Copyright (c) 2020 TechReborn - * - * 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 techreborn.utils.damageSources; - -import net.minecraft.entity.damage.DamageSource; - -/** - * Created by modmuss50 on 05/03/2016. - */ -public class FusionDamageSource extends DamageSource { - public FusionDamageSource() { - super("fusion"); - } -} diff --git a/src/main/resources/assets/techreborn/lang/en_us.json b/src/main/resources/assets/techreborn/lang/en_us.json index 1c20e339b..a258c7693 100644 --- a/src/main/resources/assets/techreborn/lang/en_us.json +++ b/src/main/resources/assets/techreborn/lang/en_us.json @@ -877,8 +877,8 @@ "techreborn.jei.category.generator.plasma": "Plasma Generator", "_comment20": "Death Messages", - "death.attack.shock": "%s was electrocuted", - "death.attack.shock.player": "%s was electrocuted trying to outrun %s", + "death.attack.electric_shock": "%s was electrocuted", + "death.attack.electric_shock.player": "%s was electrocuted trying to outrun %s", "_comment21": "Entities", "entity.nuke": "Nuke", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6a91d9838..77a02f6b6 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -30,12 +30,12 @@ ] }, "depends": { - "fabricloader": ">=0.14.11", - "fabric-api": ">=0.68.1", + "fabricloader": ">=0.14.15", + "fabric-api": ">=0.75.0", "reborncore": "*", "team_reborn_energy": ">=2.3.0", "fabric-biome-api-v1": ">=3.0.0", - "minecraft": ">=1.19.3- <1.19.4-" + "minecraft": ">=1.19.4- <1.19.5-" }, "accessWidener": "techreborn.accesswidener", "authors": [