diff --git a/build.gradle b/build.gradle index c8426aac4..44dd7ee29 100644 --- a/build.gradle +++ b/build.gradle @@ -109,8 +109,10 @@ dependencies { include "alexiil.mc.lib:libblockattributes-items:${libblockattributes_version}" include "alexiil.mc.lib:libblockattributes-fluids:${libblockattributes_version}" - modImplementation "me.shedaniel:RoughlyEnoughItems:4.6.6" - modImplementation "mcp.mobius.waila:Hwyla:1.16.1-1.9.22-75" + modCompileOnly "me.shedaniel:RoughlyEnoughItems:4.6.6" + modCompileOnly "mcp.mobius.waila:Hwyla:1.16.1-1.9.22-75" +// modRuntimeOnly "me.shedaniel:RoughlyEnoughItems:4.6.6" +// modRuntimeOnly "mcp.mobius.waila:Hwyla:1.16.1-1.9.22-75" implementation 'com.google.code.findbugs:jsr305:3.0.2' diff --git a/gradle.properties b/gradle.properties index d9cd8455b..a2d864964 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,12 +9,12 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties # Check these on https://modmuss50.me/fabric.html -minecraft_version=1.16.1 -yarn_mappings=1.16.1+build.19 -loader_version=0.8.9+build.203 +minecraft_version=1.16.2-pre1 +yarn_mappings=1.16.2-pre1+build.5 +loader_version=0.9.0+build.204 #Fabric api -fabric_version=0.16.0+build.384-1.16.1 +fabric_version=0.16.1+build.387-1.16 loom_version=0.4-SNAPSHOT diff --git a/src/api/java/appeng/api/util/DimensionalCoord.java b/src/api/java/appeng/api/util/DimensionalCoord.java index 9e1f02efe..e3c797343 100644 --- a/src/api/java/appeng/api/util/DimensionalCoord.java +++ b/src/api/java/appeng/api/util/DimensionalCoord.java @@ -25,6 +25,7 @@ package appeng.api.util; import net.minecraft.block.entity.BlockEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.dimension.DimensionType; @@ -33,7 +34,7 @@ import net.minecraft.world.dimension.DimensionType; */ public class DimensionalCoord extends WorldCoord { - private final WorldAccess world; + private final World world; private final DimensionType dimension; public DimensionalCoord(final DimensionalCoord coordinate) { @@ -48,13 +49,13 @@ public class DimensionalCoord extends WorldCoord { this.dimension = this.world.getDimension(); } - public DimensionalCoord(final WorldAccess world, final int x, final int y, final int z) { + public DimensionalCoord(final World world, final int x, final int y, final int z) { super(x, y, z); this.world = world; this.dimension = world.getDimension(); } - public DimensionalCoord(final WorldAccess world, final BlockPos pos) { + public DimensionalCoord(final World world, final BlockPos pos) { super(pos); this.world = world; this.dimension = world.getDimension(); @@ -84,7 +85,7 @@ public class DimensionalCoord extends WorldCoord { return this.world == world; } - public WorldAccess getWorld() { + public World getWorld() { return this.world; } diff --git a/src/datagen/resources/fabric.mod.json b/src/datagen/resources/fabric.mod.json index 51ac029ab..ba3c7ec47 100644 --- a/src/datagen/resources/fabric.mod.json +++ b/src/datagen/resources/fabric.mod.json @@ -12,8 +12,7 @@ "license": "LGPL", "icon": "assets/appliedenergistics2/icon.png", - - "environment": "*", + "environment": "client", "entrypoints": { "preLaunch": ["appeng.data.Entrypoint"] }, diff --git a/src/main/java/appeng/block/AEBaseBlockItem.java b/src/main/java/appeng/block/AEBaseBlockItem.java index 75fe118fe..b8abc2f52 100644 --- a/src/main/java/appeng/block/AEBaseBlockItem.java +++ b/src/main/java/appeng/block/AEBaseBlockItem.java @@ -60,7 +60,7 @@ public class AEBaseBlockItem extends BlockItem { @Environment(EnvType.CLIENT) public void addCheckedInformation(final ItemStack itemStack, final World world, final List toolTip, final TooltipContext advancedTooltips) { - this.blockType.buildTooltip(itemStack, world, toolTip, advancedTooltips); + this.blockType.appendTooltip(itemStack, world, toolTip, advancedTooltips); } @Override diff --git a/src/main/java/appeng/block/networking/WirelessBlock.java b/src/main/java/appeng/block/networking/WirelessBlock.java index 11d581bd1..0631b4c6c 100644 --- a/src/main/java/appeng/block/networking/WirelessBlock.java +++ b/src/main/java/appeng/block/networking/WirelessBlock.java @@ -37,6 +37,7 @@ import net.minecraft.world.BlockView; import net.minecraft.world.World; import appeng.block.AEBaseTileBlock; +import appeng.block.networking.WirelessBlock.State; import appeng.container.ContainerLocator; import appeng.container.ContainerOpener; import appeng.container.implementations.WirelessContainer; diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index 344696a32..f6c167072 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -70,14 +70,14 @@ public abstract class AEBaseMEScreen extends AEBaseSc currentToolTip.add(ButtonToolTips.ItemsRequestable.text(formattedAmount)); } - this.renderTooltip(matrices, currentToolTip, x, y); + this.method_30901(matrices, currentToolTip, x, y); return; } else if (stack.getCount() > bigNumber) { final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.getCount()); currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).formatted(Formatting.GRAY)); - this.renderTooltip(matrices, currentToolTip, x, y); + this.method_30901(matrices, currentToolTip, x, y); return; } diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index 457ea97f6..6e73565cc 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -225,7 +225,7 @@ public abstract class AEBaseScreen extends HandledScr styledLines.add(lines.get(i).copy().styled(s -> style)); } - this.renderTooltip(matrices, styledLines, x, y); + this.method_30901(matrices, styledLines, x, y); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/ChestScreen.java b/src/main/java/appeng/client/gui/implementations/ChestScreen.java index e3488b793..8462220d4 100644 --- a/src/main/java/appeng/client/gui/implementations/ChestScreen.java +++ b/src/main/java/appeng/client/gui/implementations/ChestScreen.java @@ -51,8 +51,8 @@ public class ChestScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Chest.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Chest.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java index b84807185..a3bd280b2 100644 --- a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java @@ -55,8 +55,8 @@ public class CondenserScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Condenser.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Condenser.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); this.mode.set(this.handler.getOutput()); this.mode.setFillVar(String.valueOf(this.handler.getOutput().requiredPower)); diff --git a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java index e0e6abaa1..d2a9a7bf5 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java @@ -66,7 +66,7 @@ public class CraftAmountScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, GuiText.SelectAmount.text(), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.SelectAmount.text(), 8, 6, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java index f48493142..4d52b9f6d 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java @@ -162,7 +162,7 @@ public class CraftConfirmScreen extends AEBaseScreen { final String byteUsed = NumberFormat.getInstance().format(BytesUsed); final Text Add = BytesUsed > 0 ? new LiteralText(byteUsed + " ").append(GuiText.BytesUsed.text()) : GuiText.CalculatingWait.text(); - this.textRenderer.draw(matrices, GuiText.CraftingPlan.withSuffix(" - ").append(Add), 8, 7, 4210752); + this.textRenderer.method_30883(matrices, GuiText.CraftingPlan.withSuffix(" - ").append(Add), 8, 7, 4210752); Text dsp; @@ -176,7 +176,7 @@ public class CraftConfirmScreen extends AEBaseScreen { } final int offset = (219 - this.textRenderer.getWidth(dsp)) / 2; - this.textRenderer.draw(matrices, dsp, offset, 165, 4210752); + this.textRenderer.method_30883(matrices, dsp, offset, 165, 4210752); final int sectionLength = 67; diff --git a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java index 60680d7f7..195ba1868 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java @@ -172,7 +172,7 @@ public class CraftingCPUScreen extends AEBaseScr title = title.copy().append(" - " + etaTimeText); } - this.textRenderer.draw(matrices, title, TITLE_LEFT_OFFSET, TITLE_TOP_OFFSET, TEXT_COLOR); + this.textRenderer.method_30883(matrices, title, TITLE_LEFT_OFFSET, TITLE_TOP_OFFSET, TEXT_COLOR); int x = 0; int y = 0; diff --git a/src/main/java/appeng/client/gui/implementations/CraftingTermScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingTermScreen.java index a0a754759..ef4d14417 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingTermScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingTermScreen.java @@ -64,7 +64,7 @@ public class CraftingTermScreen extends MEMonitorableScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Drive.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Drive.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java index cf984b0cd..9084d133e 100644 --- a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java +++ b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java @@ -58,8 +58,8 @@ public class FormationPlaneScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.GrindStone.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.GrindStone.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java index eb88f76d6..b5acb25f1 100644 --- a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java @@ -59,8 +59,8 @@ public class IOPortScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.IOPort.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.IOPort.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); if (this.redstoneMode != null) { this.redstoneMode.set(this.cvb.getRedStoneMode()); diff --git a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java index 3aa79c16e..d19738b36 100644 --- a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java @@ -56,8 +56,8 @@ public class InscriberScreen extends AEBaseScreen { this.pb.setFullMsg( new LiteralText(this.handler.getCurrentProgress() * 100 / this.handler.getMaxProgress() + "%")); - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Inscriber.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Inscriber.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java index d5a6f0738..977829d22 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java @@ -68,13 +68,13 @@ public class InterfaceScreen extends UpgradeableScreen { this.interfaceMode.setState(((InterfaceContainer) this.cvb).getInterfaceTerminalMode() == YesNo.YES); } - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Interface.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Interface.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.Config.text(), 8, 6 + 11 + 7, 4210752); - this.textRenderer.draw(matrices, GuiText.StoredItems.text(), 8, 6 + 60 + 7, 4210752); - this.textRenderer.draw(matrices, GuiText.Patterns.text(), 8, 6 + 73 + 7, 4210752); + this.textRenderer.method_30883(matrices, GuiText.Config.text(), 8, 6 + 11 + 7, 4210752); + this.textRenderer.method_30883(matrices, GuiText.StoredItems.text(), 8, 6 + 60 + 7, 4210752); + this.textRenderer.method_30883(matrices, GuiText.Patterns.text(), 8, 6 + 73 + 7, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java index dd93d23c0..107004c57 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java @@ -95,8 +95,8 @@ public class InterfaceTerminalScreen extends AEBaseScreen extends AEBas @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(this.myName.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(this.myName.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); this.currentMouseX = mouseX; this.currentMouseY = mouseY; diff --git a/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java b/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java index b0b3cde1e..9316746b1 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java @@ -101,7 +101,7 @@ public class NetworkStatusScreen extends AEBaseScreen im @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, GuiText.NetworkDetails.text(), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.NetworkDetails.text(), 8, 6, 4210752); this.textRenderer.draw(matrices, GuiText.StoredPower.text() + ": " + Platform.formatPowerLong(handler.getCurrentPower(), false), 13, 16, diff --git a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java index 19f3ca409..43e16f8ff 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java @@ -58,8 +58,8 @@ public class NetworkToolScreen extends AEBaseScreen { this.tFacades.setState(handler.isFacadeMode()); } - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.NetworkTool.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.NetworkTool.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java index 6af652727..c4389e5c6 100644 --- a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java @@ -126,7 +126,7 @@ public class PatternTermScreen extends MEMonitorableScreen } super.drawFG(matrices, offsetX, offsetY, mouseX, mouseY); - this.textRenderer.draw(matrices, GuiText.PatternTerminal.text(), 8, + this.textRenderer.method_30883(matrices, GuiText.PatternTerminal.text(), 8, this.backgroundHeight - 96 + 2 - this.getReservedSpace(), 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java index 98a94772c..71a7e0d85 100644 --- a/src/main/java/appeng/client/gui/implementations/PriorityScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PriorityScreen.java @@ -62,7 +62,7 @@ public class PriorityScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, GuiText.Priority.text(), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.Priority.text(), 8, 6, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/QNBScreen.java b/src/main/java/appeng/client/gui/implementations/QNBScreen.java index bd89f9621..447a55b5b 100644 --- a/src/main/java/appeng/client/gui/implementations/QNBScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QNBScreen.java @@ -35,8 +35,8 @@ public class QNBScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.QuantumLinkChamber.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.QuantumLinkChamber.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java index 5e059fd42..52ad64757 100644 --- a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java @@ -59,8 +59,8 @@ public class QuartzKnifeScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.QuartzCuttingKnife.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.QuartzCuttingKnife.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java index bbd518532..b92f141c9 100644 --- a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java @@ -82,7 +82,7 @@ public class SecurityStationScreen extends MEMonitorableScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.SkyChest.text()), 8, 8, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 2, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.SkyChest.text()), 8, 8, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 2, 4210752); } @Override diff --git a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java index d3e21f851..f37b1ff6a 100644 --- a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java @@ -43,27 +43,27 @@ public class SpatialIOPortScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, + this.textRenderer.method_30883(matrices, GuiText.StoredPower.withSuffix(": " + Platform.formatPowerLong(this.handler.getCurrentPower(), false)), 13, 21, 4210752); - this.textRenderer.draw(matrices, + this.textRenderer.method_30883(matrices, GuiText.MaxPower.withSuffix(": " + Platform.formatPowerLong(this.handler.getMaxPower(), false)), 13, 31, 4210752); - this.textRenderer.draw(matrices, GuiText.RequiredPower + this.textRenderer.method_30883(matrices, GuiText.RequiredPower .withSuffix(": " + Platform.formatPowerLong(this.handler.getRequiredPower(), false)), 13, 73, 4210752); - this.textRenderer.draw(matrices, + this.textRenderer.method_30883(matrices, GuiText.Efficiency.withSuffix(": " + (((float) this.handler.getEfficency()) / 100) + '%'), 13, 83, 4210752); - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.SpatialIOPort.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.SpatialIOPort.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96, 4210752); if (this.handler.xSize != 0 && this.handler.ySize != 0 && this.handler.zSize != 0) { final Text text = GuiText.SCSSize .withSuffix(": " + this.handler.xSize + "x" + this.handler.ySize + "x" + this.handler.zSize); - this.textRenderer.draw(matrices, text, 13, 93, 4210752); + this.textRenderer.method_30883(matrices, text, 13, 93, 4210752); } else { - this.textRenderer.draw(matrices, GuiText.SCSSize.withSuffix(": ").append(GuiText.SCSInvalid.text()), 13, 93, + this.textRenderer.method_30883(matrices, GuiText.SCSSize.withSuffix(": ").append(GuiText.SCSInvalid.text()), 13, 93, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java index 2f5ae3615..cb0e75153 100644 --- a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java @@ -69,8 +69,8 @@ public class StorageBusScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.StorageBus.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.StorageBus.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); if (this.fuzzyMode != null) { this.fuzzyMode.set(this.cvb.getFuzzyMode()); diff --git a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java index eb87574fd..0abefe6ae 100644 --- a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java @@ -82,8 +82,8 @@ public class UpgradeableScreen extends AEBaseScr @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(this.getName().text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(this.getName().text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); if (this.redstoneMode != null) { this.redstoneMode.set(this.cvb.getRedStoneMode()); diff --git a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java index 389d6e5a4..b486dfc4c 100644 --- a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java @@ -51,8 +51,8 @@ public class VibrationChamberScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrices, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(GuiText.Wireless.text()), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(GuiText.Wireless.text()), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); if (handler.getRange() > 0) { final String firstMessage = GuiText.Range.text() + ": " + (handler.getRange() / 10.0) + " m"; diff --git a/src/main/java/appeng/client/render/StackSizeRenderer.java b/src/main/java/appeng/client/render/StackSizeRenderer.java index 6d53c906a..3df554cea 100644 --- a/src/main/java/appeng/client/render/StackSizeRenderer.java +++ b/src/main/java/appeng/client/render/StackSizeRenderer.java @@ -32,6 +32,8 @@ import appeng.core.localization.GuiText; import appeng.util.ISlimReadableNumberConverter; import appeng.util.IWideReadableNumberConverter; import appeng.util.ReadableNumberConverter; +import net.minecraft.text.LiteralText; +import net.minecraft.text.Text; /** * @author AlgorithmX2 @@ -46,8 +48,8 @@ public class StackSizeRenderer { public void renderStackSize(TextRenderer fontRenderer, IAEItemStack aeStack, int xPos, int yPos) { if (aeStack != null) { if (aeStack.getStackSize() == 0 && aeStack.isCraftable()) { - final String craftLabelText = AEConfig.instance().isUseLargeFonts() ? GuiText.LargeFontCraft.getLocal() - : GuiText.SmallFontCraft.getLocal(); + final Text craftLabelText = AEConfig.instance().isUseLargeFonts() ? GuiText.LargeFontCraft.text() + : GuiText.SmallFontCraft.text(); renderSizeLabel(fontRenderer, xPos, yPos, craftLabelText); } @@ -55,13 +57,13 @@ public class StackSizeRenderer { if (aeStack.getStackSize() > 0) { final String stackSize = this.getToBeRenderedStackSize(aeStack.getStackSize()); - renderSizeLabel(fontRenderer, xPos, yPos, stackSize); + renderSizeLabel(fontRenderer, xPos, yPos, new LiteralText(stackSize)); } } } - public static void renderSizeLabel(TextRenderer fontRenderer, float xPos, float yPos, String text) { + public static void renderSizeLabel(TextRenderer fontRenderer, float xPos, float yPos, Text text) { final float scaleFactor = AEConfig.instance().isUseLargeFonts() ? 0.85f : 0.5f; final float inverseScaleFactor = 1.0f / scaleFactor; @@ -76,7 +78,7 @@ public class StackSizeRenderer { final int Y = (int) ((yPos + offset + 16.0f - 7.0f * scaleFactor) * inverseScaleFactor); VertexConsumerProvider.Immediate buffer = VertexConsumerProvider .immediate(Tessellator.getInstance().getBuffer()); - fontRenderer.draw(text, X, Y, 16777215, true, tm.getMatrix(), buffer, false, 0, 15728880); + fontRenderer.method_30882(text, X, Y, 16777215, true, tm.getMatrix(), buffer, false, 0, 15728880); buffer.draw(); RenderSystem.enableBlend(); } diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index aaef2a70d..60b5b435b 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -21,7 +21,6 @@ package appeng.client.render.effects; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.particle.*; -import net.minecraft.client.particle.ParticleTextureSheet; import net.minecraft.client.render.Camera; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.util.math.Vector3f; diff --git a/src/main/java/appeng/client/render/effects/LightningFX.java b/src/main/java/appeng/client/render/effects/LightningFX.java index 8d2e4ad9c..8aebb6e3b 100644 --- a/src/main/java/appeng/client/render/effects/LightningFX.java +++ b/src/main/java/appeng/client/render/effects/LightningFX.java @@ -24,7 +24,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.MinecraftClient; import net.minecraft.client.particle.*; -import net.minecraft.client.particle.ParticleTextureSheet; import net.minecraft.client.render.Camera; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.world.ClientWorld; diff --git a/src/main/java/appeng/client/render/effects/VibrantFX.java b/src/main/java/appeng/client/render/effects/VibrantFX.java index 004b5dc80..1ded2d5cb 100644 --- a/src/main/java/appeng/client/render/effects/VibrantFX.java +++ b/src/main/java/appeng/client/render/effects/VibrantFX.java @@ -21,9 +21,6 @@ package appeng.client.render.effects; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.client.particle.*; -import net.minecraft.client.particle.ParticleFactory; -import net.minecraft.client.particle.ParticleTextureSheet; -import net.minecraft.client.particle.SpriteProvider; import net.minecraft.client.world.ClientWorld; import net.minecraft.particle.DefaultParticleType; diff --git a/src/main/java/appeng/container/ContainerLocator.java b/src/main/java/appeng/container/ContainerLocator.java index 647660e81..dfb1a103f 100644 --- a/src/main/java/appeng/container/ContainerLocator.java +++ b/src/main/java/appeng/container/ContainerLocator.java @@ -132,7 +132,7 @@ public final class ContainerLocator { public static ContainerLocator forPart(AEBasePart part) { IPartHost host = part.getHost(); DimensionalCoord pos = host.getLocation(); - return new ContainerLocator(Type.PART, -1, pos.getWorld().getWorld(), pos.getBlockPos(), part.getSide()); + return new ContainerLocator(Type.PART, -1, pos.getWorld(), pos.getBlockPos(), part.getSide()); } public boolean hasItemIndex() { diff --git a/src/main/java/appeng/container/slot/RestrictedInputSlot.java b/src/main/java/appeng/container/slot/RestrictedInputSlot.java index 3a7b745a7..f88cd3bcf 100644 --- a/src/main/java/appeng/container/slot/RestrictedInputSlot.java +++ b/src/main/java/appeng/container/slot/RestrictedInputSlot.java @@ -233,7 +233,7 @@ public class RestrictedInputSlot extends AppEngSlot { // TODO: Can be optimized by somehow caching the Tag's Item item = i.getItem(); for (Identifier tagName : METAL_INGOT_TAGS) { - Tag ingotTag = ItemTags.getContainer().get(tagName); + Tag ingotTag = ItemTags.getTagGroup().getTag(tagName); if (ingotTag != null && item.isIn(ingotTag)) { return true; } diff --git a/src/main/java/appeng/core/AppEngBase.java b/src/main/java/appeng/core/AppEngBase.java index eaad3d6f7..4dea5a247 100644 --- a/src/main/java/appeng/core/AppEngBase.java +++ b/src/main/java/appeng/core/AppEngBase.java @@ -1,56 +1,5 @@ package appeng.core; -import java.util.OptionalLong; -import java.util.function.Consumer; - -import net.earthcomputer.libstructure.LibStructure; -import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; -import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; -import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.block.BlockState; -import net.minecraft.block.entity.BannerBlockEntity; -import net.minecraft.block.entity.BeaconBlockEntity; -import net.minecraft.block.entity.BrewingStandBlockEntity; -import net.minecraft.block.entity.ChestBlockEntity; -import net.minecraft.block.entity.CommandBlockBlockEntity; -import net.minecraft.block.entity.ComparatorBlockEntity; -import net.minecraft.block.entity.DaylightDetectorBlockEntity; -import net.minecraft.block.entity.DispenserBlockEntity; -import net.minecraft.block.entity.DropperBlockEntity; -import net.minecraft.block.entity.EnchantingTableBlockEntity; -import net.minecraft.block.entity.EndPortalBlockEntity; -import net.minecraft.block.entity.EnderChestBlockEntity; -import net.minecraft.block.entity.FurnaceBlockEntity; -import net.minecraft.block.entity.HopperBlockEntity; -import net.minecraft.block.entity.MobSpawnerBlockEntity; -import net.minecraft.block.entity.PistonBlockEntity; -import net.minecraft.block.entity.ShulkerBoxBlockEntity; -import net.minecraft.block.entity.SignBlockEntity; -import net.minecraft.block.entity.SkullBlockEntity; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.entity.player.PlayerInventory; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.recipe.Recipe; -import net.minecraft.recipe.RecipeType; -import net.minecraft.screen.ScreenHandlerType; -import net.minecraft.tag.BlockTags; -import net.minecraft.text.Text; -import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.dimension.DimensionType; -import net.minecraft.world.gen.GenerationStep; -import net.minecraft.world.gen.chunk.StructureConfig; -import net.minecraft.world.gen.decorator.Decorator; -import net.minecraft.world.gen.decorator.NopeDecoratorConfig; -import net.minecraft.world.gen.decorator.RangeDecoratorConfig; -import net.minecraft.world.gen.feature.DefaultFeatureConfig; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.FeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig; - import appeng.api.config.Upgrades; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IItems; @@ -149,9 +98,60 @@ import appeng.spatial.SpatialDimensionManager; import appeng.spatial.StorageCellBiome; import appeng.spatial.StorageChunkGenerator; import appeng.tile.AEBaseBlockEntity; +import appeng.worldgen.BiomeModifier; import appeng.worldgen.ChargedQuartzOreConfig; import appeng.worldgen.ChargedQuartzOreFeature; import appeng.worldgen.meteorite.MeteoriteStructure; +import net.earthcomputer.libstructure.LibStructure; +import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback; +import net.fabricmc.fabric.api.screenhandler.v1.ScreenHandlerRegistry; +import net.fabricmc.loader.api.FabricLoader; +import net.minecraft.block.BlockState; +import net.minecraft.block.entity.BannerBlockEntity; +import net.minecraft.block.entity.BeaconBlockEntity; +import net.minecraft.block.entity.BrewingStandBlockEntity; +import net.minecraft.block.entity.ChestBlockEntity; +import net.minecraft.block.entity.CommandBlockBlockEntity; +import net.minecraft.block.entity.ComparatorBlockEntity; +import net.minecraft.block.entity.DaylightDetectorBlockEntity; +import net.minecraft.block.entity.DispenserBlockEntity; +import net.minecraft.block.entity.DropperBlockEntity; +import net.minecraft.block.entity.EnchantingTableBlockEntity; +import net.minecraft.block.entity.EndPortalBlockEntity; +import net.minecraft.block.entity.EnderChestBlockEntity; +import net.minecraft.block.entity.FurnaceBlockEntity; +import net.minecraft.block.entity.HopperBlockEntity; +import net.minecraft.block.entity.MobSpawnerBlockEntity; +import net.minecraft.block.entity.PistonBlockEntity; +import net.minecraft.block.entity.ShulkerBoxBlockEntity; +import net.minecraft.block.entity.SignBlockEntity; +import net.minecraft.block.entity.SkullBlockEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.player.PlayerInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.recipe.Recipe; +import net.minecraft.recipe.RecipeType; +import net.minecraft.screen.ScreenHandlerType; +import net.minecraft.tag.BlockTags; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.dimension.DimensionType; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.chunk.StructureConfig; +import net.minecraft.world.gen.decorator.Decorator; +import net.minecraft.world.gen.decorator.NopeDecoratorConfig; +import net.minecraft.world.gen.decorator.RangeDecoratorConfig; +import net.minecraft.world.gen.feature.DefaultFeatureConfig; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.FeatureConfig; +import net.minecraft.world.gen.feature.OreFeatureConfig; + +import java.util.OptionalLong; +import java.util.function.Consumer; public abstract class AppEngBase implements AppEng { @@ -426,7 +426,7 @@ public abstract class AppEngBase implements AppEng { @Override public void sendToAllNearExcept(final PlayerEntity p, final double x, final double y, final double z, - final double dist, final World w, final BasePacket packet) { + final double dist, final World w, final BasePacket packet) { if (w.isClient()) { return; } @@ -450,7 +450,7 @@ public abstract class AppEngBase implements AppEng { } protected final void callDeferredBootstrapComponents(Class componentClass, - Consumer invoker) { + Consumer invoker) { final ApiDefinitions definitions = Api.INSTANCE.definitions(); definitions.getRegistry().getBootstrapComponents(componentClass).forEachRemaining(invoker); } @@ -552,7 +552,7 @@ public abstract class AppEngBase implements AppEng { } private ScreenHandlerType registerScreenHandler(String id, - ScreenHandlerRegistry.ExtendedClientHandlerFactory factory, ContainerOpener.Opener opener) { + ScreenHandlerRegistry.ExtendedClientHandlerFactory factory, ContainerOpener.Opener opener) { ScreenHandlerType type = ScreenHandlerRegistry.registerExtended(AppEng.makeId(id), factory); ContainerOpener.addOpener(type, opener); return type; @@ -564,6 +564,7 @@ public abstract class AppEngBase implements AppEng { new MeteoriteStructure(DefaultFeatureConfig.CODEC).configure(DefaultFeatureConfig.INSTANCE)); Registry.register(Registry.FEATURE, AppEng.makeId("charged_quartz_ore"), ChargedQuartzOreFeature.INSTANCE); + // add to all standard biomes Biome.BIOMES.forEach(b -> { addMeteoriteWorldGen(b); addQuartzWorldGen(b); @@ -579,7 +580,8 @@ public abstract class AppEngBase implements AppEng { return; } - b.addStructureFeature(MeteoriteStructure.INSTANCE.configure(FeatureConfig.DEFAULT)); + BiomeModifier modifier = new BiomeModifier(b); + modifier.addStructureFeature(MeteoriteStructure.INSTANCE.configure(FeatureConfig.DEFAULT)); } private static void addQuartzWorldGen(Biome b) { @@ -587,22 +589,23 @@ public abstract class AppEngBase implements AppEng { return; } + BiomeModifier modifier = new BiomeModifier(b); + BlockState quartzOre = Api.instance().definitions().blocks().quartzOre().block().getDefaultState(); - b.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, Feature.ORE - .configure(new OreFeatureConfig(OreFeatureConfig.Target.NATURAL_STONE, quartzOre, + modifier.addFeature(GenerationStep.Feature.UNDERGROUND_ORES, Feature.ORE + .configure(new OreFeatureConfig(OreFeatureConfig.Rules.BASE_STONE_OVERWORLD, quartzOre, AEConfig.instance().getQuartzOresPerCluster())) - .createDecoratedFeature(Decorator.COUNT_RANGE.configure( - new RangeDecoratorConfig(AEConfig.instance().getQuartzOresClusterAmount(), 12, 12, 72)))); + .decorate(Decorator.RANGE.configure(new RangeDecoratorConfig(12, 12, 72))).spreadHorizontally().repeat(AEConfig.instance().getQuartzOresClusterAmount())); if (AEConfig.instance().isFeatureEnabled(AEFeature.CHARGED_CERTUS_ORE)) { BlockState chargedQuartzOre = Api.instance().definitions().blocks().quartzOreCharged().block() .getDefaultState(); - b.addFeature(GenerationStep.Feature.UNDERGROUND_DECORATION, + modifier.addFeature(GenerationStep.Feature.UNDERGROUND_DECORATION, ChargedQuartzOreFeature.INSTANCE .configure(new ChargedQuartzOreConfig(quartzOre, chargedQuartzOre, AEConfig.instance().getSpawnChargedChance())) - .createDecoratedFeature(Decorator.NOPE.configure(NopeDecoratorConfig.field_24892))); + .decorate(Decorator.NOPE.configure(NopeDecoratorConfig.INSTANCE))); } } @@ -615,14 +618,14 @@ public abstract class AppEngBase implements AppEng { } private void registerDimension() { - Registry.register(Registry.BIOME, AppEng.makeId("storage"), StorageCellBiome.INSTANCE); + Registry.register(BuiltinRegistries.BIOME, AppEng.makeId("storage"), StorageCellBiome.INSTANCE); Registry.register(Registry.CHUNK_GENERATOR, AppEng.makeId("storage"), StorageChunkGenerator.CODEC); RegisterDimensionTypeCallback.EVENT.register(registryTracker -> { + DimensionType dimensionType = new DimensionType(OptionalLong.of(12000), false, false, false, false, false, false, true, false, + false, 256, BlockTags.INFINIBURN_OVERWORLD.getId(), 1.0f); - registryTracker.addDimensionType(SpatialDimensionManager.STORAGE_DIMENSION_TYPE, - new DimensionType(OptionalLong.of(12000), false, false, false, false, false, false, true, false, - false, 256, BlockTags.INFINIBURN_OVERWORLD.getId(), 1.0f)); + Registry.register(registryTracker.getDimensionTypes(), SpatialDimensionManager.STORAGE_DIMENSION_TYPE.getValue(), dimensionType); }); } diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index 1490a1960..557e274e8 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -21,6 +21,7 @@ package appeng.core.api.definitions; import static appeng.block.AEBaseBlock.defaultProps; import static appeng.block.crafting.AbstractCraftingUnitBlock.CraftingUnitType; +import appeng.block.storage.ChestBlock; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; @@ -37,6 +38,7 @@ import appeng.api.definitions.ITileDefinition; import appeng.api.features.AEFeature; import appeng.block.AEBaseBlockItemChargeable; import appeng.block.crafting.*; +import appeng.block.crafting.AbstractCraftingUnitBlock.CraftingUnitType; import appeng.block.grindstone.CrankBlock; import appeng.block.grindstone.GrinderBlock; import appeng.block.misc.*; @@ -50,7 +52,6 @@ import appeng.block.spatial.MatrixFrameBlock; import appeng.block.spatial.SpatialIOPortBlock; import appeng.block.spatial.SpatialPylonBlock; import appeng.block.storage.*; -import appeng.block.storage.ChestBlock; import appeng.bootstrap.*; import appeng.bootstrap.components.IInitComponent; import appeng.bootstrap.definitions.TileEntityDefinition; diff --git a/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java b/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java index 21c800282..e09810f62 100644 --- a/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java +++ b/src/main/java/appeng/core/features/registries/MatterCannonAmmoRegistry.java @@ -134,7 +134,7 @@ public class MatterCannonAmmoRegistry implements IMatterCannonAmmoRegistry { // Next, check each item tag for (Map.Entry entry : tagDamageModifiers.entrySet()) { - Tag itemTag = ItemTags.getContainer().get(entry.getKey()); + Tag itemTag = ItemTags.getTagGroup().getTag(entry.getKey()); if (itemTag != null && itemTag.contains(item)) { return entry.getValue().floatValue(); } diff --git a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java index f4e4d48af..5e6f2f705 100644 --- a/src/main/java/appeng/core/features/registries/MovableTileRegistry.java +++ b/src/main/java/appeng/core/features/registries/MovableTileRegistry.java @@ -55,8 +55,8 @@ public class MovableTileRegistry implements IMovableRegistry { private final Tag blockTagBlackList; public MovableTileRegistry() { - this.blockTagWhiteList = BlockTags.getContainer().getOrCreate(TAG_WHITELIST); - this.blockTagBlackList = BlockTags.getContainer().getOrCreate(TAG_BLACKLIST); + this.blockTagWhiteList = BlockTags.getTagGroup().getTagOrEmpty(TAG_WHITELIST); + this.blockTagBlackList = BlockTags.getTagGroup().getTagOrEmpty(TAG_BLACKLIST); } @Override diff --git a/src/main/java/appeng/core/sync/BasePacketHandler.java b/src/main/java/appeng/core/sync/BasePacketHandler.java index b2db79f03..320eced95 100644 --- a/src/main/java/appeng/core/sync/BasePacketHandler.java +++ b/src/main/java/appeng/core/sync/BasePacketHandler.java @@ -25,9 +25,6 @@ import java.util.function.Function; import net.minecraft.network.PacketByteBuf; import appeng.core.sync.packets.*; -import appeng.core.sync.packets.CompassResponsePacket; -import appeng.core.sync.packets.PartPlacementPacket; -import appeng.core.sync.packets.SpawnEntityPacket; public class BasePacketHandler { private static final Map, PacketTypes> REVERSE_LOOKUP = new HashMap<>(); diff --git a/src/main/java/appeng/debug/ItemGenBlockEntity.java b/src/main/java/appeng/debug/ItemGenBlockEntity.java index 691a9d558..654e849ca 100644 --- a/src/main/java/appeng/debug/ItemGenBlockEntity.java +++ b/src/main/java/appeng/debug/ItemGenBlockEntity.java @@ -36,7 +36,7 @@ import alexiil.mc.lib.attributes.Simulation; import alexiil.mc.lib.attributes.item.ItemExtractable; import alexiil.mc.lib.attributes.item.filter.ExactItemStackFilter; import alexiil.mc.lib.attributes.item.filter.ItemFilter; - +import appeng.debug.ItemGenBlockEntity.QueuedItemHandler; import appeng.tile.AEBaseBlockEntity; public class ItemGenBlockEntity extends AEBaseBlockEntity { diff --git a/src/main/java/appeng/debug/ReplicatorCardItem.java b/src/main/java/appeng/debug/ReplicatorCardItem.java index 880b9155d..47d7ff170 100644 --- a/src/main/java/appeng/debug/ReplicatorCardItem.java +++ b/src/main/java/appeng/debug/ReplicatorCardItem.java @@ -31,7 +31,6 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.LiteralText; import net.minecraft.util.*; -import net.minecraft.util.ActionResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.MathHelper; diff --git a/src/main/java/appeng/decorative/solid/QuartzOreBlock.java b/src/main/java/appeng/decorative/solid/QuartzOreBlock.java index 528e194fb..d81fb0d7f 100644 --- a/src/main/java/appeng/decorative/solid/QuartzOreBlock.java +++ b/src/main/java/appeng/decorative/solid/QuartzOreBlock.java @@ -22,6 +22,7 @@ import net.minecraft.block.BlockState; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; import net.minecraft.item.ItemStack; +import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.world.World; @@ -34,7 +35,7 @@ public class QuartzOreBlock extends AEBaseBlock { } @Override - public void onStacksDropped(BlockState state, World world, BlockPos pos, ItemStack stack) { + public void onStacksDropped(BlockState state, ServerWorld world, BlockPos pos, ItemStack stack) { super.onStacksDropped(state, world, pos, stack); if (EnchantmentHelper.getLevel(Enchantments.SILK_TOUCH, stack) == 0) { int i = MathHelper.nextInt(world.random, 2, 5); diff --git a/src/main/java/appeng/entity/AEBaseItemEntity.java b/src/main/java/appeng/entity/AEBaseItemEntity.java index 43db54ecd..cab8ae3d9 100644 --- a/src/main/java/appeng/entity/AEBaseItemEntity.java +++ b/src/main/java/appeng/entity/AEBaseItemEntity.java @@ -45,7 +45,7 @@ public abstract class AEBaseItemEntity extends ItemEntity { } protected List getCheckedEntitiesWithinAABBExcludingEntity(final Box region) { - return this.world.getEntities(this, region); + return this.world.getOtherEntities(this, region); } } diff --git a/src/main/java/appeng/entity/SingularityEntity.java b/src/main/java/appeng/entity/SingularityEntity.java index 98a16e95e..e590defc5 100644 --- a/src/main/java/appeng/entity/SingularityEntity.java +++ b/src/main/java/appeng/entity/SingularityEntity.java @@ -96,7 +96,7 @@ public final class SingularityEntity extends AEBaseItemEntity { // check... other name. if (!matches) { - Tag tag = ItemTags.getContainer().get(TAG_ENDER_PEARL); + Tag tag = ItemTags.getTagGroup().getTag(TAG_ENDER_PEARL); if (tag != null && other.getItem().isIn(tag)) { matches = true; } diff --git a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java index e08fc18a4..660a6f15a 100644 --- a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java +++ b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java @@ -134,7 +134,7 @@ public final class TinyTNTPrimedEntity extends TntEntity implements ICustomEntit final Box area = new Box(this.getX() - 1.5, this.getY() - 1.5f, this.getZ() - 1.5, this.getX() + 1.5, this.getY() + 1.5, this.getZ() + 1.5); - final List list = this.world.getEntities(this, area); + final List list = this.world.getOtherEntities(this, area); for (final Entity e : list) { e.damage(DamageSource.explosion(ex), 6); diff --git a/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java b/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java index 9272aec04..e7f926023 100644 --- a/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java +++ b/src/main/java/appeng/entity/TinyTNTPrimedRenderer.java @@ -66,7 +66,7 @@ public class TinyTNTPrimedRenderer extends EntityRenderer { mStack.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(-90.0F)); mStack.translate(-0.5D, -0.5D, 0.5D); mStack.multiply(Vector3f.POSITIVE_Y.getDegreesQuaternion(90.0F)); - TntMinecartEntityRenderer.method_23190(Blocks.TNT.getDefaultState(), mStack, buffers, packedLight, + TntMinecartEntityRenderer.renderFlashingBlock(Blocks.TNT.getDefaultState(), mStack, buffers, packedLight, tnt.getFuse() / 5 % 2 == 0); mStack.pop(); super.render(tnt, entityYaw, partialTicks, mStack, buffers, packedLight); diff --git a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java index b62aa1152..bc7861d40 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java @@ -64,10 +64,10 @@ public class FluidInterfaceScreen extends UpgradeableScreen @Override public void drawFG(MatrixStack matrices, int offsetX, int offsetY, int mouseX, int mouseY) { - this.textRenderer.draw(matrices, this.getGuiDisplayName(new LiteralText("Fluid Terminal")), 8, 6, 4210752); - this.textRenderer.draw(matrices, GuiText.inventory.getLocal(), 8, this.backgroundHeight - 96 + 3, 4210752); + this.textRenderer.method_30883(matrices, this.getGuiDisplayName(new LiteralText("Fluid Terminal")), 8, 6, 4210752); + this.textRenderer.method_30883(matrices, GuiText.inventory.text(), 8, this.backgroundHeight - 96 + 3, 4210752); } @Override @@ -171,7 +171,7 @@ public class FluidTerminalScreen extends AEBaseMEScreen list.add(new LiteralText(formattedAmount)); list.add(new LiteralText(modName)); - this.renderTooltip(matrices, list, mouseX, mouseY); + this.method_30901(matrices, list, mouseX, mouseY); return; } diff --git a/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java index 84dca5ca9..5ff86bc5d 100644 --- a/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java +++ b/src/main/java/appeng/fluids/client/render/FluidStackSizeRenderer.java @@ -30,6 +30,9 @@ import appeng.core.AEConfig; import appeng.util.ISlimReadableNumberConverter; import appeng.util.IWideReadableNumberConverter; import appeng.util.ReadableNumberConverter; +import net.minecraft.text.LiteralText; +import net.minecraft.text.StringRenderable; +import net.minecraft.text.Text; /** * @author AlgorithmX2 @@ -47,12 +50,12 @@ public class FluidStackSizeRenderer { public void renderStackSize(TextRenderer fontRenderer, IAEFluidStack aeStack, int xPos, int yPos) { if (aeStack != null && aeStack.getStackSize() > 0) { - final String stackSize = this.getToBeRenderedStackSize(aeStack.getStackSize()); + final Text stackSize = this.getToBeRenderedStackSize(aeStack.getStackSize()); StackSizeRenderer.renderSizeLabel(fontRenderer, xPos, yPos, stackSize); } } - private String getToBeRenderedStackSize(final long originalSize) { + private Text getToBeRenderedStackSize(final long originalSize) { // Handle any value below 100 (large font) or 1000 (small font) Buckets with a // custom formatter, // otherwise pass it to the normal number converter @@ -63,25 +66,25 @@ public class FluidStackSizeRenderer { } if (AEConfig.instance().isUseLargeFonts()) { - return SLIM_CONVERTER.toSlimReadableForm(originalSize / 1000); + return new LiteralText(SLIM_CONVERTER.toSlimReadableForm(originalSize / 1000)); } else { - return WIDE_CONVERTER.toWideReadableForm(originalSize / 1000); + return new LiteralText(WIDE_CONVERTER.toWideReadableForm(originalSize / 1000)); } } - private String getSlimRenderedStacksize(final long originalSize) { + private Text getSlimRenderedStacksize(final long originalSize) { final int log = 1 + (int) Math.floor(Math.log10(originalSize)) / 2; return this.getRenderedFluidStackSize(originalSize, log); } - private String getWideRenderedStacksize(final long originalSize) { + private Text getWideRenderedStacksize(final long originalSize) { final int log = (int) Math.floor(Math.log10(originalSize)) / 2; return this.getRenderedFluidStackSize(originalSize, log); } - private String getRenderedFluidStackSize(final long originalSize, final int log) { + private Text getRenderedFluidStackSize(final long originalSize, final int log) { final int index = Math.max(0, Math.min(3, log)); final DecimalFormatSymbols symbols = new DecimalFormatSymbols(); @@ -90,7 +93,7 @@ public class FluidStackSizeRenderer { format.setDecimalFormatSymbols(symbols); format.setRoundingMode(RoundingMode.DOWN); - return format.format(originalSize / 1000d); + return new LiteralText(format.format(originalSize / 1000d)); } } diff --git a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java index bbe10b6df..09ef1890a 100644 --- a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java @@ -315,7 +315,7 @@ public class FluidAnnihilationPlanePart extends BasicStatePart implements IGridT } private boolean isFluidBlacklisted(Fluid fluid) { - Tag tag = FluidTags.getContainer().getOrCreate(TAG_BLACKLIST); + Tag tag = FluidTags.getTagGroup().getTagOrEmpty(TAG_BLACKLIST); return fluid.isIn(tag); } diff --git a/src/main/java/appeng/fluids/parts/FluidImportBusPart.java b/src/main/java/appeng/fluids/parts/FluidImportBusPart.java index 554a3633b..59241da9b 100644 --- a/src/main/java/appeng/fluids/parts/FluidImportBusPart.java +++ b/src/main/java/appeng/fluids/parts/FluidImportBusPart.java @@ -26,7 +26,6 @@ import javax.annotation.Nonnull; import net.minecraft.item.ItemStack; import net.minecraft.util.Identifier; - import alexiil.mc.lib.attributes.Simulation; import alexiil.mc.lib.attributes.fluid.FluidAttributes; import alexiil.mc.lib.attributes.fluid.FluidExtractable; diff --git a/src/main/java/appeng/hooks/RegisterDimensionTypeCallback.java b/src/main/java/appeng/hooks/RegisterDimensionTypeCallback.java index e2695d727..127044cc9 100644 --- a/src/main/java/appeng/hooks/RegisterDimensionTypeCallback.java +++ b/src/main/java/appeng/hooks/RegisterDimensionTypeCallback.java @@ -2,7 +2,7 @@ package appeng.hooks; import net.fabricmc.fabric.api.event.Event; import net.fabricmc.fabric.api.event.EventFactory; -import net.minecraft.util.registry.RegistryTracker; +import net.minecraft.util.registry.DynamicRegistryManager; public interface RegisterDimensionTypeCallback { @@ -13,6 +13,6 @@ public interface RegisterDimensionTypeCallback { } }); - void addDimensionTypes(RegistryTracker.Modifiable registryTracker); + void addDimensionTypes(DynamicRegistryManager registryTracker); } diff --git a/src/main/java/appeng/integration/modules/jei/FacadeRecipeCategory.java b/src/main/java/appeng/integration/modules/jei/FacadeRecipeCategory.java index 5cc9941d6..f3e552448 100644 --- a/src/main/java/appeng/integration/modules/jei/FacadeRecipeCategory.java +++ b/src/main/java/appeng/integration/modules/jei/FacadeRecipeCategory.java @@ -28,7 +28,7 @@ public class FacadeRecipeCategory extends DefaultCraftingCategory { @Override public String getCategoryName() { - return I18n.translate(FacadeCreativeTab.getGroup().getTranslationKey()); + return FacadeCreativeTab.getGroup().getTranslationKey().getString(); } } diff --git a/src/main/java/appeng/items/parts/FacadeItem.java b/src/main/java/appeng/items/parts/FacadeItem.java index c8613645e..8cd58fd7c 100644 --- a/src/main/java/appeng/items/parts/FacadeItem.java +++ b/src/main/java/appeng/items/parts/FacadeItem.java @@ -104,7 +104,7 @@ public class FacadeItem extends AEBaseItem implements IFacadeItem, IAlphaPassIte BlockState blockState = block.getDefaultState(); final boolean areTileEntitiesEnabled = AEConfig.instance().isFeatureEnabled(AEFeature.TILE_ENTITY_FACADES); - Tag whitelistTag = BlockTags.getContainer().getOrCreate(TAG_WHITELISTED); + Tag whitelistTag = BlockTags.getTagGroup().getTagOrEmpty(TAG_WHITELISTED); final boolean isWhiteListed = block.isIn(whitelistTag); final boolean isModel = blockState.getRenderType() == BlockRenderType.MODEL; diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index f9835ee75..194528bba 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -221,7 +221,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem return ipb.getColor(); } else { for (Map.Entry entry : TAG_TO_COLOR.entrySet()) { - Tag tag = ItemTags.getContainer().get(entry.getKey()); + Tag tag = ItemTags.getTagGroup().getTag(entry.getKey()); if (tag != null && paintBall.getItem().isIn(tag)) { return entry.getValue(); } diff --git a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java index f2723edbc..f3749163e 100644 --- a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java +++ b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java @@ -185,7 +185,7 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< Entity entity = null; Vec3d entityIntersection = null; - final List list = w.getEntities(p, bb); + final List list = w.getOtherEntities(p, bb); double closest = 9999999.0D; for (int l = 0; l < list.size(); ++l) { @@ -291,7 +291,7 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< Entity entity = null; Vec3d entityIntersection = null; - final List list = w.getEntities(p, bb); + final List list = w.getOtherEntities(p, bb); double closest = 9999999.0D; for (int l = 0; l < list.size(); ++l) { diff --git a/src/main/java/appeng/mixins/BiomeAccessor.java b/src/main/java/appeng/mixins/BiomeAccessor.java new file mode 100644 index 000000000..b294c8b57 --- /dev/null +++ b/src/main/java/appeng/mixins/BiomeAccessor.java @@ -0,0 +1,18 @@ +package appeng.mixins; + +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.GenerationSettings; +import net.minecraft.world.gen.feature.StructureFeature; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.List; +import java.util.Map; + +@Mixin(Biome.class) +public interface BiomeAccessor { + + @Accessor + Map>> getField_26634(); + +} diff --git a/src/main/java/appeng/mixins/DimensionTypeMixin.java b/src/main/java/appeng/mixins/DimensionTypeMixin.java index fc557e5e0..31936a42d 100644 --- a/src/main/java/appeng/mixins/DimensionTypeMixin.java +++ b/src/main/java/appeng/mixins/DimensionTypeMixin.java @@ -1,11 +1,11 @@ package appeng.mixins; +import net.minecraft.util.registry.DynamicRegistryManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import net.minecraft.util.registry.RegistryTracker; import net.minecraft.world.dimension.DimensionType; import appeng.hooks.RegisterDimensionTypeCallback; @@ -14,7 +14,7 @@ import appeng.hooks.RegisterDimensionTypeCallback; public class DimensionTypeMixin { @Inject(method = "addRegistryDefaults", at = @At("TAIL")) - private static void addRegistryDefaults(RegistryTracker.Modifiable registryTracker, CallbackInfoReturnable cir) { + private static void addRegistryDefaults(DynamicRegistryManager.Impl registryTracker, CallbackInfoReturnable cir) { RegisterDimensionTypeCallback.EVENT.invoker().addDimensionTypes(registryTracker); } diff --git a/src/main/java/appeng/mixins/GenerationSettingsAccessor.java b/src/main/java/appeng/mixins/GenerationSettingsAccessor.java new file mode 100644 index 000000000..097062814 --- /dev/null +++ b/src/main/java/appeng/mixins/GenerationSettingsAccessor.java @@ -0,0 +1,27 @@ +package appeng.mixins; + +import net.minecraft.world.biome.GenerationSettings; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.List; +import java.util.function.Supplier; + +@Mixin(GenerationSettings.class) +public interface GenerationSettingsAccessor { + + @Accessor + List>>> getFeatures(); + + @Accessor + void setFeatures(List>>> features); + + @Accessor + List>> getStructureFeatures(); + + @Accessor + void setStructureFeatures(List>> structureFeatures); + +} diff --git a/src/main/java/appeng/mixins/MinecraftServerMixin.java b/src/main/java/appeng/mixins/MinecraftServerMixin.java index 4e4b402d8..fbdf56638 100644 --- a/src/main/java/appeng/mixins/MinecraftServerMixin.java +++ b/src/main/java/appeng/mixins/MinecraftServerMixin.java @@ -6,6 +6,7 @@ import java.util.concurrent.Executor; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; +import net.minecraft.util.registry.DynamicRegistryManager; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -14,7 +15,6 @@ import net.minecraft.server.WorldGenerationProgressListener; import net.minecraft.server.world.ServerWorld; import net.minecraft.util.registry.Registry; import net.minecraft.util.registry.RegistryKey; -import net.minecraft.util.registry.RegistryTracker; import net.minecraft.world.SaveProperties; import net.minecraft.world.World; import net.minecraft.world.border.WorldBorder; @@ -33,7 +33,7 @@ import appeng.hooks.DynamicDimensions; public class MinecraftServerMixin implements DynamicDimensions { @Shadow - private RegistryTracker.Modifiable dimensionTracker; + private DynamicRegistryManager.Impl registryManager; @Shadow private Map, ServerWorld> worlds; @@ -58,12 +58,12 @@ public class MinecraftServerMixin implements DynamicDimensions { Preconditions.checkArgument(!generatorOptions.getDimensionMap().containsId(worldId.getValue()), "Dimension config with id %s already exists.", worldId.getValue()); - DimensionType dimensionType = dimensionTracker.getDimensionTypeRegistry().get(dimensionTypeId); + DimensionType dimensionType = registryManager.getDimensionTypes().get(dimensionTypeId); Preconditions.checkArgument(dimensionType != null, "dimensionTypeId %s is not registered", dimensionTypeId); // Create dimension options with the given world-id and chunk generator DimensionOptions dimensionOptions = new DimensionOptions( - () -> dimensionTracker.getDimensionTypeRegistry().get(dimensionTypeId), chunkGenerator); + () -> registryManager.getDimensionTypes().get(dimensionTypeId), chunkGenerator); ServerWorldProperties serverWorldProperties = this.saveProperties.getMainWorldProperties(); @@ -93,10 +93,11 @@ public class MinecraftServerMixin implements DynamicDimensions { // Adding it here will cause the world to be re-created on server restart RegistryKey dimOptKey = RegistryKey.of(Registry.DIMENSION_OPTIONS, worldId.getValue()); generatorOptions.getDimensionMap().add(dimOptKey, dimensionOptions); - generatorOptions.getDimensionMap().markLoaded(dimOptKey); // Otherwise it wont be saved + // FIXME FABRIC: might not be needed anymore if dimensions will save regardless + // FIXME FABRIC generatorOptions.getDimensionMap().markLoaded(dimOptKey); // Otherwise it wont be saved // Ensure the save properties are saved, or the world will potentially be lost // on restart - this.session.method_27426(this.dimensionTracker, this.saveProperties, self.getPlayerManager().getUserData()); + this.session.method_27426(this.registryManager, this.saveProperties, self.getPlayerManager().getUserData()); return world; } diff --git a/src/main/java/appeng/parts/PartPlacement.java b/src/main/java/appeng/parts/PartPlacement.java index 491228def..78075e950 100644 --- a/src/main/java/appeng/parts/PartPlacement.java +++ b/src/main/java/appeng/parts/PartPlacement.java @@ -39,7 +39,6 @@ import net.minecraft.util.math.Direction; import net.minecraft.util.math.Vec3d; import net.minecraft.world.RayTraceContext; import net.minecraft.world.World; - import appeng.api.definitions.IBlockDefinition; import appeng.api.parts.*; import appeng.api.util.AEPartLocation; diff --git a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java index 79010dff2..3ad352501 100644 --- a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java +++ b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java @@ -566,7 +566,7 @@ public class AnnihilationPlanePart extends BasicStatePart implements IGridTickab // breaking // i.e. our cable-buses do this (bad practice, really) final Box box = new Box(pos).expand(0.2); - for (final Object ei : w.getEntities(ItemEntity.class, box, null)) { + for (final Object ei : w.getEntitiesByClass(ItemEntity.class, box, null)) { if (ei instanceof ItemEntity) { final ItemEntity entityItem = (ItemEntity) ei; this.storeEntityItem(entityItem); @@ -616,12 +616,12 @@ public class AnnihilationPlanePart extends BasicStatePart implements IGridTickab } public static boolean isBlockBlacklisted(Block b) { - Tag tag = BlockTags.getContainer().getOrCreate(TAG_BLACKLIST); + Tag tag = BlockTags.getTagGroup().getTagOrEmpty(TAG_BLACKLIST); return b.isIn(tag); } public static boolean isItemBlacklisted(Item i) { - Tag tag = ItemTags.getContainer().getOrCreate(TAG_BLACKLIST); + Tag tag = ItemTags.getTagGroup().getTagOrEmpty(TAG_BLACKLIST); return i.isIn(tag); } diff --git a/src/main/java/appeng/parts/automation/FormationPlanePart.java b/src/main/java/appeng/parts/automation/FormationPlanePart.java index 5b20354c6..ac03e24c7 100644 --- a/src/main/java/appeng/parts/automation/FormationPlanePart.java +++ b/src/main/java/appeng/parts/automation/FormationPlanePart.java @@ -346,7 +346,7 @@ public class FormationPlanePart extends AbstractFormationPlanePart private int countEntitesAround(World world, BlockPos pos) { final Box t = new Box(pos).expand(8); - final List list = world.getEntities(Entity.class, t, null); + final List list = world.getEntitiesByClass(Entity.class, t, null); return list.size(); } diff --git a/src/main/java/appeng/recipes/handlers/GrinderRecipes.java b/src/main/java/appeng/recipes/handlers/GrinderRecipes.java index e40416ed6..9c536e59b 100644 --- a/src/main/java/appeng/recipes/handlers/GrinderRecipes.java +++ b/src/main/java/appeng/recipes/handlers/GrinderRecipes.java @@ -19,7 +19,7 @@ public final class GrinderRecipes { @Nullable public static GrinderRecipe findForInput(World world, ItemStack input) { // FIXME: this is slow, this creates a full copy of the list everytime - List grinderRecipes = world.getRecipeManager().method_30027(GrinderRecipe.TYPE); + List grinderRecipes = world.getRecipeManager().listAllOfType(GrinderRecipe.TYPE); for (GrinderRecipe recipe : grinderRecipes) { if (recipe.getIngredient().test(input) && input.getCount() >= recipe.getIngredientCount()) { return recipe; @@ -34,7 +34,7 @@ public final class GrinderRecipes { */ public static boolean isValidIngredient(World world, ItemStack stack) { // FIXME: this is slow, this creates a full copy of the list everytime - List grinderRecipes = world.getRecipeManager().method_30027(GrinderRecipe.TYPE); + List grinderRecipes = world.getRecipeManager().listAllOfType(GrinderRecipe.TYPE); for (GrinderRecipe recipe : grinderRecipes) { if (recipe.getIngredient().test(stack)) { return true; diff --git a/src/main/java/appeng/recipes/handlers/InscriberRecipe.java b/src/main/java/appeng/recipes/handlers/InscriberRecipe.java index 3462aff88..bc6f0562f 100644 --- a/src/main/java/appeng/recipes/handlers/InscriberRecipe.java +++ b/src/main/java/appeng/recipes/handlers/InscriberRecipe.java @@ -3,8 +3,6 @@ package appeng.recipes.handlers; import net.minecraft.inventory.Inventory; import net.minecraft.item.ItemStack; import net.minecraft.recipe.*; -import net.minecraft.recipe.Ingredient; -import net.minecraft.recipe.Recipe; import net.minecraft.util.Identifier; import net.minecraft.util.collection.DefaultedList; import net.minecraft.world.World; diff --git a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java index 66f4bfc02..334e296fd 100644 --- a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java +++ b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java @@ -170,8 +170,8 @@ public class TestMeteoritesCommand implements ISubCommand { // Add a tooltip MutableText tooltip = new LiteralText(settings.toString() + "\nBiome: ") - .append(world.getBiome(pos).getName()); - msg.styled(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); + .append(world.getBiome(pos).toString()); + msg.styled(style -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); sender.sendFeedback(msg, true); } diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index c21607fc5..0a7824483 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -33,6 +33,7 @@ import net.minecraft.server.world.ServerWorld; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.BlockView; +import net.minecraft.world.ServerWorldAccess; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.chunk.Chunk; @@ -89,18 +90,14 @@ public final class CompassService { } } - public void tryUpdateArea(final WorldAccess w, ChunkPos chunkPos) { + public void tryUpdateArea(final ServerWorldAccess w, ChunkPos chunkPos) { // If this seems weird: during worldgen, WorldAccess is a specific region, but // getWorld is // still the server world. We do need to use the world access to get the chunk // in question // though, since during worldgen, it's not comitted to the actual world yet. - World world = w.getWorld(); - if (!(world instanceof ServerWorld)) { - return; - } Chunk chunk = w.getChunk(chunkPos.x, chunkPos.z); - updateArea((ServerWorld) world, chunk); + updateArea(w.toServerWorld(), chunk); } public void updateArea(final ServerWorld w, Chunk chunk) { diff --git a/src/main/java/appeng/spatial/StorageCellBiome.java b/src/main/java/appeng/spatial/StorageCellBiome.java index 175a843b3..f4eb10514 100644 --- a/src/main/java/appeng/spatial/StorageCellBiome.java +++ b/src/main/java/appeng/spatial/StorageCellBiome.java @@ -18,31 +18,27 @@ package appeng.spatial; -import net.fabricmc.api.EnvType; -import net.fabricmc.api.Environment; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeEffects; +import net.minecraft.world.biome.GenerationSettings; +import net.minecraft.world.biome.SpawnSettings; import net.minecraft.world.gen.surfacebuilder.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; -public class StorageCellBiome extends Biome { +public class StorageCellBiome { - public static final StorageCellBiome INSTANCE = new StorageCellBiome(); - - public StorageCellBiome() { - super(new Biome.Settings() - .surfaceBuilder(new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_CONFIG)) - .precipitation(Precipitation.NONE).category(Category.NONE).depth(0).scale(1) - // Copied from the vanilla void biome - .temperature(0.5F).downfall(0.5F) - .effects(new BiomeEffects.Builder().waterColor(4159204).waterFogColor(329011).fogColor(0).build()) - .parent(null)); - } - - @Override - @Environment(EnvType.CLIENT) - public int getSkyColor() { - return 0x111111; - } + public static final Biome INSTANCE = new Biome.Settings() + .generationSettings(new GenerationSettings.Builder() + .surfaceBuilder(new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_CONFIG)) + .build()) + .precipitation(Biome.Precipitation.NONE).category(Biome.Category.NONE).depth(0).scale(1) + // Copied from the vanilla void biome + .temperature(0.5F).downfall(0.5F) + .effects(new BiomeEffects.Builder().waterColor(4159204).waterFogColor(329011).fogColor(0).skyColor(0x111111).build()) + .parent(null) + .spawnSettings(new SpawnSettings.Builder() + .creatureSpawnProbability(0) + .build()) + .build(); } diff --git a/src/main/java/appeng/spatial/StorageChunkGenerator.java b/src/main/java/appeng/spatial/StorageChunkGenerator.java index 71c30a810..8d249a9b6 100644 --- a/src/main/java/appeng/spatial/StorageChunkGenerator.java +++ b/src/main/java/appeng/spatial/StorageChunkGenerator.java @@ -66,7 +66,7 @@ public class StorageChunkGenerator extends ChunkGenerator { } @Override - protected Codec method_28506() { + protected Codec getCodec() { return CODEC; } diff --git a/src/main/java/appeng/spatial/StorageHelper.java b/src/main/java/appeng/spatial/StorageHelper.java index 5cb22c51c..a6bb52e0c 100644 --- a/src/main/java/appeng/spatial/StorageHelper.java +++ b/src/main/java/appeng/spatial/StorageHelper.java @@ -105,7 +105,7 @@ public class StorageHelper { // FIXME FABRIC new METeleporter(link) float yaw = entity.yaw; - entity = entity.changeDimension(link.dim); + entity = entity.moveToWorld(link.dim); entity.yaw = yaw; entity.refreshPositionAfterTeleport(link.x, link.y, link.z); entity.setVelocity(0, 0, 0); diff --git a/src/main/java/appeng/tile/misc/InscriberRecipes.java b/src/main/java/appeng/tile/misc/InscriberRecipes.java index bdb2028d1..b8022cca5 100644 --- a/src/main/java/appeng/tile/misc/InscriberRecipes.java +++ b/src/main/java/appeng/tile/misc/InscriberRecipes.java @@ -32,7 +32,7 @@ public final class InscriberRecipes { * Returns an unmodifiable view of all registered inscriber recipes. */ public static Iterable getRecipes(World world) { - return world.getRecipeManager().method_30027(InscriberRecipe.TYPE); + return world.getRecipeManager().listAllOfType(InscriberRecipe.TYPE); } @Nullable diff --git a/src/main/java/appeng/tile/storage/ChestBlockEntity.java b/src/main/java/appeng/tile/storage/ChestBlockEntity.java index 32a7ca3cd..65f273d72 100644 --- a/src/main/java/appeng/tile/storage/ChestBlockEntity.java +++ b/src/main/java/appeng/tile/storage/ChestBlockEntity.java @@ -39,7 +39,6 @@ import net.minecraft.util.Tickable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.world.World; - import alexiil.mc.lib.attributes.AttributeList; import alexiil.mc.lib.attributes.Simulation; import alexiil.mc.lib.attributes.fluid.FluidInsertable; diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index af9e73eb6..3d35dae0b 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -694,7 +694,7 @@ public class Platform { Entity entity = null; double closest = 9999999.0D; if (hitEntities) { - final List list = w.getEntities(p, bb); + final List list = w.getOtherEntities(p, bb); for (final Entity entity1 : list) { if (entity1.isAlive() && entity1 != p && !(entity1 instanceof ItemEntity)) { diff --git a/src/main/java/appeng/worldgen/BiomeModifier.java b/src/main/java/appeng/worldgen/BiomeModifier.java new file mode 100644 index 000000000..01eca8f56 --- /dev/null +++ b/src/main/java/appeng/worldgen/BiomeModifier.java @@ -0,0 +1,62 @@ +package appeng.worldgen; + +import appeng.mixins.BiomeAccessor; +import appeng.mixins.GenerationSettingsAccessor; +import com.google.common.collect.Lists; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import net.minecraft.world.gen.feature.StructureFeature; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Supplier; + +public final class BiomeModifier { + + private final BiomeAccessor biomeAccessor; + + private final GenerationSettingsAccessor generationSettingsAccessor; + + @SuppressWarnings("ConstantConditions") + public BiomeModifier(Biome biome) { + this.biomeAccessor = (BiomeAccessor) (Object) biome; + this.generationSettingsAccessor = (GenerationSettingsAccessor) biome.getGenerationSettings(); + } + + public void addFeature(GenerationStep.Feature step, ConfiguredFeature feature) { + + int stepIndex = step.ordinal(); + List>>> featuresByStep = new ArrayList<>(generationSettingsAccessor.getFeatures()); + + while (featuresByStep.size() <= stepIndex) { + featuresByStep.add(Lists.newArrayList()); + } + + List>> features = new ArrayList<>(featuresByStep.get(stepIndex)); + features.add(() -> feature); + featuresByStep.set(stepIndex, features); + + generationSettingsAccessor.setFeatures(featuresByStep); + + } + + public void addStructureFeature(ConfiguredStructureFeature structure) { + List>> features = new ArrayList<>(generationSettingsAccessor.getStructureFeatures()); + features.add(() -> structure); + generationSettingsAccessor.setStructureFeatures(features); + + // Add it to the structures that will generate pieces within this biome, + // this is only half-correct since a structure can start in an adjacent biome + // and extend into biomes that would usually not start the structure + Map>> structuresByStage = biomeAccessor.getField_26634(); + int step = structure.feature.getGenerationStep().ordinal(); + if (!structuresByStage.containsKey(step)) { + structuresByStage.put(step, new ArrayList<>()); + } + structuresByStage.get(step).add(structure.feature); + } + +} diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java index e473218e6..efa8a1f6d 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java @@ -15,7 +15,7 @@ public class ChargedQuartzOreConfig implements FeatureConfig { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance .group(BlockState.CODEC.fieldOf("target").forGetter((config) -> config.target), BlockState.CODEC.fieldOf("state").forGetter((config) -> config.state), - Codec.FLOAT.fieldOf("chance").withDefault(0f).forGetter((config) -> config.chance)) + Codec.FLOAT.fieldOf("chance").orElse(0f).forGetter((config) -> config.chance)) .apply(instance, ChargedQuartzOreConfig::new)); public final BlockState target; diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index be53a280e..6ff2da4c5 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -1,15 +1,12 @@ package appeng.worldgen; import java.util.Random; -import java.util.function.Predicate; import com.mojang.serialization.Codec; - -import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.Heightmap; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.Feature; @@ -28,8 +25,7 @@ public class ChargedQuartzOreFeature extends Feature { } @Override - public boolean generate(ServerWorldAccess worldIn, net.minecraft.world.gen.StructureAccessor structureAccessor, - ChunkGenerator generator, Random rand, BlockPos pos, ChargedQuartzOreConfig config) { + public boolean generate(StructureWorldAccess worldIn, ChunkGenerator generator, Random rand, BlockPos pos, ChargedQuartzOreConfig config) { ChunkPos chunkPos = new ChunkPos(pos); BlockPos.Mutable bpos = new BlockPos.Mutable(); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java b/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java index fcd3474f0..75c06b5d7 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoritePlacer.java @@ -193,7 +193,7 @@ public final class MeteoritePlacer { } } - for (final Object o : world.getEntities(ItemEntity.class, + for (final Object o : world.getEntitiesByClass(ItemEntity.class, new Box(minX(x - 30), y - 5, minZ(z - 30), maxX(x + 30), y + 30, maxZ(z + 30)), null)) { final Entity e = (Entity) o; e.remove(); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java index 8f3eb69ee..1abca2e04 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java @@ -26,7 +26,7 @@ import net.minecraft.structure.StructurePieceType; import net.minecraft.util.math.BlockBox; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.gen.StructureAccessor; import net.minecraft.world.gen.chunk.ChunkGenerator; @@ -85,7 +85,7 @@ public class MeteoriteStructurePiece extends StructurePiece { } @Override - public boolean generate(ServerWorldAccess world, StructureAccessor structureAccessor, ChunkGenerator chunkGenerator, + public boolean generate(StructureWorldAccess world, StructureAccessor structureAccessor, ChunkGenerator chunkGenerator, Random random, BlockBox bounds, ChunkPos chunkPos, BlockPos blockPos) { MeteoritePlacer placer = new MeteoritePlacer(world, settings, bounds); placer.place(); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java index a442fcd3e..d158f667b 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java @@ -14,6 +14,7 @@ import net.minecraft.tag.Tag; import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockBox; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap; import net.minecraft.world.Heightmap.Type; import net.minecraft.world.biome.Biome; @@ -26,9 +27,9 @@ import appeng.worldgen.meteorite.fallout.FalloutMode; public class MeteoriteStructureStart extends StructureStart { - private final Tag sandTag = BlockTags.getContainer().getOrCreate(new Identifier("minecraft:sand")); - private final Tag terracottaTag = BlockTags.getContainer() - .getOrCreate(new Identifier("c:terracotta_blocks")); + private final Tag sandTag = BlockTags.getTagGroup().getTagOrEmpty(new Identifier("minecraft:sand")); + private final Tag terracottaTag = BlockTags.getTagGroup() + .getTagOrEmpty(new Identifier("c:terracotta_blocks")); public MeteoriteStructureStart(StructureFeature feature, int chunkX, int chunkZ, BlockBox box, int references, long seed) { @@ -36,8 +37,7 @@ public class MeteoriteStructureStart extends StructureStart .9f; - FalloutMode fallout = getFalloutFromBaseBlock(spawnBiome.getSurfaceConfig().getTopMaterial()); + FalloutMode fallout = getFalloutFromBaseBlock(spawnBiome.getGenerationSettings().getSurfaceConfig().getTopMaterial()); children.add( new MeteoriteStructurePiece(actualPos, meteoriteRadius, craterType, fallout, pureCrater, craterLake)); diff --git a/src/main/java/appeng/worldgen/meteorite/fallout/FalloutCopy.java b/src/main/java/appeng/worldgen/meteorite/fallout/FalloutCopy.java index 6408fc947..0456634cf 100644 --- a/src/main/java/appeng/worldgen/meteorite/fallout/FalloutCopy.java +++ b/src/main/java/appeng/worldgen/meteorite/fallout/FalloutCopy.java @@ -37,7 +37,7 @@ public class FalloutCopy extends Fallout { final BlockState skyStone) { super(putter, skyStone); this.putter = putter; - this.block = w.getBiome(pos).getSurfaceConfig().getTopMaterial(); + this.block = w.getBiome(pos).getGenerationSettings().getSurfaceConfig().getTopMaterial(); } @Override diff --git a/src/main/resources/appliedenergistics2.mixins.json b/src/main/resources/appliedenergistics2.mixins.json index 35b0bcf3b..8641f3830 100644 --- a/src/main/resources/appliedenergistics2.mixins.json +++ b/src/main/resources/appliedenergistics2.mixins.json @@ -12,7 +12,9 @@ "TntAccessor", "DimensionTypeMixin", "MinecraftServerMixin", - "ThreadedAnvilChunkStorageAccessor" + "ThreadedAnvilChunkStorageAccessor", + "GenerationSettingsAccessor", + "BiomeAccessor" ], "client": [ "ModelsReloadMixin",