From 84e6aaa1223dd8711124f6ead3ac17dcb58493f3 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Mon, 27 Jul 2020 23:50:28 +0200 Subject: [PATCH 01/11] Compiles again. --- gradle.properties | 2 +- src/api/java/appeng/api/config/Upgrades.java | 2 +- .../java/appeng/api/features/IWorldGen.java | 5 +- .../items/ISpatialStorageCell.java | 6 +- .../appeng/api/storage/ISpatialDimension.java | 16 +- .../block/AEBaseBlockItemChargeable.java | 8 +- .../java/appeng/block/AEBaseTileBlock.java | 20 -- .../java/appeng/block/misc/TinyTNTBlock.java | 4 +- .../block/networking/CableBusBlock.java | 10 +- .../java/appeng/block/storage/ChestBlock.java | 3 +- src/main/java/appeng/client/ClientHelper.java | 3 +- .../appeng/client/gui/AEBaseMEScreen.java | 16 +- .../java/appeng/client/gui/AEBaseScreen.java | 60 +++--- .../gui/implementations/ChestScreen.java | 6 +- .../gui/implementations/CondenserScreen.java | 6 +- .../implementations/CraftAmountScreen.java | 6 +- .../implementations/CraftConfirmScreen.java | 6 +- .../implementations/CraftingCPUScreen.java | 4 +- .../gui/implementations/DriveScreen.java | 6 +- .../implementations/FormationPlaneScreen.java | 4 +- .../gui/implementations/GrinderScreen.java | 4 +- .../gui/implementations/IOPortScreen.java | 2 +- .../gui/implementations/InscriberScreen.java | 4 +- .../gui/implementations/InterfaceScreen.java | 4 +- .../InterfaceTerminalScreen.java | 4 +- .../implementations/MEMonitorableScreen.java | 6 +- .../implementations/NetworkStatusScreen.java | 6 +- .../implementations/NetworkToolScreen.java | 2 +- .../implementations/PatternTermScreen.java | 4 +- .../client/gui/implementations/QNBScreen.java | 2 +- .../implementations/QuartzKnifeScreen.java | 2 +- .../gui/implementations/SkyChestScreen.java | 2 +- .../implementations/SpatialIOPortScreen.java | 2 +- .../gui/implementations/StorageBusScreen.java | 4 +- .../implementations/UpgradeableScreen.java | 2 +- .../VibrationChamberScreen.java | 2 +- .../gui/implementations/WirelessScreen.java | 2 +- .../client/gui/widgets/ActionButton.java | 10 +- .../client/gui/widgets/ProgressBar.java | 2 +- .../gui/widgets/SettingToggleButton.java | 13 +- .../appeng/client/me/ClientDCInternalInv.java | 2 +- .../render/FacadeDispatcherBakedModel.java | 3 +- .../client/render/FacingToRotation.java | 2 +- .../client/render/SpatialSkyRender.java | 8 +- .../render/cablebus/FacadeBlockAccess.java | 6 + .../crafting/EncodedPatternBakedModel.java | 7 +- .../client/render/effects/ChargedOreFX.java | 7 +- .../client/render/effects/CraftingFx.java | 2 +- .../client/render/effects/LightningArcFX.java | 7 +- .../client/render/effects/ParticleTypes.java | 18 +- .../render/model/AutoRotatingBakedModel.java | 2 +- .../render/model/BiometricCardBakedModel.java | 3 +- .../model/ColorApplicatorBakedModel.java | 2 +- .../render/model/MemoryCardBakedModel.java | 3 +- .../client/render/model/MemoryCardModel.java | 4 +- .../render/model/SkyCompassBakedModel.java | 5 +- .../render/tesr/ChestTileEntityRenderer.java | 2 +- .../appeng/client/render/tesr/CrankTESR.java | 2 +- .../client/render/tesr/SkyCompassTESR.java | 2 +- .../appeng/container/ContainerLocator.java | 45 ++--- .../appeng/container/guisync/SyncData.java | 2 +- .../CraftConfirmContainer.java | 3 +- .../WirelessTermContainer.java | 3 +- src/main/java/appeng/core/AppEng.java | 6 +- src/main/java/appeng/core/Registration.java | 17 +- .../java/appeng/core/api/ApiClientHelper.java | 16 +- .../core/api/definitions/ApiBlocks.java | 2 +- .../features/registries/WirelessRegistry.java | 9 +- .../features/registries/WorldGenRegistry.java | 22 +-- .../core/localization/ButtonToolTips.java | 18 +- .../appeng/core/localization/GuiText.java | 23 ++- .../core/stats/AppEngAdvancementTrigger.java | 23 ++- .../core/sync/network/NetworkHandler.java | 9 +- .../appeng/core/sync/network/TargetPoint.java | 19 +- .../java/appeng/core/worlddata/WorldData.java | 6 +- .../appeng/debug/ChunkLoaderTileEntity.java | 2 +- .../appeng/debug/CubeGeneratorTileEntity.java | 5 +- src/main/java/appeng/debug/DebugCardItem.java | 3 +- .../appeng/debug/DebugPartPlacerItem.java | 7 +- .../appeng/debug/MeteoritePlacerItem.java | 9 +- .../java/appeng/debug/ReplicatorCardItem.java | 17 +- .../decorative/solid/SkyStoneBlock.java | 7 +- .../appeng/entity/TinyTNTPrimedEntity.java | 6 +- .../client/gui/FluidFormationPlaneScreen.java | 2 +- .../client/gui/FluidInterfaceScreen.java | 4 +- .../client/gui/FluidStorageBusScreen.java | 6 +- .../client/gui/FluidTerminalScreen.java | 14 +- .../client/gui/widgets/FluidTankWidget.java | 6 +- .../fluids/tile/FluidInterfaceTileEntity.java | 5 +- .../appeng/helpers/InvalidPatternHelper.java | 5 +- .../java/appeng/helpers/MetaRotation.java | 4 +- .../java/appeng/hooks/DynamicDimensions.java | 14 ++ .../modules/jei/CondenserCategory.java | 7 +- .../modules/jei/InscriberRecipeCategory.java | 5 +- .../modules/theoneprobe/TheOneProbeText.java | 4 - .../appeng/items/misc/CrystalSeedItem.java | 5 +- .../appeng/items/misc/EncodedPatternItem.java | 26 +-- .../java/appeng/items/parts/FacadeItem.java | 2 +- .../items/storage/SpatialStorageCellItem.java | 53 +++--- .../appeng/items/tools/MemoryCardItem.java | 11 +- .../tools/powered/ColorApplicatorItem.java | 20 +- .../items/tools/powered/MatterCannonItem.java | 5 +- .../tools/powered/WirelessTerminalItem.java | 4 +- .../powered/powersink/AEBasePoweredItem.java | 8 +- .../implementations/CraftingCPUCluster.java | 2 +- .../implementations/QuantumCluster.java | 3 +- .../appeng/mixins/DimensionTypeMixin.java | 26 +++ .../appeng/mixins/MinecraftServerMixin.java | 102 ++++++++++ .../appeng/mixins/SkyPropertiesMixin.java | 25 +++ .../java/appeng/mixins/SkyRenderMixin.java | 29 +++ .../ThreadedAnvilChunkStorageAccessor.java | 14 ++ src/main/java/appeng/mixins/TntAccessor.java | 20 ++ .../automation/AnnihilationPlanePart.java | 4 +- .../parts/reporting/AbstractMonitorPart.java | 3 +- .../subcommands/TestMeteoritesCommand.java | 15 +- .../java/appeng/services/CompassService.java | 128 +++++++------ src/main/java/appeng/spatial/CachedPlane.java | 17 +- .../spatial/SpatialDimensionExtraData.java | 80 ++++---- .../spatial/SpatialDimensionManager.java | 121 ++++++++---- .../java/appeng/spatial/StorageCellBiome.java | 40 +--- .../appeng/spatial/StorageCellDimension.java | 133 ------------- .../spatial/StorageCellModDimension.java | 43 ----- .../appeng/spatial/StorageChunkGenerator.java | 69 +++++-- .../java/appeng/spatial/StorageHelper.java | 10 +- .../MolecularAssemblerTileEntity.java | 2 +- .../tile/spatial/SpatialIOPortTileEntity.java | 8 +- .../tile/storage/SkyChestTileEntity.java | 5 - src/main/java/appeng/util/Platform.java | 8 +- .../worldgen/ChargedQuartzOreConfig.java | 24 +-- .../worldgen/ChargedQuartzOreFeature.java | 25 +-- .../meteorite/MeteoriteSpawnData.java | 176 ------------------ .../meteorite/MeteoriteStructure.java | 54 ++---- .../meteorite/MeteoriteStructurePiece.java | 7 +- .../meteorite/MeteoriteStructureStart.java | 15 +- .../resources/META-INF/accesstransformer.cfg | 7 +- .../SpatialDimensionExtraDataTest.java | 49 ----- 136 files changed, 1004 insertions(+), 1108 deletions(-) create mode 100644 src/main/java/appeng/hooks/DynamicDimensions.java create mode 100644 src/main/java/appeng/mixins/DimensionTypeMixin.java create mode 100644 src/main/java/appeng/mixins/MinecraftServerMixin.java create mode 100644 src/main/java/appeng/mixins/SkyPropertiesMixin.java create mode 100644 src/main/java/appeng/mixins/SkyRenderMixin.java create mode 100644 src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java create mode 100644 src/main/java/appeng/mixins/TntAccessor.java delete mode 100644 src/main/java/appeng/spatial/StorageCellDimension.java delete mode 100644 src/main/java/appeng/spatial/StorageCellModDimension.java delete mode 100644 src/main/java/appeng/worldgen/meteorite/MeteoriteSpawnData.java delete mode 100644 src/test/java/appeng/core/worlddata/SpatialDimensionExtraDataTest.java diff --git a/gradle.properties b/gradle.properties index e5394e1e1..693353618 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ artifact_basename=appliedenergistics2 minecraft_release=1.16 minecraft_version=1.16.1 mcp_mappings=20200707-1.16.1 -forge_version=32.0.71 +forge_version=32.0.75 ######################################################### # Provided APIs # diff --git a/src/api/java/appeng/api/config/Upgrades.java b/src/api/java/appeng/api/config/Upgrades.java index 5f1239a43..4926f5856 100644 --- a/src/api/java/appeng/api/config/Upgrades.java +++ b/src/api/java/appeng/api/config/Upgrades.java @@ -119,7 +119,7 @@ public enum Upgrades { if (namesAdded.add(name)) { // append the supported count only if its > 1 if (supported.maxCount > 1) { - name = name.deepCopy().appendText(" (" + supported.maxCount + ")"); + name = name.deepCopy().func_240702_b_(" (" + supported.maxCount + ")"); } supportedTooltipLines.add(name); } diff --git a/src/api/java/appeng/api/features/IWorldGen.java b/src/api/java/appeng/api/features/IWorldGen.java index d49bacefc..8d956bdb2 100644 --- a/src/api/java/appeng/api/features/IWorldGen.java +++ b/src/api/java/appeng/api/features/IWorldGen.java @@ -26,16 +26,15 @@ package appeng.api.features; import net.minecraft.util.ResourceLocation; import net.minecraft.world.Dimension; import net.minecraft.world.IWorld; +import net.minecraft.world.server.ServerWorld; public interface IWorldGen { - void disableWorldGenForProviderID(WorldGenType type, Class provider); - void enableWorldGenForDimension(WorldGenType type, ResourceLocation dimID); void disableWorldGenForDimension(WorldGenType type, ResourceLocation dimID); - boolean isWorldGenEnabled(WorldGenType type, IWorld w); + boolean isWorldGenEnabled(WorldGenType type, ServerWorld w); enum WorldGenType { CERTUS_QUARTZ, CHARGED_CERTUS_QUARTZ, METEORITES diff --git a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java index 3db725057..37f04571b 100644 --- a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java @@ -25,11 +25,13 @@ package appeng.api.implementations.items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.RegistryKey; import net.minecraft.world.DimensionType; import net.minecraft.world.World; import appeng.api.implementations.TransitionResult; import appeng.api.util.WorldCoord; +import net.minecraft.world.server.ServerWorld; /** * Implemented on a {@link Item} @@ -57,7 +59,7 @@ public interface ISpatialStorageCell { * * @return dimension id or -1 */ - DimensionType getStoredDimension(ItemStack is); + RegistryKey getStoredDimension(ItemStack is); /** * Perform a spatial swap with the contents of the cell, and the world. @@ -70,5 +72,5 @@ public interface ISpatialStorageCell { * * @return result of transition */ - TransitionResult doSpatialTransition(ItemStack is, World w, WorldCoord min, WorldCoord max, int playerId); + TransitionResult doSpatialTransition(ItemStack is, ServerWorld w, WorldCoord min, WorldCoord max, int playerId); } \ No newline at end of file diff --git a/src/api/java/appeng/api/storage/ISpatialDimension.java b/src/api/java/appeng/api/storage/ISpatialDimension.java index c001e4f4b..129f48d36 100644 --- a/src/api/java/appeng/api/storage/ISpatialDimension.java +++ b/src/api/java/appeng/api/storage/ISpatialDimension.java @@ -22,29 +22,31 @@ import java.util.List; import javax.annotation.Nullable; +import net.minecraft.util.RegistryKey; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; public interface ISpatialDimension { - ServerWorld getWorld(DimensionType cellDim); + ServerWorld getWorld(RegistryKey cellDim); @Nullable - DimensionType createNewCellDimension(BlockPos capacity); + RegistryKey createNewCellDimension(BlockPos capacity); - void deleteCellDimension(DimensionType cellDim); + void deleteCellDimension(RegistryKey cellDim); - boolean isCellDimension(DimensionType cellDim); + boolean isCellDimension(RegistryKey cellDim); - BlockPos getCellDimensionOrigin(DimensionType cellDim); + BlockPos getCellDimensionOrigin(RegistryKey cellDim); - BlockPos getCellDimensionSize(DimensionType cellDim); + BlockPos getCellDimensionSize(RegistryKey cellDim); /** * Adds a user-facing tooltip that describes this dimension so that a player can * keep storage cells apart. */ - void addCellDimensionTooltip(DimensionType cellDim, List lines); + void addCellDimensionTooltip(RegistryKey cellDim, List lines); } diff --git a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java index 6070ebf3c..22c53c1bc 100644 --- a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java +++ b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java @@ -23,8 +23,10 @@ import java.util.List; import net.minecraft.block.Block; import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.ItemModelsProperties; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; @@ -44,12 +46,12 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte public AEBaseBlockItemChargeable(Block id, Properties props) { super(id, props); - /*addPropertyOverride(new ResourceLocation("appliedenergistics2:fill_level"), (is, world, entity) -> { + ItemModelsProperties.func_239418_a_(this, new ResourceLocation("appliedenergistics2:fill_level"), (is, world, entity) -> { double curPower = getAECurrentPower(is); double maxPower = getAEMaxPower(is); return (int) Math.round(100 * curPower / maxPower); - });*/ + }); } @Override @@ -67,7 +69,7 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte final double percent = internalCurrentPower / internalMaxPower; - lines.add(GuiText.StoredEnergy.textComponent().deepCopy() + lines.add(GuiText.StoredEnergy.text().deepCopy() .func_240702_b_(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) .func_230529_a_(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) .func_240702_b_(" - " + MessageFormat.format("{0,number,#.##%}", percent))); diff --git a/src/main/java/appeng/block/AEBaseTileBlock.java b/src/main/java/appeng/block/AEBaseTileBlock.java index 76470f67a..98f80a651 100644 --- a/src/main/java/appeng/block/AEBaseTileBlock.java +++ b/src/main/java/appeng/block/AEBaseTileBlock.java @@ -144,26 +144,6 @@ public abstract class AEBaseTileBlock extends AEBase super.onReplaced(state, w, pos, newState, isMoving); } - @Override - public boolean recolorBlock(BlockState state, final IWorld world, final BlockPos pos, final Direction side, - final DyeColor color) { - final TileEntity te = this.getTileEntity(world, pos); - - if (te instanceof IColorableTile) { - final IColorableTile ct = (IColorableTile) te; - final AEColor c = ct.getColor(); - final AEColor newColor = AEColor.values()[color.ordinal()]; - - if (c != newColor) { - ct.recolourBlock(side, newColor, null); - return true; - } - return false; - } - - return super.recolorBlock(state, world, pos, side, color); - } - @Override public int getComparatorInputOverride(BlockState state, final World w, final BlockPos pos) { final TileEntity te = this.getTileEntity(w, pos); diff --git a/src/main/java/appeng/block/misc/TinyTNTBlock.java b/src/main/java/appeng/block/misc/TinyTNTBlock.java index 5f719ea39..9958d3a52 100644 --- a/src/main/java/appeng/block/misc/TinyTNTBlock.java +++ b/src/main/java/appeng/block/misc/TinyTNTBlock.java @@ -118,12 +118,10 @@ public class TinyTNTBlock extends AEBaseBlock { LivingEntity igniter = null; // Check if the shooter still exists if (w instanceof ServerWorld) { - ServerWorld serverWorld = (ServerWorld) w; - Entity shooter = serverWorld.getEntityByUuid(entityarrow.shootingEntity); + Entity shooter = entityarrow.func_234616_v_(); if (shooter instanceof LivingEntity) { igniter = (LivingEntity) shooter; } - } this.startFuse(w, pos, igniter); w.removeBlock(pos, false); diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index 2affc7c56..730e9ca31 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -30,6 +30,7 @@ import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.ParticleManager; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; @@ -223,7 +224,7 @@ public class CableBusBlock extends AEBaseTileBlock implement // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? effectRenderer - .addEffect(new CableBusBreakingParticle(world, x, y, z, texture).multipleParticleScaleBy(0.8F)); + .addEffect(new CableBusBreakingParticle((ClientWorld) world, x, y, z, texture).multipleParticleScaleBy(0.8F)); } return true; @@ -264,7 +265,7 @@ public class CableBusBlock extends AEBaseTileBlock implement // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? - Particle effect = new CableBusBreakingParticle(world, x, y, z, x - pos.getX() - 0.5D, + Particle effect = new CableBusBreakingParticle((ClientWorld) world, x, y, z, x - pos.getX() - 0.5D, y - pos.getY() - 0.5D, z - pos.getZ() - 0.5D, texture); effectRenderer.addEffect(effect); } @@ -337,11 +338,6 @@ public class CableBusBlock extends AEBaseTileBlock implement return this.cb(w, pos).activate(player, hand, hitInBlock) ? ActionResultType.SUCCESS : ActionResultType.PASS; } - @Override - public boolean recolorBlock(BlockState state, IWorld world, BlockPos pos, Direction side, DyeColor color) { - return recolorBlock(world, pos, side, color, null); - } - public boolean recolorBlock(final IBlockReader world, final BlockPos pos, final Direction side, final DyeColor color, final PlayerEntity who) { try { diff --git a/src/main/java/appeng/block/storage/ChestBlock.java b/src/main/java/appeng/block/storage/ChestBlock.java index a95f9345f..fcc0c605a 100644 --- a/src/main/java/appeng/block/storage/ChestBlock.java +++ b/src/main/java/appeng/block/storage/ChestBlock.java @@ -29,6 +29,7 @@ import net.minecraft.state.BooleanProperty; import net.minecraft.state.StateContainer; import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.world.World; @@ -81,7 +82,7 @@ public class ChestBlock extends AEBaseTileBlock { if (hit.getFace() == tg.getUp()) { if (!tg.openGui(p)) { - p.sendMessage(PlayerMessages.ChestCannotReadStorageCell.get(), p.getUniqueID()); + p.sendMessage(PlayerMessages.ChestCannotReadStorageCell.get(), Util.DUMMY_UUID); } } else { ContainerOpener.openContainer(ChestContainer.TYPE, p, diff --git a/src/main/java/appeng/client/ClientHelper.java b/src/main/java/appeng/client/ClientHelper.java index d2a58b5d7..6e4124b92 100644 --- a/src/main/java/appeng/client/ClientHelper.java +++ b/src/main/java/appeng/client/ClientHelper.java @@ -26,6 +26,7 @@ import java.util.Random; import net.minecraft.client.Minecraft; import net.minecraft.client.settings.KeyBinding; import net.minecraft.client.util.InputMappings; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Hand; @@ -207,7 +208,7 @@ public class ClientHelper extends ServerHelper { private void spawnLightningArc(final World world, final double posX, final double posY, final double posZ, final Vector3d second) { - final LightningFX fx = new LightningArcFX(world, posX, posY, posZ, second.x, second.y, second.z, 0.0f, 0.0f, + final LightningFX fx = new LightningArcFX((ClientWorld) world, posX, posY, posZ, second.x, second.y, second.z, 0.0f, 0.0f, 0.0f); Minecraft.getInstance().particles.addEffect(fx); } diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index 8ff46836c..c4389c6c8 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -61,31 +61,23 @@ public abstract class AEBaseMEScreen extends AEBaseSc if (myStack != null) { if (myStack.getStackSize() > bigNumber || (myStack.getStackSize() > 1 && stack.isDamaged())) { - final String local = ButtonToolTips.ItemsStored.getLocal(); final String formattedAmount = NumberFormat.getNumberInstance(Locale.US) .format(myStack.getStackSize()); - final String format = String.format(local, formattedAmount); - - currentToolTip.add(new StringTextComponent(TextFormatting.GRAY + format)); + currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); } if (myStack.getCountRequestable() > 0) { - final String local = ButtonToolTips.ItemsRequestable.getLocal(); final String formattedAmount = NumberFormat.getNumberInstance(Locale.US) .format(myStack.getCountRequestable()); - final String format = String.format(local, formattedAmount); - - currentToolTip.add(new StringTextComponent(format)); + currentToolTip.add(ButtonToolTips.ItemsRequestable.text(formattedAmount)); } + this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); return; } else if (stack.getCount() > bigNumber) { - final String local = ButtonToolTips.ItemsStored.getLocal(); final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.getCount()); - final String format = String.format(local, formattedAmount); - - currentToolTip.add(new StringTextComponent(TextFormatting.GRAY + format)); + currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index ac04cf754..e75d180ac 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -24,6 +24,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; @@ -31,6 +32,7 @@ import com.google.common.collect.Lists; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.util.text.Style; import org.lwjgl.glfw.GLFW; import org.lwjgl.opengl.GL11; @@ -145,7 +147,7 @@ public abstract class AEBaseScreen extends ContainerS RenderSystem.popMatrix(); RenderSystem.enableDepthTest(); - this.renderHoveredToolTip(matrixStack, mouseX, mouseY); + this.func_230459_a_(matrixStack, mouseX, mouseY); for (final Object c : this.buttons) { if (c instanceof ITooltip) { @@ -189,33 +191,35 @@ public abstract class AEBaseScreen extends ContainerS } } - protected void drawTooltip(MatrixStack matrixStack, int x, int y, ITextComponent message) { - String[] lines = message.split("\n"); - this.drawTooltip(matrixStack, x, y, Arrays.asList(lines)); + protected void drawTooltip(MatrixStack matrices, int x, int y, ITextComponent message) { + String[] lines = message.getString().split("\n"); // FIXME FABRIC + List textLines = Arrays.stream(lines).map(StringTextComponent::new).collect(Collectors.toList()); + this.drawTooltip(matrices, x, y, textLines); } - protected void drawTooltip(MatrixStack matrixStack, int x, int y, List lines) { + // FIXME FABRIC: move out to json (?) + private static final Style TOOLTIP_HEADER = Style.EMPTY.applyFormatting(TextFormatting.WHITE); + private static final Style TOOLTIP_BODY = Style.EMPTY.applyFormatting(TextFormatting.GRAY); + + protected void drawTooltip(MatrixStack matrices, int x, int y, List lines) { if (lines.isEmpty()) { return; } - // For an explanation of the formatting codes, see - // http://minecraft.gamepedia.com/Formatting_codes - lines = Lists.newArrayList(lines); // Make a copy - // Make the first line white - lines.set(0, TextFormatting.WHITE + lines.get(0)); - // All lines after the first are colored gray - for (int i = 1; i < lines.size(); i++) { - lines.set(i, TextFormatting.GRAY + lines.get(i)); + List styledLines = new ArrayList<>(lines.size()); + for (int i = 0; i < lines.size(); i++) { + Style style = (i == 0) ? TOOLTIP_HEADER : TOOLTIP_BODY; + styledLines.add(lines.get(i).deepCopy().func_240700_a_(s -> style)); } - this.renderTooltip(matrixStack, lines, x, y, this.font); + this.renderTooltip(matrices, styledLines, x, y); + } @Override - protected final void drawGuiContainerForegroundLayer(MatrixStack matrixStack, final int x, final int y) { + protected final void func_230451_b_(MatrixStack matrixStack, final int x, final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -230,7 +234,7 @@ public abstract class AEBaseScreen extends ContainerS public abstract void drawFG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY); @Override - protected final void drawGuiContainerBackgroundLayer(MatrixStack matrixStack, final float f, final int x, + protected final void func_230450_a_(MatrixStack matrixStack, final float f, final int x, final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; @@ -627,16 +631,16 @@ public abstract class AEBaseScreen extends ContainerS * hackery... */ @Override - public void drawSlot(MatrixStack matrixStack, Slot s) { + public void func_238746_a_(MatrixStack matrices, Slot s) { if (s instanceof SlotME) { try { if (!this.isPowered()) { - fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); + fill(matrices, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); } // Annoying but easier than trying to splice into render item - super.drawSlot(new Size1Slot((SlotME) s)); + super.func_238746_a_(matrices, new Size1Slot((SlotME) s)); this.stackSizeRenderer.renderStackSize(this.font, ((SlotME) s).getAEStack(), s.xPos, s.yPos); @@ -665,13 +669,13 @@ public abstract class AEBaseScreen extends ContainerS float blue = (fluidAttributes.getColor() & 255) / 255.0F; RenderSystem.color3f(red, green, blue); - blit(matrixStack, s.xPos, s.yPos, 0 /* FIXME: Validate this was previous the controls zindex */, 16, 16, + blit(matrices, s.xPos, s.yPos, 0 /* FIXME: Validate this was previous the controls zindex */, 16, 16, sprite); RenderSystem.enableBlend(); this.fluidStackSizeRenderer.renderStackSize(this.font, fs, s.xPos, s.yPos); } else if (!this.isPowered()) { - fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); + fill(matrices, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66111111); } return; @@ -743,7 +747,7 @@ public abstract class AEBaseScreen extends ContainerS setBlitOffset(100); this.itemRenderer.zLevel = 100.0F; - fill(matrixStack, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66ff6666); + fill(matrices, s.xPos, s.yPos, 16 + s.xPos, 16 + s.yPos, 0x66ff6666); setBlitOffset(0); this.itemRenderer.zLevel = 0.0F; @@ -752,9 +756,9 @@ public abstract class AEBaseScreen extends ContainerS if (s instanceof AppEngSlot) { ((AppEngSlot) s).setDisplay(true); - super.drawSlot(s); + super.func_238746_a_(matrices, s); } else { - super.drawSlot(s); + super.func_238746_a_(matrices, s); } return; @@ -763,7 +767,7 @@ public abstract class AEBaseScreen extends ContainerS } } // do the usual for non-ME Slots. - super.drawSlot(s); + super.func_238746_a_(matrices, s); } protected boolean isPowered() { @@ -800,10 +804,4 @@ public abstract class AEBaseScreen extends ContainerS } } - @Override - protected void func_230450_a_(MatrixStack p_230450_1_, float p_230450_2_, int p_230450_3_, int p_230450_4_) { - // TODO Auto-generated method stub - - } - } diff --git a/src/main/java/appeng/client/gui/implementations/ChestScreen.java b/src/main/java/appeng/client/gui/implementations/ChestScreen.java index 8a723be86..f778275ee 100644 --- a/src/main/java/appeng/client/gui/implementations/ChestScreen.java +++ b/src/main/java/appeng/client/gui/implementations/ChestScreen.java @@ -43,7 +43,7 @@ public class ChestScreen extends AEBaseScreen { public void init() { super.init(); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriority())); } @@ -53,8 +53,8 @@ public class ChestScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Chest.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Chest.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 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 7d2f52b6f..8216c4911 100644 --- a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java @@ -51,14 +51,14 @@ public class CondenserScreen extends AEBaseScreen { this.container.getOutput()); this.addButton(new ProgressBar(this.container, "guis/condenser.png", 120 + this.guiLeft, 25 + this.guiTop, 178, - 25, 6, 18, Direction.VERTICAL, GuiText.StoredEnergy.textComponent())); + 25, 6, 18, Direction.VERTICAL, GuiText.StoredEnergy.text())); this.addButton(this.mode); } @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Condenser.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Condenser.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); this.mode.set(this.container.getOutput()); this.mode.setFillVar(String.valueOf(this.container.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 ba9708d3e..cb4cb8a75 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java @@ -56,7 +56,7 @@ public class CraftAmountScreen extends AEBaseScreen { this.amountToCraft.addButtons(children::add, this::addButton); this.next = this.addButton( - new Button(this.guiLeft + 128, this.guiTop + 51, 38, 20, GuiText.Next.textComponent(), this::confirm)); + new Button(this.guiLeft + 128, this.guiTop + 51, 38, 20, GuiText.Next.text(), this::confirm)); subGui.addBackButton(this::addButton, 154, 0); } @@ -68,12 +68,12 @@ public class CraftAmountScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, GuiText.SelectAmount.textComponent().getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.SelectAmount.text().getString(), 8, 6, 4210752); } @Override public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { - this.next.setMessage(hasShiftDown() ? GuiText.Start.textComponent() : GuiText.Next.textComponent()); + this.next.setMessage(hasShiftDown() ? GuiText.Start.text() : GuiText.Next.text()); this.bindTexture("guis/craft_amt.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); diff --git a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java index b9f26b27d..423e50533 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java @@ -85,7 +85,7 @@ public class CraftConfirmScreen extends AEBaseScreen { super.init(); this.start = new Button(this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, - GuiText.Start.textComponent(), btn -> start()); + GuiText.Start.text(), btn -> start()); this.start.active = false; this.addButton(this.start); @@ -95,7 +95,7 @@ public class CraftConfirmScreen extends AEBaseScreen { this.selectCPU.active = false; this.addButton(this.selectCPU); - addButton(new Button(this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.textComponent(), + addButton(new Button(this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.text(), btn -> subGui.goBack())); } @@ -255,7 +255,7 @@ public class CraftConfirmScreen extends AEBaseScreen { str = Long.toString(missingStack.getStackSize() / 1000000) + 'm'; } - str = GuiText.Missing.textComponent().getString() + ": " + str; + str = GuiText.Missing.text().getString() + ": " + str; final int w = 4 + this.font.getStringWidth(str); this.font.drawString(matrixStack, str, (int) ((x * (1 + sectionLength) + xo + sectionLength - 19 - (w * 0.5)) * 2), diff --git a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java index 0a09136a9..989a21051 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftingCPUScreen.java @@ -117,7 +117,7 @@ public class CraftingCPUScreen extends AEBaseScr super.init(); this.setScrollBar(); this.cancel = new Button(this.guiLeft + CANCEL_LEFT_OFFSET, this.guiTop + this.ySize - CANCEL_TOP_OFFSET, - CANCEL_WIDTH, CANCEL_HEIGHT, GuiText.Cancel.textComponent(), btn -> cancel()); + CANCEL_WIDTH, CANCEL_HEIGHT, GuiText.Cancel.text(), btn -> cancel()); this.addButton(this.cancel); } @@ -165,7 +165,7 @@ public class CraftingCPUScreen extends AEBaseScr @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - String title = this.getGuiDisplayName(GuiText.CraftingStatus.textComponent()).getString(); + String title = this.getGuiDisplayName(GuiText.CraftingStatus.text()).getString(); if (this.container.getEstimatedTime() > 0 && !this.visual.isEmpty()) { final long etaInMilliseconds = TimeUnit.MILLISECONDS.convert(this.container.getEstimatedTime(), diff --git a/src/main/java/appeng/client/gui/implementations/DriveScreen.java b/src/main/java/appeng/client/gui/implementations/DriveScreen.java index 8b244741d..cfb351670 100644 --- a/src/main/java/appeng/client/gui/implementations/DriveScreen.java +++ b/src/main/java/appeng/client/gui/implementations/DriveScreen.java @@ -43,7 +43,7 @@ public class DriveScreen extends AEBaseScreen { public void init() { super.init(); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui())); } @@ -54,9 +54,9 @@ public class DriveScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Drive.textComponent()).getString(), 8, 6, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Drive.text()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java index 1aa0d90fc..ca67db830 100644 --- a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java +++ b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java @@ -52,7 +52,7 @@ public class FormationPlaneScreen extends UpgradeableScreen(this.guiLeft - 18, this.guiTop + 48, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui())); this.addButton(this.placeMode); @@ -61,7 +61,7 @@ public class FormationPlaneScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.GrindStone.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.GrindStone.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 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 359ac092e..e8174527e 100644 --- a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java @@ -61,7 +61,7 @@ public class IOPortScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.IOPort.textComponent()).getString(), 8, 6, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.IOPort.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); diff --git a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java index b03a8c692..87d9fc3ed 100644 --- a/src/main/java/appeng/client/gui/implementations/InscriberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InscriberScreen.java @@ -59,8 +59,8 @@ public class InscriberScreen extends AEBaseScreen { this.pb.setFullMsg(new StringTextComponent( this.container.getCurrentProgress() * 100 / this.container.getMaxProgress() + "%")); - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Inscriber.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Inscriber.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 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 76ec12c6a..a7284d056 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java @@ -48,7 +48,7 @@ public class InterfaceScreen extends UpgradeableScreen { @Override protected void addButtons() { - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui())); this.blockMode = new ServerSettingToggleButton<>(this.guiLeft - 18, this.guiTop + 8, Settings.BLOCK, YesNo.NO); @@ -70,7 +70,7 @@ public class InterfaceScreen extends UpgradeableScreen { this.interfaceMode.setState(((InterfaceContainer) this.cvb).getInterfaceTerminalMode() == YesNo.YES); } - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Interface.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Interface.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.Config.getLocal(), 8, 6 + 11 + 7, 4210752); this.font.drawString(matrixStack, GuiText.StoredItems.getLocal(), 8, 6 + 60 + 7, 4210752); diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java index eef40b6c0..7dbca6054 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 if (this.viewCell || this instanceof WirelessTermScreen) { this.craftingStatusBtn = this.addButton(new TabButton(this.guiLeft + 170, this.guiTop - 4, 2 + 11 * 16, - GuiText.CraftingStatus.textComponent(), this.itemRenderer, btn -> showCraftingStatus())); + GuiText.CraftingStatus.text(), this.itemRenderer, btn -> showCraftingStatus())); this.craftingStatusBtn.setHideEdge(13); } @@ -287,8 +287,8 @@ public class MEMonitorableScreen extends AEBas @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(this.myName.textComponent()).getString(), 8, 6, 4210752); - this.font.drawString(matrixStack, GuiText.inventory.textComponent().getString(), 8, this.ySize - 96 + 3, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(this.myName.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 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 a401cc866..7a13f743f 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java @@ -224,9 +224,9 @@ public class NetworkStatusScreen extends AEBaseScreen im currentToolTip.remove(1); } - currentToolTip.add(GuiText.Installed.getLocal() + ": " + (myStack.getStackSize())); - currentToolTip.add(GuiText.EnergyDrain.getLocal() + ": " - + Platform.formatPowerLong(myStack.getCountRequestable(), true)); + currentToolTip.add(GuiText.Installed.withSuffix(": " + (myStack.getStackSize()))); + currentToolTip.add(GuiText.EnergyDrain.withSuffix(": " + + Platform.formatPowerLong(myStack.getCountRequestable(), true))); this.drawTooltip(matrixStack, x, y, currentToolTip); } diff --git a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java index 6e286b3f0..49c10a751 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkToolScreen.java @@ -62,7 +62,7 @@ public class NetworkToolScreen extends AEBaseScreen { this.tFacades.setState(container.isFacadeMode()); } - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.NetworkTool.textComponent()).getString(), 8, 6, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.NetworkTool.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java index c4990b33c..097a8f605 100644 --- a/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java +++ b/src/main/java/appeng/client/gui/implementations/PatternTermScreen.java @@ -60,12 +60,12 @@ public class PatternTermScreen extends MEMonitorableScreen super.init(); this.tabCraftButton = new TabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, - new ItemStack(Blocks.CRAFTING_TABLE), GuiText.CraftingPattern.textComponent(), this.itemRenderer, + new ItemStack(Blocks.CRAFTING_TABLE), GuiText.CraftingPattern.text(), this.itemRenderer, btn -> toggleCraftMode(CRAFTMODE_PROCESSING)); this.addButton(this.tabCraftButton); this.tabProcessButton = new TabButton(this.guiLeft + 173, this.guiTop + this.ySize - 177, - new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.textComponent(), this.itemRenderer, + new ItemStack(Blocks.FURNACE), GuiText.ProcessingPattern.text(), this.itemRenderer, btn -> toggleCraftMode(CRAFTMODE_CRFTING)); this.addButton(this.tabProcessButton); diff --git a/src/main/java/appeng/client/gui/implementations/QNBScreen.java b/src/main/java/appeng/client/gui/implementations/QNBScreen.java index 82403678b..f072cccad 100644 --- a/src/main/java/appeng/client/gui/implementations/QNBScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QNBScreen.java @@ -39,7 +39,7 @@ public class QNBScreen extends AEBaseScreen { public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.font.drawString(matrixStack, - this.getGuiDisplayName(GuiText.QuantumLinkChamber.textComponent()).getString(), 8, 6, 4210752); + this.getGuiDisplayName(GuiText.QuantumLinkChamber.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java index a461761cc..7fb23ca29 100644 --- a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java @@ -63,7 +63,7 @@ public class QuartzKnifeScreen extends AEBaseScreen { public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { this.font.drawString(matrixStack, - this.getGuiDisplayName(GuiText.QuartzCuttingKnife.textComponent()).getString(), 8, 6, 4210752); + this.getGuiDisplayName(GuiText.QuartzCuttingKnife.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/SkyChestScreen.java b/src/main/java/appeng/client/gui/implementations/SkyChestScreen.java index d3d6e3283..68c4a6e28 100644 --- a/src/main/java/appeng/client/gui/implementations/SkyChestScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SkyChestScreen.java @@ -42,7 +42,7 @@ public class SkyChestScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SkyChest.textComponent()).getString(), 8, 8, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SkyChest.text()).getString(), 8, 8, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java index a501e77f7..d37afce9c 100644 --- a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java @@ -58,7 +58,7 @@ public class SpatialIOPortScreen extends AEBaseScreen { GuiText.Efficiency.getLocal() + ": " + (((float) this.container.getEfficency()) / 100) + '%', 13, 83, 4210752); - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SpatialIOPort.textComponent()).getString(), 8, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SpatialIOPort.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96, 4210752); diff --git a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java index 1be9a2962..68aed64cb 100644 --- a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java @@ -60,7 +60,7 @@ public class StorageBusScreen extends UpgradeableScreen { this.fuzzyMode = new ServerSettingToggleButton<>(this.guiLeft - 18, this.guiTop + 88, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui())); this.addButton(this.storageFilter); @@ -71,7 +71,7 @@ public class StorageBusScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.StorageBus.textComponent()).getString(), 8, 6, + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.StorageBus.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); diff --git a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java index 1fbd870dc..ffda0419f 100644 --- a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java @@ -86,7 +86,7 @@ public class UpgradeableScreen extends AEBaseScr @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(this.getName().textComponent()).getString(), 8, 6, + this.font.drawString(matrixStack, this.getGuiDisplayName(this.getName().text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); diff --git a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java index 51d3ad143..3fa4b8da0 100644 --- a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java @@ -54,7 +54,7 @@ public class VibrationChamberScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Wireless.textComponent()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Wireless.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (container.getRange() > 0) { diff --git a/src/main/java/appeng/client/gui/widgets/ActionButton.java b/src/main/java/appeng/client/gui/widgets/ActionButton.java index 8d4303175..1ff714807 100644 --- a/src/main/java/appeng/client/gui/widgets/ActionButton.java +++ b/src/main/java/appeng/client/gui/widgets/ActionButton.java @@ -23,6 +23,8 @@ import java.util.regex.Pattern; import appeng.api.config.ActionItems; import appeng.core.localization.ButtonToolTips; +import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; public class ActionButton extends IconButton implements ITooltip { private static final Pattern PATTERN_NEW_LINE = Pattern.compile("\\n", Pattern.LITERAL); @@ -76,9 +78,9 @@ public class ActionButton extends IconButton implements ITooltip { return iconIndex; } - private String buildMessage(ButtonToolTips displayName, ButtonToolTips displayValue) { - String name = displayName.getTranslationKey().getString(); - String value = displayValue.getTranslationKey().getString(); + private ITextComponent buildMessage(ButtonToolTips displayName, ButtonToolTips displayValue) { + String name = displayName.text().getString(); + String value = displayValue.text().getString(); value = PATTERN_NEW_LINE.matcher(value).replaceAll("\n"); final StringBuilder sb = new StringBuilder(value); @@ -91,7 +93,7 @@ public class ActionButton extends IconButton implements ITooltip { sb.replace(i, i + 1, "\n"); } - return name + '\n' + sb; + return new StringTextComponent(name + '\n' + sb); } } diff --git a/src/main/java/appeng/client/gui/widgets/ProgressBar.java b/src/main/java/appeng/client/gui/widgets/ProgressBar.java index 0a5f69b00..f5df1e9f4 100644 --- a/src/main/java/appeng/client/gui/widgets/ProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/ProgressBar.java @@ -89,7 +89,7 @@ public class ProgressBar extends Widget implements ITooltip { return result.deepCopy().func_240702_b_("\n").func_240702_b_(this.source.getCurrentProgress() + " ") .func_230529_a_( - GuiText.Of.textComponent().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); + GuiText.Of.text().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); } @Override diff --git a/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java b/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java index e5a532cd4..aac4d6f16 100644 --- a/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java +++ b/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java @@ -48,6 +48,7 @@ import appeng.api.config.ViewItems; import appeng.api.config.YesNo; import appeng.core.localization.ButtonToolTips; import appeng.util.EnumCycler; +import net.minecraft.util.text.StringTextComponent; public class SettingToggleButton> extends IconButton { private static final Pattern COMPILE = Pattern.compile("%s"); @@ -236,7 +237,7 @@ public class SettingToggleButton> extends IconButton { private static void registerApp(final int iconIndex, final Settings setting, final Enum val, final ButtonToolTips title, final ITextComponent hint) { final ButtonAppearance a = new ButtonAppearance(); - a.displayName = title.getTranslationKey(); + a.displayName = title.text(); a.displayValue = hint; a.index = iconIndex; appearances.put(new EnumPair(setting, val), a); @@ -244,7 +245,7 @@ public class SettingToggleButton> extends IconButton { private static void registerApp(final int iconIndex, final Settings setting, final Enum val, final ButtonToolTips title, final ButtonToolTips hint) { - registerApp(iconIndex, setting, val, title, hint.getTranslationKey()); + registerApp(iconIndex, setting, val, title, hint.text()); } @Override @@ -278,7 +279,7 @@ public class SettingToggleButton> extends IconButton { } @Override - public String getMessage() { + public ITextComponent getMessage() { ITextComponent displayName = null; ITextComponent displayValue = null; @@ -286,7 +287,7 @@ public class SettingToggleButton> extends IconButton { final ButtonAppearance buttonAppearance = appearances .get(new EnumPair(this.buttonSetting, this.currentValue)); if (buttonAppearance == null) { - return "No Such Message"; + return new StringTextComponent("No Such Message"); } displayName = buttonAppearance.displayName; @@ -312,9 +313,9 @@ public class SettingToggleButton> extends IconButton { sb.replace(i, i + 1, "\n"); } - return name + '\n' + sb; + return new StringTextComponent(name + '\n' + sb); } - return ""; + return StringTextComponent.EMPTY; } public String getFillVar() { diff --git a/src/main/java/appeng/client/me/ClientDCInternalInv.java b/src/main/java/appeng/client/me/ClientDCInternalInv.java index 979cc720c..beee7c2ff 100644 --- a/src/main/java/appeng/client/me/ClientDCInternalInv.java +++ b/src/main/java/appeng/client/me/ClientDCInternalInv.java @@ -36,7 +36,7 @@ public class ClientDCInternalInv implements Comparable { public ClientDCInternalInv(final int size, final long id, final long sortBy, final ITextComponent name) { this.inventory = new AppEngInternalInventory(null, size); this.searchName = name.getString().toLowerCase(); - this.formattedName = name.getFormattedText(); + this.formattedName = name.getString(); // FIXME FABRIC no longer formatted! this.id = id; this.sortBy = sortBy; } diff --git a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java index cc08c4068..f6911dd08 100644 --- a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java +++ b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java @@ -22,6 +22,7 @@ import java.util.Objects; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemOverrideList; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -50,7 +51,7 @@ public class FacadeDispatcherBakedModel extends DelegateBakedModel { public ItemOverrideList getOverrides() { return new ItemOverrideList() { @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, ClientWorld world, LivingEntity entity) { if (!(stack.getItem() instanceof FacadeItem)) { return originalModel; diff --git a/src/main/java/appeng/client/render/FacingToRotation.java b/src/main/java/appeng/client/render/FacingToRotation.java index aca8a9438..a295ee9ba 100644 --- a/src/main/java/appeng/client/render/FacingToRotation.java +++ b/src/main/java/appeng/client/render/FacingToRotation.java @@ -110,7 +110,7 @@ public enum FacingToRotation implements IStringSerializable { } @Override - public String getName() { + public String getString() { return name().toLowerCase(); } } diff --git a/src/main/java/appeng/client/render/SpatialSkyRender.java b/src/main/java/appeng/client/render/SpatialSkyRender.java index 8dd9de244..76d540434 100644 --- a/src/main/java/appeng/client/render/SpatialSkyRender.java +++ b/src/main/java/appeng/client/render/SpatialSkyRender.java @@ -35,8 +35,7 @@ import net.minecraft.util.math.vector.Quaternion; import net.minecraftforge.client.IRenderHandler; import net.minecraftforge.client.SkyRenderHandler; -//TODO https://github.com/MinecraftForge/MinecraftForge/pull/6537 -public class SpatialSkyRender implements SkyRenderHandler { +public class SpatialSkyRender { private static final SpatialSkyRender INSTANCE = new SpatialSkyRender(); @@ -48,7 +47,7 @@ public class SpatialSkyRender implements SkyRenderHandler { this.dspList = GL11.glGenLists(1); } - public static IRenderHandler getInstance() { + public static SpatialSkyRender getInstance() { return INSTANCE; } @@ -56,8 +55,7 @@ public class SpatialSkyRender implements SkyRenderHandler { new Quaternion(-90.0F, 0.0F, 0.0F, true), new Quaternion(180.0F, 0.0F, 0.0F, true), new Quaternion(0.0F, 0.0F, 90.0F, true), new Quaternion(0.0F, 0.0F, -90.0F, true), }; - @Override - public void render(int ticks, float partialTicks, MatrixStack matrixStack, ClientWorld world, Minecraft mc) { + public void render(MatrixStack matrixStack) { final long now = System.currentTimeMillis(); if (now - this.cycle > 2000) { this.cycle = now; diff --git a/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java b/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java index 0a01983ef..366076ccf 100644 --- a/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java +++ b/src/main/java/appeng/client/render/cablebus/FacadeBlockAccess.java @@ -68,6 +68,12 @@ public class FacadeBlockAccess implements IBlockDisplayReader { return world.getFluidState(pos); } + // This is for diffuse lighting + @Override + public float func_230487_a_(Direction p_230487_1_, boolean p_230487_2_) { + return world.func_230487_a_(p_230487_1_, p_230487_2_); + } + @Override public WorldLightManager getLightManager() { return world.getLightManager(); diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java index c16876946..6628638b7 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java @@ -10,6 +10,7 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverrideList; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.vector.TransformationMatrix; @@ -112,7 +113,7 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { @Nullable @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, @Nullable World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { boolean shiftHeld = Screen.hasShiftDown(); if (shiftHeld) { @@ -122,12 +123,12 @@ public class EncodedPatternBakedModel extends DelegateBakedModel { IBakedModel realModel = Minecraft.getInstance().getItemRenderer().getItemModelMesher() .getItemModel(output); // Give the item model a chance to handle the overrides as well - realModel = realModel.getOverrides().getModelWithOverrides(realModel, output, world, entity); + realModel = realModel.getOverrides().func_239290_a_(realModel, output, world, entity); return new ShiftHoldingModelWrapper(getBaseModel(), realModel); } } - return getBaseModel().getOverrides().getModelWithOverrides(originalModel, stack, world, entity); + return getBaseModel().getOverrides().func_239290_a_(originalModel, stack, world, entity); } } diff --git a/src/main/java/appeng/client/render/effects/ChargedOreFX.java b/src/main/java/appeng/client/render/effects/ChargedOreFX.java index 106aba23d..deaf29c31 100644 --- a/src/main/java/appeng/client/render/effects/ChargedOreFX.java +++ b/src/main/java/appeng/client/render/effects/ChargedOreFX.java @@ -22,6 +22,7 @@ import net.minecraft.client.particle.IAnimatedSprite; import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.RedstoneParticle; +import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.RedstoneParticleData; import net.minecraft.world.World; @@ -33,7 +34,7 @@ public class ChargedOreFX extends RedstoneParticle { private static final RedstoneParticleData PARTICLE_DATA = new RedstoneParticleData(0.21f, 0.61f, 1.0f, 1.0f); - private ChargedOreFX(World worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, + private ChargedOreFX(ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed, IAnimatedSprite spriteSet) { super(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, PARTICLE_DATA, spriteSet); } @@ -58,8 +59,8 @@ public class ChargedOreFX extends RedstoneParticle { } @Override - public Particle makeParticle(BasicParticleType typeIn, World worldIn, double x, double y, double z, - double xSpeed, double ySpeed, double zSpeed) { + public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, + double xSpeed, double ySpeed, double zSpeed) { return new ChargedOreFX(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.spriteSet); } } diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index d4db0d663..b287dece8 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -135,7 +135,7 @@ public class CraftingFx extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType data, World worldIn, double x, double y, double z, double xSpeed, + public Particle makeParticle(BasicParticleType data, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { return new CraftingFx(worldIn, x, y, z, spriteSet); } diff --git a/src/main/java/appeng/client/render/effects/LightningArcFX.java b/src/main/java/appeng/client/render/effects/LightningArcFX.java index 115225a33..08b32f180 100644 --- a/src/main/java/appeng/client/render/effects/LightningArcFX.java +++ b/src/main/java/appeng/client/render/effects/LightningArcFX.java @@ -24,6 +24,7 @@ import net.minecraft.client.particle.IAnimatedSprite; import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; +import net.minecraft.client.world.ClientWorld; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -37,7 +38,7 @@ public class LightningArcFX extends LightningFX { private final double ry; private final double rz; - public LightningArcFX(final World w, final double x, final double y, final double z, final double ex, + public LightningArcFX(final ClientWorld w, final double x, final double y, final double z, final double ex, final double ey, final double ez, final double r, final double g, final double b) { super(w, x, y, z, r, g, b, 6); @@ -75,8 +76,8 @@ public class LightningArcFX extends LightningFX { } @Override - public Particle makeParticle(LightningArcParticleData data, World worldIn, double x, double y, double z, - double xSpeed, double ySpeed, double zSpeed) { + public Particle makeParticle(LightningArcParticleData data, ClientWorld worldIn, double x, double y, double z, + double xSpeed, double ySpeed, double zSpeed) { SpriteTexturedParticle lightningFX = new LightningArcFX(worldIn, x, y, z, data.target.x, data.target.y, data.target.z, 0, 0, 0); lightningFX.selectSpriteRandomly(this.spriteSet); diff --git a/src/main/java/appeng/client/render/effects/ParticleTypes.java b/src/main/java/appeng/client/render/effects/ParticleTypes.java index 5cddafdbc..a0b662c10 100644 --- a/src/main/java/appeng/client/render/effects/ParticleTypes.java +++ b/src/main/java/appeng/client/render/effects/ParticleTypes.java @@ -1,5 +1,6 @@ package appeng.client.render.effects; +import com.mojang.serialization.Codec; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleType; @@ -12,10 +13,19 @@ public final class ParticleTypes { public static final BasicParticleType CHARGED_ORE = new BasicParticleType(false); public static final BasicParticleType CRAFTING = new BasicParticleType(false); - public static final ParticleType ENERGY = new ParticleType<>(false, - EnergyParticleData.DESERIALIZER); - public static final ParticleType LIGHTNING_ARC = new ParticleType<>(false, - LightningArcParticleData.DESERIALIZER); + public static final ParticleType ENERGY = new ParticleType(false, + EnergyParticleData.DESERIALIZER) { + public Codec func_230522_e_() { + return null; + } + }; + public static final ParticleType LIGHTNING_ARC = new ParticleType(false, + LightningArcParticleData.DESERIALIZER) { + @Override + public Codec func_230522_e_() { + return null; + } + }; public static final BasicParticleType LIGHTNING = new BasicParticleType(false); public static final BasicParticleType MATTER_CANNON = new BasicParticleType(false); public static final BasicParticleType VIBRANT = new BasicParticleType(false); diff --git a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java index 399d9c975..6bf0a4d17 100644 --- a/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java +++ b/src/main/java/appeng/client/render/model/AutoRotatingBakedModel.java @@ -107,7 +107,7 @@ public class AutoRotatingBakedModel implements IBakedModel { // when piping it // to the AO lighter, thus fixing our problem. BakedQuad packedQuad = new BakedQuad(unpackedQuad.getVertexData(), quad.getTintIndex(), - unpackedQuad.getFace(), quad.func_187508_a(), quad.shouldApplyDiffuseLighting()); + unpackedQuad.getFace(), quad.func_187508_a(), quad.func_239287_f_()); rotated.add(packedQuad); } return rotated; diff --git a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java index ac850b876..0fe57ce68 100644 --- a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java @@ -19,6 +19,7 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; @@ -143,7 +144,7 @@ class BiometricCardBakedModel implements IBakedModel { public ItemOverrideList getOverrides() { return new ItemOverrideList() { @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, ClientWorld world, LivingEntity entity) { String username = ""; if (stack.getItem() instanceof IBiometricCard) { diff --git a/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java b/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java index 9dab86e98..02783297f 100644 --- a/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java +++ b/src/main/java/appeng/client/render/model/ColorApplicatorBakedModel.java @@ -62,7 +62,7 @@ class ColorApplicatorBakedModel implements IBakedModel { } BakedQuad newQuad = new BakedQuad(quad.getVertexData(), tint, quad.getFace(), quad.func_187508_a(), - quad.shouldApplyDiffuseLighting()); + quad.func_239287_f_()); result.add(newQuad); } diff --git a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java index da8dab492..91cf5471a 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java @@ -19,6 +19,7 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; @@ -128,7 +129,7 @@ class MemoryCardBakedModel implements IBakedModel { public ItemOverrideList getOverrides() { return new ItemOverrideList() { @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, ClientWorld world, LivingEntity entity) { try { if (stack.getItem() instanceof IMemoryCard) { diff --git a/src/main/java/appeng/client/render/model/MemoryCardModel.java b/src/main/java/appeng/client/render/model/MemoryCardModel.java index cbc271cfc..4a2ced7f3 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardModel.java @@ -31,11 +31,11 @@ import appeng.core.AppEng; public class MemoryCardModel implements IModelGeometry { public static final ResourceLocation MODEL_BASE = new ResourceLocation(AppEng.MOD_ID, "item/memory_card_base"); - private static final Material TEXTURE = new Material(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "item/memory_card_hash")); @Override - public Collection getTextures(IModelConfiguration owner, + public Collection getTextures(IModelConfiguration owner, Function modelGetter, Set> missingTextureErrors) { return Collections.singleton(TEXTURE); } diff --git a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java index 88677bbaf..ea4538ed5 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java @@ -31,6 +31,7 @@ import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.texture.TextureAtlasSprite; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; @@ -149,7 +150,7 @@ public class SkyCompassBakedModel implements IDynamicBakedModel { */ return new ItemOverrideList() { @Override - public IBakedModel getModelWithOverrides(IBakedModel originalModel, ItemStack stack, @Nullable World world, + public IBakedModel func_239290_a_(IBakedModel originalModel, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { // FIXME: This check prevents compasses being held by OTHERS from getting the // rotation, BUT do we actually still need this??? @@ -159,7 +160,7 @@ public class SkyCompassBakedModel implements IDynamicBakedModel { float offRads = (float) (player.rotationYaw / 180.0f * (float) Math.PI + Math.PI); SkyCompassBakedModel.this.fallbackRotation = offRads - + getAnimatedRotation(player.getPosition(), true); + + getAnimatedRotation(player.func_233580_cy_(), true); } else { SkyCompassBakedModel.this.fallbackRotation = getAnimatedRotation(null, false); } diff --git a/src/main/java/appeng/client/render/tesr/ChestTileEntityRenderer.java b/src/main/java/appeng/client/render/tesr/ChestTileEntityRenderer.java index 667fe91ac..0f74a89d8 100644 --- a/src/main/java/appeng/client/render/tesr/ChestTileEntityRenderer.java +++ b/src/main/java/appeng/client/render/tesr/ChestTileEntityRenderer.java @@ -144,7 +144,7 @@ public class ChestTileEntityRenderer extends TileEntityRenderer for (int i = 0; i < quads.size(); i++) { BakedQuad quad = quads.get(i); quads.set(i, new BakedQuad(quad.getVertexData(), quad.getTintIndex(), r.rotate(quad.getFace()), - quad.func_187508_a(), quad.shouldApplyDiffuseLighting())); + quad.func_187508_a(), quad.func_239287_f_())); } return quads; diff --git a/src/main/java/appeng/client/render/tesr/CrankTESR.java b/src/main/java/appeng/client/render/tesr/CrankTESR.java index 438e1e2ca..3cea8c3fd 100644 --- a/src/main/java/appeng/client/render/tesr/CrankTESR.java +++ b/src/main/java/appeng/client/render/tesr/CrankTESR.java @@ -62,7 +62,7 @@ public class CrankTESR extends TileEntityRenderer { BlockState blockState = te.getBlockState(); BlockRendererDispatcher dispatcher = Minecraft.getInstance().getBlockRendererDispatcher(); IBakedModel model = dispatcher.getModelForState(blockState); - IVertexBuilder buffer = buffers.getBuffer(Atlases.getTranslucentBlockType()); + IVertexBuilder buffer = buffers.getBuffer(Atlases.getCutoutBlockType()); dispatcher.getBlockModelRenderer().renderModelBrightnessColor(ms.getLast(), buffer, null, model, 1, 1, 1, combinedLightIn, combinedOverlayIn); ms.pop(); diff --git a/src/main/java/appeng/client/render/tesr/SkyCompassTESR.java b/src/main/java/appeng/client/render/tesr/SkyCompassTESR.java index 5b3a1835b..4f9e2b178 100644 --- a/src/main/java/appeng/client/render/tesr/SkyCompassTESR.java +++ b/src/main/java/appeng/client/render/tesr/SkyCompassTESR.java @@ -55,7 +55,7 @@ public class SkyCompassTESR extends TileEntityRenderer { blockRenderer = Minecraft.getInstance().getBlockRendererDispatcher(); } - IVertexBuilder buffer = buffers.getBuffer(Atlases.getTranslucentBlockType()); + IVertexBuilder buffer = buffers.getBuffer(Atlases.getCutoutBlockType()); BlockState blockState = te.getBlockState(); IBakedModel model = blockRenderer.getBlockModelShapes().getModel(blockState); diff --git a/src/main/java/appeng/container/ContainerLocator.java b/src/main/java/appeng/container/ContainerLocator.java index 487e0fe10..f96754c24 100644 --- a/src/main/java/appeng/container/ContainerLocator.java +++ b/src/main/java/appeng/container/ContainerLocator.java @@ -29,12 +29,14 @@ import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.Hand; +import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; import appeng.api.parts.IPartHost; import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.parts.AEBasePart; +import net.minecraft.world.World; /** * Describes how a container the player has opened was originally located. This @@ -62,14 +64,18 @@ public final class ContainerLocator { private final Type type; private final int itemIndex; - private final int dimensionId; + private final ResourceLocation worldId; private final BlockPos blockPos; private final AEPartLocation side; - private ContainerLocator(Type type, int itemIndex, int dimensionId, BlockPos blockPos, AEPartLocation side) { + private ContainerLocator(Type type, int itemIndex, World world, BlockPos blockPos, AEPartLocation side) { + this(type, itemIndex, world.func_234923_W_().func_240901_a_(), blockPos, side); + } + + private ContainerLocator(Type type, int itemIndex, ResourceLocation worldId, BlockPos blockPos, AEPartLocation side) { this.type = type; this.itemIndex = itemIndex; - this.dimensionId = dimensionId; + this.worldId = worldId; this.blockPos = blockPos; this.side = side; } @@ -78,16 +84,14 @@ public final class ContainerLocator { if (te.getWorld() == null) { throw new IllegalArgumentException("Cannot open a tile entity that is not in a world"); } - int dimensionId = te.getWorld().getDimension().getType().getId(); - return new ContainerLocator(Type.BLOCK, -1, dimensionId, te.getPos(), null); + return new ContainerLocator(Type.BLOCK, -1, te.getWorld(), te.getPos(), null); } public static ContainerLocator forTileEntitySide(TileEntity te, Direction side) { if (te.getWorld() == null) { throw new IllegalArgumentException("Cannot open a tile entity that is not in a world"); } - int dimensionId = te.getWorld().getDimension().getType().getId(); - return new ContainerLocator(Type.PART, -1, dimensionId, te.getPos(), AEPartLocation.fromFacing(side)); + return new ContainerLocator(Type.PART, -1, te.getWorld(), te.getPos(), AEPartLocation.fromFacing(side)); } /** @@ -100,16 +104,15 @@ public final class ContainerLocator { if (player == null) { throw new IllegalArgumentException("Cannot open a container without a player"); } - int dimensionId = player.world.getDimension().getType().getId(); int slot = getPlayerInventorySlotFromHand(player, context.getHand()); AEPartLocation side = AEPartLocation.fromFacing(context.getFace()); - return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, slot, dimensionId, context.getPos(), + return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, slot, player.world, context.getPos(), side); } public static ContainerLocator forHand(PlayerEntity player, Hand hand) { int slot = getPlayerInventorySlotFromHand(player, hand); - return new ContainerLocator(Type.PLAYER_INVENTORY, slot, -1, null, null); + return new ContainerLocator(Type.PLAYER_INVENTORY, slot, (ResourceLocation) null, null, null); } private static int getPlayerInventorySlotFromHand(PlayerEntity player, Hand hand) { @@ -129,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().getDimension().getType().getId(), pos.getBlockPos(), + return new ContainerLocator(Type.PART, -1, pos.getWorld().getWorld(), pos.getBlockPos(), part.getSide()); } @@ -142,8 +145,8 @@ public final class ContainerLocator { return itemIndex; } - public int getDimensionId() { - return dimensionId; + public ResourceLocation getWorldId() { + return worldId; } public boolean hasBlockPos() { @@ -173,18 +176,18 @@ public final class ContainerLocator { case PLAYER_INVENTORY_WITH_BLOCK_CONTEXT: buf.writeByte(1); buf.writeInt(itemIndex); - buf.writeInt(dimensionId); + buf.writeResourceLocation(worldId); buf.writeBlockPos(blockPos); buf.writeByte(side.ordinal()); break; case BLOCK: buf.writeByte(2); - buf.writeInt(dimensionId); + buf.writeResourceLocation(worldId); buf.writeBlockPos(blockPos); break; case PART: buf.writeByte(3); - buf.writeInt(dimensionId); + buf.writeResourceLocation(worldId); buf.writeBlockPos(blockPos); buf.writeByte(side.ordinal()); break; @@ -197,14 +200,14 @@ public final class ContainerLocator { byte type = buf.readByte(); switch (type) { case 0: - return new ContainerLocator(Type.PLAYER_INVENTORY, buf.readInt(), -1, null, null); + return new ContainerLocator(Type.PLAYER_INVENTORY, buf.readInt(), (ResourceLocation) null, null, null); case 1: - return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, buf.readInt(), buf.readInt(), + return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, buf.readInt(), buf.readResourceLocation(), buf.readBlockPos(), AEPartLocation.values()[buf.readByte()]); case 2: - return new ContainerLocator(Type.BLOCK, -1, buf.readInt(), buf.readBlockPos(), null); + return new ContainerLocator(Type.BLOCK, -1, buf.readResourceLocation(), buf.readBlockPos(), null); case 3: - return new ContainerLocator(Type.PART, -1, buf.readInt(), buf.readBlockPos(), + return new ContainerLocator(Type.PART, -1, buf.readResourceLocation(), buf.readBlockPos(), AEPartLocation.values()[buf.readByte()]); default: throw new DecoderException("ContainerLocator type out of range: " + type); @@ -219,7 +222,7 @@ public final class ContainerLocator { result.append("slot=").append(itemIndex).append(','); } if (hasBlockPos()) { - result.append("dim=").append(dimensionId).append(','); + result.append("dim=").append(worldId).append(','); result.append("pos=").append(blockPos).append(','); } if (hasSide()) { diff --git a/src/main/java/appeng/container/guisync/SyncData.java b/src/main/java/appeng/container/guisync/SyncData.java index 3d3662315..79d692ded 100644 --- a/src/main/java/appeng/container/guisync/SyncData.java +++ b/src/main/java/appeng/container/guisync/SyncData.java @@ -127,7 +127,7 @@ public class SyncData { String json = (String) val; ITextComponent text = null; if (!json.isEmpty()) { - text = ITextComponent.Serializer.fromJson((String) val); + text = ITextComponent.Serializer.func_240643_a_((String) val); } this.updateTextComponent(text); } else { diff --git a/src/main/java/appeng/container/implementations/CraftConfirmContainer.java b/src/main/java/appeng/container/implementations/CraftConfirmContainer.java index 513b7da01..a67b27658 100644 --- a/src/main/java/appeng/container/implementations/CraftConfirmContainer.java +++ b/src/main/java/appeng/container/implementations/CraftConfirmContainer.java @@ -33,6 +33,7 @@ import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.inventory.container.ContainerType; import net.minecraft.inventory.container.IContainerListener; import net.minecraft.network.PacketBuffer; +import net.minecraft.util.Util; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.World; @@ -256,7 +257,7 @@ public class CraftConfirmContainer extends AEBaseContainer { // :P } } catch (final Throwable e) { - this.getPlayerInv().player.sendMessage(new StringTextComponent("Error: " + e.toString())); + this.getPlayerInv().player.sendMessage(new StringTextComponent("Error: " + e.toString()), Util.DUMMY_UUID); AELog.debug(e); this.setValidContainer(false); this.result = null; diff --git a/src/main/java/appeng/container/implementations/WirelessTermContainer.java b/src/main/java/appeng/container/implementations/WirelessTermContainer.java index 0c6459941..c3513ec48 100644 --- a/src/main/java/appeng/container/implementations/WirelessTermContainer.java +++ b/src/main/java/appeng/container/implementations/WirelessTermContainer.java @@ -28,6 +28,7 @@ import appeng.core.AEConfig; import appeng.core.localization.PlayerMessages; import appeng.helpers.WirelessTerminalGuiObject; import appeng.util.Platform; +import net.minecraft.util.Util; public class WirelessTermContainer extends MEPortableCellContainer { @@ -57,7 +58,7 @@ public class WirelessTermContainer extends MEPortableCellContainer { if (!this.wirelessTerminalGUIObject.rangeCheck()) { if (Platform.isServer() && this.isValidContainer()) { - this.getPlayerInv().player.sendMessage(PlayerMessages.OutOfRange.get()); + this.getPlayerInv().player.sendMessage(PlayerMessages.OutOfRange.get(), Util.DUMMY_UUID); } this.setValidContainer(false); diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 94dcafd6d..9c61d3bb5 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -42,7 +42,6 @@ import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.model.ModelLoaderRegistry; import net.minecraftforge.client.model.geometry.IModelGeometry; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.ModDimension; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.ModLoadingContext; @@ -102,6 +101,10 @@ public final class AppEng { private static AppEng INSTANCE; + public static ResourceLocation makeId(String id) { + return new ResourceLocation(MOD_ID, id); + } + private final Registration registration; public AppEng() { @@ -129,7 +132,6 @@ public final class AppEng { modEventBus.addGenericListener(IRecipeSerializer.class, registration::registerRecipeSerializers); modEventBus.addGenericListener(Feature.class, registration::registerWorldGen); modEventBus.addGenericListener(Biome.class, registration::registerBiomes); - modEventBus.addGenericListener(ModDimension.class, registration::registerModDimension); modEventBus.addListener(Integrations::enqueueIMC); modEventBus.addListener(this::commonSetup); diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 99586354c..73f2afbdc 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -49,7 +49,6 @@ import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.common.ModDimension; import net.minecraftforge.common.extensions.IForgeContainerType; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.IEventBus; @@ -204,7 +203,6 @@ import appeng.recipes.handlers.InscriberRecipe; import appeng.recipes.handlers.InscriberRecipeSerializer; import appeng.server.AECommand; import appeng.spatial.StorageCellBiome; -import appeng.spatial.StorageCellModDimension; import appeng.tile.AEBaseTileEntity; import appeng.tile.crafting.MolecularAssemblerRenderer; import appeng.worldgen.ChargedQuartzOreConfig; @@ -630,9 +628,6 @@ final class Registration { * world gen */ for (final IWorldGen.WorldGenType type : IWorldGen.WorldGenType.values()) { - // FIXME: registries.worldgen().disableWorldGenForProviderID( type, - // StorageWorldProvider.class ); - registries.worldgen().disableWorldGenForDimension(type, World.field_234919_h_.getRegistryName()); } @@ -659,10 +654,6 @@ final class Registration { } b.func_235063_a_(MeteoriteStructure.INSTANCE.func_236391_a_(IFeatureConfig.NO_FEATURE_CONFIG)); - b.addFeature(GenerationStage.Decoration.TOP_LAYER_MODIFICATION, - MeteoriteStructure.INSTANCE.func_236391_a_(IFeatureConfig.NO_FEATURE_CONFIG) - //.withPlacement(Placement.NOPE.configure(IPlacementConfig.NO_PLACEMENT_CONFIG)) - ); } private static void addQuartzWorldGen(Biome b) { @@ -694,8 +685,6 @@ final class Registration { public void registerWorldGen(RegistryEvent.Register> evt) { IForgeRegistry> r = evt.getRegistry(); -// r.register(MeteoriteWorldGen.INSTANCE); - r.register(MeteoriteStructure.INSTANCE); r.register(ChargedQuartzOreFeature.INSTANCE); } @@ -703,10 +692,6 @@ final class Registration { evt.getRegistry().register(StorageCellBiome.INSTANCE); } - public void registerModDimension(RegistryEvent.Register evt) { - evt.getRegistry().register(StorageCellModDimension.INSTANCE); - } - @OnlyIn(Dist.CLIENT) public void registerTextures(TextureStitchEvent.Pre event) { SkyChestTESR.registerTextures(event); @@ -714,7 +699,7 @@ final class Registration { } public void registerCommands(final FMLServerStartingEvent evt) { - new AECommand().register(evt.getCommandDispatcher()); + new AECommand().register(evt.getServer().getCommandManager().getDispatcher()); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/appeng/core/api/ApiClientHelper.java b/src/main/java/appeng/core/api/ApiClientHelper.java index 67482ecb1..cbc8891c6 100644 --- a/src/main/java/appeng/core/api/ApiClientHelper.java +++ b/src/main/java/appeng/core/api/ApiClientHelper.java @@ -53,12 +53,12 @@ public class ApiClientHelper implements IClientHelper { if (cellInventory != null) { lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ") - .appendSibling(GuiText.Of.textComponent()).appendText(" " + cellInventory.getTotalBytes() + " ") - .appendSibling(GuiText.BytesUsed.textComponent())); + .func_230529_a_(GuiText.Of.text()).func_240702_b_(" " + cellInventory.getTotalBytes() + " ") + .func_230529_a_(GuiText.BytesUsed.text())); lines.add(new StringTextComponent(cellInventory.getStoredItemTypes() + " ") - .appendSibling(GuiText.Of.textComponent()).appendText(" " + cellInventory.getTotalItemTypes() + " ") - .appendSibling(GuiText.Types.textComponent())); + .func_230529_a_(GuiText.Of.text()).func_240702_b_(" " + cellInventory.getTotalItemTypes() + " ") + .func_230529_a_(GuiText.Types.text())); } if (handler.isPreformatted()) { @@ -66,11 +66,11 @@ public class ApiClientHelper implements IClientHelper { : GuiText.Excluded).getLocal(); if (handler.isFuzzy()) { - lines.add(GuiText.Partitioned.textComponent().appendText(" - " + list + " ") - .appendSibling(GuiText.Fuzzy.textComponent())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ") + .func_230529_a_(GuiText.Fuzzy.text())); } else { - lines.add(GuiText.Partitioned.textComponent().appendText(" - " + list + " ") - .appendSibling(GuiText.Precise.textComponent())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ") + .func_230529_a_(GuiText.Precise.text())); } } diff --git a/src/main/java/appeng/core/api/definitions/ApiBlocks.java b/src/main/java/appeng/core/api/definitions/ApiBlocks.java index d03dad71e..7d2c1487e 100644 --- a/src/main/java/appeng/core/api/definitions/ApiBlocks.java +++ b/src/main/java/appeng/core/api/definitions/ApiBlocks.java @@ -273,7 +273,7 @@ public final class ApiBlocks implements IBlocks { }).build(); this.quartzVibrantGlass = deco .block("quartz_vibrant_glass", - () -> new QuartzLampBlock(defaultProps(Material.GLASS).lightValue(15).notSolid())) + () -> new QuartzLampBlock(defaultProps(Material.GLASS).setLightLevel(b -> 15).notSolid())) .addFeatures(AEFeature.DECORATIVE_LIGHTS, AEFeature.QUARTZ_GLASS) .rendering(new BlockRenderingCustomizer() { @Override diff --git a/src/main/java/appeng/core/features/registries/WirelessRegistry.java b/src/main/java/appeng/core/features/registries/WirelessRegistry.java index 7ca6f2692..afd5e6bad 100644 --- a/src/main/java/appeng/core/features/registries/WirelessRegistry.java +++ b/src/main/java/appeng/core/features/registries/WirelessRegistry.java @@ -24,6 +24,7 @@ import java.util.List; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.world.IBlockReader; import appeng.api.features.ILocatable; @@ -77,28 +78,28 @@ public final class WirelessRegistry implements IWirelessTermRegistry { } if (!this.isWirelessTerminal(item)) { - player.sendMessage(PlayerMessages.DeviceNotWirelessTerminal.get()); + player.sendMessage(PlayerMessages.DeviceNotWirelessTerminal.get(), Util.DUMMY_UUID); return; } final IWirelessTermHandler handler = this.getWirelessTerminalHandler(item); final String unparsedKey = handler.getEncryptionKey(item); if (unparsedKey.isEmpty()) { - player.sendMessage(PlayerMessages.DeviceNotLinked.get()); + player.sendMessage(PlayerMessages.DeviceNotLinked.get(), Util.DUMMY_UUID); return; } final long parsedKey = Long.parseLong(unparsedKey); final ILocatable securityStation = Api.instance().registries().locatable().getLocatableBy(parsedKey); if (securityStation == null) { - player.sendMessage(PlayerMessages.StationCanNotBeLocated.get()); + player.sendMessage(PlayerMessages.StationCanNotBeLocated.get(), Util.DUMMY_UUID); return; } if (handler.hasPower(player, 0.5, item)) { ContainerOpener.openContainer(WirelessTermContainer.TYPE, player, ContainerLocator.forHand(player, hand)); } else { - player.sendMessage(PlayerMessages.DeviceNotPowered.get()); + player.sendMessage(PlayerMessages.DeviceNotPowered.get(), Util.DUMMY_UUID); } } } diff --git a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java index b85839719..1a4fdda2b 100644 --- a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java +++ b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java @@ -25,6 +25,7 @@ import net.minecraft.world.Dimension; import net.minecraft.world.IWorld; import appeng.api.features.IWorldGen; +import net.minecraft.world.server.ServerWorld; public final class WorldGenRegistry implements IWorldGen { @@ -40,19 +41,6 @@ public final class WorldGenRegistry implements IWorldGen { } } - @Override - public void disableWorldGenForProviderID(WorldGenType type, Class provider) { - if (type == null) { - throw new IllegalArgumentException("Bad Type Passed"); - } - - if (provider == null) { - throw new IllegalArgumentException("Bad Provider Passed"); - } - - this.types[type.ordinal()].badProviders.add(provider); - } - @Override public void enableWorldGenForDimension(final WorldGenType type, final ResourceLocation dimensionID) { if (type == null) { @@ -72,7 +60,7 @@ public final class WorldGenRegistry implements IWorldGen { } @Override - public boolean isWorldGenEnabled(final WorldGenType type, final IWorld w) { + public boolean isWorldGenEnabled(final WorldGenType type, final ServerWorld w) { if (type == null) { throw new IllegalArgumentException("Bad Type Passed"); } @@ -81,12 +69,11 @@ public final class WorldGenRegistry implements IWorldGen { throw new IllegalArgumentException("Bad Provider Passed"); } - ResourceLocation id = w.getDimension().getType().getRegistryName(); - final boolean isBadProvider = this.types[type.ordinal()].badProviders.contains(w.getDimension().getClass()); + ResourceLocation id = w.func_234923_W_().func_240901_a_(); final boolean isBadDimension = this.types[type.ordinal()].badDimensions.contains(id); final boolean isGoodDimension = this.types[type.ordinal()].enabledDimensions.contains(id); - if (isBadProvider || isBadDimension) { + if (isBadDimension) { return false; } @@ -99,7 +86,6 @@ public final class WorldGenRegistry implements IWorldGen { private static class TypeSet { - final HashSet> badProviders = new HashSet<>(); final HashSet badDimensions = new HashSet<>(); final HashSet enabledDimensions = new HashSet<>(); } diff --git a/src/main/java/appeng/core/localization/ButtonToolTips.java b/src/main/java/appeng/core/localization/ButtonToolTips.java index 33af3b09e..1a6b2b78f 100644 --- a/src/main/java/appeng/core/localization/ButtonToolTips.java +++ b/src/main/java/appeng/core/localization/ButtonToolTips.java @@ -18,6 +18,7 @@ package appeng.core.localization; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; @@ -70,23 +71,18 @@ public enum ButtonToolTips { FilterMode, FilterModeKeep, FilterModeClear; - private final String root; + private final TranslationTextComponent text; ButtonToolTips() { - this.root = "gui.tooltips.appliedenergistics2"; + this.text = new TranslationTextComponent("gui.tooltips.appliedenergistics2." + this.name()); } - ButtonToolTips(final String r) { - this.root = r; + public ITextComponent text() { + return text; } - @Deprecated - public String getLocal() { - return getTranslationKey().getFormattedText(); - } - - public ITextComponent getTranslationKey() { - return new TranslationTextComponent(this.root + '.' + this.toString()); + public IFormattableTextComponent text(Object... args) { + return new TranslationTextComponent(text.getKey(), args); } } diff --git a/src/main/java/appeng/core/localization/GuiText.java b/src/main/java/appeng/core/localization/GuiText.java index bfab69363..ae0827201 100644 --- a/src/main/java/appeng/core/localization/GuiText.java +++ b/src/main/java/appeng/core/localization/GuiText.java @@ -18,6 +18,7 @@ package appeng.core.localization; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; @@ -85,27 +86,39 @@ public enum GuiText { private final String root; + private final ITextComponent text; + GuiText() { this.root = "gui.appliedenergistics2"; + this.text = new TranslationTextComponent(getTranslationKey()); } GuiText(final String r) { this.root = r; + this.text = new TranslationTextComponent(getTranslationKey()); } - + public String getLocal() { - return this.textComponent().getString(); + return text.getString(); } public String getTranslationKey() { return this.root + '.' + this.toString(); } - public ITextComponent textComponent() { - return new TranslationTextComponent(getTranslationKey()); + public ITextComponent text() { + return text; } - public ITextComponent textComponent(Object... args) { + public IFormattableTextComponent withSuffix(String text) { + return text().deepCopy().func_240702_b_(text); + } + + public IFormattableTextComponent withSuffix(ITextComponent text) { + return text().deepCopy().func_230529_a_(text); + } + + public IFormattableTextComponent text(Object... args) { return new TranslationTextComponent(getTranslationKey(), args); } diff --git a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java index 36af1101e..557ff8c3d 100644 --- a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java +++ b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java @@ -28,11 +28,14 @@ import java.util.Set; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; +import net.minecraft.advancements.ICriterionInstance; import net.minecraft.advancements.ICriterionTrigger; import net.minecraft.advancements.PlayerAdvancements; import net.minecraft.advancements.criterion.CriterionInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.loot.ConditionArrayParser; +import net.minecraft.loot.ConditionArraySerializer; import net.minecraft.util.ResourceLocation; import appeng.core.AppEng; @@ -85,7 +88,7 @@ public class AppEngAdvancementTrigger } @Override - public AppEngAdvancementTrigger.Instance deserializeInstance(JsonObject json, JsonDeserializationContext context) { + public Instance func_230307_a_(JsonObject p_230307_1_, ConditionArrayParser p_230307_2_) { return new AppEngAdvancementTrigger.Instance(this.getId()); } @@ -98,14 +101,26 @@ public class AppEngAdvancementTrigger } } - public static class Instance extends CriterionInstance { - public Instance(ResourceLocation parID) { - super(parID); + public static class Instance implements ICriterionInstance { + private final ResourceLocation id; + + public Instance(ResourceLocation id) { + this.id = id; } public boolean test() { return true; } + + @Override + public ResourceLocation getId() { + return id; + } + + @Override + public JsonObject func_230240_a_(ConditionArraySerializer p_230240_1_) { + return new JsonObject(); + } } static class Listeners { diff --git a/src/main/java/appeng/core/sync/network/NetworkHandler.java b/src/main/java/appeng/core/sync/network/NetworkHandler.java index 0cd10f6d8..47aec7167 100644 --- a/src/main/java/appeng/core/sync/network/NetworkHandler.java +++ b/src/main/java/appeng/core/sync/network/NetworkHandler.java @@ -25,8 +25,10 @@ import net.minecraft.network.IPacket; import net.minecraft.network.ThreadQuickExitException; import net.minecraft.network.play.ServerPlayNetHandler; import net.minecraft.server.MinecraftServer; +import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.LogicalSide; @@ -119,15 +121,10 @@ public class NetworkHandler { public void sendToAllAround(final BasePacket message, final TargetPoint point) { IPacket pkt = message.toPacket(NetworkDirection.PLAY_TO_CLIENT); - getServer().getPlayerList().sendToAllNearExcept(point.excluded, point.x, point.y, point.z, point.r2, point.dim, + getServer().getPlayerList().sendToAllNearExcept(point.excluded, point.x, point.y, point.z, point.r2, point.world.func_234923_W_(), pkt); } - public void sendToDimension(final BasePacket message, final DimensionType dim) { - getServer().getPlayerList().sendPacketToAllPlayersInDimension(message.toPacket(NetworkDirection.PLAY_TO_CLIENT), - dim); - } - public void sendToServer(final BasePacket message) { Minecraft.getInstance().getConnection().sendPacket(message.toPacket(NetworkDirection.PLAY_TO_SERVER)); } diff --git a/src/main/java/appeng/core/sync/network/TargetPoint.java b/src/main/java/appeng/core/sync/network/TargetPoint.java index e2df6e53d..b9b6a28ab 100644 --- a/src/main/java/appeng/core/sync/network/TargetPoint.java +++ b/src/main/java/appeng/core/sync/network/TargetPoint.java @@ -2,6 +2,7 @@ package appeng.core.sync.network; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.world.DimensionType; +import net.minecraft.world.World; /** * Created by covers1624 on 1/6/20. @@ -13,27 +14,27 @@ public class TargetPoint { public final double y; public final double z; public final double r2; - public final DimensionType dim; + public final World world; - public TargetPoint(double x, double y, double z, double r2, DimensionType dim) { - this(null, x, y, z, r2, dim); + public TargetPoint(double x, double y, double z, double r2, World world) { + this(null, x, y, z, r2, world); } - public TargetPoint(ServerPlayerEntity excluded, double x, double y, double z, double r2, DimensionType dim) { + public TargetPoint(ServerPlayerEntity excluded, double x, double y, double z, double r2, World world) { this.excluded = excluded; this.x = x; this.y = y; this.z = z; this.r2 = r2; - this.dim = dim; + this.world = world; } - public static TargetPoint at(double x, double y, double z, double r2, DimensionType dim) { - return new TargetPoint(x, y, z, r2, dim); + public static TargetPoint at(double x, double y, double z, double r2, World world) { + return new TargetPoint(x, y, z, r2, world); } public static TargetPoint at(ServerPlayerEntity excluded, double x, double y, double z, double r2, - DimensionType dim) { - return new TargetPoint(excluded, x, y, z, r2, dim); + World world) { + return new TargetPoint(excluded, x, y, z, r2, world); } } diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index a4a0d52f1..0e89e2422 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -62,9 +62,9 @@ public final class WorldData implements IWorldData { Preconditions.checkNotNull(overworld); // Attach shared data to the server's overworld dimension - if (overworld.getDimension().getType() != DimensionType.OVERWORLD) { + if (overworld.func_234923_W_() != ServerWorld.field_234918_g_) { throw new IllegalStateException( - "The server doesn't have an Overworld dimension we could store our data on!"); + "The server doesn't have an overworld we could store our data on!"); } final PlayerData playerData = overworld.getSavedData().getOrCreate(PlayerData::new, PlayerData.NAME); @@ -96,7 +96,7 @@ public final class WorldData implements IWorldData { throw new IllegalStateException("No server set."); } - ServerWorld overworld = server.getWorld(DimensionType.OVERWORLD); + ServerWorld overworld = server.getWorld(ServerWorld.field_234918_g_); instance = new WorldData(overworld); } return instance; diff --git a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java index 9cc3a93bd..9dc2b6aaf 100644 --- a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java +++ b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java @@ -65,7 +65,7 @@ public class ChunkLoaderTileEntity extends AEBaseTileEntity implements ITickable if (!serverWorld.getForcedChunks().contains(chunkPos.asLong())) { AELog.debug("Force-loading chunk @ %d,%d in %s", chunkPos.x, chunkPos.z, - serverWorld.dimension.getType().getRegistryName()); + serverWorld.func_234923_W_()); serverWorld.forceChunk(chunkPos.x, chunkPos.z, false); } } diff --git a/src/main/java/appeng/debug/CubeGeneratorTileEntity.java b/src/main/java/appeng/debug/CubeGeneratorTileEntity.java index a69e174f5..48a47103b 100644 --- a/src/main/java/appeng/debug/CubeGeneratorTileEntity.java +++ b/src/main/java/appeng/debug/CubeGeneratorTileEntity.java @@ -26,6 +26,7 @@ import net.minecraft.item.ItemUseContext; import net.minecraft.tileentity.ITickableTileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.StringTextComponent; @@ -51,7 +52,7 @@ public class CubeGeneratorTileEntity extends AEBaseTileEntity implements ITickab if (this.countdown % 20 == 0) { for (final PlayerEntity e : AppEng.proxy.getPlayers()) { - e.sendMessage(new StringTextComponent("Spawning in... " + (this.countdown / 20))); + e.sendMessage(new StringTextComponent("Spawning in... " + (this.countdown / 20)), Util.DUMMY_UUID); } } @@ -102,7 +103,7 @@ public class CubeGeneratorTileEntity extends AEBaseTileEntity implements ITickab this.size = 64; } - player.sendMessage(new StringTextComponent("Size: " + this.size)); + player.sendMessage(new StringTextComponent("Size: " + this.size), Util.DUMMY_UUID); } else { this.countdown = 20 * 10; this.is = hand; diff --git a/src/main/java/appeng/debug/DebugCardItem.java b/src/main/java/appeng/debug/DebugCardItem.java index 87698cc8b..58ad6bf57 100644 --- a/src/main/java/appeng/debug/DebugCardItem.java +++ b/src/main/java/appeng/debug/DebugCardItem.java @@ -28,6 +28,7 @@ import net.minecraft.item.ItemUseContext; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.World; @@ -186,7 +187,7 @@ public class DebugCardItem extends AEBaseItem { } private void outputMsg(final Entity player, final String string) { - player.sendMessage(new StringTextComponent(string)); + player.sendMessage(new StringTextComponent(string), Util.DUMMY_UUID); } private String timeMeasurement(final long nanos) { diff --git a/src/main/java/appeng/debug/DebugPartPlacerItem.java b/src/main/java/appeng/debug/DebugPartPlacerItem.java index e9887d000..b0af73c9e 100644 --- a/src/main/java/appeng/debug/DebugPartPlacerItem.java +++ b/src/main/java/appeng/debug/DebugPartPlacerItem.java @@ -9,6 +9,7 @@ import net.minecraft.item.ItemUseContext; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3i; import net.minecraft.util.text.StringTextComponent; @@ -49,19 +50,19 @@ public class DebugPartPlacerItem extends AEBaseItem { } if (!player.abilities.isCreativeMode) { - player.sendMessage(new StringTextComponent("Only usable in creative mode")); + player.sendMessage(new StringTextComponent("Only usable in creative mode"), Util.DUMMY_UUID); return ActionResultType.FAIL; } TileEntity te = world.getTileEntity(pos); if (!(te instanceof IPartHost)) { - player.sendMessage(new StringTextComponent("Right-click something that will accept parts")); + player.sendMessage(new StringTextComponent("Right-click something that will accept parts"), Util.DUMMY_UUID); return ActionResultType.FAIL; } IPartHost center = (IPartHost) te; IPart cable = center.getPart(AEPartLocation.INTERNAL); if (cable == null) { - player.sendMessage(new StringTextComponent("Clicked part host must have an INSIDE part")); + player.sendMessage(new StringTextComponent("Clicked part host must have an INSIDE part"), Util.DUMMY_UUID); return ActionResultType.FAIL; } diff --git a/src/main/java/appeng/debug/MeteoritePlacerItem.java b/src/main/java/appeng/debug/MeteoritePlacerItem.java index c26eb3763..9b3f3410b 100644 --- a/src/main/java/appeng/debug/MeteoritePlacerItem.java +++ b/src/main/java/appeng/debug/MeteoritePlacerItem.java @@ -27,6 +27,7 @@ import net.minecraft.network.play.server.SChunkDataPacket; import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.MutableBoundingBox; @@ -69,7 +70,7 @@ public class MeteoritePlacerItem extends AEBaseItem { CraterType craterType = CraterType.values()[tag.getByte(MODE_TAG)]; - player.sendMessage(new StringTextComponent(craterType.name())); + player.sendMessage(new StringTextComponent(craterType.name()), Util.DUMMY_UUID); return ActionResult.resultSuccess(itemStack); } @@ -106,7 +107,7 @@ public class MeteoritePlacerItem extends AEBaseItem { pureCrater, false); if (spawned == null) { - player.sendMessage(new StringTextComponent("Un-suitable Location.")); + player.sendMessage(new StringTextComponent("Un-suitable Location."), Util.DUMMY_UUID); return ActionResultType.FAIL; } @@ -121,14 +122,14 @@ public class MeteoritePlacerItem extends AEBaseItem { placer.place(); player.sendMessage(new StringTextComponent("Spawned at y=" + spawned.getPos().getY() + " range=" + range - + " biomeCategory=" + world.getBiome(pos).getCategory())); + + " biomeCategory=" + world.getBiome(pos).getCategory()), Util.DUMMY_UUID); // The placer will not send chunks to the player since it's used as part // of world-gen normally, so we'll have to do it ourselves. Since this // is a debug tool, we'll not care about being terribly efficient here ChunkPos.getAllInBox(new ChunkPos(spawned.getPos()), 1).forEach(cp -> { Chunk c = world.getChunk(cp.x, cp.z); - player.connection.sendPacket(new SChunkDataPacket(c, 65535)); // 65535 == full chunk + player.connection.sendPacket(new SChunkDataPacket(c, 65535, false)); // 65535 == full chunk }); return ActionResultType.SUCCESS; diff --git a/src/main/java/appeng/debug/ReplicatorCardItem.java b/src/main/java/appeng/debug/ReplicatorCardItem.java index 461549397..917d90761 100644 --- a/src/main/java/appeng/debug/ReplicatorCardItem.java +++ b/src/main/java/appeng/debug/ReplicatorCardItem.java @@ -30,8 +30,12 @@ import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResultType; import net.minecraft.util.Direction; import net.minecraft.util.Hand; +import net.minecraft.util.RegistryKey; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; +import net.minecraft.util.registry.Registry; import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.DimensionType; import net.minecraft.world.World; @@ -64,7 +68,7 @@ public class ReplicatorCardItem extends AEBaseItem { tag.putInt("r", replications); - playerIn.sendMessage(new StringTextComponent((replications + 1) + "³ Replications")); + playerIn.sendMessage(new StringTextComponent((replications + 1) + "³ Replications"), Util.DUMMY_UUID); } return super.onItemRightClick(worldIn, playerIn, handIn); @@ -98,7 +102,7 @@ public class ReplicatorCardItem extends AEBaseItem { tag.putInt("y", y); tag.putInt("z", z); tag.putInt("side", side.ordinal()); - tag.putInt("dimid", world.getDimension().getType().getId()); + tag.putString("w", world.func_234923_W_().func_240901_a_().toString()); tag.putInt("r", 0); this.outputMsg(player, "Set replicator source"); @@ -112,8 +116,9 @@ public class ReplicatorCardItem extends AEBaseItem { final int src_y = ish.getInt("y"); final int src_z = ish.getInt("z"); final int src_side = ish.getInt("side"); - final int dimid = ish.getInt("dimid"); - final World src_w = world.getServer().getWorld(DimensionType.getById(dimid)); + final String worldId = ish.getString("w"); + final World src_w = world.getServer() + .getWorld(RegistryKey.func_240903_a_(Registry.WORLD_KEY, new ResourceLocation(worldId))); final int replications = ish.getInt("r") + 1; final TileEntity te = src_w.getTileEntity(new BlockPos(src_x, src_y, src_z)); @@ -182,7 +187,7 @@ public class ReplicatorCardItem extends AEBaseItem { final TileEntity nte = blk.createTileEntity(state, world); final CompoundNBT data = new CompoundNBT(); ote.write(data); - nte.read(data.copy()); + nte.read(state, data.copy()); world.setTileEntity(d, nte); } world.notifyBlockUpdate(d, prev, state, 3); @@ -212,6 +217,6 @@ public class ReplicatorCardItem extends AEBaseItem { } private void outputMsg(final Entity player, final String string) { - player.sendMessage(new StringTextComponent(string)); + player.sendMessage(new StringTextComponent(string), Util.DUMMY_UUID); } } diff --git a/src/main/java/appeng/decorative/solid/SkyStoneBlock.java b/src/main/java/appeng/decorative/solid/SkyStoneBlock.java index 853e344c6..74e89090b 100644 --- a/src/main/java/appeng/decorative/solid/SkyStoneBlock.java +++ b/src/main/java/appeng/decorative/solid/SkyStoneBlock.java @@ -67,8 +67,8 @@ public class SkyStoneBlock extends AEBaseBlock { public BlockState updatePostPlacement(BlockState stateIn, Direction facing, BlockState facingState, IWorld worldIn, BlockPos currentPos, BlockPos facingPos) { if (worldIn instanceof ServerWorld) { - WorldData.instance().compassData().service().updateArea(worldIn, new ChunkPos(currentPos), - currentPos.getY()); + ServerWorld serverWorld = (ServerWorld) worldIn; + WorldData.instance().compassData().service().notifyBlockChange(serverWorld, currentPos); } return super.updatePostPlacement(stateIn, facing, facingState, worldIn, currentPos, facingPos); @@ -83,7 +83,8 @@ public class SkyStoneBlock extends AEBaseBlock { super.onReplaced(state, w, pos, newState, isMoving); if (w instanceof ServerWorld) { - WorldData.instance().compassData().service().updateArea(w, new ChunkPos(pos), pos.getY()); + ServerWorld serverWorld = (ServerWorld) w; + WorldData.instance().compassData().service().notifyBlockChange(serverWorld, pos); } } diff --git a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java index c87735070..f90533cce 100644 --- a/src/main/java/appeng/entity/TinyTNTPrimedEntity.java +++ b/src/main/java/appeng/entity/TinyTNTPrimedEntity.java @@ -87,7 +87,7 @@ public final class TinyTNTPrimedEntity extends TNTEntity implements IEntityAddit */ @Override public void tick() { - this.handleWaterMovement(); + this.func_233566_aG_(); this.prevPosX = this.getPosX(); this.prevPosY = this.getPosY(); @@ -168,11 +168,11 @@ public final class TinyTNTPrimedEntity extends TNTEntity implements IEntityAddit + ((y + 0.5f) - this.getPosY()) * ((y + 0.5f) - this.getPosY()) + ((z + 0.5f) - this.getPosZ()) * ((z + 0.5f) - this.getPosZ()))); - final float resistance = block.getExplosionResistance(state, this.world, point, this, ex); + final float resistance = block.getExplosionResistance(state, this.world, point, ex); strength -= (resistance + 0.3F) * 0.11f; if (strength > 0.01) { - if (block.getRenderMaterial(state) != Material.AIR) { + if (state.getMaterial() != Material.AIR) { if (block.canDropFromExplosion(ex)) { block.spawnDrops(state, this.world, point); } diff --git a/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java b/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java index ead2a679d..6ee197b30 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidFormationPlaneScreen.java @@ -45,7 +45,7 @@ public class FluidFormationPlaneScreen extends UpgradeableScreen openPriorityGui())); } diff --git a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java index d1245dd19..d2fb64b51 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java @@ -58,7 +58,7 @@ public class FluidInterfaceScreen extends UpgradeableScreen openPriorityGui())); + GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui())); } @Override @@ -67,7 +67,7 @@ public class FluidInterfaceScreen extends UpgradeableScreen(this.guiLeft - 18, this.guiTop + 88, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL); - addButton(this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.textComponent(), + addButton(this.addButton(new TabButton(this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.text(), this.itemRenderer, btn -> openPriorityGui()))); this.addButton(this.storageFilter); @@ -100,8 +100,8 @@ public class FluidStorageBusScreen extends UpgradeableScreen } @Override - protected void renderHoveredToolTip(MatrixStack matrixStack, int mouseX, int mouseY) { + protected void func_230459_a_(MatrixStack matrixStack, int mouseX, int mouseY) { final Slot slot = this.getSlot(mouseX, mouseY); if (slot instanceof IMEFluidSlot && slot.isEnabled()) { @@ -170,18 +171,17 @@ public class FluidTerminalScreen extends AEBaseMEScreen final String modName = Platform.getModName(Platform.getModId(fluidStack)); - final List list = new ArrayList<>(); - - list.add(fluidStack.getFluidStack().getDisplayName().getString()); - list.add(formattedAmount); - list.add(modName); + final List list = new ArrayList<>(); + list.add(fluidStack.getFluidStack().getDisplayName()); + list.add(new StringTextComponent(formattedAmount)); + list.add(new StringTextComponent(modName)); this.renderTooltip(matrixStack, list, mouseX, mouseY); return; } } - super.renderHoveredToolTip(matrixStack, mouseX, mouseY); + super.func_230459_a_(matrixStack, mouseX, mouseY); } private > void toggleServerSetting(SettingToggleButton btn, boolean backwards) { diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java index 596edc5ce..f765fb2a4 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java @@ -91,10 +91,8 @@ public class FluidTankWidget extends Widget implements ITooltip { public ITextComponent getMessage() { final IAEFluidStack fluid = this.tank.getFluidInSlot(this.slot); if (fluid != null && fluid.getStackSize() > 0) { - String desc = fluid.getFluid().getAttributes().getDisplayName(fluid.getFluidStack()).getFormattedText(); - String amountToText = fluid.getStackSize() + "mB"; - - return new StringTextComponent(desc + "\n" + amountToText); + return fluid.getFluid().getAttributes().getDisplayName(fluid.getFluidStack()).deepCopy() + .func_240702_b_("\n" + (fluid.getStackSize() + "mB")); } return new StringTextComponent(""); } diff --git a/src/main/java/appeng/fluids/tile/FluidInterfaceTileEntity.java b/src/main/java/appeng/fluids/tile/FluidInterfaceTileEntity.java index 95af9e7af..9628a4ad1 100644 --- a/src/main/java/appeng/fluids/tile/FluidInterfaceTileEntity.java +++ b/src/main/java/appeng/fluids/tile/FluidInterfaceTileEntity.java @@ -22,6 +22,7 @@ import java.util.EnumSet; import javax.annotation.Nullable; +import net.minecraft.block.BlockState; import net.minecraft.inventory.container.ContainerType; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -102,8 +103,8 @@ public class FluidInterfaceTileEntity extends AENetworkTileEntity } @Override - public void read(final CompoundNBT data) { - super.read(data); + public void read(BlockState state, final CompoundNBT data) { + super.read(state, data); this.duality.readFromNBT(data); } diff --git a/src/main/java/appeng/helpers/InvalidPatternHelper.java b/src/main/java/appeng/helpers/InvalidPatternHelper.java index b1d1d90e9..85cfd2f90 100644 --- a/src/main/java/appeng/helpers/InvalidPatternHelper.java +++ b/src/main/java/appeng/helpers/InvalidPatternHelper.java @@ -24,6 +24,7 @@ import java.util.List; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; @@ -125,10 +126,10 @@ public class InvalidPatternHelper { } public ITextComponent getFormattedToolTip() { - ITextComponent result = new StringTextComponent(this.getCount() + " ").appendSibling(this.getName()); + IFormattableTextComponent result = new StringTextComponent(this.getCount() + " ").func_230529_a_(this.getName()); if (!this.isValid()) { - result.applyTextStyle(TextFormatting.RED); + result.func_240699_a_(TextFormatting.RED); } return result; diff --git a/src/main/java/appeng/helpers/MetaRotation.java b/src/main/java/appeng/helpers/MetaRotation.java index fe68fc092..61d3a40d2 100644 --- a/src/main/java/appeng/helpers/MetaRotation.java +++ b/src/main/java/appeng/helpers/MetaRotation.java @@ -58,12 +58,12 @@ public class MetaRotation implements IOrientable { public Direction getUp() { final BlockState state = this.w.getBlockState(this.pos); - if (this.facingProp != null && state.has(this.facingProp)) { + if (this.facingProp != null && state.func_235901_b_(this.facingProp) ) { return state.get(this.facingProp); } // TODO 1.10.2-R - Temp - if (state.has(QuartzPillarBlock.AXIS)) { + if (state.func_235901_b_(QuartzPillarBlock.AXIS)) { Axis a = state.get(QuartzPillarBlock.AXIS); switch (a) { case X: diff --git a/src/main/java/appeng/hooks/DynamicDimensions.java b/src/main/java/appeng/hooks/DynamicDimensions.java new file mode 100644 index 000000000..65a6b1190 --- /dev/null +++ b/src/main/java/appeng/hooks/DynamicDimensions.java @@ -0,0 +1,14 @@ +package appeng.hooks; + +import net.minecraft.util.RegistryKey; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; +import net.minecraft.world.gen.ChunkGenerator; +import net.minecraft.world.server.ServerWorld; + +public interface DynamicDimensions { + + ServerWorld addWorld(RegistryKey worldId, RegistryKey dimensionTypeId, + ChunkGenerator chunkGenerator); + +} diff --git a/src/main/java/appeng/integration/modules/jei/CondenserCategory.java b/src/main/java/appeng/integration/modules/jei/CondenserCategory.java index 975c32987..1a0691deb 100644 --- a/src/main/java/appeng/integration/modules/jei/CondenserCategory.java +++ b/src/main/java/appeng/integration/modules/jei/CondenserCategory.java @@ -28,6 +28,7 @@ import com.google.common.base.Splitter; import com.google.common.collect.Lists; import com.mojang.blaze3d.matrix.MatrixStack; +import jdk.nashorn.internal.objects.annotations.Function; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -43,7 +44,6 @@ import mezz.jei.api.gui.ingredient.IGuiItemStackGroup; import mezz.jei.api.helpers.IGuiHelper; import mezz.jei.api.ingredients.IIngredients; import mezz.jei.api.recipe.category.IRecipeCategory; -import mezz.jei.gui.HoverChecker; import appeng.api.config.CondenserOutput; import appeng.api.definitions.IMaterials; @@ -68,8 +68,6 @@ class CondenserCategory implements IRecipeCategory { private final IDrawable icon; - private final HoverChecker buttonHoverChecker; - private final Map buttonIcons; public CondenserCategory(IGuiHelper guiHelper) { @@ -94,7 +92,6 @@ class CondenserCategory implements IRecipeCategory { guiHelper.drawableBuilder(statesLocation, 16, 112, 14, 14).addPadding(28, 0, 78, 0).build()); this.buttonIcons.put(CondenserOutput.SINGULARITY, guiHelper.drawableBuilder(statesLocation, 32, 112, 14, 14).addPadding(28, 0, 78, 0).build()); - this.buttonHoverChecker = new HoverChecker(28, 28 + 16, 78, 78 + 16); } private ItemStack getOutput(CondenserOutput recipe) { @@ -189,7 +186,7 @@ class CondenserCategory implements IRecipeCategory { @Override public List getTooltipStrings(CondenserOutput output, double mouseX, double mouseY) { - if (this.buttonHoverChecker.checkHover((int) mouseX, (int) mouseY)) { + if (mouseX >= 28 && mouseX < 28 + 16 && mouseY >= 78 && mouseY < 78 + 16) { String key; switch (output) { diff --git a/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java b/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java index 0d9b1d408..6398f3092 100644 --- a/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java +++ b/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java @@ -18,6 +18,7 @@ package appeng.integration.modules.jei; +import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.resources.I18n; import net.minecraft.util.ResourceLocation; @@ -109,7 +110,7 @@ class InscriberRecipeCategory implements IRecipeCategory { } @Override - public void draw(InscriberRecipe recipe, double mouseX, double mouseY) { - this.progress.draw(); + public void draw(InscriberRecipe recipe, MatrixStack matrixStack, double mouseX, double mouseY) { + this.progress.draw(matrixStack); } } diff --git a/src/main/java/appeng/integration/modules/theoneprobe/TheOneProbeText.java b/src/main/java/appeng/integration/modules/theoneprobe/TheOneProbeText.java index d68e12753..b2179736e 100644 --- a/src/main/java/appeng/integration/modules/theoneprobe/TheOneProbeText.java +++ b/src/main/java/appeng/integration/modules/theoneprobe/TheOneProbeText.java @@ -32,10 +32,6 @@ public enum TheOneProbeText { this.root = "theoneprobe.appliedenergistics2"; } - public String getTranslationString(Object... args) { - return getTranslationComponent(args).getFormattedText(); - } - public TranslationTextComponent getTranslationComponent(Object... args) { return new TranslationTextComponent(this.getUnlocalized(), args); } diff --git a/src/main/java/appeng/items/misc/CrystalSeedItem.java b/src/main/java/appeng/items/misc/CrystalSeedItem.java index d83572a75..66e45ae1a 100644 --- a/src/main/java/appeng/items/misc/CrystalSeedItem.java +++ b/src/main/java/appeng/items/misc/CrystalSeedItem.java @@ -29,6 +29,7 @@ import net.minecraft.block.material.Material; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.Entity; import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemModelsProperties; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.IItemProvider; @@ -71,7 +72,7 @@ public class CrystalSeedItem extends AEBaseItem implements IGrowableCrystal { super(properties); this.grownItem = Preconditions.checkNotNull(grownItem); // Expose the growth of the seed to the model system - addPropertyOverride(new ResourceLocation("appliedenergistics2:growth"), + ItemModelsProperties.func_239418_a_(this, new ResourceLocation("appliedenergistics2:growth"), (is, w, p) -> getGrowthTicks(is) / (float) GROWTH_TICKS_REQUIRED); } @@ -106,7 +107,7 @@ public class CrystalSeedItem extends AEBaseItem implements IGrowableCrystal { @OnlyIn(Dist.CLIENT) public void addInformation(final ItemStack stack, final World world, final List lines, final ITooltipFlag advancedTooltips) { - lines.add(ButtonToolTips.DoesntDespawn.getTranslationKey()); + lines.add(ButtonToolTips.DoesntDespawn.text()); lines.add(getGrowthTooltipItem(stack)); super.addInformation(stack, world, lines, advancedTooltips); diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index 133fb3e2f..d9f44bb92 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -116,15 +116,15 @@ public class EncodedPatternItem extends AEBaseItem { return; } - stack.setDisplayName(GuiText.InvalidPattern.textComponent().deepCopy().func_240701_a_(TextFormatting.RED)); + stack.setDisplayName(GuiText.InvalidPattern.text().deepCopy().func_240701_a_(TextFormatting.RED)); InvalidPatternHelper invalid = new InvalidPatternHelper(stack); - final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.textComponent() - : GuiText.Creates.textComponent()).deepCopy().func_240702_b_(": "); + final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.text() + : GuiText.Creates.text()).deepCopy().func_240702_b_(": "); final ITextComponent and = new StringTextComponent(" ").deepCopy() - .func_230529_a_(GuiText.And.textComponent()).deepCopy().func_240702_b_(" "); - final ITextComponent with = GuiText.With.textComponent().deepCopy().func_240702_b_(": "); + .func_230529_a_(GuiText.And.text()).deepCopy().func_240702_b_(" "); + final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); boolean first = true; for (final InvalidPatternHelper.PatternIngredient output : invalid.getOutputs()) { @@ -139,10 +139,10 @@ public class EncodedPatternItem extends AEBaseItem { } if (invalid.isCraftable()) { - final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().deepCopy() + final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy() .func_240702_b_(" "); - final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.textComponent() - : GuiText.No.textComponent(); + final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.text() + : GuiText.No.text(); lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); } @@ -160,11 +160,11 @@ public class EncodedPatternItem extends AEBaseItem { final Collection in = details.getInputs(); final Collection out = details.getOutputs(); - final ITextComponent label = (isCrafting ? GuiText.Crafts.textComponent() : GuiText.Creates.textComponent()) + final ITextComponent label = (isCrafting ? GuiText.Crafts.text() : GuiText.Creates.text()) .deepCopy().func_240702_b_(": "); - final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.textComponent()) + final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.text()) .func_240702_b_(" "); - final ITextComponent with = GuiText.With.textComponent().deepCopy().func_240702_b_(": "); + final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); boolean first = true; for (final IAEItemStack anOut : out) { @@ -189,8 +189,8 @@ public class EncodedPatternItem extends AEBaseItem { } if (isCrafting) { - final ITextComponent substitutionLabel = GuiText.Substitute.textComponent().deepCopy().func_240702_b_(" "); - final ITextComponent canSubstitute = substitute ? GuiText.Yes.textComponent() : GuiText.No.textComponent(); + final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().func_240702_b_(" "); + final ITextComponent canSubstitute = substitute ? GuiText.Yes.text() : GuiText.No.text(); lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); } diff --git a/src/main/java/appeng/items/parts/FacadeItem.java b/src/main/java/appeng/items/parts/FacadeItem.java index 30fc5ccea..cb73ff718 100644 --- a/src/main/java/appeng/items/parts/FacadeItem.java +++ b/src/main/java/appeng/items/parts/FacadeItem.java @@ -77,7 +77,7 @@ public class FacadeItem extends AEBaseItem implements IFacadeItem, IAlphaPassIte try { final ItemStack in = this.getTextureItem(is); if (!in.isEmpty()) { - return super.getDisplayName(is).deepCopy().appendText(" - ").appendSibling(in.getDisplayName()); + return super.getDisplayName(is).deepCopy().func_240702_b_(" - ").func_230529_a_(in.getDisplayName()); } } catch (final Throwable ignored) { diff --git a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java index a13bc0223..71f05688b 100644 --- a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java +++ b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java @@ -23,13 +23,16 @@ import java.util.List; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; +import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.registry.Registry; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraft.world.DimensionType; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -57,17 +60,17 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag @Override public void addInformation(final ItemStack stack, final World world, final List lines, final ITooltipFlag advancedTooltips) { - final DimensionType dimType = this.getStoredDimension(stack); - if (dimType == null) { - lines.add(GuiText.Unformatted.textComponent().applyTextStyle(TextFormatting.ITALIC)); - lines.add(GuiText.SpatialCapacity.textComponent(maxRegion, maxRegion, maxRegion)); + final RegistryKey worldId = this.getStoredDimension(stack); + if (worldId == null) { + lines.add(GuiText.Unformatted.text().deepCopy().func_240699_a_(TextFormatting.ITALIC)); + lines.add(GuiText.SpatialCapacity.text(maxRegion, maxRegion, maxRegion)); } else { - SpatialDimensionManager.INSTANCE.addCellDimensionTooltip(dimType, lines); + SpatialDimensionManager.INSTANCE.addCellDimensionTooltip(worldId, lines); } if (advancedTooltips.isAdvanced()) { - if (dimType != null && dimType.getRegistryName() != null) { - lines.add(new StringTextComponent("Dimension: " + dimType.getRegistryName())); + if (worldId != null && worldId.func_240901_a_() != null) { + lines.add(new StringTextComponent("Dimension: " + worldId.func_240901_a_())); } } } @@ -83,12 +86,12 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag } @Override - public DimensionType getStoredDimension(final ItemStack is) { + public RegistryKey getStoredDimension(final ItemStack is) { final CompoundNBT c = is.getTag(); if (c != null && c.contains(TAG_DIMENSION_ID)) { try { - ResourceLocation dimTypeId = new ResourceLocation(c.getString(TAG_DIMENSION_ID)); - return DimensionType.byName(dimTypeId); + ResourceLocation worldId = new ResourceLocation(c.getString(TAG_DIMENSION_ID)); + return RegistryKey.func_240903_a_(Registry.WORLD_KEY, worldId); } catch (Exception e) { AELog.warn("Failed to retrieve storage cell dimension.", e); } @@ -97,8 +100,8 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag } @Override - public TransitionResult doSpatialTransition(final ItemStack is, final World w, final WorldCoord min, - final WorldCoord max, int playerId) { + public TransitionResult doSpatialTransition(final ItemStack is, final ServerWorld w, final WorldCoord min, + final WorldCoord max, int playerId) { final int targetX = max.x - min.x - 1; final int targetY = max.y - min.y - 1; final int targetZ = max.z - min.z - 1; @@ -108,27 +111,27 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag ISpatialDimension manager = SpatialDimensionManager.INSTANCE; - DimensionType storedDim = this.getStoredDimension(is); - if (storedDim == null) { - storedDim = manager.createNewCellDimension(targetSize); + RegistryKey worldId = this.getStoredDimension(is); + if (worldId == null || manager.getWorld(worldId) == null) { + worldId = manager.createNewCellDimension(targetSize); } - if (storedDim == null) { + if (worldId == null) { // Failed to create the dimension return new TransitionResult(false, 0); } try { - if (manager.isCellDimension(storedDim)) { - World cellWorld = manager.getWorld(storedDim); + if (manager.isCellDimension(worldId)) { + ServerWorld cellWorld = manager.getWorld(worldId); - BlockPos scale = manager.getCellDimensionSize(storedDim); + BlockPos scale = manager.getCellDimensionSize(worldId); if (scale.equals(targetSize)) { if (targetX <= maxSize && targetY <= maxSize && targetZ <= maxSize) { - BlockPos offset = manager.getCellDimensionOrigin(storedDim); + BlockPos offset = manager.getCellDimensionOrigin(worldId); - this.setStoredDimension(is, storedDim); + this.setStoredDimension(is, worldId); StorageHelper.getInstance().swapRegions(w, min.x + 1, min.y + 1, min.z + 1, cellWorld, offset.getX(), offset.getY(), offset.getZ(), targetX - 1, targetY - 1, targetZ - 1); @@ -139,14 +142,14 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag return new TransitionResult(false, 0); } finally { // clean up newly created dimensions that failed transfer - if (manager.isCellDimension(storedDim) && this.getStoredDimension(is) == null) { - manager.deleteCellDimension(storedDim); + if (manager.isCellDimension(worldId) && this.getStoredDimension(is) == null) { + manager.deleteCellDimension(worldId); } } } - private void setStoredDimension(final ItemStack is, DimensionType dim) { + private void setStoredDimension(final ItemStack is, RegistryKey worldId) { final CompoundNBT c = is.getOrCreateTag(); - c.putString(TAG_DIMENSION_ID, dim.getRegistryName().toString()); + c.putString(TAG_DIMENSION_ID, worldId.func_240901_a_().toString()); } } diff --git a/src/main/java/appeng/items/tools/MemoryCardItem.java b/src/main/java/appeng/items/tools/MemoryCardItem.java index a70a2d772..6e16f795a 100644 --- a/src/main/java/appeng/items/tools/MemoryCardItem.java +++ b/src/main/java/appeng/items/tools/MemoryCardItem.java @@ -29,6 +29,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.ActionResult; import net.minecraft.util.ActionResultType; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TextFormatting; @@ -145,19 +146,19 @@ public class MemoryCardItem extends AEBaseItem implements IMemoryCard { switch (msg) { case SETTINGS_CLEARED: - player.sendMessage(PlayerMessages.SettingCleared.get(), player.getUniqueID()); + player.sendMessage(PlayerMessages.SettingCleared.get(), Util.DUMMY_UUID); break; case INVALID_MACHINE: - player.sendMessage(PlayerMessages.InvalidMachine.get(), player.getUniqueID()); + player.sendMessage(PlayerMessages.InvalidMachine.get(), Util.DUMMY_UUID); break; case SETTINGS_LOADED: - player.sendMessage(PlayerMessages.LoadedSettings.get(), player.getUniqueID()); + player.sendMessage(PlayerMessages.LoadedSettings.get(), Util.DUMMY_UUID); break; case SETTINGS_SAVED: - player.sendMessage(PlayerMessages.SavedSettings.get(), player.getUniqueID()); + player.sendMessage(PlayerMessages.SavedSettings.get(), Util.DUMMY_UUID); break; case SETTINGS_RESET: - player.sendMessage(PlayerMessages.ResetSettings.get(), player.getUniqueID()); + player.sendMessage(PlayerMessages.ResetSettings.get(), Util.DUMMY_UUID); break; default: } diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index ee946d537..a0b796cf7 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -32,6 +32,7 @@ import net.minecraft.block.BlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; +import net.minecraft.item.ItemModelsProperties; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemUseContext; import net.minecraft.item.SnowballItem; @@ -106,7 +107,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem public ColorApplicatorItem(Item.Properties props) { super(AEConfig.instance().getColorApplicatorBattery(), props); - addPropertyOverride(new ResourceLocation(AppEng.MOD_ID, "colored"), (itemStack, world, entity) -> { + ItemModelsProperties.func_239418_a_(this, new ResourceLocation(AppEng.MOD_ID, "colored"), (itemStack, world, entity) -> { // If the stack has no color, don't use the colored model since the impact of // calling getColor for every quad is extremely high, if the stack tries to // re-search its @@ -197,7 +198,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem @Override public ITextComponent getDisplayName(final ItemStack is) { - ITextComponent extra = GuiText.Empty.textComponent(); + ITextComponent extra = GuiText.Empty.text(); final AEColor selected = this.getActiveColor(is); @@ -320,7 +321,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem } private boolean recolourBlock(final Block blk, final Direction side, final World w, final BlockPos pos, - final AEColor newColor, @Nullable final PlayerEntity p) { + final AEColor newColor, @Nullable final PlayerEntity p) { final BlockState state = w.getBlockState(pos); Block recolored = BlockRecolorer.recolor(blk, newColor); @@ -333,11 +334,22 @@ public class ColorApplicatorItem extends AEBasePoweredItem return w.setBlockState(pos, newState); } + TileEntity be = w.getTileEntity(pos); + if (be instanceof IColorableTile) { + IColorableTile ct = (IColorableTile) be; + AEColor c = ct.getColor(); + if (c != newColor) { + ct.recolourBlock(side, newColor, null); + return true; + } + return false; + } + if (blk instanceof CableBusBlock && p != null) { return ((CableBusBlock) blk).recolorBlock(w, pos, side, newColor.dye, p); } - return blk.recolorBlock(state, w, pos, side, newColor.dye); + return false; } private static > BlockState copyProp(BlockState oldState, BlockState newState, diff --git a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java index 44cb6060f..71f414e5f 100644 --- a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java +++ b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java @@ -38,6 +38,7 @@ import net.minecraft.util.DamageSource; import net.minecraft.util.Direction; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; @@ -165,7 +166,7 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< } } else { if (Platform.isServer()) { - p.sendMessage(PlayerMessages.AmmoDepleted.get()); + p.sendMessage(PlayerMessages.AmmoDepleted.get(), Util.DUMMY_UUID); } return new ActionResult<>(ActionResultType.SUCCESS, p.getHeldItem(hand)); } @@ -352,7 +353,7 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< if (entityHit instanceof LivingEntity) { final LivingEntity el = (LivingEntity) entityHit; penetration -= dmg; - el.knockBack(p, 0, -direction.x, -direction.z); + el.applyKnockback(0, -direction.x, -direction.z); // el.knockBack( p, 0, Vector3d.x, // Vector3d.z ); el.attackEntityFrom(dmgSrc, dmg); diff --git a/src/main/java/appeng/items/tools/powered/WirelessTerminalItem.java b/src/main/java/appeng/items/tools/powered/WirelessTerminalItem.java index c3d748d2d..88966392f 100644 --- a/src/main/java/appeng/items/tools/powered/WirelessTerminalItem.java +++ b/src/main/java/appeng/items/tools/powered/WirelessTerminalItem.java @@ -71,9 +71,9 @@ public class WirelessTerminalItem extends AEBasePoweredItem implements IWireless final String encKey = tag.getString("encryptionKey"); if (encKey == null || encKey.isEmpty()) { - lines.add(GuiText.Unlinked.textComponent()); + lines.add(GuiText.Unlinked.text()); } else { - lines.add(GuiText.Linked.textComponent()); + lines.add(GuiText.Linked.text()); } } } else { diff --git a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java index 0f47a8bca..e938b999f 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java @@ -67,10 +67,10 @@ public abstract class AEBasePoweredItem extends AEBaseItem implements IAEItemPow final double percent = internalCurrentPower / internalMaxPower; - lines.add(GuiText.StoredEnergy.textComponent() - .appendText(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) - .appendSibling(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) - .appendText(" - " + MessageFormat.format(" {0,number,#.##%} ", percent))); + lines.add(GuiText.StoredEnergy.text().deepCopy() + .func_240702_b_(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) + .func_230529_a_(PowerUnits.AE.textComponent()) + .func_240702_b_(" - " + MessageFormat.format(" {0,number,#.##%} ", percent))); } @Override diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index b89589dc0..880396736 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -1106,7 +1106,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { if (te.hasCustomInventoryName()) { if (this.myName != null) { - this.myName.appendText(" ").appendSibling(te.getCustomInventoryName()); + this.myName.deepCopy().func_240702_b_(" ").func_230529_a_(te.getCustomInventoryName()); } else { this.myName = te.getCustomInventoryName().deepCopy(); } diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java index a9592018c..04a0ffcd1 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java @@ -162,8 +162,7 @@ public class QuantumCluster implements ILocatable, IAECluster { if (!qc.isDestroyed) { ChunkPos cPos = new ChunkPos(qc.center.getPos()); if (theWorld.getChunkProvider().isChunkLoaded(cPos)) { - final DimensionType id = theWorld.dimension.getType(); - final World cur = theWorld.getServer().getWorld(id); + final World cur = theWorld.getServer().getWorld(theWorld.func_234923_W_()); final TileEntity te = theWorld.getTileEntity(qc.center.getPos()); return te != qc.center || theWorld != cur; diff --git a/src/main/java/appeng/mixins/DimensionTypeMixin.java b/src/main/java/appeng/mixins/DimensionTypeMixin.java new file mode 100644 index 000000000..29fd2a0ad --- /dev/null +++ b/src/main/java/appeng/mixins/DimensionTypeMixin.java @@ -0,0 +1,26 @@ +package appeng.mixins; + +import appeng.spatial.SpatialDimensionManager; +import net.minecraft.server.IDynamicRegistries; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.DimensionType; +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 java.util.OptionalLong; + +@Mixin(DimensionType.class) +public class DimensionTypeMixin { + + @Inject(method = "func_236027_a_", at = @At("TAIL")) + private static void addRegistryDefaults(IDynamicRegistries.Impl registryTracker, CallbackInfoReturnable cir) { + + registryTracker.func_239774_a_(SpatialDimensionManager.STORAGE_DIMENSION_TYPE, + new DimensionType(OptionalLong.of(12000), false, false, false, false, false, false, true, false, + false, 256, BlockTags.INFINIBURN_OVERWORLD.getName(), 1.0f)); + + } + +} diff --git a/src/main/java/appeng/mixins/MinecraftServerMixin.java b/src/main/java/appeng/mixins/MinecraftServerMixin.java new file mode 100644 index 000000000..159b925ad --- /dev/null +++ b/src/main/java/appeng/mixins/MinecraftServerMixin.java @@ -0,0 +1,102 @@ +package appeng.mixins; + +import appeng.hooks.DynamicDimensions; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableList; +import net.minecraft.server.IDynamicRegistries; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.RegistryKey; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.Dimension; +import net.minecraft.world.DimensionType; +import net.minecraft.world.World; +import net.minecraft.world.border.IBorderListener; +import net.minecraft.world.border.WorldBorder; +import net.minecraft.world.chunk.listener.IChunkStatusListener; +import net.minecraft.world.gen.ChunkGenerator; +import net.minecraft.world.gen.settings.DimensionGeneratorSettings; +import net.minecraft.world.server.ServerWorld; +import net.minecraft.world.storage.DerivedWorldInfo; +import net.minecraft.world.storage.IServerConfiguration; +import net.minecraft.world.storage.IServerWorldInfo; +import net.minecraft.world.storage.SaveFormat; +import net.minecraft.world.storage.ServerWorldInfo; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + +import java.util.Map; +import java.util.concurrent.Executor; + +@Mixin(MinecraftServer.class) +public class MinecraftServerMixin implements DynamicDimensions { + + @Shadow() + private IDynamicRegistries.Impl field_240767_f_; + + @Shadow + private Map, ServerWorld> worlds; + + @Shadow + private IServerConfiguration field_240768_i_; + + @Shadow + private Executor backgroundExecutor; + + @Shadow + private SaveFormat.LevelSave anvilConverterForAnvilFile; + + public ServerWorld addWorld(RegistryKey worldId, RegistryKey dimensionTypeId, + ChunkGenerator chunkGenerator) { + Preconditions.checkArgument(!worlds.containsKey(worldId), "World with id %s already exists.", + worldId.func_240901_a_()); + + // Each worlds must have a corresponding dimension options, otherwise they will + // not be re-created on load + DimensionGeneratorSettings generatorOptions = this.field_240768_i_.func_230418_z_(); + Preconditions.checkArgument(!generatorOptions.func_236224_e_().containsKey(worldId.func_240901_a_()), + "Dimension config with id %s already exists.", worldId.func_240901_a_()); + + DimensionType dimensionType = field_240767_f_.func_230520_a_().func_230516_a_(dimensionTypeId); + Preconditions.checkArgument(dimensionType != null, "dimensionTypeId %s is not registered", dimensionTypeId); + + // Create dimension options with the given world-id and chunk generator + Dimension dimensionOptions = new Dimension( + () -> field_240767_f_.func_230520_a_().func_230516_a_(dimensionTypeId), chunkGenerator); + + IServerWorldInfo serverWorldProperties = this.field_240768_i_.func_230407_G_(); + + // This sucks a little, but during startup, the server will use the same + // listener for every world, + // but it is ultimately only stored in the chunk storage. So we retrieve it from + // the overworld to + // mirror the original code as much as possible + ServerWorld overworld = worlds.get(ServerWorld.field_234918_g_); + Preconditions.checkState(overworld != null, "Overworld does not exist!"); + IChunkStatusListener worldGenerationProgressListener = ((ThreadedAnvilChunkStorageAccessor) overworld + .getChunkProvider().chunkManager).getWorldGenerationProgressListener(); + + // Inherit seed + WorldBorder from overworld + long seed = overworld.getSeed(); + WorldBorder worldBorder = overworld.getWorldBorder(); + + MinecraftServer self = (MinecraftServer) (Object) this; + DerivedWorldInfo unmodifiableLevelProperties = new DerivedWorldInfo(this.field_240768_i_, + serverWorldProperties); + ServerWorld world = new ServerWorld(self, this.backgroundExecutor, this.anvilConverterForAnvilFile, unmodifiableLevelProperties, + worldId, dimensionTypeId, dimensionType, worldGenerationProgressListener, chunkGenerator, false, seed, + ImmutableList.of(), false); + worldBorder.addListener(new IBorderListener.Impl(world.getWorldBorder())); + this.worlds.put(worldId, world); + + // Adding it here will cause the world to be re-created on server restart + RegistryKey dimOptKey = RegistryKey.func_240903_a_(Registry.DIMENSION_KEY, worldId.func_240901_a_()); + generatorOptions.func_236224_e_().register(dimOptKey, dimensionOptions); + generatorOptions.func_236224_e_().func_239662_d_(dimOptKey); // Otherwise it wont be saved + // Ensure the save properties are saved, or the world will potentially be lost + // on restart + this.anvilConverterForAnvilFile.func_237288_a_(this.field_240767_f_, this.field_240768_i_, self.getPlayerList().getHostPlayerData()); + + return world; + } + +} diff --git a/src/main/java/appeng/mixins/SkyPropertiesMixin.java b/src/main/java/appeng/mixins/SkyPropertiesMixin.java new file mode 100644 index 000000000..cb2c9ab0b --- /dev/null +++ b/src/main/java/appeng/mixins/SkyPropertiesMixin.java @@ -0,0 +1,25 @@ +package appeng.mixins; + +import appeng.spatial.SpatialDimensionManager; +import net.minecraft.client.world.DimensionRenderInfo; +import net.minecraft.util.RegistryKey; +import net.minecraft.world.DimensionType; +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 java.util.Optional; + +@Mixin(DimensionRenderInfo.class) +public class SkyPropertiesMixin { + + @Inject(method = "func_239215_a_", at = @At("HEAD"), cancellable = true, remap = false) + private static void byDimensionType(Optional> optional, + CallbackInfoReturnable ci) { + if (optional.orElse(null) == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { + ci.setReturnValue(SpatialDimensionManager.STORAGE_SKY); + } + } + +} diff --git a/src/main/java/appeng/mixins/SkyRenderMixin.java b/src/main/java/appeng/mixins/SkyRenderMixin.java new file mode 100644 index 000000000..b7f5ee18d --- /dev/null +++ b/src/main/java/appeng/mixins/SkyRenderMixin.java @@ -0,0 +1,29 @@ +package appeng.mixins; + +import appeng.client.render.SpatialSkyRender; +import appeng.spatial.SpatialDimensionManager; +import com.mojang.blaze3d.matrix.MatrixStack; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.WorldRenderer; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(WorldRenderer.class) +public class SkyRenderMixin { + + @Shadow(aliases = {"mc"}) + private Minecraft client; + + @SuppressWarnings("ConstantConditions") + @Inject(method = "renderSky", at = @At("HEAD"), cancellable = true) + public void renderSky(MatrixStack matrices, float tickDelta, CallbackInfo ci) { + if (client.world.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { + SpatialSkyRender.getInstance().render(matrices); + ci.cancel(); + } + } + +} diff --git a/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java b/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java new file mode 100644 index 000000000..1a7a0cf9a --- /dev/null +++ b/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java @@ -0,0 +1,14 @@ +package appeng.mixins; + +import net.minecraft.world.chunk.listener.IChunkStatusListener; +import net.minecraft.world.server.ChunkManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(ChunkManager.class) +public interface ThreadedAnvilChunkStorageAccessor { + + @Accessor("field_219266_t") + IChunkStatusListener getWorldGenerationProgressListener(); + +} diff --git a/src/main/java/appeng/mixins/TntAccessor.java b/src/main/java/appeng/mixins/TntAccessor.java new file mode 100644 index 000000000..93e442caa --- /dev/null +++ b/src/main/java/appeng/mixins/TntAccessor.java @@ -0,0 +1,20 @@ +package appeng.mixins; + +import net.minecraft.block.TNTBlock; +import net.minecraft.entity.LivingEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +import javax.annotation.Nullable; + +@Mixin(TNTBlock.class) +public interface TntAccessor { + + @Invoker + static void callPrimeTnt(World world, BlockPos pos, @Nullable LivingEntity igniter) { + throw new AssertionError("Mixin dummy"); + } + +} diff --git a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java index be3a2213c..29071a678 100644 --- a/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java +++ b/src/main/java/appeng/parts/automation/AnnihilationPlanePart.java @@ -481,7 +481,7 @@ public class AnnihilationPlanePart extends BasicStatePart implements IGridTickab || material == Material.WATER || material.isLiquid(); return !ignoreMaterials && hardness >= 0f && w.isBlockLoaded(pos) - && w.canMineBlockBody(Platform.getPlayer(w), pos); + && w.isBlockModifiable(Platform.getPlayer(w), pos); } protected List obtainBlockDrops(final ServerWorld w, final BlockPos pos) { @@ -493,7 +493,7 @@ public class AnnihilationPlanePart extends BasicStatePart implements IGridTickab ItemStack harvestTool = createHarvestTool(state); if (harvestTool == null) { - if (!state.getMaterial().isToolNotRequired()) { + if (!state.getRequiresTool()) { harvestTool = ItemStack.EMPTY; } else { // In case the block does NOT allow us to harvest it without a tool, or the diff --git a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java index 21309f33d..f1882cc79 100644 --- a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java +++ b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java @@ -29,6 +29,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.PacketBuffer; import net.minecraft.util.Direction; import net.minecraft.util.Hand; +import net.minecraft.util.Util; import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.vector.Vector3d; import net.minecraftforge.api.distmarker.Dist; @@ -178,7 +179,7 @@ public abstract class AbstractMonitorPart extends AbstractDisplayPart if (player.getHeldItem(hand).isEmpty()) { this.isLocked = !this.isLocked; - player.sendMessage((this.isLocked ? PlayerMessages.isNowLocked : PlayerMessages.isNowUnlocked).get()); + player.sendMessage((this.isLocked ? PlayerMessages.isNowLocked : PlayerMessages.isNowUnlocked).get(), Util.DUMMY_UUID); this.getHost().markForSave(); this.getHost().markForUpdate(); } diff --git a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java index c54ab8fca..2cfc6d719 100644 --- a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java +++ b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java @@ -35,6 +35,7 @@ import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; @@ -103,7 +104,7 @@ public class TestMeteoritesCommand implements ISubCommand { chunksChecked++; ChunkPos cp = new ChunkPos(cx, cz); BlockPos p = new BlockPos(cp.getXStart(), 0, cp.getZStart()); - BlockPos nearest = MeteoriteStructure.INSTANCE.findNearest(world, generator, p, 0, false); + BlockPos nearest = generator.func_235956_a_(world, MeteoriteStructure.INSTANCE, p, 0, false); if (nearest != null) { IChunk chunk = world.getChunk(cx, cz, ChunkStatus.STRUCTURE_STARTS); // The actual relevant information is in the structure piece @@ -168,13 +169,13 @@ public class TestMeteoritesCommand implements ISubCommand { settings.getFallout().name().toLowerCase())); } - ITextComponent msg = new StringTextComponent(" #" + (i + 1) + " "); - msg.deepCopy().func_230529_a_(getClickablePosition(world, settings, pos)).appendSibling(restOfLine); + IFormattableTextComponent msg = new StringTextComponent(" #" + (i + 1) + " "); + msg.func_230529_a_(getClickablePosition(world, settings, pos)).func_230529_a_(restOfLine); // Add a tooltip ITextComponent tooltip = new StringTextComponent(settings.toString() + "\nBiome: ").deepCopy() .func_230529_a_(world.getBiome(pos).getDisplayName()); - msg.applyTextStyle(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); + msg.func_240700_a_(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); sender.sendFeedback(msg, true); } @@ -192,12 +193,12 @@ public class TestMeteoritesCommand implements ISubCommand { String displayText = String.format(Locale.ROOT, "pos=%d,%d,%d", tpPos.getX(), tpPos.getY(), tpPos.getZ()); String tpCommand = String.format(Locale.ROOT, "/tp @s %d %d %d", tpPos.getX(), tpPos.getY(), tpPos.getZ()); - return new StringTextComponent(displayText).applyTextStyle(TextFormatting.UNDERLINE) - .applyTextStyle(style -> style.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, tpCommand))); + return new StringTextComponent(displayText).func_240699_a_(TextFormatting.UNDERLINE) + .func_240700_a_(style -> style.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, tpCommand))); } private static MeteoriteStructurePiece getMeteoritePieceFromChunk(IChunk chunk) { - StructureStart start = chunk.getStructureStart(MeteoriteStructure.INSTANCE.getStructureName()); + StructureStart start = chunk.func_230342_a_(MeteoriteStructure.INSTANCE); if (start != null && start.getComponents().size() > 0 && start.getComponents().get(0) instanceof MeteoriteStructurePiece) { diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index 83a1cbe69..02df50e56 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -18,38 +18,34 @@ package appeng.services; -import java.util.HashMap; -import java.util.Map; +import appeng.api.util.DimensionalCoord; +import appeng.core.Api; +import appeng.services.compass.CompassReader; +import appeng.services.compass.ICompassCallback; +import net.minecraft.block.Block; +import net.minecraft.server.MinecraftServer; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.world.IWorld; +import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunk; +import net.minecraft.world.server.ServerWorld; +import net.minecraftforge.event.world.WorldEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; + +import javax.annotation.Nonnull; +import java.util.WeakHashMap; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ThreadFactory; import java.util.concurrent.TimeUnit; -import javax.annotation.Nonnull; - -import net.minecraft.block.Block; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.DimensionType; -import net.minecraft.world.IWorld; -import net.minecraft.world.chunk.IChunk; -import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.event.world.WorldEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; - -import appeng.api.util.DimensionalCoord; -import appeng.core.Api; -import appeng.services.compass.CompassReader; -import appeng.services.compass.ICompassCallback; -import appeng.util.Platform; - public final class CompassService { private static final int CHUNK_SIZE = 16; private final MinecraftServer server; - private final Map worldSet = new HashMap<>(10); + private final WeakHashMap worldSet = new WeakHashMap<>(10); private final ExecutorService executor; private int jobSize; @@ -73,10 +69,13 @@ public final class CompassService { // FIXME this is never registered @SubscribeEvent public void unloadWorld(final WorldEvent.Unload event) { - DimensionType dim = event.getWorld().getDimension().getType(); + if (!(event.getWorld() instanceof ServerWorld)) { + return; + } - if (Platform.isServer() && this.worldSet.containsKey(dim)) { - final CompassReader compassReader = this.worldSet.remove(dim); + ServerWorld world = (ServerWorld) event.getWorld(); + if (this.worldSet.containsKey(world)) { + final CompassReader compassReader = this.worldSet.remove(world); compassReader.close(); } } @@ -91,32 +90,51 @@ public final class CompassService { } } - public void updateArea(final IWorld w, ChunkPos chunkPos) { - this.updateArea(w, chunkPos, CHUNK_SIZE); - this.updateArea(w, chunkPos, CHUNK_SIZE + 32); - this.updateArea(w, chunkPos, CHUNK_SIZE + 64); - this.updateArea(w, chunkPos, CHUNK_SIZE + 96); - - this.updateArea(w, chunkPos, CHUNK_SIZE + 128); - this.updateArea(w, chunkPos, CHUNK_SIZE + 160); - this.updateArea(w, chunkPos, CHUNK_SIZE + 192); - this.updateArea(w, chunkPos, CHUNK_SIZE + 224); + public void tryUpdateArea(final IWorld 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; + } + IChunk chunk = w.getChunk(chunkPos.x, chunkPos.z); + updateArea((ServerWorld) world, chunk); } - public Future updateArea(final IWorld w, ChunkPos chunkPos, int y) { + public void updateArea(final ServerWorld w, IChunk chunk) { + this.updateArea(w, chunk, CHUNK_SIZE); + this.updateArea(w, chunk, CHUNK_SIZE + 32); + this.updateArea(w, chunk, CHUNK_SIZE + 64); + this.updateArea(w, chunk, CHUNK_SIZE + 96); + + this.updateArea(w, chunk, CHUNK_SIZE + 128); + this.updateArea(w, chunk, CHUNK_SIZE + 160); + this.updateArea(w, chunk, CHUNK_SIZE + 192); + this.updateArea(w, chunk, CHUNK_SIZE + 224); + } + + /** + * Notifies the compass service that a skystone block has either been placed or + * replaced at the give position. + */ + public void notifyBlockChange(final ServerWorld w, BlockPos pos) { + IChunk chunk = w.getChunk(pos); + updateArea(w, chunk, pos.getY()); + } + + private Future updateArea(final ServerWorld w, IChunk c, int y) { this.jobSize++; - final int cx = chunkPos.x; final int cdy = y >> 5; - final int cz = chunkPos.z; - final int low_y = cdy << 5; final int hi_y = low_y + 32; // lower level... - final IChunk c = w.getChunk(cx, cz); - - DimensionType dim = w.getDimension().getType(); + int cx = c.getPos().x; + int cz = c.getPos().z; Block skyStoneBlock = Api.instance().definitions().blocks().skyStoneBlock().block(); BlockPos.Mutable pos = new BlockPos.Mutable(); @@ -128,13 +146,13 @@ public final class CompassService { pos.setY(k); final Block blk = c.getBlockState(pos).getBlock(); if (blk == skyStoneBlock) { - return this.executor.submit(new CMUpdatePost(dim, cx, cz, cdy, true)); + return this.executor.submit(new CMUpdatePost(w, cx, cz, cdy, true)); } } } } - return this.executor.submit(new CMUpdatePost(dim, cx, cz, cdy, false)); + return this.executor.submit(new CMUpdatePost(w, cx, cz, cdy, false)); } public void kill() { @@ -154,13 +172,12 @@ public final class CompassService { } } - private CompassReader getReader(final DimensionType dim) { - CompassReader cr = this.worldSet.get(dim); + private CompassReader getReader(final ServerWorld world) { + CompassReader cr = this.worldSet.get(world); if (cr == null) { - ServerWorld sw = server.getWorld(dim); - cr = new CompassReader(sw); - this.worldSet.put(dim, cr); + cr = new CompassReader(world); + this.worldSet.put(world, cr); } return cr; @@ -182,15 +199,15 @@ public final class CompassService { private class CMUpdatePost implements Runnable { - public final DimensionType dim; + public final ServerWorld world; public final int chunkX; public final int chunkZ; public final int doubleChunkY; // 32 blocks instead of 16. public final boolean value; - public CMUpdatePost(final DimensionType dim, final int cx, final int cz, final int dcy, final boolean val) { - this.dim = dim; + public CMUpdatePost(final ServerWorld world, final int cx, final int cz, final int dcy, final boolean val) { + this.world = world; this.chunkX = cx; this.doubleChunkY = dcy; this.chunkZ = cz; @@ -201,7 +218,7 @@ public final class CompassService { public void run() { CompassService.this.jobSize--; - final CompassReader cr = CompassService.this.getReader(this.dim); + final CompassReader cr = CompassService.this.getReader(this.world); cr.setHasBeacon(this.chunkX, this.chunkZ, this.doubleChunkY, this.value); if (CompassService.this.jobSize() < 2) { @@ -224,12 +241,15 @@ public final class CompassService { @Override public void run() { + + ServerWorld world = (ServerWorld) this.coord.getWorld(); + CompassService.this.jobSize--; final int cx = this.coord.x >> 4; final int cz = this.coord.z >> 4; - final CompassReader cr = CompassService.this.getReader(this.coord.getWorld().getDimension().getType()); + final CompassReader cr = CompassService.this.getReader(world); // Am I standing on it? if (cr.hasBeacon(cx, cz)) { diff --git a/src/main/java/appeng/spatial/CachedPlane.java b/src/main/java/appeng/spatial/CachedPlane.java index 2d7478c6b..b3fc61fe3 100644 --- a/src/main/java/appeng/spatial/CachedPlane.java +++ b/src/main/java/appeng/spatial/CachedPlane.java @@ -45,6 +45,7 @@ import appeng.api.util.WorldCoord; import appeng.core.AELog; import appeng.core.Api; import appeng.core.worlddata.WorldData; +import net.minecraft.world.server.ServerWorld; public class CachedPlane { private final int x_size; @@ -59,13 +60,13 @@ public class CachedPlane { private final Column[][] myColumns; private final List tiles = new ArrayList<>(); private final List> ticks = new ArrayList<>(); - private final World world; + private final ServerWorld world; private final IMovableRegistry reg = Api.instance().registries().movable(); private final List updates = new ArrayList<>(); private int verticalBits; private final BlockState matrixBlockState; - public CachedPlane(final World w, final int minX, final int minY, final int minZ, final int maxX, final int maxY, + public CachedPlane(final ServerWorld w, final int minX, final int minY, final int minZ, final int maxX, final int maxY, final int maxZ) { Block matrixFrameBlock = Api.instance().definitions().blocks().matrixFrame().maybeBlock().orElse(null); @@ -159,7 +160,7 @@ public class CachedPlane { if (tePOS.getX() >= minX && tePOS.getX() <= maxX && tePOS.getY() >= minY && tePOS.getY() <= maxY && tePOS.getZ() >= minZ && tePOS.getZ() <= maxZ) { this.ticks.add(new NextTickListEntry<>(tePOS, entry.getTarget(), - entry.scheduledTime - gameTime, entry.priority)); + entry.field_235017_b_ - gameTime, entry.priority)); } } } @@ -263,7 +264,7 @@ public class CachedPlane { private void addTick(final int x, final int y, final int z, final NextTickListEntry entry) { BlockPos where = new BlockPos(x + this.x_offset, y + this.y_offset, z + this.z_offset); - this.world.getPendingBlockTicks().scheduleTick(where, entry.getTarget(), (int) entry.scheduledTime, + this.world.getPendingBlockTicks().scheduleTick(where, entry.getTarget(), (int) entry.field_235017_b_, entry.priority); } @@ -315,12 +316,10 @@ public class CachedPlane { final Chunk c = this.myChunks[x][z]; - for (int y = 1; y < 255; y += 32) { - WorldData.instance().compassData().service().updateArea(this.getWorld(), c.getPos(), y); - } + WorldData.instance().compassData().service().updateArea(this.getWorld(), c); // FIXME this was sending chunks to players... - SChunkDataPacket cdp = new SChunkDataPacket(c, verticalBits); + SChunkDataPacket cdp = new SChunkDataPacket(c, verticalBits, false); ((ServerChunkProvider) world.getChunkProvider()).chunkManager.getTrackingPlayers(c.getPos(), false) .forEach(spe -> spe.connection.sendPacket(cdp)); @@ -336,7 +335,7 @@ public class CachedPlane { return this.updates; } - World getWorld() { + ServerWorld getWorld() { return this.world; } diff --git a/src/main/java/appeng/spatial/SpatialDimensionExtraData.java b/src/main/java/appeng/spatial/SpatialDimensionExtraData.java index 5912c87f2..3faad64e5 100644 --- a/src/main/java/appeng/spatial/SpatialDimensionExtraData.java +++ b/src/main/java/appeng/spatial/SpatialDimensionExtraData.java @@ -1,70 +1,70 @@ package appeng.spatial; -import javax.annotation.Nullable; - -import io.netty.buffer.Unpooled; - -import net.minecraft.network.PacketBuffer; +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.nbt.NBTUtil; import net.minecraft.util.math.BlockPos; - -import appeng.core.AELog; +import net.minecraft.world.storage.WorldSavedData; /** - * Helps with encoding and decoding the extra data we attach to the spatial - * {@link net.minecraft.world.dimension.DimensionType} as "extra data". Keep in - * mind this data will also be sent to the client unless - * {@link net.minecraftforge.common.ModDimension#write(PacketBuffer, boolean)} - * is overridden. + * Helps with encoding and decoding the extra data we attach to each created + * storage dimension world as persistent state. */ -public final class SpatialDimensionExtraData { +public final class SpatialDimensionExtraData extends WorldSavedData { + + /** + * ID of this data when it is attached to a world. + */ + public static final String ID = "ae2_spatial_info"; // Used to allow forward compatibility private static final int CURRENT_FORMAT = 1; + private static final String TAG_FORMAT = "format"; + + private static final String TAG_SIZE = "size"; + /** * The storage size of this dimension. This is dicateted by the pylon structure * size used to perform the first transfer into this dimension. Once it's set, * it cannot be changed anymore. */ - private final BlockPos size; + private BlockPos size = BlockPos.ZERO; - public SpatialDimensionExtraData(BlockPos size) { - this.size = size; + public SpatialDimensionExtraData() { + super(ID); } - public PacketBuffer write() { - PacketBuffer buf = new PacketBuffer(Unpooled.buffer()); - buf.writeByte(CURRENT_FORMAT); - buf.writeBlockPos(size); - buf.capacity(buf.writerIndex()); // This cuts the backing buffer to the required size - return buf; + public SpatialDimensionExtraData(BlockPos size) { + super(ID); + this.size = size; } public BlockPos getSize() { return size; } - @Nullable - public static SpatialDimensionExtraData read(@Nullable PacketBuffer buf) { - if (buf == null) { - return null; + public void setSize(BlockPos size) { + this.size = size; + setDirty(true); + } + + @Override + public void read(CompoundNBT tag) { + int version = tag.getInt(TAG_FORMAT); + if (version != CURRENT_FORMAT) { + // Currently no new format has been defined, as such anything but the current + // version is invalid + throw new IllegalStateException("Invalid AE2 spatial info version: " + version); } - try { - buf.readerIndex(0); - byte version = buf.readByte(); - if (version != CURRENT_FORMAT) { - // Currently no new format has been defined, as such anything but the current - // version is invalid - return null; - } + size = NBTUtil.readBlockPos(tag.getCompound(TAG_SIZE)); + } - BlockPos size = buf.readBlockPos(); - return new SpatialDimensionExtraData(size); - } catch (IndexOutOfBoundsException e) { - AELog.warn(e, "Failed to read spatial storage dimension data."); - return null; - } + @Override + public CompoundNBT write(CompoundNBT tag) { + tag.putInt(TAG_FORMAT, CURRENT_FORMAT); + tag.put(TAG_SIZE, NBTUtil.writeBlockPos(size)); + return tag; } } diff --git a/src/main/java/appeng/spatial/SpatialDimensionManager.java b/src/main/java/appeng/spatial/SpatialDimensionManager.java index cbacf493b..65243d5a0 100644 --- a/src/main/java/appeng/spatial/SpatialDimensionManager.java +++ b/src/main/java/appeng/spatial/SpatialDimensionManager.java @@ -23,14 +23,19 @@ import java.util.Locale; import javax.annotation.Nullable; +import appeng.hooks.DynamicDimensions; +import net.minecraft.client.world.DimensionRenderInfo; import net.minecraft.network.PacketBuffer; import net.minecraft.server.MinecraftServer; +import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.util.registry.Registry; import net.minecraft.util.text.ITextComponent; import net.minecraft.world.DimensionType; +import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; -import net.minecraftforge.common.DimensionManager; import net.minecraftforge.fml.server.ServerLifecycleHooks; import appeng.api.storage.ISpatialDimension; @@ -40,6 +45,35 @@ import appeng.core.localization.GuiText; public final class SpatialDimensionManager implements ISpatialDimension { + // A region file is 512x512 blocks (32x32 chunks), + // to avoid creating the 4 regions around 0,0,0, + // we move the origin to the middle of region 0,0 + public static final BlockPos REGION_CENTER = new BlockPos(512 / 2, 64, 512 / 2); + + public static final RegistryKey STORAGE_DIMENSION_TYPE = RegistryKey.func_240903_a_(Registry.DIMENSION_TYPE_KEY, + AppEng.makeId("storage_cell")); + + // See the fabric version of this to get any idea what its doing + public static final DimensionRenderInfo STORAGE_SKY = new DimensionRenderInfo(Float.NaN /* disables clouds */, false, + DimensionRenderInfo.FogType.NONE /* we use a custom render mixin */, true, false) { + + @Override + public Vector3d func_230494_a_(Vector3d p_230494_1_, float p_230494_2_) { + return Vector3d.ZERO; + } + + @Override + public boolean func_230493_a_(int p_230493_1_, int p_230493_2_) { + return false; + } + + @Nullable + @Override + public float[] func_230492_a_(float p_230492_1_, float p_230492_2_) { + return null; + } + }; + public static final ISpatialDimension INSTANCE = new SpatialDimensionManager(); private static final String DIM_ID_PREFIX = "spatial_"; @@ -48,18 +82,27 @@ public final class SpatialDimensionManager implements ISpatialDimension { } @Override - public ServerWorld getWorld(DimensionType cellDim) { - return DimensionManager.getWorld(getServer(), cellDim, true, true); + public ServerWorld getWorld(RegistryKey cellDim) { + MinecraftServer server = getServer(); + return server.getWorld(cellDim); } @Override - public DimensionType createNewCellDimension(BlockPos size) { + public RegistryKey createNewCellDimension(BlockPos size) { ResourceLocation dimKey = findFreeDimensionId(); AELog.info("Allocating storage cell dimension '%s'", dimKey); - PacketBuffer extraData = new SpatialDimensionExtraData(size).write(); + DynamicDimensions dynamicDimensions = (DynamicDimensions) getServer(); - return DimensionManager.registerDimension(dimKey, StorageCellModDimension.INSTANCE, extraData, true); + RegistryKey worldId = RegistryKey.func_240903_a_(Registry.WORLD_KEY, dimKey); + + ServerWorld world = dynamicDimensions.addWorld(worldId, STORAGE_DIMENSION_TYPE, StorageChunkGenerator.INSTANCE); + + SpatialDimensionExtraData spatialExtraData = world.getSavedData() + .getOrCreate(SpatialDimensionExtraData::new, SpatialDimensionExtraData.ID); + spatialExtraData.setSize(size); + + return worldId; } /** @@ -68,8 +111,8 @@ public final class SpatialDimensionManager implements ISpatialDimension { */ private ResourceLocation findFreeDimensionId() { int maxId = 0; - for (DimensionType dimensionType : DimensionType.getAll()) { - ResourceLocation regName = dimensionType.getRegistryName(); + for (RegistryKey worldId : getServer().func_240770_D_()) { + ResourceLocation regName = worldId.func_240901_a_(); if (regName == null || !AppEng.MOD_ID.equals(regName.getNamespace())) { continue; } @@ -89,46 +132,56 @@ public final class SpatialDimensionManager implements ISpatialDimension { ++maxId; - return new ResourceLocation(AppEng.MOD_ID, DIM_ID_PREFIX + maxId); + return AppEng.makeId(DIM_ID_PREFIX + maxId); } @Override - public void deleteCellDimension(DimensionType cellDim) { - AELog.info("Unregistering storage cell dimension %s", cellDim.getRegistryName()); + public void deleteCellDimension(RegistryKey worldId) { + AELog.info("Unregistering storage cell dimension %s", worldId.func_240901_a_()); MinecraftServer server = getServer(); - ServerWorld world = DimensionManager.getWorld(server, cellDim, false, false); - if (world != null) { - DimensionManager.unloadWorld(world); - } - DimensionManager.unloadWorlds(server, true); - DimensionManager.unregisterDimension(cellDim.getId()); +// FIXME FABRIC ServerWorld world = DimensionManager.getWorld(server, worldId, false, false); +// FIXME FABRIC if (world != null) { +// FIXME FABRIC DimensionManager.unloadWorld(world); +// FIXME FABRIC } +// FIXME FABRIC DimensionManager.unloadWorlds(server, true); +// FIXME FABRIC DimensionManager.unregisterDimension(worldId.getId()); + throw new IllegalStateException(); } @Override - public boolean isCellDimension(DimensionType cellDim) { - // Check if the cell dimension type is even registered - if (cellDim.getRegistryName() == null || !cellDim.getRegistryName().equals(DimensionType.getKey(cellDim))) { + public boolean isCellDimension(RegistryKey worldId) { + ResourceLocation id = worldId.func_240901_a_(); + if (!id.getNamespace().equals(AppEng.MOD_ID)) { + return false; // World belongs to a different mod + } + if (!id.getPath().startsWith(DIM_ID_PREFIX)) { return false; } - return cellDim.getModType() instanceof StorageCellModDimension; + // Check that the world has the right dimension type + ServerWorld world = getServer().getWorld(worldId); + if (world == null) { + return false; // Non-existent world + } + + return world.func_234922_V_().equals(STORAGE_DIMENSION_TYPE); } @Override - public BlockPos getCellDimensionOrigin(DimensionType cellDim) { - return StorageCellDimension.REGION_CENTER; + public BlockPos getCellDimensionOrigin(RegistryKey worldId) { + return REGION_CENTER; } @Override - public BlockPos getCellDimensionSize(DimensionType cellDim) { - SpatialDimensionExtraData extraData = getExtraData(cellDim); + public BlockPos getCellDimensionSize(RegistryKey worldId) { + SpatialDimensionExtraData extraData = getExtraData(worldId); return extraData != null ? extraData.getSize() : BlockPos.ZERO; } @Override - public void addCellDimensionTooltip(DimensionType cellDim, List lines) { + public void addCellDimensionTooltip(RegistryKey worldId, List lines) { // Check if the cell dimension type is even registered - ResourceLocation registryName = cellDim.getRegistryName(); + ResourceLocation registryName = worldId.func_240901_a_(); if (registryName == null || !AppEng.MOD_ID.equals(registryName.getNamespace())) { return; } @@ -138,8 +191,8 @@ public final class SpatialDimensionManager implements ISpatialDimension { } // Add the actual stored size - BlockPos size = SpatialDimensionManager.INSTANCE.getCellDimensionSize(cellDim); - lines.add(GuiText.StoredSize.textComponent(size.getX(), size.getY(), size.getZ())); + BlockPos size = SpatialDimensionManager.INSTANCE.getCellDimensionSize(worldId); + lines.add(GuiText.StoredSize.text(size.getX(), size.getY(), size.getZ())); // Add a serial number to allows players to keep different cells apart int dimId; @@ -152,15 +205,17 @@ public final class SpatialDimensionManager implements ISpatialDimension { // Try to make this a little more flavorful. String serialNumber = String.format(Locale.ROOT, "SP-%04d", dimId); - lines.add(GuiText.SerialNumber.textComponent(serialNumber)); + lines.add(GuiText.SerialNumber.text(serialNumber)); } @Nullable - private SpatialDimensionExtraData getExtraData(DimensionType cellDim) { - if (!(cellDim.getModType() instanceof StorageCellModDimension)) { + private SpatialDimensionExtraData getExtraData(RegistryKey worldId) { + ServerWorld world = getWorld(worldId); + if (world == null) { return null; } - return SpatialDimensionExtraData.read(cellDim.getData()); + + return world.getSavedData().get(SpatialDimensionExtraData::new, SpatialDimensionExtraData.ID); } private static MinecraftServer getServer() { diff --git a/src/main/java/appeng/spatial/StorageCellBiome.java b/src/main/java/appeng/spatial/StorageCellBiome.java index dee00faf2..0f7cc1bd6 100644 --- a/src/main/java/appeng/spatial/StorageCellBiome.java +++ b/src/main/java/appeng/spatial/StorageCellBiome.java @@ -18,14 +18,9 @@ package appeng.spatial; -import net.minecraft.util.SharedSeedRandom; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.IWorld; -import net.minecraft.world.IWorldReader; import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.ChunkGenerator; -import net.minecraft.world.gen.GenerationSettings; -import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.biome.BiomeAmbience; +import net.minecraft.world.gen.surfacebuilders.ConfiguredSurfaceBuilder; import net.minecraft.world.gen.surfacebuilders.SurfaceBuilder; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; @@ -34,15 +29,14 @@ public class StorageCellBiome extends Biome { public static final StorageCellBiome INSTANCE = new StorageCellBiome(); - static { - INSTANCE.setRegistryName("appliedenergistics2:storage"); - } - public StorageCellBiome() { - super(new Biome.Builder().surfaceBuilder(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_STONE_GRAVEL_CONFIG) + super(new Biome.Builder() + .surfaceBuilder(new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_STONE_GRAVEL_CONFIG)) .precipitation(RainType.NONE).category(Category.NONE).depth(0).scale(1) // Copied from the vanilla void biome - .temperature(0.5F).downfall(0.5F).waterColor(4159204).waterFogColor(329011).parent(null)); + .temperature(0.5F).downfall(0.5F) + .func_235097_a_(new BiomeAmbience.Builder().func_235246_b_(4159204).func_235248_c_(329011).func_235239_a_(0).func_235238_a_()) + .parent(null)); } @Override @@ -51,24 +45,4 @@ public class StorageCellBiome extends Biome { return 0x111111; } - @Override - public boolean doesWaterFreeze(IWorldReader worldIn, BlockPos pos) { - return false; - } - - @Override - public boolean doesWaterFreeze(IWorldReader worldIn, BlockPos water, boolean mustBeAtEdge) { - return false; - } - - @Override - public boolean doesSnowGenerate(IWorldReader worldIn, BlockPos pos) { - return false; - } - - @Override - public void decorate(GenerationStage.Decoration stage, ChunkGenerator chunkGenerator, - IWorld worldIn, long seed, SharedSeedRandom random, BlockPos pos) { - // Nothing should ever generate here... - } } diff --git a/src/main/java/appeng/spatial/StorageCellDimension.java b/src/main/java/appeng/spatial/StorageCellDimension.java deleted file mode 100644 index ae2ef5a6a..000000000 --- a/src/main/java/appeng/spatial/StorageCellDimension.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.spatial; - -import javax.annotation.Nullable; - -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.world.Dimension; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraft.world.gen.ChunkGenerator; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.IRenderHandler; - -import appeng.client.render.SpatialSkyRender; - -public class StorageCellDimension extends Dimension { - - // A region file is 512x512 blocks (32x32 chunks), - // to avoid creating the 4 regions around 0,0,0, - // we move the origin to the middle of region 0,0 - public static final BlockPos REGION_CENTER = new BlockPos(512 / 2, 64, 512 / 2); - - public StorageCellDimension(World world, DimensionType dimensionType) { - // FIXME: check light value - super(world, dimensionType, 1.0f); - } - - @Override - public ChunkGenerator createChunkGenerator() { - return new StorageChunkGenerator(this.world); - } - - @Override - public float calculateCelestialAngle(final long par1, final float par3) { - return 0; - } - - @Override - public boolean isSurfaceWorld() { - return false; - } - - @Override - @OnlyIn(Dist.CLIENT) - public float[] calcSunriseSunsetColors(final float celestialAngle, final float partialTicks) { - return null; - } - - @Override - public Vector3d getFogColor(final float par1, final float par2) { - return new Vector3d(0.07, 0.07, 0.07); - } - - @Override - public boolean canRespawnHere() { - return false; - } - - @Override - @OnlyIn(Dist.CLIENT) - public boolean isSkyColored() { - return true; - } - - @Override - public boolean doesXZShowFog(final int par1, final int par2) { - return false; - } - - @Override - public IRenderHandler getSkyRenderer() { - return SpatialSkyRender.getInstance(); - } - - @Override - public boolean isDaytime() { - return false; - } - - @Override - public BlockPos getSpawnCoordinate() { - return REGION_CENTER; - } - - @Override - public boolean isHighHumidity(final BlockPos pos) { - return false; - } - - @Override - public boolean canDoLightning(final Chunk chunk) { - return false; - } - - @Override - public boolean canDoRainSnowIce(Chunk chunk) { - return false; - } - - @Nullable - @Override - public BlockPos findSpawn(ChunkPos chunkPosIn, boolean checkValid) { - return getSpawnCoordinate(); - } - - @Nullable - @Override - public BlockPos findSpawn(int posX, int posZ, boolean checkValid) { - return getSpawnCoordinate(); - } - -} diff --git a/src/main/java/appeng/spatial/StorageCellModDimension.java b/src/main/java/appeng/spatial/StorageCellModDimension.java deleted file mode 100644 index a7980ecb2..000000000 --- a/src/main/java/appeng/spatial/StorageCellModDimension.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * This file is part of Applied Energistics 2. - * Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved. - * - * Applied Energistics 2 is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Applied Energistics 2 is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with Applied Energistics 2. If not, see . - */ - -package appeng.spatial; - -import java.util.function.BiFunction; - -import net.minecraft.world.Dimension; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; -import net.minecraftforge.common.ModDimension; - -import appeng.core.AppEng; - -public class StorageCellModDimension extends ModDimension { - - public static final StorageCellModDimension INSTANCE = new StorageCellModDimension(); - - static { - INSTANCE.setRegistryName(AppEng.MOD_ID, "storage_cell"); - } - - @Override - public BiFunction getFactory() { - return StorageCellDimension::new; - } - -} diff --git a/src/main/java/appeng/spatial/StorageChunkGenerator.java b/src/main/java/appeng/spatial/StorageChunkGenerator.java index c46869337..be9d10cd5 100644 --- a/src/main/java/appeng/spatial/StorageChunkGenerator.java +++ b/src/main/java/appeng/spatial/StorageChunkGenerator.java @@ -18,38 +18,63 @@ package appeng.spatial; +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.Blockreader; +import net.minecraft.world.IBlockReader; import net.minecraft.world.IWorld; -import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeManager; import net.minecraft.world.biome.provider.BiomeProvider; import net.minecraft.world.biome.provider.SingleBiomeProvider; -import net.minecraft.world.biome.provider.SingleBiomeProviderSettings; import net.minecraft.world.chunk.IChunk; import net.minecraft.world.gen.ChunkGenerator; -import net.minecraft.world.gen.GenerationSettings; +import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.WorldGenRegion; import appeng.core.Api; +import net.minecraft.world.gen.feature.structure.StructureManager; +import net.minecraft.world.gen.settings.DimensionStructuresSettings; -public class StorageChunkGenerator extends ChunkGenerator { +import java.util.Arrays; +import java.util.Collections; +import java.util.Optional; + +public class StorageChunkGenerator extends ChunkGenerator { + + private final Blockreader columnSample; + + public static final StorageChunkGenerator INSTANCE = new StorageChunkGenerator(); + + public static final Codec CODEC = RecordCodecBuilder + .create((instance) -> instance.stable(INSTANCE)); private final BlockState defaultBlockState; - public StorageChunkGenerator(final World world) { - super(world, createBiomeProvider(), createSettings()); + private StorageChunkGenerator() { + super(createBiomeProvider(), createSettings()); this.defaultBlockState = Api.instance().definitions().blocks().matrixFrame().block().getDefaultState(); + + // Vertical sample is mostly used for Feature generation, for those purposes + // we're all filled with matrix blocks + BlockState[] columnSample = new BlockState[256]; + Arrays.fill(columnSample, this.defaultBlockState); + this.columnSample = new Blockreader(columnSample); + } + + @Override + protected Codec func_230347_a_() { + return CODEC; } private static BiomeProvider createBiomeProvider() { - SingleBiomeProviderSettings biomeSettings = new SingleBiomeProviderSettings(null); - biomeSettings.setBiome(StorageCellBiome.INSTANCE); - return new SingleBiomeProvider(biomeSettings); + return new SingleBiomeProvider(StorageCellBiome.INSTANCE); } - private static GenerationSettings createSettings() { - return new GenerationSettings(); + private static DimensionStructuresSettings createSettings() { + return new DimensionStructuresSettings(Optional.empty(), Collections.emptyMap()); } @Override @@ -75,22 +100,34 @@ public class StorageChunkGenerator extends ChunkGenerator { } @Override - public int getGroundHeight() { + public int func_230356_f_() { return 0; } @Override - public void makeBase(IWorld worldIn, IChunk chunkIn) { + public ChunkGenerator func_230349_a_(long p_230349_1_) { + return this; } @Override - public int getHeight(int p_222529_1_, int p_222529_2_, Heightmap.Type heightmapType) { + public void func_230352_b_(IWorld world, StructureManager accessor, IChunk chunk) { + } + + public IBlockReader func_230348_a_(int x, int z) { + return columnSample; + } + + @Override + public int func_222529_a(int p_222529_1_, int p_222529_2_, Heightmap.Type heightmapType) { return 0; } @Override - public void decorate(WorldGenRegion region) { - // Do not decorate chunks at all + public void func_230351_a_(WorldGenRegion region, StructureManager accessor) { + } + + @Override + public void func_230350_a_(long seed, BiomeManager access, IChunk chunk, GenerationStage.Carving carver) { } } diff --git a/src/main/java/appeng/spatial/StorageHelper.java b/src/main/java/appeng/spatial/StorageHelper.java index 329ae680b..a3ba7f351 100644 --- a/src/main/java/appeng/spatial/StorageHelper.java +++ b/src/main/java/appeng/spatial/StorageHelper.java @@ -97,11 +97,11 @@ public class StorageHelper { newWorld.getChunkProvider().getChunk(MathHelper.floor(link.x) >> 4, MathHelper.floor(link.z) >> 4, ChunkStatus.FULL, true); - if (entity instanceof ServerPlayerEntity && link.dim.getDimension() instanceof StorageCellDimension) { + if (entity instanceof ServerPlayerEntity && link.dim.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { AppEng.instance().getAdvancementTriggers().getSpatialExplorer().trigger((ServerPlayerEntity) entity); } - entity.changeDimension(link.dim.getDimension().getType(), new METeleporter(link)); + entity.changeDimension(link.dim, new METeleporter(link)); if (!passengersOnOtherSide.isEmpty()) { for (Entity passanger : passengersOnOtherSide) { @@ -136,7 +136,7 @@ public class StorageHelper { } } - public void swapRegions(final World srcWorld, final int srcX, final int srcY, final int srcZ, final World dstWorld, + public void swapRegions(final ServerWorld srcWorld, final int srcX, final int srcY, final int srcZ, final ServerWorld dstWorld, final int dstX, final int dstY, final int dstZ, final int scaleX, final int scaleY, final int scaleZ) { Api.instance().definitions().blocks().matrixFrame().maybeBlock() .ifPresent(matrixFrameBlock -> this.transverseEdges(dstX - 1, dstY - 1, dstZ - 1, dstX + scaleX + 1, @@ -222,12 +222,12 @@ public class StorageHelper { } private static class TelDestination { - private final World dim; + private final ServerWorld dim; private final double x; private final double y; private final double z; - TelDestination(final World dimension, final AxisAlignedBB srcBox, final double x, final double y, + TelDestination(final ServerWorld dimension, final AxisAlignedBB srcBox, final double x, final double y, final double z, final int tileX, final int tileY, final int tileZ) { this.dim = dimension; this.x = Math.min(srcBox.maxX - 0.5, Math.max(srcBox.minX + 0.5, x + tileX)); diff --git a/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java b/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java index 535aa852f..649778c67 100644 --- a/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java +++ b/src/main/java/appeng/tile/crafting/MolecularAssemblerTileEntity.java @@ -426,7 +426,7 @@ public class MolecularAssemblerTileEntity extends AENetworkInvTileEntity final IAEItemStack item = AEItemStack.fromItemStack(output); if (item != null) { final TargetPoint where = new TargetPoint(this.pos.getX(), this.pos.getY(), this.pos.getZ(), 32, - this.world.func_230315_m_()); + this.world); NetworkHandler.instance() .sendToAllAround(new AssemblerAnimationPacket(this.pos, (byte) speed, item), where); } diff --git a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java index a31edaca4..5f5b0d3ad 100644 --- a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java +++ b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java @@ -26,6 +26,7 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import net.minecraftforge.items.IItemHandler; import appeng.api.config.Actionable; @@ -115,6 +116,11 @@ public class SpatialIOPortTileEntity extends AENetworkInvTileEntity implements I @Override public Void call(final World world) throws Exception { + if (!(this.world instanceof ServerWorld)) { + return null; + } + ServerWorld serverWorld = (ServerWorld) this.world; + final ItemStack cell = this.inv.getStackInSlot(0); if (this.isSpatialCell(cell) && this.inv.getStackInSlot(1).isEmpty()) { final IGrid gi = this.getProxy().getGrid(); @@ -134,7 +140,7 @@ public class SpatialIOPortTileEntity extends AENetworkInvTileEntity implements I playerId = this.getProxy().getSecurity().getOwner(); } - final TransitionResult tr = sc.doSpatialTransition(cell, this.world, spc.getMin(), spc.getMax(), + final TransitionResult tr = sc.doSpatialTransition(cell, serverWorld, spc.getMin(), spc.getMax(), playerId); if (tr.success) { energy.extractAEPower(req, Actionable.MODULATE, PowerMultiplier.CONFIG); diff --git a/src/main/java/appeng/tile/storage/SkyChestTileEntity.java b/src/main/java/appeng/tile/storage/SkyChestTileEntity.java index dd397ddfe..be8ed037e 100644 --- a/src/main/java/appeng/tile/storage/SkyChestTileEntity.java +++ b/src/main/java/appeng/tile/storage/SkyChestTileEntity.java @@ -71,11 +71,6 @@ public class SkyChestTileEntity extends AEBaseInvTileEntity implements ITickable return c; // TESR yo! } - @Override - public boolean canRenderBreaking() { - return true; - } - @Override public IItemHandler getInternalInventory() { return this.inv; diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 28c0a3fd5..4d67d8655 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -47,6 +47,7 @@ import net.minecraft.item.crafting.IRecipe; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.Util; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.EntityRayTraceResult; @@ -62,6 +63,7 @@ import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.common.ForgeMod; import net.minecraftforge.common.util.FakePlayerFactory; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fml.ModList; @@ -232,7 +234,7 @@ public class Platform { if (!dc.isInWorld(player.world)) { return false; } - return player.world.canMineBlockBody(player, dc.getPos()); + return player.world.isBlockModifiable(player, dc.getPos()); } public static boolean checkPermissions(final PlayerEntity player, final Object accessInterface, @@ -255,7 +257,7 @@ public class Platform { final ISecurityGrid sg = g.getCache(ISecurityGrid.class); if (!sg.hasPermission(player, requiredPermission)) { player.sendMessage(new TranslationTextComponent("appliedenergistics2.permission_denied") - .applyTextStyle(TextFormatting.RED)); + .func_240699_a_(TextFormatting.RED), Util.DUMMY_UUID); // FIXME trace logging? return false; } @@ -667,7 +669,7 @@ public class Platform { } public static LookDirection getPlayerRay(final PlayerEntity playerIn) { - double reachDistance = playerIn.getAttribute(PlayerEntity.REACH_DISTANCE).getValue(); + double reachDistance = playerIn.getAttribute(ForgeMod.REACH_DISTANCE.get()).getValue(); return getPlayerRay(playerIn, reachDistance); } diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java index ad4021231..54cb492c9 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java @@ -1,9 +1,11 @@ package appeng.worldgen; import com.google.common.collect.ImmutableMap; +import com.mojang.serialization.Codec; import com.mojang.serialization.Dynamic; import com.mojang.serialization.DynamicOps; +import com.mojang.serialization.codecs.RecordCodecBuilder; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.world.gen.feature.IFeatureConfig; @@ -16,6 +18,12 @@ import appeng.core.AEConfig; */ public class ChargedQuartzOreConfig implements IFeatureConfig { + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance + .group(BlockState.field_235877_b_.fieldOf("target").forGetter((config) -> config.target), + BlockState.field_235877_b_.fieldOf("state").forGetter((config) -> config.state), + Codec.FLOAT.fieldOf("chance").withDefault(0f).forGetter((config) -> config.chance)) + .apply(instance, ChargedQuartzOreConfig::new)); + public final BlockState target; public final BlockState state; public final float chance; @@ -26,20 +34,4 @@ public class ChargedQuartzOreConfig implements IFeatureConfig { this.chance = chance; } - @Override - public Dynamic serialize(DynamicOps ops) { - return new Dynamic<>(ops, - ops.createMap( - ImmutableMap.of(ops.createString("target"), BlockState.serialize(ops, this.target).getValue(), - ops.createString("state"), BlockState.serialize(ops, this.state).getValue(), - ops.createString("chance"), ops.createFloat(this.chance)))); - } - - public static ChargedQuartzOreConfig deserialize(Dynamic p_214657_0_) { - BlockState target = p_214657_0_.get("target").map(BlockState::deserialize).orElse(Blocks.AIR.getDefaultState()); - BlockState state = p_214657_0_.get("state").map(BlockState::deserialize).orElse(Blocks.AIR.getDefaultState()); - float chance = p_214657_0_.get("chance").asFloat(AEConfig.instance().getSpawnChargedChance()); - return new ChargedQuartzOreConfig(target, state, chance); - } - } diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index 7735f355e..887b10d5b 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -1,9 +1,6 @@ package appeng.worldgen; -import java.util.Random; - import com.mojang.serialization.Codec; - import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.ISeedReader; @@ -11,31 +8,25 @@ import net.minecraft.world.chunk.IChunk; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.ReplaceBlockFeature; import net.minecraft.world.gen.feature.structure.StructureManager; -import appeng.core.AppEng; +import java.util.Random; /** - * Extends {@link ReplaceBlockFeature} by also allowing for a replacement - * chance. In addition, the feature will check every block in the chunk. + * Extends {@link net.minecraft.world.gen.feature.OreFeature} by also allowing + * for a replacement chance. In addition, the feature will check every block in + * the chunk. */ public class ChargedQuartzOreFeature extends Feature { - public static final ChargedQuartzOreFeature INSTANCE = new ChargedQuartzOreFeature( - ChargedQuartzOreConfig::deserialize); + public static final ChargedQuartzOreFeature INSTANCE = new ChargedQuartzOreFeature(ChargedQuartzOreConfig.CODEC); - static { - INSTANCE.setRegistryName(AppEng.MOD_ID, "charged_quartz_ore"); - } - - public ChargedQuartzOreFeature(Codec p_i51444_1_) { - super(p_i51444_1_); + public ChargedQuartzOreFeature(Codec codec) { + super(codec); } @Override - public boolean func_230362_a_(ISeedReader worldIn, StructureManager sm, ChunkGenerator generator, Random rand, - BlockPos pos, ChargedQuartzOreConfig config) { + public boolean func_230362_a_(ISeedReader worldIn, StructureManager structureAccessor, 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/MeteoriteSpawnData.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteSpawnData.java deleted file mode 100644 index caa3eaf26..000000000 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteSpawnData.java +++ /dev/null @@ -1,176 +0,0 @@ -package appeng.worldgen.meteorite; - -import java.util.ArrayList; -import java.util.Collection; - -import javax.annotation.Nullable; - -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.nbt.INBT; -import net.minecraft.server.MinecraftServer; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.IWorld; -import net.minecraft.world.server.ServerWorld; -import net.minecraft.world.storage.WorldSavedData; -import net.minecraftforge.fml.server.ServerLifecycleHooks; - -import it.unimi.dsi.fastutil.longs.LongOpenHashSet; - -/** - * This is per-world data to track where Meteorites have been spawned. - */ -public final class MeteoriteSpawnData { - - private static final String NAME = "ae2_meteorite_spawns"; - - private final SavedData data; - - private MeteoriteSpawnData(SavedData data) { - this.data = data; - } - - public void setGenerated(ChunkPos chunkPos) { - synchronized (data) { - // edit. - data.generated.add(chunkPos.asLong()); - data.markDirty(); - } - } - - public boolean hasGenerated(ChunkPos pos) { - synchronized (data) { - return data.generated.contains(pos.asLong()); - } - } - - @Nullable - private CompoundNBT getSpawnData(int chunkX, int chunkZ, boolean create) { - chunkX /= 16; - chunkZ /= 16; - String key = chunkX + "," + chunkZ; - INBT inbt = data.spawns.get(key); - if (!(inbt instanceof CompoundNBT)) { - if (create) { - inbt = new CompoundNBT(); - data.spawns.put(key, inbt); - data.markDirty(); - } else { - return null; - } - } - return (CompoundNBT) inbt; - } - - /** - * Checks whether another meteorite has spawned within the given block range of - * the given position. - */ - public boolean isMeteoriteSpawnInRange(BlockPos pos, int rangeSquared) { - synchronized (data) { - ChunkPos chunkPos = new ChunkPos(pos); - CompoundNBT spawnData = getSpawnData(chunkPos.x, chunkPos.z, false); - if (spawnData == null) { - return false; - } - final int size = spawnData.getInt("num"); - for (int i = 0; i < size; i++) { - CompoundNBT existingSettingsNbt = spawnData.getCompound(String.valueOf(i)); - BlockPos existingPos = PlacedMeteoriteSettings.read(existingSettingsNbt).getPos(); - int deltaX = (existingPos.getX() - pos.getX()); - int deltaZ = (existingPos.getZ() - pos.getZ()); - if (deltaX * deltaX + deltaZ * deltaZ <= rangeSquared) { - return true; - } - } - } - return false; - } - - public boolean tryAddSpawnedMeteorite(PlacedMeteoriteSettings settings, int minDistanceSquared) { - synchronized (data) { - if (isMeteoriteSpawnInRange(settings.getPos(), minDistanceSquared)) { - return false; - } - - addSpawnedMeteorite(settings); - } - return true; - } - - public void addSpawnedMeteorite(PlacedMeteoriteSettings settings) { - synchronized (data) { - ChunkPos chunkPos = new ChunkPos(settings.getPos()); - CompoundNBT spawnData = getSpawnData(chunkPos.x, chunkPos.z, true); - final int size = spawnData.getInt("num"); - spawnData.put(String.valueOf(size), settings.write(new CompoundNBT())); - spawnData.putInt("num", size + 1); - data.markDirty(); - } - } - - public Collection getNearByMeteorites(int chunkX, int chunkZ) { - final Collection ll = new ArrayList<>(); - - synchronized (data) { - for (int x = -1; x <= 1; x++) { - for (int z = -1; z <= 1; z++) { - final int cx = x + (chunkX >> 4); - final int cz = z + (chunkZ >> 4); - - final CompoundNBT data = getSpawnData(cx << 4, cz << 4, false); - - if (data != null) { - // edit. - final int size = data.getInt("num"); - for (int s = 0; s < size; s++) { - CompoundNBT settingsNbt = data.getCompound(String.valueOf(s)); - ll.add(PlacedMeteoriteSettings.read(settingsNbt)); - } - } - } - } - } - - return ll; - } - - public synchronized static MeteoriteSpawnData get(IWorld world) { - ServerWorld serverWorld; - if (world instanceof ServerWorld) { - serverWorld = (ServerWorld) world; - } else { - MinecraftServer server = ServerLifecycleHooks.getCurrentServer(); - serverWorld = server.getWorld(world.getDimension().getType()); - } - - SavedData savedData = serverWorld.getSavedData().getOrCreate(SavedData::new, NAME); - return new MeteoriteSpawnData(savedData); - } - - private static class SavedData extends WorldSavedData { - - private LongOpenHashSet generated; - private CompoundNBT spawns; - - public SavedData() { - super(NAME); - this.generated = new LongOpenHashSet(); - this.spawns = new CompoundNBT(); - } - - @Override - public synchronized void read(CompoundNBT nbt) { - this.generated = new LongOpenHashSet(nbt.getLongArray("generated")); - this.spawns = nbt.getCompound("spawns"); - } - - @Override - public synchronized CompoundNBT write(CompoundNBT compound) { - compound.putLongArray("generated", generated.toLongArray()); - compound.put("spawns", spawns); - return compound; - } - } - -} diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java index d7aeadf2e..dcf0c5b2f 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java @@ -4,10 +4,15 @@ import java.util.Random; import com.mojang.serialization.Codec; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SharedSeedRandom; +import net.minecraft.util.math.ChunkPos; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeManager; +import net.minecraft.world.biome.provider.BiomeProvider; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.feature.NoFeatureConfig; +import net.minecraft.world.gen.feature.StructureFeature; import net.minecraft.world.gen.feature.structure.Structure; import appeng.core.AELog; @@ -15,56 +20,23 @@ import appeng.core.AppEng; public class MeteoriteStructure extends Structure { - public static final Structure INSTANCE = new MeteoriteStructure(NoFeatureConfig.field_236558_a_); + public static final ResourceLocation ID = AppEng.makeId("meteorite"); - static { - INSTANCE.setRegistryName(AppEng.MOD_ID, "meteorite"); - } + public static final Structure INSTANCE = new MeteoriteStructure( + NoFeatureConfig.field_236558_a_); - public MeteoriteStructure(Codec p_i231997_1_) { - super(p_i231997_1_); + public MeteoriteStructure(Codec configCodec) { + super(configCodec); } @Override - public boolean func_230363_a_(BiomeManager biomeManagerIn, ChunkGenerator generator, Random randIn, int chunkX, - int chunkZ, Biome biomeIn) { - if (super.func_230363_a_(biomeManagerIn, generator, randIn, chunkX, chunkZ, biomeIn)) { - // In case the biome blacklist fails, we still double-check here that we're not - // generating chunks for - // the nether or end. - if (generator.getClass().equals(EndChunkGenerator.class) - || generator.getClass().equals(NetherChunkGenerator.class)) { - AELog.warn("ignoring attempt to generate meteorite in nether/end."); - return false; - } - - int i = chunkX >> 4; - int j = chunkZ >> 4; - randIn.setSeed((long) (i ^ j << 4) ^ generator.getSeed()); - randIn.nextInt(); - return randIn.nextBoolean(); - } - return false; + protected boolean func_230363_a_(ChunkGenerator generator, BiomeProvider biomeSource, long seed, SharedSeedRandom randIn, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos2, NoFeatureConfig featureConfig) { + return randIn.nextBoolean(); } @Override - public String getStructureName() { - return INSTANCE.getRegistryName().toString(); - } - - @Override - public int getSize() { - return 2; - } - - @Override - public Structure.IStartFactory getStartFactory() { + public IStartFactory getStartFactory() { return MeteoriteStructureStart::new; } - @Override - protected int getSeedModifier() { - return 124895654; - } - } diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java index c29cd77dc..14a8b870d 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java @@ -23,9 +23,11 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.MutableBoundingBox; +import net.minecraft.world.ISeedReader; import net.minecraft.world.IWorld; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.feature.structure.IStructurePieceType; +import net.minecraft.world.gen.feature.structure.StructureManager; import net.minecraft.world.gen.feature.structure.StructurePiece; import net.minecraft.world.gen.feature.template.TemplateManager; @@ -85,12 +87,11 @@ public class MeteoriteStructurePiece extends StructurePiece { } @Override - public boolean create(IWorld world, ChunkGenerator chunkGeneratorIn, Random rand, MutableBoundingBox bounds, - ChunkPos chunkPos) { + public boolean func_230383_a_(ISeedReader world, StructureManager p_230383_2_, ChunkGenerator chunkGeneratorIn, Random rand, MutableBoundingBox bounds, ChunkPos chunkPos, BlockPos p_230383_7_) { MeteoritePlacer placer = new MeteoritePlacer(world, settings, bounds); placer.place(); - WorldData.instance().compassData().service().updateArea(world, chunkPos); // FIXME: We know the y-range here... + WorldData.instance().compassData().service().tryUpdateArea(world, chunkPos); // FIXME: We know the y-range here... return true; } } diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java index 180cd0ba4..81a3193bb 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java @@ -18,25 +18,26 @@ import net.minecraft.world.biome.Biome.TempCategory; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.Heightmap.Type; +import net.minecraft.world.gen.feature.NoFeatureConfig; import net.minecraft.world.gen.feature.structure.Structure; import net.minecraft.world.gen.feature.structure.StructureStart; import net.minecraft.world.gen.feature.template.TemplateManager; import appeng.worldgen.meteorite.fallout.FalloutMode; -public class MeteoriteStructureStart extends StructureStart { +public class MeteoriteStructureStart extends StructureStart { private final ITag sandTag = BlockTags.getCollection().getOrCreate(new ResourceLocation("minecraft:sand")); private final ITag terracottaTag = BlockTags.getCollection() .getOrCreate(new ResourceLocation("forge:terracotta")); - public MeteoriteStructureStart(Structure p_i225815_1_, int p_i225815_2_, int p_i225815_3_, + public MeteoriteStructureStart(Structure p_i225815_1_, int p_i225815_2_, int p_i225815_3_, MutableBoundingBox p_i225815_4_, int p_i225815_5_, long p_i225815_6_) { super(p_i225815_1_, p_i225815_2_, p_i225815_3_, p_i225815_4_, p_i225815_5_, p_i225815_6_); } - public void init(ChunkGenerator generator, TemplateManager templateManagerIn, int chunkX, int chunkZ, - Biome biome) { + public void func_230364_a_(ChunkGenerator generator, TemplateManager templateManagerIn, int chunkX, int chunkZ, + Biome biome, NoFeatureConfig config) { final int centerX = chunkX * 16 + this.rand.nextInt(16); final int centerZ = chunkZ * 16 + this.rand.nextInt(16); final float meteoriteRadius = (this.rand.nextFloat() * 6.0f) + 2; @@ -53,7 +54,7 @@ public class MeteoriteStructureStart extends StructureStart { int scanRadius = (int) Math.max(1, meteoriteRadius * 2); for (int x = -scanRadius; x <= scanRadius; x++) { for (int z = -scanRadius; z <= scanRadius; z++) { - int h = generator.getHeight(centerX + x, centerZ + z, heightmapType); + int h = generator.func_222529_a(centerX + x, centerZ + z, heightmapType); stats.add(h); } } @@ -88,7 +89,7 @@ public class MeteoriteStructureStart extends StructureStart { * @return true, if it found a single block of water */ private boolean locateWaterAroundTheCrater(ChunkGenerator generator, BlockPos pos, float radius) { - final int seaLevel = generator.getSeaLevel(); + final int seaLevel = generator.func_230356_f_(); final int maxY = seaLevel - 1; BlockPos.Mutable blockPos = new BlockPos.Mutable(); @@ -105,7 +106,7 @@ public class MeteoriteStructureStart extends StructureStart { final double distanceFrom = dx * dx + dz * dz; if (maxY > h + distanceFrom * 0.0175 && maxY < h + distanceFrom * 0.02) { - int heigth = generator.getHeight(blockPos.getX(), blockPos.getZ(), Heightmap.Type.OCEAN_FLOOR); + int heigth = generator.func_222529_a(blockPos.getX(), blockPos.getZ(), Heightmap.Type.OCEAN_FLOOR); if (heigth < seaLevel) { return true; } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 69da5a62b..a2e859b7d 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,12 +1,12 @@ # GUI rendering -protected net.minecraft.client.gui.screen.inventory.ContainerScreen func_146977_a(Lnet/minecraft/inventory/container/Slot;)V # drawSlot +protected net.minecraft.client.gui.screen.inventory.ContainerScreen func_238746_a_(Lcom/mojang/blaze3d/matrix/MatrixStack;Lnet/minecraft/inventory/container/Slot;)V # drawSlot public net.minecraft.client.gui.widget.TextFieldWidget func_146188_c(IIII)V # drawSelectionBox public net.minecraft.client.gui.widget.TextFieldWidget func_146208_g()I # getMaxStringLength protected net.minecraft.inventory.container.Container field_75149_d # listeners # Reusing RedstoneParticle for ChargedOreFX -protected net.minecraft.client.particle.RedstoneParticle (Lnet/minecraft/world/World;DDDDDDLnet/minecraft/particles/RedstoneParticleData;Lnet/minecraft/client/particle/IAnimatedSprite;)V +protected net.minecraft.client.particle.RedstoneParticle (Lnet/minecraft/client/world/ClientWorld;DDDDDDLnet/minecraft/particles/RedstoneParticleData;Lnet/minecraft/client/particle/IAnimatedSprite;)V # We need to change yPos of existing slots to resize the container public-f net.minecraft.inventory.container.Slot field_75223_e # xPos @@ -17,3 +17,6 @@ public net.minecraft.item.crafting.RecipeManager func_215366_a(Lnet/minecraft/it # To disable water-bobbing of item entities (for growing crystals) protected net.minecraft.entity.item.ItemEntity func_203043_v()V # applyFloatMotion + +# Registration of custom DimensionType +public net.minecraft.world.DimensionType (Ljava/util/OptionalLong;ZZZZZZZZZILnet/minecraft/util/ResourceLocation;F)V diff --git a/src/test/java/appeng/core/worlddata/SpatialDimensionExtraDataTest.java b/src/test/java/appeng/core/worlddata/SpatialDimensionExtraDataTest.java deleted file mode 100644 index fe2e32241..000000000 --- a/src/test/java/appeng/core/worlddata/SpatialDimensionExtraDataTest.java +++ /dev/null @@ -1,49 +0,0 @@ -package appeng.core.worlddata; - -import static org.junit.Assert.*; - -import org.junit.Test; - -import io.netty.buffer.Unpooled; - -import net.minecraft.network.PacketBuffer; -import net.minecraft.util.math.BlockPos; - -import appeng.spatial.SpatialDimensionExtraData; - -public class SpatialDimensionExtraDataTest { - - /** - * The returned buffer should have just the right capacity. - */ - @Test - public void testCreatedBufferSize() { - PacketBuffer buffer = new SpatialDimensionExtraData(BlockPos.ZERO).write(); - assertEquals(1 + 8 + 8, buffer.array().length); - } - - @Test - public void testReadWriteSize() { - BlockPos capacity = new BlockPos(1, 2, 3); - PacketBuffer buffer = new SpatialDimensionExtraData(capacity).write(); - - PacketBuffer readBackBuf = new PacketBuffer(Unpooled.wrappedBuffer(buffer.array())); - SpatialDimensionExtraData extraData = SpatialDimensionExtraData.read(readBackBuf); - assertNotNull(extraData); - assertEquals(capacity, extraData.getSize()); - } - - /** - * Gracefully handle format version errors. - */ - @Test - public void testHandleInvalidFormatVersion() { - PacketBuffer buffer = new SpatialDimensionExtraData(BlockPos.ZERO).write(); - buffer.writerIndex(0); - buffer.writeByte(5); - - PacketBuffer readBackBuf = new PacketBuffer(Unpooled.wrappedBuffer(buffer.array())); - assertNull(SpatialDimensionExtraData.read(readBackBuf)); - } - -} \ No newline at end of file From e640918ca0a1826356941f5f23db1935f235f5e3 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 02:05:24 +0200 Subject: [PATCH 02/11] Compiles, can get ingame, uses Mixins to work around missing Fork Hooks for structures and custom dimensions. --- build.gradle | 16 +++ src/main/java/appeng/core/AppEng.java | 4 +- src/main/java/appeng/core/Registration.java | 110 ++++++++++-------- .../DimensionStructuresSettingsMixin.java | 36 ++++++ .../appeng/mixins/DimensionTypeMixin.java | 2 +- .../appeng/mixins/SkyPropertiesMixin.java | 2 +- .../java/appeng/mixins/SkyRenderMixin.java | 10 +- .../java/appeng/mixins/StructureAccessor.java | 16 +++ src/main/java/appeng/mixins/TntAccessor.java | 20 ---- .../worldgen/ChargedQuartzOreFeature.java | 2 +- .../meteorite/MeteoriteStructure.java | 15 ++- src/main/resources/META-INF/MANIFEST.MF | 1 + src/main/resources/META-INF/mods.toml | 6 +- .../resources/appliedenergistics2.mixins.json | 21 ++++ 14 files changed, 170 insertions(+), 91 deletions(-) create mode 100644 src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java create mode 100644 src/main/java/appeng/mixins/StructureAccessor.java delete mode 100644 src/main/java/appeng/mixins/TntAccessor.java create mode 100644 src/main/resources/META-INF/MANIFEST.MF create mode 100644 src/main/resources/appliedenergistics2.mixins.json diff --git a/build.gradle b/build.gradle index 159a8772c..af88836f7 100644 --- a/build.gradle +++ b/build.gradle @@ -19,11 +19,13 @@ buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } + maven { url = 'https://repo.spongepowered.org/maven' } jcenter() mavenCentral() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true + classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' } } @@ -36,6 +38,7 @@ plugins { } apply plugin: 'net.minecraftforge.gradle' +apply plugin: 'org.spongepowered.mixin' apply plugin: "eclipse" repositories { @@ -112,6 +115,7 @@ minecraft { client { property 'forge.logging.console.level', 'debug' workingDirectory project.file('run') + property "mixin.debug.export", "true" mods { appliedenergistics2 { source sourceSets.main @@ -143,6 +147,18 @@ minecraft { } } +mixin { + add sourceSets.main, "mixins.appliedenergistics2.refmap.json" +} + +jar { + manifest { + attributes([ + "MixinConfigs": "appliedenergistics2.mixins.json" + ]) + } +} + def signProps = [:] if (System.getenv("KEY_STORE_FILE")) { signProps['keyStore'] = System.getenv("KEY_STORE_FILE") diff --git a/src/main/java/appeng/core/AppEng.java b/src/main/java/appeng/core/AppEng.java index 9c61d3bb5..f3be46f62 100644 --- a/src/main/java/appeng/core/AppEng.java +++ b/src/main/java/appeng/core/AppEng.java @@ -37,6 +37,7 @@ import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.ResourceLocation; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.structure.Structure; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.model.ModelLoaderRegistry; @@ -130,7 +131,8 @@ public final class AppEng { modEventBus.addGenericListener(TileEntityType.class, registration::registerTileEntities); modEventBus.addGenericListener(ContainerType.class, registration::registerContainerTypes); modEventBus.addGenericListener(IRecipeSerializer.class, registration::registerRecipeSerializers); - modEventBus.addGenericListener(Feature.class, registration::registerWorldGen); + modEventBus.addGenericListener(Feature.class, registration::registerFeatures); + modEventBus.addGenericListener(Structure.class, registration::registerStructures); modEventBus.addGenericListener(Biome.class, registration::registerBiomes); modEventBus.addListener(Integrations::enqueueIMC); diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 73f2afbdc..a57dcf41a 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -18,48 +18,6 @@ package appeng.core; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScreenManager; -import net.minecraft.client.particle.ParticleManager; -import net.minecraft.entity.EntityType; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.Item; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.particles.ParticleType; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.GenerationStage; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.IFeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig; -import net.minecraft.world.gen.placement.CountRangeConfig; -import net.minecraft.world.gen.placement.IPlacementConfig; -import net.minecraft.world.gen.placement.Placement; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.ColorHandlerEvent; -import net.minecraftforge.client.event.ModelBakeEvent; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.common.extensions.IForgeContainerType; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.event.server.FMLServerStartingEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.fml.loading.FMLEnvironment; -import net.minecraftforge.fml.network.IContainerFactory; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.IForgeRegistry; - import appeng.api.config.Upgrades; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IItems; @@ -195,6 +153,7 @@ import appeng.me.cache.PathGridCache; import appeng.me.cache.SecurityCache; import appeng.me.cache.SpatialPylonCache; import appeng.me.cache.TickManagerCache; +import appeng.mixins.StructureAccessor; import appeng.recipes.game.DisassembleRecipe; import appeng.recipes.game.FacadeRecipe; import appeng.recipes.handlers.GrinderRecipe; @@ -208,15 +167,51 @@ import appeng.tile.crafting.MolecularAssemblerRenderer; import appeng.worldgen.ChargedQuartzOreConfig; import appeng.worldgen.ChargedQuartzOreFeature; import appeng.worldgen.meteorite.MeteoriteStructure; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScreenManager; +import net.minecraft.client.particle.ParticleManager; +import net.minecraft.entity.EntityType; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.item.Item; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.particles.ParticleType; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.IFeatureConfig; +import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.gen.feature.structure.Structure; +import net.minecraft.world.gen.placement.CountRangeConfig; +import net.minecraft.world.gen.placement.IPlacementConfig; +import net.minecraft.world.gen.placement.Placement; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.ColorHandlerEvent; +import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.common.extensions.IForgeContainerType; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.DistExecutor; +import net.minecraftforge.fml.event.server.FMLServerStartingEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.loading.FMLEnvironment; +import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.IForgeRegistry; final class Registration { - public Registration() { - AeStats.register(); - advancementTriggers = new AdvancementTriggers(CriteriaTriggers::register); - } - - AdvancementTriggers advancementTriggers; + static AdvancementTriggers advancementTriggers; public static void setupInternalRegistries() { // TODO: Do not use the internal API @@ -468,6 +463,9 @@ final class Registration { // FIXME LATER public static void postInit() { + AeStats.register(); + advancementTriggers = new AdvancementTriggers(CriteriaTriggers::register); + final IRegistryContainer registries = Api.instance().registries(); // TODO: Do not use the internal API ApiDefinitions definitions = Api.INSTANCE.definitions(); @@ -682,14 +680,24 @@ final class Registration { } } - public void registerWorldGen(RegistryEvent.Register> evt) { + public void registerFeatures(RegistryEvent.Register> evt) { IForgeRegistry> r = evt.getRegistry(); - r.register(ChargedQuartzOreFeature.INSTANCE); + r.register(ChargedQuartzOreFeature.INSTANCE.setRegistryName(AppEng.makeId("charged_quartz_ore"))); + } + + public void registerStructures(RegistryEvent.Register> evt) { + // Registering into the Forge registry is INSUFFICIENT! + // There's a bidirectional map in the Structure class itself primarily for the purposes of NBT serialization + StructureAccessor.register( + MeteoriteStructure.ID.toString(), + MeteoriteStructure.INSTANCE.setRegistryName(MeteoriteStructure.ID), + GenerationStage.Decoration.TOP_LAYER_MODIFICATION + ); } public void registerBiomes(RegistryEvent.Register evt) { - evt.getRegistry().register(StorageCellBiome.INSTANCE); + evt.getRegistry().register(StorageCellBiome.INSTANCE.setRegistryName(AppEng.makeId("storage"))); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java new file mode 100644 index 000000000..ed366a7db --- /dev/null +++ b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java @@ -0,0 +1,36 @@ +package appeng.mixins; + +import appeng.worldgen.meteorite.MeteoriteStructure; +import com.google.common.collect.ImmutableMap; +import net.minecraft.world.gen.feature.structure.Structure; +import net.minecraft.world.gen.settings.DimensionStructuresSettings; +import net.minecraft.world.gen.settings.StructureSeparationSettings; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Mutable; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +/** + * This Mixin will add the structure placement configuration for the meteorite structure + * to the static final immutable map that contains them. There is currently no + * Forge hook for this, and registering them during the registry event is already too late. + *

+ * If this is not done, Meteorites spawn every chunk, since that is the default for missing entries. + */ +@Mixin(DimensionStructuresSettings.class) +public class DimensionStructuresSettingsMixin { + + @Shadow + @Mutable + private static ImmutableMap, StructureSeparationSettings> field_236191_b_; + + @Inject(method = "", at = @At("TAIL")) + private static void addMeteoriteSpreadConfig(CallbackInfo ci) { + field_236191_b_ = ImmutableMap., StructureSeparationSettings>builder() + .putAll(field_236191_b_) + .put(MeteoriteStructure.INSTANCE, new StructureSeparationSettings(32, 8, 124895654)).build(); + } + +} diff --git a/src/main/java/appeng/mixins/DimensionTypeMixin.java b/src/main/java/appeng/mixins/DimensionTypeMixin.java index 29fd2a0ad..800c32425 100644 --- a/src/main/java/appeng/mixins/DimensionTypeMixin.java +++ b/src/main/java/appeng/mixins/DimensionTypeMixin.java @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import java.util.OptionalLong; -@Mixin(DimensionType.class) +@Mixin(value = DimensionType.class) public class DimensionTypeMixin { @Inject(method = "func_236027_a_", at = @At("TAIL")) diff --git a/src/main/java/appeng/mixins/SkyPropertiesMixin.java b/src/main/java/appeng/mixins/SkyPropertiesMixin.java index cb2c9ab0b..a6a0e8628 100644 --- a/src/main/java/appeng/mixins/SkyPropertiesMixin.java +++ b/src/main/java/appeng/mixins/SkyPropertiesMixin.java @@ -14,7 +14,7 @@ import java.util.Optional; @Mixin(DimensionRenderInfo.class) public class SkyPropertiesMixin { - @Inject(method = "func_239215_a_", at = @At("HEAD"), cancellable = true, remap = false) + @Inject(method = "func_239215_a_", at = @At("HEAD"), cancellable = true) private static void byDimensionType(Optional> optional, CallbackInfoReturnable ci) { if (optional.orElse(null) == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { diff --git a/src/main/java/appeng/mixins/SkyRenderMixin.java b/src/main/java/appeng/mixins/SkyRenderMixin.java index b7f5ee18d..3d4c89399 100644 --- a/src/main/java/appeng/mixins/SkyRenderMixin.java +++ b/src/main/java/appeng/mixins/SkyRenderMixin.java @@ -11,16 +11,16 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(WorldRenderer.class) +@Mixin(value = WorldRenderer.class) public class SkyRenderMixin { - @Shadow(aliases = {"mc"}) - private Minecraft client; + @Shadow + private Minecraft mc; @SuppressWarnings("ConstantConditions") - @Inject(method = "renderSky", at = @At("HEAD"), cancellable = true) + @Inject(method = "renderSky(Lcom/mojang/blaze3d/matrix/MatrixStack;F)V", at = @At("HEAD"), cancellable = true) public void renderSky(MatrixStack matrices, float tickDelta, CallbackInfo ci) { - if (client.world.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { + if (mc.world.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { SpatialSkyRender.getInstance().render(matrices); ci.cancel(); } diff --git a/src/main/java/appeng/mixins/StructureAccessor.java b/src/main/java/appeng/mixins/StructureAccessor.java new file mode 100644 index 000000000..b39ceb72a --- /dev/null +++ b/src/main/java/appeng/mixins/StructureAccessor.java @@ -0,0 +1,16 @@ +package appeng.mixins; + +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.structure.Structure; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(Structure.class) +public interface StructureAccessor { + + @Invoker("func_236394_a_") + static > F register(String id, F feature, GenerationStage.Decoration defaultStage) { + throw new AssertionError(); + } + +} diff --git a/src/main/java/appeng/mixins/TntAccessor.java b/src/main/java/appeng/mixins/TntAccessor.java deleted file mode 100644 index 93e442caa..000000000 --- a/src/main/java/appeng/mixins/TntAccessor.java +++ /dev/null @@ -1,20 +0,0 @@ -package appeng.mixins; - -import net.minecraft.block.TNTBlock; -import net.minecraft.entity.LivingEntity; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; - -import javax.annotation.Nullable; - -@Mixin(TNTBlock.class) -public interface TntAccessor { - - @Invoker - static void callPrimeTnt(World world, BlockPos pos, @Nullable LivingEntity igniter) { - throw new AssertionError("Mixin dummy"); - } - -} diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index 887b10d5b..34e679b93 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -21,7 +21,7 @@ public class ChargedQuartzOreFeature extends Feature { public static final ChargedQuartzOreFeature INSTANCE = new ChargedQuartzOreFeature(ChargedQuartzOreConfig.CODEC); - public ChargedQuartzOreFeature(Codec codec) { + private ChargedQuartzOreFeature(Codec codec) { super(codec); } diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java index dcf0c5b2f..414c3ef1c 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java @@ -1,23 +1,16 @@ package appeng.worldgen.meteorite; -import java.util.Random; - +import appeng.core.AppEng; import com.mojang.serialization.Codec; - import net.minecraft.util.ResourceLocation; import net.minecraft.util.SharedSeedRandom; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.biome.Biome; -import net.minecraft.world.biome.BiomeManager; import net.minecraft.world.biome.provider.BiomeProvider; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.feature.NoFeatureConfig; -import net.minecraft.world.gen.feature.StructureFeature; import net.minecraft.world.gen.feature.structure.Structure; -import appeng.core.AELog; -import appeng.core.AppEng; - public class MeteoriteStructure extends Structure { public static final ResourceLocation ID = AppEng.makeId("meteorite"); @@ -29,6 +22,12 @@ public class MeteoriteStructure extends Structure { super(configCodec); } + @Override + public String getStructureName() { + String s = super.getStructureName(); + return s; + } + @Override protected boolean func_230363_a_(ChunkGenerator generator, BiomeProvider biomeSource, long seed, SharedSeedRandom randIn, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos2, NoFeatureConfig featureConfig) { return randIn.nextBoolean(); diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 000000000..99aa76f3e --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1 @@ +MixinConfigs: appliedenergistics2.mixins.json diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 96143ca28..26f317367 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[31,)" +loaderVersion="[32,)" #updateJSONURL="" issueTrackerURL="https://github.com/AppliedEnergistics/Applied-Energistics-2/issues" displayURL="https://github.com/AppliedEnergistics/Applied-Energistics-2" @@ -16,13 +16,13 @@ description="A Mod about Matter, Energy and using them to conquer the world.." [[dependencies.appliedenergistics2]] modId="forge" mandatory=true - versionRange="[31.2.31,32.0.0)" + versionRange="[32.0.75,33.0.0)" ordering="NONE" side="BOTH" [[dependencies.appliedenergistics2]] modId="minecraft" mandatory=true - versionRange="[1.15.2]" + versionRange="[1.16.1]" ordering="NONE" side="BOTH" diff --git a/src/main/resources/appliedenergistics2.mixins.json b/src/main/resources/appliedenergistics2.mixins.json new file mode 100644 index 000000000..dc34c44b5 --- /dev/null +++ b/src/main/resources/appliedenergistics2.mixins.json @@ -0,0 +1,21 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "appeng.mixins", + "compatibilityLevel": "JAVA_8", + "mixins": [ + "DimensionTypeMixin", + "MinecraftServerMixin", + "ThreadedAnvilChunkStorageAccessor", + "DimensionStructuresSettingsMixin", + "StructureAccessor" + ], + "client": [ + "SkyRenderMixin", + "SkyPropertiesMixin" + ], + "server": [], + "injectors": { + "defaultRequire": 1 + } +} From a65be62cd1676f0876c4be2ee38071f23a0237fa Mon Sep 17 00:00:00 2001 From: yueh Date: Tue, 28 Jul 2020 10:29:57 +0200 Subject: [PATCH 03/11] Organize and clean imports --- .../java/appeng/api/features/IWorldGen.java | 2 - .../items/ISpatialStorageCell.java | 3 +- .../appeng/api/storage/ISpatialDimension.java | 1 - .../appeng/api/util/DimensionalCoord.java | 1 - .../java/appeng/block/AEBaseTileBlock.java | 5 -- .../block/networking/CableBusBlock.java | 1 - .../appeng/client/gui/AEBaseMEScreen.java | 1 - .../java/appeng/client/gui/AEBaseScreen.java | 3 +- .../client/gui/widgets/ActionButton.java | 5 +- .../gui/widgets/SettingToggleButton.java | 2 +- .../render/FacadeDispatcherBakedModel.java | 1 - .../client/render/SpatialSkyRender.java | 4 - .../client/render/cablebus/CableBuilder.java | 1 - .../crafting/EncodedPatternBakedModel.java | 1 - .../client/render/effects/ChargedOreFX.java | 1 - .../client/render/effects/CraftingFx.java | 1 - .../client/render/effects/LightningArcFX.java | 1 - .../client/render/effects/ParticleTypes.java | 1 + .../render/model/BiometricCardBakedModel.java | 1 - .../render/model/MemoryCardBakedModel.java | 1 - .../client/render/model/MemoryCardModel.java | 1 - .../render/model/SkyCompassBakedModel.java | 1 - .../appeng/container/ContainerLocator.java | 2 +- .../WirelessTermContainer.java | 2 +- src/main/java/appeng/core/AEConfig.java | 1 - src/main/java/appeng/core/Registration.java | 83 ++++++++++--------- .../features/registries/WorldGenRegistry.java | 4 +- .../core/stats/AppEngAdvancementTrigger.java | 2 - .../core/sync/network/NetworkHandler.java | 3 - .../appeng/core/sync/network/TargetPoint.java | 1 - .../java/appeng/core/worlddata/WorldData.java | 1 - .../java/appeng/debug/ReplicatorCardItem.java | 1 - .../decorative/solid/SkyStoneBlock.java | 1 - .../client/gui/FluidTerminalScreen.java | 2 +- .../parts/FluidAnnihilationPlanePart.java | 3 +- .../modules/jei/CondenserCategory.java | 2 - .../modules/jei/InscriberRecipeCategory.java | 1 + .../items/storage/SpatialStorageCellItem.java | 1 - .../powered/powersink/AEBasePoweredItem.java | 1 - .../implementations/QuantumCluster.java | 1 - .../DimensionStructuresSettingsMixin.java | 11 ++- .../appeng/mixins/DimensionTypeMixin.java | 12 +-- .../appeng/mixins/MinecraftServerMixin.java | 14 ++-- .../appeng/mixins/SkyPropertiesMixin.java | 12 +-- .../java/appeng/mixins/SkyRenderMixin.java | 11 ++- .../java/appeng/mixins/StructureAccessor.java | 5 +- .../ThreadedAnvilChunkStorageAccessor.java | 5 +- .../subcommands/TestMeteoritesCommand.java | 1 - .../server/subcommands/TestOreGenCommand.java | 1 - .../java/appeng/services/CompassService.java | 24 +++--- src/main/java/appeng/spatial/CachedPlane.java | 3 +- .../spatial/SpatialDimensionManager.java | 3 +- .../appeng/spatial/StorageChunkGenerator.java | 11 +-- .../worldgen/ChargedQuartzOreConfig.java | 8 +- .../worldgen/ChargedQuartzOreFeature.java | 5 +- .../meteorite/MeteoriteStructure.java | 4 +- .../meteorite/MeteoriteStructurePiece.java | 1 - 57 files changed, 125 insertions(+), 157 deletions(-) diff --git a/src/api/java/appeng/api/features/IWorldGen.java b/src/api/java/appeng/api/features/IWorldGen.java index 8d956bdb2..fded0e80d 100644 --- a/src/api/java/appeng/api/features/IWorldGen.java +++ b/src/api/java/appeng/api/features/IWorldGen.java @@ -24,8 +24,6 @@ package appeng.api.features; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.Dimension; -import net.minecraft.world.IWorld; import net.minecraft.world.server.ServerWorld; public interface IWorldGen { diff --git a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java index 37f04571b..58d98fd7f 100644 --- a/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java +++ b/src/api/java/appeng/api/implementations/items/ISpatialStorageCell.java @@ -26,12 +26,11 @@ package appeng.api.implementations.items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.RegistryKey; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import appeng.api.implementations.TransitionResult; import appeng.api.util.WorldCoord; -import net.minecraft.world.server.ServerWorld; /** * Implemented on a {@link Item} diff --git a/src/api/java/appeng/api/storage/ISpatialDimension.java b/src/api/java/appeng/api/storage/ISpatialDimension.java index 129f48d36..b3e3ca2aa 100644 --- a/src/api/java/appeng/api/storage/ISpatialDimension.java +++ b/src/api/java/appeng/api/storage/ISpatialDimension.java @@ -25,7 +25,6 @@ import javax.annotation.Nullable; import net.minecraft.util.RegistryKey; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.ITextComponent; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; diff --git a/src/api/java/appeng/api/util/DimensionalCoord.java b/src/api/java/appeng/api/util/DimensionalCoord.java index c8626478c..256095110 100644 --- a/src/api/java/appeng/api/util/DimensionalCoord.java +++ b/src/api/java/appeng/api/util/DimensionalCoord.java @@ -25,7 +25,6 @@ package appeng.api.util; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; -import net.minecraft.world.Dimension; import net.minecraft.world.DimensionType; import net.minecraft.world.IWorld; diff --git a/src/main/java/appeng/block/AEBaseTileBlock.java b/src/main/java/appeng/block/AEBaseTileBlock.java index 98f80a651..a262dd4c7 100644 --- a/src/main/java/appeng/block/AEBaseTileBlock.java +++ b/src/main/java/appeng/block/AEBaseTileBlock.java @@ -31,26 +31,21 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.DyeColor; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockRayTraceResult; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraftforge.items.ItemHandlerHelper; import appeng.api.implementations.items.IMemoryCard; import appeng.api.implementations.items.MemoryCardMessages; -import appeng.api.implementations.tiles.IColorableTile; -import appeng.api.util.AEColor; import appeng.api.util.IOrientable; import appeng.block.networking.CableBusBlock; import appeng.tile.AEBaseInvTileEntity; diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index 730e9ca31..a792836ed 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -53,7 +53,6 @@ import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.util.math.shapes.VoxelShapes; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorld; import net.minecraft.world.IWorldReader; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index c4389c6c8..867242078 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -28,7 +28,6 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import appeng.api.storage.data.IAEItemStack; diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index e75d180ac..ff968ce47 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -28,11 +28,9 @@ import java.util.stream.Collectors; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; -import com.google.common.collect.Lists; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; -import net.minecraft.util.text.Style; import org.lwjgl.glfw.GLFW; import org.lwjgl.opengl.GL11; @@ -58,6 +56,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import net.minecraft.util.text.Style; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fluids.FluidAttributes; import net.minecraftforge.fml.client.gui.GuiUtils; diff --git a/src/main/java/appeng/client/gui/widgets/ActionButton.java b/src/main/java/appeng/client/gui/widgets/ActionButton.java index 1ff714807..8f011582d 100644 --- a/src/main/java/appeng/client/gui/widgets/ActionButton.java +++ b/src/main/java/appeng/client/gui/widgets/ActionButton.java @@ -21,11 +21,12 @@ package appeng.client.gui.widgets; import java.util.function.Consumer; import java.util.regex.Pattern; -import appeng.api.config.ActionItems; -import appeng.core.localization.ButtonToolTips; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; +import appeng.api.config.ActionItems; +import appeng.core.localization.ButtonToolTips; + public class ActionButton extends IconButton implements ITooltip { private static final Pattern PATTERN_NEW_LINE = Pattern.compile("\\n", Pattern.LITERAL); private final int iconIndex; diff --git a/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java b/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java index aac4d6f16..74ecf64d8 100644 --- a/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java +++ b/src/main/java/appeng/client/gui/widgets/SettingToggleButton.java @@ -27,6 +27,7 @@ import java.util.regex.Pattern; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.widget.button.Button; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import appeng.api.config.AccessRestriction; import appeng.api.config.CondenserOutput; @@ -48,7 +49,6 @@ import appeng.api.config.ViewItems; import appeng.api.config.YesNo; import appeng.core.localization.ButtonToolTips; import appeng.util.EnumCycler; -import net.minecraft.util.text.StringTextComponent; public class SettingToggleButton> extends IconButton { private static final Pattern COMPILE = Pattern.compile("%s"); diff --git a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java index f6911dd08..b00b928e4 100644 --- a/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java +++ b/src/main/java/appeng/client/render/FacadeDispatcherBakedModel.java @@ -25,7 +25,6 @@ import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; -import net.minecraft.world.World; import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; diff --git a/src/main/java/appeng/client/render/SpatialSkyRender.java b/src/main/java/appeng/client/render/SpatialSkyRender.java index 76d540434..05abb3f0c 100644 --- a/src/main/java/appeng/client/render/SpatialSkyRender.java +++ b/src/main/java/appeng/client/render/SpatialSkyRender.java @@ -25,15 +25,11 @@ import com.mojang.blaze3d.systems.RenderSystem; import org.lwjgl.opengl.GL11; -import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.world.ClientWorld; import net.minecraft.util.math.vector.Quaternion; -import net.minecraftforge.client.IRenderHandler; -import net.minecraftforge.client.SkyRenderHandler; public class SpatialSkyRender { diff --git a/src/main/java/appeng/client/render/cablebus/CableBuilder.java b/src/main/java/appeng/client/render/cablebus/CableBuilder.java index 5ce6cd828..a6188723b 100644 --- a/src/main/java/appeng/client/render/cablebus/CableBuilder.java +++ b/src/main/java/appeng/client/render/cablebus/CableBuilder.java @@ -25,7 +25,6 @@ import java.util.EnumSet; import java.util.List; import java.util.function.Function; -import net.minecraft.block.material.Material; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.RenderMaterial; import net.minecraft.client.renderer.texture.AtlasTexture; diff --git a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java index 6628638b7..b50392f0e 100644 --- a/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java +++ b/src/main/java/appeng/client/render/crafting/EncodedPatternBakedModel.java @@ -14,7 +14,6 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.math.vector.TransformationMatrix; -import net.minecraft.world.World; import net.minecraftforge.client.model.PerspectiveMapWrapper; import appeng.client.render.DelegateBakedModel; diff --git a/src/main/java/appeng/client/render/effects/ChargedOreFX.java b/src/main/java/appeng/client/render/effects/ChargedOreFX.java index deaf29c31..75665e4a7 100644 --- a/src/main/java/appeng/client/render/effects/ChargedOreFX.java +++ b/src/main/java/appeng/client/render/effects/ChargedOreFX.java @@ -25,7 +25,6 @@ import net.minecraft.client.particle.RedstoneParticle; import net.minecraft.client.world.ClientWorld; import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.RedstoneParticleData; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index b287dece8..087574d6f 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -31,7 +31,6 @@ import net.minecraft.particles.BasicParticleType; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.util.math.vector.Vector3f; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/client/render/effects/LightningArcFX.java b/src/main/java/appeng/client/render/effects/LightningArcFX.java index 08b32f180..a53b0adf5 100644 --- a/src/main/java/appeng/client/render/effects/LightningArcFX.java +++ b/src/main/java/appeng/client/render/effects/LightningArcFX.java @@ -25,7 +25,6 @@ import net.minecraft.client.particle.IParticleFactory; import net.minecraft.client.particle.Particle; import net.minecraft.client.particle.SpriteTexturedParticle; import net.minecraft.client.world.ClientWorld; -import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/client/render/effects/ParticleTypes.java b/src/main/java/appeng/client/render/effects/ParticleTypes.java index a0b662c10..ba539c81b 100644 --- a/src/main/java/appeng/client/render/effects/ParticleTypes.java +++ b/src/main/java/appeng/client/render/effects/ParticleTypes.java @@ -1,6 +1,7 @@ package appeng.client.render.effects; import com.mojang.serialization.Codec; + import net.minecraft.particles.BasicParticleType; import net.minecraft.particles.ParticleType; diff --git a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java index 0fe57ce68..215a7d0ab 100644 --- a/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/BiometricCardBakedModel.java @@ -23,7 +23,6 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; -import net.minecraft.world.World; import net.minecraftforge.client.model.data.EmptyModelData; import appeng.api.implementations.items.IBiometricCard; diff --git a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java index 91cf5471a..9807be838 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardBakedModel.java @@ -23,7 +23,6 @@ import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; -import net.minecraft.world.World; import net.minecraftforge.client.model.data.EmptyModelData; import appeng.api.implementations.items.IMemoryCard; diff --git a/src/main/java/appeng/client/render/model/MemoryCardModel.java b/src/main/java/appeng/client/render/model/MemoryCardModel.java index 4a2ced7f3..9a60f18cc 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardModel.java @@ -9,7 +9,6 @@ import javax.annotation.Nullable; import com.mojang.datafixers.util.Pair; -import net.minecraft.block.material.Material; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.IUnbakedModel; diff --git a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java index ea4538ed5..7d29dc180 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java @@ -39,7 +39,6 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Matrix4f; import net.minecraft.util.math.vector.Quaternion; -import net.minecraft.world.World; import net.minecraftforge.client.model.data.IDynamicBakedModel; import net.minecraftforge.client.model.data.IModelData; import net.minecraftforge.client.model.data.ModelProperty; diff --git a/src/main/java/appeng/container/ContainerLocator.java b/src/main/java/appeng/container/ContainerLocator.java index f96754c24..78c7ebc88 100644 --- a/src/main/java/appeng/container/ContainerLocator.java +++ b/src/main/java/appeng/container/ContainerLocator.java @@ -31,12 +31,12 @@ import net.minecraft.util.Direction; import net.minecraft.util.Hand; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import appeng.api.parts.IPartHost; import appeng.api.util.AEPartLocation; import appeng.api.util.DimensionalCoord; import appeng.parts.AEBasePart; -import net.minecraft.world.World; /** * Describes how a container the player has opened was originally located. This diff --git a/src/main/java/appeng/container/implementations/WirelessTermContainer.java b/src/main/java/appeng/container/implementations/WirelessTermContainer.java index c3513ec48..eb3fe9bfd 100644 --- a/src/main/java/appeng/container/implementations/WirelessTermContainer.java +++ b/src/main/java/appeng/container/implementations/WirelessTermContainer.java @@ -22,13 +22,13 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.ContainerType; import net.minecraft.network.PacketBuffer; +import net.minecraft.util.Util; import appeng.container.ContainerLocator; import appeng.core.AEConfig; import appeng.core.localization.PlayerMessages; import appeng.helpers.WirelessTerminalGuiObject; import appeng.util.Platform; -import net.minecraft.util.Util; public class WirelessTermContainer extends MEPortableCellContainer { diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index c743af58f..b3aa4e93c 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -35,7 +35,6 @@ import com.google.common.base.Strings; import org.apache.commons.lang3.tuple.Pair; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index a57dcf41a..330e03d76 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -18,6 +18,48 @@ package appeng.core; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.ScreenManager; +import net.minecraft.client.particle.ParticleManager; +import net.minecraft.entity.EntityType; +import net.minecraft.inventory.container.ContainerType; +import net.minecraft.item.Item; +import net.minecraft.item.crafting.IRecipeSerializer; +import net.minecraft.particles.ParticleType; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStage; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.IFeatureConfig; +import net.minecraft.world.gen.feature.OreFeatureConfig; +import net.minecraft.world.gen.feature.structure.Structure; +import net.minecraft.world.gen.placement.CountRangeConfig; +import net.minecraft.world.gen.placement.IPlacementConfig; +import net.minecraft.world.gen.placement.Placement; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.client.event.ColorHandlerEvent; +import net.minecraftforge.client.event.ModelBakeEvent; +import net.minecraftforge.client.event.ModelRegistryEvent; +import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; +import net.minecraftforge.client.event.TextureStitchEvent; +import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.common.extensions.IForgeContainerType; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.DistExecutor; +import net.minecraftforge.fml.event.server.FMLServerStartingEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.loading.FMLEnvironment; +import net.minecraftforge.fml.network.IContainerFactory; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.IForgeRegistry; + import appeng.api.config.Upgrades; import appeng.api.definitions.IBlocks; import appeng.api.definitions.IItems; @@ -167,47 +209,6 @@ import appeng.tile.crafting.MolecularAssemblerRenderer; import appeng.worldgen.ChargedQuartzOreConfig; import appeng.worldgen.ChargedQuartzOreFeature; import appeng.worldgen.meteorite.MeteoriteStructure; -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.ScreenManager; -import net.minecraft.client.particle.ParticleManager; -import net.minecraft.entity.EntityType; -import net.minecraft.inventory.container.ContainerType; -import net.minecraft.item.Item; -import net.minecraft.item.crafting.IRecipeSerializer; -import net.minecraft.particles.ParticleType; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.World; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.gen.GenerationStage; -import net.minecraft.world.gen.feature.Feature; -import net.minecraft.world.gen.feature.IFeatureConfig; -import net.minecraft.world.gen.feature.OreFeatureConfig; -import net.minecraft.world.gen.feature.structure.Structure; -import net.minecraft.world.gen.placement.CountRangeConfig; -import net.minecraft.world.gen.placement.IPlacementConfig; -import net.minecraft.world.gen.placement.Placement; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.ColorHandlerEvent; -import net.minecraftforge.client.event.ModelBakeEvent; -import net.minecraftforge.client.event.ModelRegistryEvent; -import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; -import net.minecraftforge.client.event.TextureStitchEvent; -import net.minecraftforge.client.model.ModelLoader; -import net.minecraftforge.common.extensions.IForgeContainerType; -import net.minecraftforge.event.RegistryEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.event.server.FMLServerStartingEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.fml.loading.FMLEnvironment; -import net.minecraftforge.fml.network.IContainerFactory; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.IForgeRegistry; final class Registration { diff --git a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java index 1a4fdda2b..9427faddc 100644 --- a/src/main/java/appeng/core/features/registries/WorldGenRegistry.java +++ b/src/main/java/appeng/core/features/registries/WorldGenRegistry.java @@ -21,11 +21,9 @@ package appeng.core.features.registries; import java.util.HashSet; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.Dimension; -import net.minecraft.world.IWorld; +import net.minecraft.world.server.ServerWorld; import appeng.api.features.IWorldGen; -import net.minecraft.world.server.ServerWorld; public final class WorldGenRegistry implements IWorldGen { diff --git a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java index 557ff8c3d..7ba41d285 100644 --- a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java +++ b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java @@ -25,13 +25,11 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; import net.minecraft.advancements.ICriterionInstance; import net.minecraft.advancements.ICriterionTrigger; import net.minecraft.advancements.PlayerAdvancements; -import net.minecraft.advancements.criterion.CriterionInstance; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.loot.ConditionArrayParser; diff --git a/src/main/java/appeng/core/sync/network/NetworkHandler.java b/src/main/java/appeng/core/sync/network/NetworkHandler.java index 47aec7167..3b34ca687 100644 --- a/src/main/java/appeng/core/sync/network/NetworkHandler.java +++ b/src/main/java/appeng/core/sync/network/NetworkHandler.java @@ -25,10 +25,7 @@ import net.minecraft.network.IPacket; import net.minecraft.network.ThreadQuickExitException; import net.minecraft.network.play.ServerPlayNetHandler; import net.minecraft.server.MinecraftServer; -import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; -import net.minecraft.world.DimensionType; -import net.minecraft.world.World; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; import net.minecraftforge.fml.LogicalSide; diff --git a/src/main/java/appeng/core/sync/network/TargetPoint.java b/src/main/java/appeng/core/sync/network/TargetPoint.java index b9b6a28ab..ed107c74d 100644 --- a/src/main/java/appeng/core/sync/network/TargetPoint.java +++ b/src/main/java/appeng/core/sync/network/TargetPoint.java @@ -1,7 +1,6 @@ package appeng.core.sync.network; import net.minecraft.entity.player.ServerPlayerEntity; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; /** diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index 0e89e2422..cc12abd53 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -26,7 +26,6 @@ import javax.annotation.Nullable; import com.google.common.base.Preconditions; import net.minecraft.server.MinecraftServer; -import net.minecraft.world.DimensionType; import net.minecraft.world.server.ServerWorld; import appeng.services.CompassService; diff --git a/src/main/java/appeng/debug/ReplicatorCardItem.java b/src/main/java/appeng/debug/ReplicatorCardItem.java index 917d90761..adc7da4fd 100644 --- a/src/main/java/appeng/debug/ReplicatorCardItem.java +++ b/src/main/java/appeng/debug/ReplicatorCardItem.java @@ -37,7 +37,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.registry.Registry; import net.minecraft.util.text.StringTextComponent; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import appeng.api.networking.IGrid; diff --git a/src/main/java/appeng/decorative/solid/SkyStoneBlock.java b/src/main/java/appeng/decorative/solid/SkyStoneBlock.java index 74e89090b..3e1b2af38 100644 --- a/src/main/java/appeng/decorative/solid/SkyStoneBlock.java +++ b/src/main/java/appeng/decorative/solid/SkyStoneBlock.java @@ -23,7 +23,6 @@ import net.minecraft.inventory.EquipmentSlotType; import net.minecraft.item.ItemStack; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.ChunkPos; import net.minecraft.world.IWorld; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; diff --git a/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java b/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java index f93716b89..02c637b2f 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidTerminalScreen.java @@ -26,7 +26,6 @@ import java.util.Locale; import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.util.text.StringTextComponent; import org.lwjgl.glfw.GLFW; import net.minecraft.client.util.InputMappings; @@ -34,6 +33,7 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.container.ClickType; import net.minecraft.inventory.container.Slot; import net.minecraft.util.text.ITextComponent; +import net.minecraft.util.text.StringTextComponent; import net.minecraftforge.fml.client.gui.GuiUtils; import appeng.api.config.Settings; diff --git a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java index f83a21f95..a1efa33a1 100644 --- a/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java +++ b/src/main/java/appeng/fluids/parts/FluidAnnihilationPlanePart.java @@ -8,12 +8,11 @@ import javax.annotation.Nonnull; import net.minecraft.block.BlockState; import net.minecraft.block.IBucketPickupHandler; import net.minecraft.fluid.Fluid; -import net.minecraft.fluid.Fluids; import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; import net.minecraft.item.ItemStack; import net.minecraft.tags.FluidTags; import net.minecraft.tags.ITag; -import net.minecraft.tags.Tag; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/appeng/integration/modules/jei/CondenserCategory.java b/src/main/java/appeng/integration/modules/jei/CondenserCategory.java index 1a0691deb..55266265a 100644 --- a/src/main/java/appeng/integration/modules/jei/CondenserCategory.java +++ b/src/main/java/appeng/integration/modules/jei/CondenserCategory.java @@ -24,11 +24,9 @@ import java.util.EnumMap; import java.util.List; import java.util.Map; -import com.google.common.base.Splitter; import com.google.common.collect.Lists; import com.mojang.blaze3d.matrix.MatrixStack; -import jdk.nashorn.internal.objects.annotations.Function; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java b/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java index 6398f3092..8838deaf9 100644 --- a/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java +++ b/src/main/java/appeng/integration/modules/jei/InscriberRecipeCategory.java @@ -19,6 +19,7 @@ package appeng.integration.modules.jei; import com.mojang.blaze3d.matrix.MatrixStack; + import net.minecraft.client.resources.I18n; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java index 71f05688b..c3cfe7239 100644 --- a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java +++ b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java @@ -30,7 +30,6 @@ import net.minecraft.util.registry.Registry; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java index e938b999f..4fcfa3cdf 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java @@ -28,7 +28,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.util.NonNullList; import net.minecraft.util.text.ITextComponent; -import net.minecraft.util.text.TranslationTextComponent; import net.minecraft.world.World; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; diff --git a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java index 04a0ffcd1..802307aad 100644 --- a/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/QuantumCluster.java @@ -23,7 +23,6 @@ import java.util.Iterator; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.WorldEvent; diff --git a/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java index ed366a7db..da616a07d 100644 --- a/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java +++ b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java @@ -1,10 +1,7 @@ package appeng.mixins; -import appeng.worldgen.meteorite.MeteoriteStructure; import com.google.common.collect.ImmutableMap; -import net.minecraft.world.gen.feature.structure.Structure; -import net.minecraft.world.gen.settings.DimensionStructuresSettings; -import net.minecraft.world.gen.settings.StructureSeparationSettings; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; import org.spongepowered.asm.mixin.Shadow; @@ -12,6 +9,12 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import net.minecraft.world.gen.feature.structure.Structure; +import net.minecraft.world.gen.settings.DimensionStructuresSettings; +import net.minecraft.world.gen.settings.StructureSeparationSettings; + +import appeng.worldgen.meteorite.MeteoriteStructure; + /** * This Mixin will add the structure placement configuration for the meteorite structure * to the static final immutable map that contains them. There is currently no diff --git a/src/main/java/appeng/mixins/DimensionTypeMixin.java b/src/main/java/appeng/mixins/DimensionTypeMixin.java index 800c32425..e7812b11c 100644 --- a/src/main/java/appeng/mixins/DimensionTypeMixin.java +++ b/src/main/java/appeng/mixins/DimensionTypeMixin.java @@ -1,15 +1,17 @@ package appeng.mixins; -import appeng.spatial.SpatialDimensionManager; -import net.minecraft.server.IDynamicRegistries; -import net.minecraft.tags.BlockTags; -import net.minecraft.world.DimensionType; +import java.util.OptionalLong; + 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 java.util.OptionalLong; +import net.minecraft.server.IDynamicRegistries; +import net.minecraft.tags.BlockTags; +import net.minecraft.world.DimensionType; + +import appeng.spatial.SpatialDimensionManager; @Mixin(value = DimensionType.class) public class DimensionTypeMixin { diff --git a/src/main/java/appeng/mixins/MinecraftServerMixin.java b/src/main/java/appeng/mixins/MinecraftServerMixin.java index 159b925ad..5666a0c73 100644 --- a/src/main/java/appeng/mixins/MinecraftServerMixin.java +++ b/src/main/java/appeng/mixins/MinecraftServerMixin.java @@ -1,8 +1,14 @@ package appeng.mixins; -import appeng.hooks.DynamicDimensions; +import java.util.Map; +import java.util.concurrent.Executor; + import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; + import net.minecraft.server.IDynamicRegistries; import net.minecraft.server.MinecraftServer; import net.minecraft.util.RegistryKey; @@ -20,12 +26,8 @@ import net.minecraft.world.storage.DerivedWorldInfo; import net.minecraft.world.storage.IServerConfiguration; import net.minecraft.world.storage.IServerWorldInfo; import net.minecraft.world.storage.SaveFormat; -import net.minecraft.world.storage.ServerWorldInfo; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import java.util.Map; -import java.util.concurrent.Executor; +import appeng.hooks.DynamicDimensions; @Mixin(MinecraftServer.class) public class MinecraftServerMixin implements DynamicDimensions { diff --git a/src/main/java/appeng/mixins/SkyPropertiesMixin.java b/src/main/java/appeng/mixins/SkyPropertiesMixin.java index a6a0e8628..0fca89599 100644 --- a/src/main/java/appeng/mixins/SkyPropertiesMixin.java +++ b/src/main/java/appeng/mixins/SkyPropertiesMixin.java @@ -1,15 +1,17 @@ package appeng.mixins; -import appeng.spatial.SpatialDimensionManager; -import net.minecraft.client.world.DimensionRenderInfo; -import net.minecraft.util.RegistryKey; -import net.minecraft.world.DimensionType; +import java.util.Optional; + 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 java.util.Optional; +import net.minecraft.client.world.DimensionRenderInfo; +import net.minecraft.util.RegistryKey; +import net.minecraft.world.DimensionType; + +import appeng.spatial.SpatialDimensionManager; @Mixin(DimensionRenderInfo.class) public class SkyPropertiesMixin { diff --git a/src/main/java/appeng/mixins/SkyRenderMixin.java b/src/main/java/appeng/mixins/SkyRenderMixin.java index 3d4c89399..d8b178181 100644 --- a/src/main/java/appeng/mixins/SkyRenderMixin.java +++ b/src/main/java/appeng/mixins/SkyRenderMixin.java @@ -1,16 +1,19 @@ package appeng.mixins; -import appeng.client.render.SpatialSkyRender; -import appeng.spatial.SpatialDimensionManager; import com.mojang.blaze3d.matrix.MatrixStack; -import net.minecraft.client.Minecraft; -import net.minecraft.client.renderer.WorldRenderer; + import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.WorldRenderer; + +import appeng.client.render.SpatialSkyRender; +import appeng.spatial.SpatialDimensionManager; + @Mixin(value = WorldRenderer.class) public class SkyRenderMixin { diff --git a/src/main/java/appeng/mixins/StructureAccessor.java b/src/main/java/appeng/mixins/StructureAccessor.java index b39ceb72a..e76622517 100644 --- a/src/main/java/appeng/mixins/StructureAccessor.java +++ b/src/main/java/appeng/mixins/StructureAccessor.java @@ -1,9 +1,10 @@ package appeng.mixins; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Invoker; + import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.feature.structure.Structure; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(Structure.class) public interface StructureAccessor { diff --git a/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java b/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java index 1a7a0cf9a..1b037f2d5 100644 --- a/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java +++ b/src/main/java/appeng/mixins/ThreadedAnvilChunkStorageAccessor.java @@ -1,9 +1,10 @@ package appeng.mixins; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + import net.minecraft.world.chunk.listener.IChunkStatusListener; import net.minecraft.world.server.ChunkManager; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; @Mixin(ChunkManager.class) public interface ThreadedAnvilChunkStorageAccessor { diff --git a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java index 2cfc6d719..f813ab2e5 100644 --- a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java +++ b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java @@ -41,7 +41,6 @@ import net.minecraft.util.text.StringTextComponent; import net.minecraft.util.text.TextFormatting; import net.minecraft.util.text.event.ClickEvent; import net.minecraft.util.text.event.HoverEvent; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.IChunk; diff --git a/src/main/java/appeng/server/subcommands/TestOreGenCommand.java b/src/main/java/appeng/server/subcommands/TestOreGenCommand.java index 7ce76f35f..af494a7fb 100644 --- a/src/main/java/appeng/server/subcommands/TestOreGenCommand.java +++ b/src/main/java/appeng/server/subcommands/TestOreGenCommand.java @@ -35,7 +35,6 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.text.StringTextComponent; -import net.minecraft.world.DimensionType; import net.minecraft.world.World; import net.minecraft.world.chunk.ChunkStatus; import net.minecraft.world.chunk.IChunk; diff --git a/src/main/java/appeng/services/CompassService.java b/src/main/java/appeng/services/CompassService.java index 02df50e56..e848d5b57 100644 --- a/src/main/java/appeng/services/CompassService.java +++ b/src/main/java/appeng/services/CompassService.java @@ -18,10 +18,15 @@ package appeng.services; -import appeng.api.util.DimensionalCoord; -import appeng.core.Api; -import appeng.services.compass.CompassReader; -import appeng.services.compass.ICompassCallback; +import java.util.WeakHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; + +import javax.annotation.Nonnull; + import net.minecraft.block.Block; import net.minecraft.server.MinecraftServer; import net.minecraft.util.math.BlockPos; @@ -33,13 +38,10 @@ import net.minecraft.world.server.ServerWorld; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; -import javax.annotation.Nonnull; -import java.util.WeakHashMap; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.ThreadFactory; -import java.util.concurrent.TimeUnit; +import appeng.api.util.DimensionalCoord; +import appeng.core.Api; +import appeng.services.compass.CompassReader; +import appeng.services.compass.ICompassCallback; public final class CompassService { private static final int CHUNK_SIZE = 16; diff --git a/src/main/java/appeng/spatial/CachedPlane.java b/src/main/java/appeng/spatial/CachedPlane.java index b3fc61fe3..68e3864a7 100644 --- a/src/main/java/appeng/spatial/CachedPlane.java +++ b/src/main/java/appeng/spatial/CachedPlane.java @@ -32,11 +32,11 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.world.EmptyBlockReader; import net.minecraft.world.ITickList; import net.minecraft.world.NextTickListEntry; -import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; import net.minecraft.world.chunk.ChunkSection; import net.minecraft.world.server.ServerChunkProvider; import net.minecraft.world.server.ServerTickList; +import net.minecraft.world.server.ServerWorld; import appeng.api.movable.IMovableHandler; import appeng.api.movable.IMovableRegistry; @@ -45,7 +45,6 @@ import appeng.api.util.WorldCoord; import appeng.core.AELog; import appeng.core.Api; import appeng.core.worlddata.WorldData; -import net.minecraft.world.server.ServerWorld; public class CachedPlane { private final int x_size; diff --git a/src/main/java/appeng/spatial/SpatialDimensionManager.java b/src/main/java/appeng/spatial/SpatialDimensionManager.java index 65243d5a0..1e902a980 100644 --- a/src/main/java/appeng/spatial/SpatialDimensionManager.java +++ b/src/main/java/appeng/spatial/SpatialDimensionManager.java @@ -23,9 +23,7 @@ import java.util.Locale; import javax.annotation.Nullable; -import appeng.hooks.DynamicDimensions; import net.minecraft.client.world.DimensionRenderInfo; -import net.minecraft.network.PacketBuffer; import net.minecraft.server.MinecraftServer; import net.minecraft.util.RegistryKey; import net.minecraft.util.ResourceLocation; @@ -42,6 +40,7 @@ import appeng.api.storage.ISpatialDimension; import appeng.core.AELog; import appeng.core.AppEng; import appeng.core.localization.GuiText; +import appeng.hooks.DynamicDimensions; public final class SpatialDimensionManager implements ISpatialDimension { diff --git a/src/main/java/appeng/spatial/StorageChunkGenerator.java b/src/main/java/appeng/spatial/StorageChunkGenerator.java index be9d10cd5..8ea0d8abc 100644 --- a/src/main/java/appeng/spatial/StorageChunkGenerator.java +++ b/src/main/java/appeng/spatial/StorageChunkGenerator.java @@ -18,8 +18,13 @@ package appeng.spatial; +import java.util.Arrays; +import java.util.Collections; +import java.util.Optional; + import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; + import net.minecraft.block.BlockState; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Blockreader; @@ -33,14 +38,10 @@ import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.GenerationStage; import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.WorldGenRegion; - -import appeng.core.Api; import net.minecraft.world.gen.feature.structure.StructureManager; import net.minecraft.world.gen.settings.DimensionStructuresSettings; -import java.util.Arrays; -import java.util.Collections; -import java.util.Optional; +import appeng.core.Api; public class StorageChunkGenerator extends ChunkGenerator { diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java index 54cb492c9..d1915c01e 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java @@ -1,18 +1,12 @@ package appeng.worldgen; -import com.google.common.collect.ImmutableMap; import com.mojang.serialization.Codec; -import com.mojang.serialization.Dynamic; -import com.mojang.serialization.DynamicOps; - import com.mojang.serialization.codecs.RecordCodecBuilder; + import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.world.gen.feature.IFeatureConfig; import net.minecraft.world.gen.feature.ReplaceBlockConfig; -import appeng.core.AEConfig; - /** * Extends a {@link ReplaceBlockConfig} with a chance. */ diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index 34e679b93..eaac90b9c 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -1,6 +1,9 @@ package appeng.worldgen; +import java.util.Random; + import com.mojang.serialization.Codec; + import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.world.ISeedReader; @@ -10,8 +13,6 @@ import net.minecraft.world.gen.Heightmap; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.structure.StructureManager; -import java.util.Random; - /** * Extends {@link net.minecraft.world.gen.feature.OreFeature} by also allowing * for a replacement chance. In addition, the feature will check every block in diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java index 414c3ef1c..4e1da28a6 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java @@ -1,7 +1,7 @@ package appeng.worldgen.meteorite; -import appeng.core.AppEng; import com.mojang.serialization.Codec; + import net.minecraft.util.ResourceLocation; import net.minecraft.util.SharedSeedRandom; import net.minecraft.util.math.ChunkPos; @@ -11,6 +11,8 @@ import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.feature.NoFeatureConfig; import net.minecraft.world.gen.feature.structure.Structure; +import appeng.core.AppEng; + public class MeteoriteStructure extends Structure { public static final ResourceLocation ID = AppEng.makeId("meteorite"); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java index 14a8b870d..dad15f4e8 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java @@ -24,7 +24,6 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.ChunkPos; import net.minecraft.util.math.MutableBoundingBox; import net.minecraft.world.ISeedReader; -import net.minecraft.world.IWorld; import net.minecraft.world.gen.ChunkGenerator; import net.minecraft.world.gen.feature.structure.IStructurePieceType; import net.minecraft.world.gen.feature.structure.StructureManager; From 0beab559a65ed345d689b4da12d022d715a4a011 Mon Sep 17 00:00:00 2001 From: yueh Date: Tue, 28 Jul 2020 11:44:57 +0200 Subject: [PATCH 04/11] Fix formatting --- .../block/AEBaseBlockItemChargeable.java | 11 ++++++----- .../block/networking/CableBusBlock.java | 8 ++++---- .../appeng/block/qnb/QnbFormedBakedModel.java | 3 ++- .../block/spatial/MatrixFrameBlock.java | 4 ++-- src/main/java/appeng/client/ClientHelper.java | 4 ++-- .../appeng/client/gui/AEBaseMEScreen.java | 6 ++++-- .../java/appeng/client/gui/AEBaseScreen.java | 6 +++--- .../implementations/CellWorkbenchScreen.java | 3 ++- .../gui/implementations/ChestScreen.java | 6 ++++-- .../gui/implementations/CondenserScreen.java | 6 ++++-- .../implementations/CraftAmountScreen.java | 6 ++++-- .../implementations/CraftConfirmScreen.java | 4 ++-- .../gui/implementations/DriveScreen.java | 6 ++---- .../implementations/FormationPlaneScreen.java | 6 ++++-- .../gui/implementations/GrinderScreen.java | 6 ++++-- .../gui/implementations/IOPortScreen.java | 3 +-- .../gui/implementations/InterfaceScreen.java | 3 ++- .../InterfaceTerminalScreen.java | 9 ++++++--- .../implementations/MEMonitorableScreen.java | 6 ++++-- .../implementations/NetworkStatusScreen.java | 9 +++++---- .../client/gui/implementations/QNBScreen.java | 4 ++-- .../implementations/QuartzKnifeScreen.java | 4 ++-- .../SecurityStationScreen.java | 7 ++++--- .../gui/implementations/SkyChestScreen.java | 3 +-- .../implementations/SpatialIOPortScreen.java | 4 ++-- .../gui/implementations/StorageBusScreen.java | 3 +-- .../implementations/UpgradeableScreen.java | 3 +-- .../VibrationChamberScreen.java | 4 ++-- .../gui/implementations/WirelessScreen.java | 6 ++++-- .../client/gui/widgets/CustomSlotWidget.java | 3 ++- .../client/gui/widgets/ProgressBar.java | 3 +-- .../render/ColorableTileBlockColor.java | 3 ++- .../client/render/StaticBlockColor.java | 3 ++- .../render/crafting/CraftingCubeModel.java | 4 +++- .../client/render/effects/ChargedOreFX.java | 2 +- .../client/render/effects/CraftingFx.java | 4 ++-- .../client/render/effects/LightningArcFX.java | 2 +- .../client/render/effects/MatterCannonFX.java | 4 ++-- .../client/render/effects/ParticleTypes.java | 4 ++-- .../client/render/model/MemoryCardModel.java | 4 +++- .../appeng/container/ContainerLocator.java | 10 +++++----- .../CraftConfirmContainer.java | 3 ++- src/main/java/appeng/core/Registration.java | 9 ++++----- .../java/appeng/core/api/ApiClientHelper.java | 10 ++++------ .../core/sync/network/NetworkHandler.java | 4 ++-- .../appeng/core/sync/network/TargetPoint.java | 3 +-- .../java/appeng/core/worlddata/WorldData.java | 3 +-- .../appeng/debug/ChunkLoaderTileEntity.java | 3 +-- .../appeng/debug/DebugPartPlacerItem.java | 3 ++- .../client/gui/FluidInterfaceScreen.java | 8 ++++---- .../client/gui/FluidStorageBusScreen.java | 3 ++- .../client/gui/widgets/FluidSlotWidget.java | 3 ++- .../client/gui/widgets/FluidTankWidget.java | 13 +++++++------ .../java/appeng/helpers/DualityInterface.java | 3 ++- .../appeng/helpers/InvalidPatternHelper.java | 3 ++- .../java/appeng/helpers/MetaRotation.java | 2 +- .../java/appeng/hooks/DynamicDimensions.java | 2 +- .../appeng/items/misc/EncodedPatternItem.java | 18 ++++++++---------- .../items/storage/SpatialStorageCellItem.java | 2 +- .../tools/powered/ColorApplicatorItem.java | 19 ++++++++++--------- .../items/tools/powered/MatterCannonItem.java | 9 +++++---- .../DimensionStructuresSettingsMixin.java | 13 +++++++------ .../appeng/mixins/DimensionTypeMixin.java | 4 ++-- .../appeng/mixins/MinecraftServerMixin.java | 11 ++++++----- .../parts/reporting/AbstractMonitorPart.java | 3 ++- src/main/java/appeng/spatial/CachedPlane.java | 4 ++-- .../spatial/SpatialDimensionManager.java | 12 ++++++------ .../java/appeng/spatial/StorageCellBiome.java | 7 ++++--- .../java/appeng/spatial/StorageHelper.java | 8 +++++--- .../tile/spatial/SpatialIOPortTileEntity.java | 4 ++-- .../worldgen/ChargedQuartzOreFeature.java | 3 ++- .../meteorite/MeteoriteStructure.java | 7 ++++--- .../meteorite/MeteoriteStructurePiece.java | 6 ++++-- .../resources/appliedenergistics2.mixins.json | 5 +---- 74 files changed, 221 insertions(+), 188 deletions(-) diff --git a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java index 22c53c1bc..a6111824a 100644 --- a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java +++ b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java @@ -46,12 +46,13 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte public AEBaseBlockItemChargeable(Block id, Properties props) { super(id, props); - ItemModelsProperties.func_239418_a_(this, new ResourceLocation("appliedenergistics2:fill_level"), (is, world, entity) -> { - double curPower = getAECurrentPower(is); - double maxPower = getAEMaxPower(is); + ItemModelsProperties.func_239418_a_(this, new ResourceLocation("appliedenergistics2:fill_level"), + (is, world, entity) -> { + double curPower = getAECurrentPower(is); + double maxPower = getAEMaxPower(is); - return (int) Math.round(100 * curPower / maxPower); - }); + return (int) Math.round(100 * curPower / maxPower); + }); } @Override diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index a792836ed..48fbca28c 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -222,8 +222,8 @@ public class CableBusBlock extends AEBaseTileBlock implement double z = target.getHitVec().z; // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? - effectRenderer - .addEffect(new CableBusBreakingParticle((ClientWorld) world, x, y, z, texture).multipleParticleScaleBy(0.8F)); + effectRenderer.addEffect( + new CableBusBreakingParticle((ClientWorld) world, x, y, z, texture).multipleParticleScaleBy(0.8F)); } return true; @@ -264,8 +264,8 @@ public class CableBusBlock extends AEBaseTileBlock implement // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? - Particle effect = new CableBusBreakingParticle((ClientWorld) world, x, y, z, x - pos.getX() - 0.5D, - y - pos.getY() - 0.5D, z - pos.getZ() - 0.5D, texture); + Particle effect = new CableBusBreakingParticle((ClientWorld) world, x, y, z, + x - pos.getX() - 0.5D, y - pos.getY() - 0.5D, z - pos.getZ() - 0.5D, texture); effectRenderer.addEffect(effect); } } diff --git a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java index bdc0b44ac..fed98f876 100644 --- a/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java +++ b/src/main/java/appeng/block/qnb/QnbFormedBakedModel.java @@ -38,7 +38,8 @@ class QnbFormedBakedModel implements IDynamicBakedModel { new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring")); private static final RenderMaterial TEXTURE_RING_LIGHT = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring_light")); - private static final RenderMaterial TEXTURE_RING_LIGHT_CORNER = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, + private static final RenderMaterial TEXTURE_RING_LIGHT_CORNER = new RenderMaterial( + AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "block/quantum_ring_light_corner")); private static final RenderMaterial TEXTURE_CABLE_GLASS = new RenderMaterial(AtlasTexture.LOCATION_BLOCKS_TEXTURE, new ResourceLocation(AppEng.MOD_ID, "part/cable/glass/transparent")); diff --git a/src/main/java/appeng/block/spatial/MatrixFrameBlock.java b/src/main/java/appeng/block/spatial/MatrixFrameBlock.java index 7fee2f631..99f81a36b 100644 --- a/src/main/java/appeng/block/spatial/MatrixFrameBlock.java +++ b/src/main/java/appeng/block/spatial/MatrixFrameBlock.java @@ -46,8 +46,8 @@ import appeng.block.AEBaseBlock; */ public class MatrixFrameBlock extends AEBaseBlock { - private static final Material MATERIAL = new Material(MaterialColor.AIR, false, true, true, false, false, - false, PushReaction.PUSH_ONLY); + private static final Material MATERIAL = new Material(MaterialColor.AIR, false, true, true, false, false, false, + PushReaction.PUSH_ONLY); public MatrixFrameBlock() { super(Properties.create(MATERIAL).hardnessAndResistance(-1.0F, 6000000.0F).notSolid().noDrops()); diff --git a/src/main/java/appeng/client/ClientHelper.java b/src/main/java/appeng/client/ClientHelper.java index 6e4124b92..50d0efbb0 100644 --- a/src/main/java/appeng/client/ClientHelper.java +++ b/src/main/java/appeng/client/ClientHelper.java @@ -208,8 +208,8 @@ public class ClientHelper extends ServerHelper { private void spawnLightningArc(final World world, final double posX, final double posY, final double posZ, final Vector3d second) { - final LightningFX fx = new LightningArcFX((ClientWorld) world, posX, posY, posZ, second.x, second.y, second.z, 0.0f, 0.0f, - 0.0f); + final LightningFX fx = new LightningArcFX((ClientWorld) world, posX, posY, posZ, second.x, second.y, second.z, + 0.0f, 0.0f, 0.0f); Minecraft.getInstance().particles.addEffect(fx); } diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index 867242078..a6a41200c 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -62,7 +62,8 @@ public abstract class AEBaseMEScreen extends AEBaseSc if (myStack.getStackSize() > bigNumber || (myStack.getStackSize() > 1 && stack.isDamaged())) { final String formattedAmount = NumberFormat.getNumberInstance(Locale.US) .format(myStack.getStackSize()); - currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); + currentToolTip + .add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); } if (myStack.getCountRequestable() > 0) { @@ -76,7 +77,8 @@ public abstract class AEBaseMEScreen extends AEBaseSc return; } else if (stack.getCount() > bigNumber) { final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.getCount()); - currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); + currentToolTip + .add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index ff968ce47..c297ab724 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -192,7 +192,8 @@ public abstract class AEBaseScreen extends ContainerS protected void drawTooltip(MatrixStack matrices, int x, int y, ITextComponent message) { String[] lines = message.getString().split("\n"); // FIXME FABRIC - List textLines = Arrays.stream(lines).map(StringTextComponent::new).collect(Collectors.toList()); + List textLines = Arrays.stream(lines).map(StringTextComponent::new) + .collect(Collectors.toList()); this.drawTooltip(matrices, x, y, textLines); } @@ -233,8 +234,7 @@ public abstract class AEBaseScreen extends ContainerS public abstract void drawFG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY); @Override - protected final void func_230450_a_(MatrixStack matrixStack, final float f, final int x, - final int y) { + protected final void func_230450_a_(MatrixStack matrixStack, final float f, final int x, final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java b/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java index a746ec826..de71d25d9 100644 --- a/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CellWorkbenchScreen.java @@ -62,7 +62,8 @@ public class CellWorkbenchScreen extends UpgradeableScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Chest.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/chest.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java index 8216c4911..5e173d4d5 100644 --- a/src/main/java/appeng/client/gui/implementations/CondenserScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CondenserScreen.java @@ -56,7 +56,8 @@ public class CondenserScreen extends AEBaseScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Condenser.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); @@ -65,7 +66,8 @@ public class CondenserScreen extends AEBaseScreen { } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/condenser.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); diff --git a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java index cb4cb8a75..c967aefca 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftAmountScreen.java @@ -67,12 +67,14 @@ public class CraftAmountScreen extends AEBaseScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, GuiText.SelectAmount.text().getString(), 8, 6, 4210752); } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.next.setMessage(hasShiftDown() ? GuiText.Start.text() : GuiText.Next.text()); this.bindTexture("guis/craft_amt.png"); diff --git a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java index 423e50533..771d58cda 100644 --- a/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java +++ b/src/main/java/appeng/client/gui/implementations/CraftConfirmScreen.java @@ -84,8 +84,8 @@ public class CraftConfirmScreen extends AEBaseScreen { public void init() { super.init(); - this.start = new Button(this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, - GuiText.Start.text(), btn -> start()); + this.start = new Button(this.guiLeft + 162, this.guiTop + this.ySize - 25, 50, 20, GuiText.Start.text(), + btn -> start()); this.start.active = false; this.addButton(this.start); diff --git a/src/main/java/appeng/client/gui/implementations/DriveScreen.java b/src/main/java/appeng/client/gui/implementations/DriveScreen.java index cfb351670..93d3c13d6 100644 --- a/src/main/java/appeng/client/gui/implementations/DriveScreen.java +++ b/src/main/java/appeng/client/gui/implementations/DriveScreen.java @@ -54,10 +54,8 @@ public class DriveScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Drive.text()).getString(), 8, 6, - 4210752); - this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, - 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Drive.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 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 ca67db830..e37afc06c 100644 --- a/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java +++ b/src/main/java/appeng/client/gui/implementations/FormationPlaneScreen.java @@ -60,8 +60,10 @@ public class FormationPlaneScreen extends UpgradeableScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.GrindStone.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/grinder.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java index e8174527e..981faed83 100644 --- a/src/main/java/appeng/client/gui/implementations/IOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/IOPortScreen.java @@ -61,8 +61,7 @@ public class IOPortScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.IOPort.text()).getString(), 8, 6, - 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.IOPort.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.redstoneMode != null) { diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java index a7284d056..a7d885ac8 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceScreen.java @@ -61,7 +61,8 @@ public class InterfaceScreen extends UpgradeableScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { if (this.blockMode != null) { this.blockMode.set(((InterfaceContainer) this.cvb).getBlockingMode()); } diff --git a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java index 7dbca6054..b1b031b1f 100644 --- a/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java +++ b/src/main/java/appeng/client/gui/implementations/InterfaceTerminalScreen.java @@ -94,8 +94,10 @@ public class InterfaceTerminalScreen extends AEBaseScreen extends AEBas } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, this.getGuiDisplayName(this.myName.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.text().getString(), 8, this.ySize - 96 + 3, 4210752); @@ -320,7 +321,8 @@ public class MEMonitorableScreen extends AEBas } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture(this.getBackground()); final int x_width = 197; diff --git a/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java b/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java index 7a13f743f..49190e769 100644 --- a/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/NetworkStatusScreen.java @@ -144,8 +144,9 @@ public class NetworkStatusScreen extends AEBaseScreen im } final int w = this.font.getStringWidth(str); - this.font.drawString(matrixStack, str, (int) ((x * sectionLength + xo + sectionLength - 19 - (w * 0.5)) * 2), - (y * 18 + yo + 6) * 2, 4210752); + this.font.drawString(matrixStack, str, + (int) ((x * sectionLength + xo + sectionLength - 19 - (w * 0.5)) * 2), (y * 18 + yo + 6) * 2, + 4210752); RenderSystem.popMatrix(); final int posX = x * sectionLength + xo + sectionLength - 18; @@ -225,8 +226,8 @@ public class NetworkStatusScreen extends AEBaseScreen im } currentToolTip.add(GuiText.Installed.withSuffix(": " + (myStack.getStackSize()))); - currentToolTip.add(GuiText.EnergyDrain.withSuffix(": " - + Platform.formatPowerLong(myStack.getCountRequestable(), true))); + currentToolTip.add(GuiText.EnergyDrain + .withSuffix(": " + Platform.formatPowerLong(myStack.getCountRequestable(), true))); this.drawTooltip(matrixStack, x, y, currentToolTip); } diff --git a/src/main/java/appeng/client/gui/implementations/QNBScreen.java b/src/main/java/appeng/client/gui/implementations/QNBScreen.java index f072cccad..7867587c6 100644 --- a/src/main/java/appeng/client/gui/implementations/QNBScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QNBScreen.java @@ -38,8 +38,8 @@ public class QNBScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, - this.getGuiDisplayName(GuiText.QuantumLinkChamber.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.QuantumLinkChamber.text()).getString(), 8, 6, + 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java index 7fb23ca29..96ed04828 100644 --- a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java @@ -62,8 +62,8 @@ public class QuartzKnifeScreen extends AEBaseScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, - this.getGuiDisplayName(GuiText.QuartzCuttingKnife.text()).getString(), 8, 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.QuartzCuttingKnife.text()).getString(), 8, 6, + 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java index 404945e9e..46f346943 100644 --- a/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SecurityStationScreen.java @@ -82,10 +82,11 @@ public class SecurityStationScreen extends MEMonitorableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SkyChest.text()).getString(), 8, 8, - 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SkyChest.text()).getString(), 8, 8, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java index d37afce9c..6131d116f 100644 --- a/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java +++ b/src/main/java/appeng/client/gui/implementations/SpatialIOPortScreen.java @@ -58,8 +58,8 @@ public class SpatialIOPortScreen extends AEBaseScreen { GuiText.Efficiency.getLocal() + ": " + (((float) this.container.getEfficency()) / 100) + '%', 13, 83, 4210752); - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SpatialIOPort.text()).getString(), 8, - 6, 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.SpatialIOPort.text()).getString(), 8, 6, + 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96, 4210752); if (this.container.xSize != 0 && this.container.ySize != 0 && this.container.zSize != 0) { diff --git a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java index 68aed64cb..40fc1cafc 100644 --- a/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java +++ b/src/main/java/appeng/client/gui/implementations/StorageBusScreen.java @@ -71,8 +71,7 @@ public class StorageBusScreen extends UpgradeableScreen { @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.StorageBus.text()).getString(), 8, 6, - 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.StorageBus.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.fuzzyMode != null) { diff --git a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java index ffda0419f..64265b5f9 100644 --- a/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/UpgradeableScreen.java @@ -86,8 +86,7 @@ public class UpgradeableScreen extends AEBaseScr @Override public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { - this.font.drawString(matrixStack, this.getGuiDisplayName(this.getName().text()).getString(), 8, 6, - 4210752); + this.font.drawString(matrixStack, this.getGuiDisplayName(this.getName().text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); if (this.redstoneMode != null) { diff --git a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java index 3fa4b8da0..435618de0 100644 --- a/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java +++ b/src/main/java/appeng/client/gui/implementations/VibrationChamberScreen.java @@ -54,8 +54,8 @@ public class VibrationChamberScreen extends AEBaseScreen { } @Override - public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY) { + public void drawFG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY) { this.font.drawString(matrixStack, this.getGuiDisplayName(GuiText.Wireless.text()).getString(), 8, 6, 4210752); this.font.drawString(matrixStack, GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752); @@ -63,7 +64,8 @@ public class WirelessScreen extends AEBaseScreen { } @Override - public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, final int mouseY, float partialTicks) { + public void drawBG(MatrixStack matrixStack, final int offsetX, final int offsetY, final int mouseX, + final int mouseY, float partialTicks) { this.bindTexture("guis/wireless.png"); GuiUtils.drawTexturedModalRect(offsetX, offsetY, 0, 0, this.xSize, this.ySize, getBlitOffset()); } diff --git a/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java b/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java index 17400b9c0..8498e3ac1 100644 --- a/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java +++ b/src/main/java/appeng/client/gui/widgets/CustomSlotWidget.java @@ -31,7 +31,8 @@ public abstract class CustomSlotWidget extends AbstractGui implements ITooltip { public void slotClicked(final ItemStack clickStack, final int mouseButton) { } - public abstract void drawContent(MatrixStack matrixStack, final Minecraft mc, final int mouseX, final int mouseY, final float partialTicks); + public abstract void drawContent(MatrixStack matrixStack, final Minecraft mc, final int mouseX, final int mouseY, + final float partialTicks); public void drawBackground(int guileft, int guitop, int currentZIndex) { } diff --git a/src/main/java/appeng/client/gui/widgets/ProgressBar.java b/src/main/java/appeng/client/gui/widgets/ProgressBar.java index f5df1e9f4..10980c2e8 100644 --- a/src/main/java/appeng/client/gui/widgets/ProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/ProgressBar.java @@ -88,8 +88,7 @@ public class ProgressBar extends Widget implements ITooltip { ITextComponent result = this.titleName != null ? this.titleName : new StringTextComponent(""); return result.deepCopy().func_240702_b_("\n").func_240702_b_(this.source.getCurrentProgress() + " ") - .func_230529_a_( - GuiText.Of.text().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); + .func_230529_a_(GuiText.Of.text().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); } @Override diff --git a/src/main/java/appeng/client/render/ColorableTileBlockColor.java b/src/main/java/appeng/client/render/ColorableTileBlockColor.java index 78cff513c..1ce5268e7 100644 --- a/src/main/java/appeng/client/render/ColorableTileBlockColor.java +++ b/src/main/java/appeng/client/render/ColorableTileBlockColor.java @@ -37,7 +37,8 @@ public class ColorableTileBlockColor implements IBlockColor { public static final ColorableTileBlockColor INSTANCE = new ColorableTileBlockColor(); @Override - public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, int tintIndex) { + public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, + int tintIndex) { AEColor color = AEColor.TRANSPARENT; // Default to a neutral color if (worldIn != null && pos != null) { diff --git a/src/main/java/appeng/client/render/StaticBlockColor.java b/src/main/java/appeng/client/render/StaticBlockColor.java index 1282f9ad3..ece378594 100644 --- a/src/main/java/appeng/client/render/StaticBlockColor.java +++ b/src/main/java/appeng/client/render/StaticBlockColor.java @@ -39,7 +39,8 @@ public class StaticBlockColor implements IBlockColor { } @Override - public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, int tintIndex) { + public int getColor(BlockState state, @Nullable IBlockDisplayReader worldIn, @Nullable BlockPos pos, + int tintIndex) { return this.color.getVariantByTintIndex(tintIndex); } diff --git a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java index cb45d7cb7..4d9df844e 100644 --- a/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java +++ b/src/main/java/appeng/client/render/crafting/CraftingCubeModel.java @@ -75,7 +75,9 @@ class CraftingCubeModel implements IModelGeometry { } @Override - public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, + Function spriteGetter, IModelTransform modelTransform, + ItemOverrideList overrides, ResourceLocation modelLocation) { // Retrieve our textures and pass them on to the baked model TextureAtlasSprite ringCorner = spriteGetter.apply(RING_CORNER); TextureAtlasSprite ringSideHor = spriteGetter.apply(RING_SIDE_HOR); diff --git a/src/main/java/appeng/client/render/effects/ChargedOreFX.java b/src/main/java/appeng/client/render/effects/ChargedOreFX.java index 75665e4a7..4419e03fb 100644 --- a/src/main/java/appeng/client/render/effects/ChargedOreFX.java +++ b/src/main/java/appeng/client/render/effects/ChargedOreFX.java @@ -59,7 +59,7 @@ public class ChargedOreFX extends RedstoneParticle { @Override public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, - double xSpeed, double ySpeed, double zSpeed) { + double xSpeed, double ySpeed, double zSpeed) { return new ChargedOreFX(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.spriteSet); } } diff --git a/src/main/java/appeng/client/render/effects/CraftingFx.java b/src/main/java/appeng/client/render/effects/CraftingFx.java index 087574d6f..5b638f775 100644 --- a/src/main/java/appeng/client/render/effects/CraftingFx.java +++ b/src/main/java/appeng/client/render/effects/CraftingFx.java @@ -134,8 +134,8 @@ public class CraftingFx extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType data, ClientWorld worldIn, double x, double y, double z, double xSpeed, - double ySpeed, double zSpeed) { + public Particle makeParticle(BasicParticleType data, ClientWorld worldIn, double x, double y, double z, + double xSpeed, double ySpeed, double zSpeed) { return new CraftingFx(worldIn, x, y, z, spriteSet); } } diff --git a/src/main/java/appeng/client/render/effects/LightningArcFX.java b/src/main/java/appeng/client/render/effects/LightningArcFX.java index a53b0adf5..8f280556c 100644 --- a/src/main/java/appeng/client/render/effects/LightningArcFX.java +++ b/src/main/java/appeng/client/render/effects/LightningArcFX.java @@ -76,7 +76,7 @@ public class LightningArcFX extends LightningFX { @Override public Particle makeParticle(LightningArcParticleData data, ClientWorld worldIn, double x, double y, double z, - double xSpeed, double ySpeed, double zSpeed) { + double xSpeed, double ySpeed, double zSpeed) { SpriteTexturedParticle lightningFX = new LightningArcFX(worldIn, x, y, z, data.target.x, data.target.y, data.target.z, 0, 0, 0); lightningFX.selectSpriteRandomly(this.spriteSet); diff --git a/src/main/java/appeng/client/render/effects/MatterCannonFX.java b/src/main/java/appeng/client/render/effects/MatterCannonFX.java index b32b0c113..c5cdc765b 100644 --- a/src/main/java/appeng/client/render/effects/MatterCannonFX.java +++ b/src/main/java/appeng/client/render/effects/MatterCannonFX.java @@ -85,8 +85,8 @@ public class MatterCannonFX extends SpriteTexturedParticle { } @Override - public Particle makeParticle(BasicParticleType data, ClientWorld world, double x, double y, double z, double xSpeed, - double ySpeed, double zSpeed) { + public Particle makeParticle(BasicParticleType data, ClientWorld world, double x, double y, double z, + double xSpeed, double ySpeed, double zSpeed) { return new MatterCannonFX(world, x, y, z, spriteSet); } } diff --git a/src/main/java/appeng/client/render/effects/ParticleTypes.java b/src/main/java/appeng/client/render/effects/ParticleTypes.java index ba539c81b..1eea99bb7 100644 --- a/src/main/java/appeng/client/render/effects/ParticleTypes.java +++ b/src/main/java/appeng/client/render/effects/ParticleTypes.java @@ -20,8 +20,8 @@ public final class ParticleTypes { return null; } }; - public static final ParticleType LIGHTNING_ARC = new ParticleType(false, - LightningArcParticleData.DESERIALIZER) { + public static final ParticleType LIGHTNING_ARC = new ParticleType( + false, LightningArcParticleData.DESERIALIZER) { @Override public Codec func_230522_e_() { return null; diff --git a/src/main/java/appeng/client/render/model/MemoryCardModel.java b/src/main/java/appeng/client/render/model/MemoryCardModel.java index 9a60f18cc..98cdb2115 100644 --- a/src/main/java/appeng/client/render/model/MemoryCardModel.java +++ b/src/main/java/appeng/client/render/model/MemoryCardModel.java @@ -41,7 +41,9 @@ public class MemoryCardModel implements IModelGeometry { @Nullable @Override - public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, Function spriteGetter, IModelTransform modelTransform, ItemOverrideList overrides, ResourceLocation modelLocation) { + public IBakedModel bake(IModelConfiguration owner, ModelBakery bakery, + Function spriteGetter, IModelTransform modelTransform, + ItemOverrideList overrides, ResourceLocation modelLocation) { TextureAtlasSprite texture = spriteGetter.apply(TEXTURE); IBakedModel baseModel = bakery.getBakedModel(MODEL_BASE, modelTransform, spriteGetter); diff --git a/src/main/java/appeng/container/ContainerLocator.java b/src/main/java/appeng/container/ContainerLocator.java index 78c7ebc88..e213614ce 100644 --- a/src/main/java/appeng/container/ContainerLocator.java +++ b/src/main/java/appeng/container/ContainerLocator.java @@ -72,7 +72,8 @@ public final class ContainerLocator { this(type, itemIndex, world.func_234923_W_().func_240901_a_(), blockPos, side); } - private ContainerLocator(Type type, int itemIndex, ResourceLocation worldId, BlockPos blockPos, AEPartLocation side) { + private ContainerLocator(Type type, int itemIndex, ResourceLocation worldId, BlockPos blockPos, + AEPartLocation side) { this.type = type; this.itemIndex = itemIndex; this.worldId = worldId; @@ -132,8 +133,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().getWorld(), pos.getBlockPos(), part.getSide()); } public boolean hasItemIndex() { @@ -202,8 +202,8 @@ public final class ContainerLocator { case 0: return new ContainerLocator(Type.PLAYER_INVENTORY, buf.readInt(), (ResourceLocation) null, null, null); case 1: - return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, buf.readInt(), buf.readResourceLocation(), - buf.readBlockPos(), AEPartLocation.values()[buf.readByte()]); + return new ContainerLocator(Type.PLAYER_INVENTORY_WITH_BLOCK_CONTEXT, buf.readInt(), + buf.readResourceLocation(), buf.readBlockPos(), AEPartLocation.values()[buf.readByte()]); case 2: return new ContainerLocator(Type.BLOCK, -1, buf.readResourceLocation(), buf.readBlockPos(), null); case 3: diff --git a/src/main/java/appeng/container/implementations/CraftConfirmContainer.java b/src/main/java/appeng/container/implementations/CraftConfirmContainer.java index a67b27658..c4d548386 100644 --- a/src/main/java/appeng/container/implementations/CraftConfirmContainer.java +++ b/src/main/java/appeng/container/implementations/CraftConfirmContainer.java @@ -257,7 +257,8 @@ public class CraftConfirmContainer extends AEBaseContainer { // :P } } catch (final Throwable e) { - this.getPlayerInv().player.sendMessage(new StringTextComponent("Error: " + e.toString()), Util.DUMMY_UUID); + this.getPlayerInv().player.sendMessage(new StringTextComponent("Error: " + e.toString()), + Util.DUMMY_UUID); AELog.debug(e); this.setValidContainer(false); this.result = null; diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 330e03d76..783b0df34 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -689,12 +689,11 @@ final class Registration { public void registerStructures(RegistryEvent.Register> evt) { // Registering into the Forge registry is INSUFFICIENT! - // There's a bidirectional map in the Structure class itself primarily for the purposes of NBT serialization - StructureAccessor.register( - MeteoriteStructure.ID.toString(), + // There's a bidirectional map in the Structure class itself primarily for the + // purposes of NBT serialization + StructureAccessor.register(MeteoriteStructure.ID.toString(), MeteoriteStructure.INSTANCE.setRegistryName(MeteoriteStructure.ID), - GenerationStage.Decoration.TOP_LAYER_MODIFICATION - ); + GenerationStage.Decoration.TOP_LAYER_MODIFICATION); } public void registerBiomes(RegistryEvent.Register evt) { diff --git a/src/main/java/appeng/core/api/ApiClientHelper.java b/src/main/java/appeng/core/api/ApiClientHelper.java index cbc8891c6..0e43e3099 100644 --- a/src/main/java/appeng/core/api/ApiClientHelper.java +++ b/src/main/java/appeng/core/api/ApiClientHelper.java @@ -52,8 +52,8 @@ public class ApiClientHelper implements IClientHelper { final ICellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ") - .func_230529_a_(GuiText.Of.text()).func_240702_b_(" " + cellInventory.getTotalBytes() + " ") + lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ").func_230529_a_(GuiText.Of.text()) + .func_240702_b_(" " + cellInventory.getTotalBytes() + " ") .func_230529_a_(GuiText.BytesUsed.text())); lines.add(new StringTextComponent(cellInventory.getStoredItemTypes() + " ") @@ -66,11 +66,9 @@ public class ApiClientHelper implements IClientHelper { : GuiText.Excluded).getLocal(); if (handler.isFuzzy()) { - lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ") - .func_230529_a_(GuiText.Fuzzy.text())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").func_230529_a_(GuiText.Fuzzy.text())); } else { - lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ") - .func_230529_a_(GuiText.Precise.text())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").func_230529_a_(GuiText.Precise.text())); } } diff --git a/src/main/java/appeng/core/sync/network/NetworkHandler.java b/src/main/java/appeng/core/sync/network/NetworkHandler.java index 3b34ca687..6bed6b3af 100644 --- a/src/main/java/appeng/core/sync/network/NetworkHandler.java +++ b/src/main/java/appeng/core/sync/network/NetworkHandler.java @@ -118,8 +118,8 @@ public class NetworkHandler { public void sendToAllAround(final BasePacket message, final TargetPoint point) { IPacket pkt = message.toPacket(NetworkDirection.PLAY_TO_CLIENT); - getServer().getPlayerList().sendToAllNearExcept(point.excluded, point.x, point.y, point.z, point.r2, point.world.func_234923_W_(), - pkt); + getServer().getPlayerList().sendToAllNearExcept(point.excluded, point.x, point.y, point.z, point.r2, + point.world.func_234923_W_(), pkt); } public void sendToServer(final BasePacket message) { diff --git a/src/main/java/appeng/core/sync/network/TargetPoint.java b/src/main/java/appeng/core/sync/network/TargetPoint.java index ed107c74d..1b56c1409 100644 --- a/src/main/java/appeng/core/sync/network/TargetPoint.java +++ b/src/main/java/appeng/core/sync/network/TargetPoint.java @@ -32,8 +32,7 @@ public class TargetPoint { return new TargetPoint(x, y, z, r2, world); } - public static TargetPoint at(ServerPlayerEntity excluded, double x, double y, double z, double r2, - World world) { + public static TargetPoint at(ServerPlayerEntity excluded, double x, double y, double z, double r2, World world) { return new TargetPoint(excluded, x, y, z, r2, world); } } diff --git a/src/main/java/appeng/core/worlddata/WorldData.java b/src/main/java/appeng/core/worlddata/WorldData.java index cc12abd53..398d91b14 100644 --- a/src/main/java/appeng/core/worlddata/WorldData.java +++ b/src/main/java/appeng/core/worlddata/WorldData.java @@ -62,8 +62,7 @@ public final class WorldData implements IWorldData { // Attach shared data to the server's overworld dimension if (overworld.func_234923_W_() != ServerWorld.field_234918_g_) { - throw new IllegalStateException( - "The server doesn't have an overworld we could store our data on!"); + throw new IllegalStateException("The server doesn't have an overworld we could store our data on!"); } final PlayerData playerData = overworld.getSavedData().getOrCreate(PlayerData::new, PlayerData.NAME); diff --git a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java index 9dc2b6aaf..0fea38731 100644 --- a/src/main/java/appeng/debug/ChunkLoaderTileEntity.java +++ b/src/main/java/appeng/debug/ChunkLoaderTileEntity.java @@ -64,8 +64,7 @@ public class ChunkLoaderTileEntity extends AEBaseTileEntity implements ITickable ServerWorld serverWorld = (ServerWorld) world; if (!serverWorld.getForcedChunks().contains(chunkPos.asLong())) { - AELog.debug("Force-loading chunk @ %d,%d in %s", chunkPos.x, chunkPos.z, - serverWorld.func_234923_W_()); + AELog.debug("Force-loading chunk @ %d,%d in %s", chunkPos.x, chunkPos.z, serverWorld.func_234923_W_()); serverWorld.forceChunk(chunkPos.x, chunkPos.z, false); } } diff --git a/src/main/java/appeng/debug/DebugPartPlacerItem.java b/src/main/java/appeng/debug/DebugPartPlacerItem.java index b0af73c9e..70bf196e0 100644 --- a/src/main/java/appeng/debug/DebugPartPlacerItem.java +++ b/src/main/java/appeng/debug/DebugPartPlacerItem.java @@ -56,7 +56,8 @@ public class DebugPartPlacerItem extends AEBaseItem { TileEntity te = world.getTileEntity(pos); if (!(te instanceof IPartHost)) { - player.sendMessage(new StringTextComponent("Right-click something that will accept parts"), Util.DUMMY_UUID); + player.sendMessage(new StringTextComponent("Right-click something that will accept parts"), + Util.DUMMY_UUID); return ActionResultType.FAIL; } IPartHost center = (IPartHost) te; diff --git a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java index d2fb64b51..7aac566ed 100644 --- a/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java +++ b/src/main/java/appeng/fluids/client/gui/FluidInterfaceScreen.java @@ -57,8 +57,8 @@ public class FluidInterfaceScreen extends UpgradeableScreen openPriorityGui())); + this.addButton(new TabButton(this.getGuiLeft() + 154, this.getGuiTop(), 2 + 4 * 16, GuiText.Priority.text(), + this.itemRenderer, btn -> openPriorityGui())); } @Override @@ -67,8 +67,8 @@ public class FluidInterfaceScreen extends UpgradeableScreen 0) { @@ -75,12 +76,12 @@ public class FluidTankWidget extends Widget implements ITooltip { int iconHeightRemainder = scaledHeight % 16; if (iconHeightRemainder > 0) { - blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder, getBlitOffset(), 16, iconHeightRemainder, - sprite); + blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder, getBlitOffset(), 16, + iconHeightRemainder, sprite); } for (int i = 0; i < scaledHeight / 16; i++) { - blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder - (i + 1) * 16, getBlitOffset(), 16, 16, - sprite); + blit(matrixStack, this.x, this.y + this.height - iconHeightRemainder - (i + 1) * 16, + getBlitOffset(), 16, 16, sprite); } } diff --git a/src/main/java/appeng/helpers/DualityInterface.java b/src/main/java/appeng/helpers/DualityInterface.java index 15d61c354..dfee4ec24 100644 --- a/src/main/java/appeng/helpers/DualityInterface.java +++ b/src/main/java/appeng/helpers/DualityInterface.java @@ -970,7 +970,8 @@ public class DualityInterface implements IGridTickable, IStorageMonitorable, IIn hostTile.getPos().getZ() + 0.5); from = from.add(direction.getXOffset() * 0.501, direction.getYOffset() * 0.501, direction.getZOffset() * 0.501); - final Vector3d to = from.add(direction.getXOffset(), direction.getYOffset(), direction.getZOffset()); + final Vector3d to = from.add(direction.getXOffset(), direction.getYOffset(), + direction.getZOffset()); final BlockRayTraceResult hit = null;// hostWorld.rayTraceBlocks( from, to ); //FIXME: // https://github.com/MinecraftForge/MinecraftForge/pull/6708 if (hit != null && !BAD_BLOCKS.contains(directedBlock)) { diff --git a/src/main/java/appeng/helpers/InvalidPatternHelper.java b/src/main/java/appeng/helpers/InvalidPatternHelper.java index 85cfd2f90..72288e9c6 100644 --- a/src/main/java/appeng/helpers/InvalidPatternHelper.java +++ b/src/main/java/appeng/helpers/InvalidPatternHelper.java @@ -126,7 +126,8 @@ public class InvalidPatternHelper { } public ITextComponent getFormattedToolTip() { - IFormattableTextComponent result = new StringTextComponent(this.getCount() + " ").func_230529_a_(this.getName()); + IFormattableTextComponent result = new StringTextComponent(this.getCount() + " ") + .func_230529_a_(this.getName()); if (!this.isValid()) { result.func_240699_a_(TextFormatting.RED); diff --git a/src/main/java/appeng/helpers/MetaRotation.java b/src/main/java/appeng/helpers/MetaRotation.java index 61d3a40d2..fcc49a0fd 100644 --- a/src/main/java/appeng/helpers/MetaRotation.java +++ b/src/main/java/appeng/helpers/MetaRotation.java @@ -58,7 +58,7 @@ public class MetaRotation implements IOrientable { public Direction getUp() { final BlockState state = this.w.getBlockState(this.pos); - if (this.facingProp != null && state.func_235901_b_(this.facingProp) ) { + if (this.facingProp != null && state.func_235901_b_(this.facingProp)) { return state.get(this.facingProp); } diff --git a/src/main/java/appeng/hooks/DynamicDimensions.java b/src/main/java/appeng/hooks/DynamicDimensions.java index 65a6b1190..92e4b8097 100644 --- a/src/main/java/appeng/hooks/DynamicDimensions.java +++ b/src/main/java/appeng/hooks/DynamicDimensions.java @@ -9,6 +9,6 @@ import net.minecraft.world.server.ServerWorld; public interface DynamicDimensions { ServerWorld addWorld(RegistryKey worldId, RegistryKey dimensionTypeId, - ChunkGenerator chunkGenerator); + ChunkGenerator chunkGenerator); } diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index d9f44bb92..b0117d4a2 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -120,10 +120,10 @@ public class EncodedPatternItem extends AEBaseItem { InvalidPatternHelper invalid = new InvalidPatternHelper(stack); - final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.text() - : GuiText.Creates.text()).deepCopy().func_240702_b_(": "); - final ITextComponent and = new StringTextComponent(" ").deepCopy() - .func_230529_a_(GuiText.And.text()).deepCopy().func_240702_b_(" "); + final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.text() : GuiText.Creates.text()) + .deepCopy().func_240702_b_(": "); + final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.text()) + .deepCopy().func_240702_b_(" "); final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); boolean first = true; @@ -139,10 +139,8 @@ public class EncodedPatternItem extends AEBaseItem { } if (invalid.isCraftable()) { - final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy() - .func_240702_b_(" "); - final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.text() - : GuiText.No.text(); + final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().func_240702_b_(" "); + final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.text() : GuiText.No.text(); lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); } @@ -160,8 +158,8 @@ public class EncodedPatternItem extends AEBaseItem { final Collection in = details.getInputs(); final Collection out = details.getOutputs(); - final ITextComponent label = (isCrafting ? GuiText.Crafts.text() : GuiText.Creates.text()) - .deepCopy().func_240702_b_(": "); + final ITextComponent label = (isCrafting ? GuiText.Crafts.text() : GuiText.Creates.text()).deepCopy() + .func_240702_b_(": "); final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.text()) .func_240702_b_(" "); final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); diff --git a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java index c3cfe7239..6a47e7409 100644 --- a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java +++ b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java @@ -100,7 +100,7 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag @Override public TransitionResult doSpatialTransition(final ItemStack is, final ServerWorld w, final WorldCoord min, - final WorldCoord max, int playerId) { + final WorldCoord max, int playerId) { final int targetX = max.x - min.x - 1; final int targetY = max.y - min.y - 1; final int targetZ = max.z - min.z - 1; diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index a0b796cf7..7012a92d7 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -107,14 +107,15 @@ public class ColorApplicatorItem extends AEBasePoweredItem public ColorApplicatorItem(Item.Properties props) { super(AEConfig.instance().getColorApplicatorBattery(), props); - ItemModelsProperties.func_239418_a_(this, new ResourceLocation(AppEng.MOD_ID, "colored"), (itemStack, world, entity) -> { - // If the stack has no color, don't use the colored model since the impact of - // calling getColor for every quad is extremely high, if the stack tries to - // re-search its - // inventory for a new paintball everytime - AEColor col = getActiveColor(itemStack); - return (col != null) ? 1 : 0; - }); + ItemModelsProperties.func_239418_a_(this, new ResourceLocation(AppEng.MOD_ID, "colored"), + (itemStack, world, entity) -> { + // If the stack has no color, don't use the colored model since the impact of + // calling getColor for every quad is extremely high, if the stack tries to + // re-search its + // inventory for a new paintball everytime + AEColor col = getActiveColor(itemStack); + return (col != null) ? 1 : 0; + }); } @Override @@ -321,7 +322,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem } private boolean recolourBlock(final Block blk, final Direction side, final World w, final BlockPos pos, - final AEColor newColor, @Nullable final PlayerEntity p) { + final AEColor newColor, @Nullable final PlayerEntity p) { final BlockState state = w.getBlockState(pos); Block recolored = BlockRecolorer.recolor(blk, newColor); diff --git a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java index 71f414e5f..87bd8fe41 100644 --- a/src/main/java/appeng/items/tools/powered/MatterCannonItem.java +++ b/src/main/java/appeng/items/tools/powered/MatterCannonItem.java @@ -285,8 +285,9 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< while (penetration > 0 && hasDestroyed) { hasDestroyed = false; - final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vector3d.x, Vector3d1.x), Math.min(Vector3d.y, Vector3d1.y), - Math.min(Vector3d.z, Vector3d1.z), Math.max(Vector3d.x, Vector3d1.x), Math.max(Vector3d.y, Vector3d1.y), + final AxisAlignedBB bb = new AxisAlignedBB(Math.min(Vector3d.x, Vector3d1.x), + Math.min(Vector3d.y, Vector3d1.y), Math.min(Vector3d.z, Vector3d1.z), + Math.max(Vector3d.x, Vector3d1.x), Math.max(Vector3d.y, Vector3d1.y), Math.max(Vector3d.z, Vector3d1.z)).grow(16, 16, 16); Entity entity = null; @@ -322,8 +323,8 @@ public class MatterCannonItem extends AEBasePoweredItem implements IStorageCell< } } - RayTraceContext rayTraceContext = new RayTraceContext(Vector3d, Vector3d1, RayTraceContext.BlockMode.COLLIDER, - RayTraceContext.FluidMode.NONE, p); + RayTraceContext rayTraceContext = new RayTraceContext(Vector3d, Vector3d1, + RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, p); final Vector3d vec = new Vector3d(d0, d1, d2); RayTraceResult pos = w.rayTraceBlocks(rayTraceContext); if (entity != null && pos.getType() != RayTraceResult.Type.MISS diff --git a/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java index da616a07d..2790dc139 100644 --- a/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java +++ b/src/main/java/appeng/mixins/DimensionStructuresSettingsMixin.java @@ -16,11 +16,13 @@ import net.minecraft.world.gen.settings.StructureSeparationSettings; import appeng.worldgen.meteorite.MeteoriteStructure; /** - * This Mixin will add the structure placement configuration for the meteorite structure - * to the static final immutable map that contains them. There is currently no - * Forge hook for this, and registering them during the registry event is already too late. + * This Mixin will add the structure placement configuration for the meteorite + * structure to the static final immutable map that contains them. There is + * currently no Forge hook for this, and registering them during the registry + * event is already too late. *

- * If this is not done, Meteorites spawn every chunk, since that is the default for missing entries. + * If this is not done, Meteorites spawn every chunk, since that is the default + * for missing entries. */ @Mixin(DimensionStructuresSettings.class) public class DimensionStructuresSettingsMixin { @@ -31,8 +33,7 @@ public class DimensionStructuresSettingsMixin { @Inject(method = "", at = @At("TAIL")) private static void addMeteoriteSpreadConfig(CallbackInfo ci) { - field_236191_b_ = ImmutableMap., StructureSeparationSettings>builder() - .putAll(field_236191_b_) + field_236191_b_ = ImmutableMap., StructureSeparationSettings>builder().putAll(field_236191_b_) .put(MeteoriteStructure.INSTANCE, new StructureSeparationSettings(32, 8, 124895654)).build(); } diff --git a/src/main/java/appeng/mixins/DimensionTypeMixin.java b/src/main/java/appeng/mixins/DimensionTypeMixin.java index e7812b11c..26fe8b0a3 100644 --- a/src/main/java/appeng/mixins/DimensionTypeMixin.java +++ b/src/main/java/appeng/mixins/DimensionTypeMixin.java @@ -20,8 +20,8 @@ public class DimensionTypeMixin { private static void addRegistryDefaults(IDynamicRegistries.Impl registryTracker, CallbackInfoReturnable cir) { registryTracker.func_239774_a_(SpatialDimensionManager.STORAGE_DIMENSION_TYPE, - new DimensionType(OptionalLong.of(12000), false, false, false, false, false, false, true, false, - false, 256, BlockTags.INFINIBURN_OVERWORLD.getName(), 1.0f)); + new DimensionType(OptionalLong.of(12000), false, false, false, false, false, false, true, false, false, + 256, BlockTags.INFINIBURN_OVERWORLD.getName(), 1.0f)); } diff --git a/src/main/java/appeng/mixins/MinecraftServerMixin.java b/src/main/java/appeng/mixins/MinecraftServerMixin.java index 5666a0c73..02cbf477e 100644 --- a/src/main/java/appeng/mixins/MinecraftServerMixin.java +++ b/src/main/java/appeng/mixins/MinecraftServerMixin.java @@ -48,7 +48,7 @@ public class MinecraftServerMixin implements DynamicDimensions { private SaveFormat.LevelSave anvilConverterForAnvilFile; public ServerWorld addWorld(RegistryKey worldId, RegistryKey dimensionTypeId, - ChunkGenerator chunkGenerator) { + ChunkGenerator chunkGenerator) { Preconditions.checkArgument(!worlds.containsKey(worldId), "World with id %s already exists.", worldId.func_240901_a_()); @@ -84,9 +84,9 @@ public class MinecraftServerMixin implements DynamicDimensions { MinecraftServer self = (MinecraftServer) (Object) this; DerivedWorldInfo unmodifiableLevelProperties = new DerivedWorldInfo(this.field_240768_i_, serverWorldProperties); - ServerWorld world = new ServerWorld(self, this.backgroundExecutor, this.anvilConverterForAnvilFile, unmodifiableLevelProperties, - worldId, dimensionTypeId, dimensionType, worldGenerationProgressListener, chunkGenerator, false, seed, - ImmutableList.of(), false); + ServerWorld world = new ServerWorld(self, this.backgroundExecutor, this.anvilConverterForAnvilFile, + unmodifiableLevelProperties, worldId, dimensionTypeId, dimensionType, worldGenerationProgressListener, + chunkGenerator, false, seed, ImmutableList.of(), false); worldBorder.addListener(new IBorderListener.Impl(world.getWorldBorder())); this.worlds.put(worldId, world); @@ -96,7 +96,8 @@ public class MinecraftServerMixin implements DynamicDimensions { generatorOptions.func_236224_e_().func_239662_d_(dimOptKey); // Otherwise it wont be saved // Ensure the save properties are saved, or the world will potentially be lost // on restart - this.anvilConverterForAnvilFile.func_237288_a_(this.field_240767_f_, this.field_240768_i_, self.getPlayerList().getHostPlayerData()); + this.anvilConverterForAnvilFile.func_237288_a_(this.field_240767_f_, this.field_240768_i_, + self.getPlayerList().getHostPlayerData()); return world; } diff --git a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java index f1882cc79..e18dbee82 100644 --- a/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java +++ b/src/main/java/appeng/parts/reporting/AbstractMonitorPart.java @@ -179,7 +179,8 @@ public abstract class AbstractMonitorPart extends AbstractDisplayPart if (player.getHeldItem(hand).isEmpty()) { this.isLocked = !this.isLocked; - player.sendMessage((this.isLocked ? PlayerMessages.isNowLocked : PlayerMessages.isNowUnlocked).get(), Util.DUMMY_UUID); + player.sendMessage((this.isLocked ? PlayerMessages.isNowLocked : PlayerMessages.isNowUnlocked).get(), + Util.DUMMY_UUID); this.getHost().markForSave(); this.getHost().markForUpdate(); } diff --git a/src/main/java/appeng/spatial/CachedPlane.java b/src/main/java/appeng/spatial/CachedPlane.java index 68e3864a7..e15fea31e 100644 --- a/src/main/java/appeng/spatial/CachedPlane.java +++ b/src/main/java/appeng/spatial/CachedPlane.java @@ -65,8 +65,8 @@ public class CachedPlane { private int verticalBits; private final BlockState matrixBlockState; - public CachedPlane(final ServerWorld w, final int minX, final int minY, final int minZ, final int maxX, final int maxY, - final int maxZ) { + public CachedPlane(final ServerWorld w, final int minX, final int minY, final int minZ, final int maxX, + final int maxY, final int maxZ) { Block matrixFrameBlock = Api.instance().definitions().blocks().matrixFrame().maybeBlock().orElse(null); if (matrixFrameBlock != null) { diff --git a/src/main/java/appeng/spatial/SpatialDimensionManager.java b/src/main/java/appeng/spatial/SpatialDimensionManager.java index 1e902a980..cdad38c6b 100644 --- a/src/main/java/appeng/spatial/SpatialDimensionManager.java +++ b/src/main/java/appeng/spatial/SpatialDimensionManager.java @@ -49,12 +49,12 @@ public final class SpatialDimensionManager implements ISpatialDimension { // we move the origin to the middle of region 0,0 public static final BlockPos REGION_CENTER = new BlockPos(512 / 2, 64, 512 / 2); - public static final RegistryKey STORAGE_DIMENSION_TYPE = RegistryKey.func_240903_a_(Registry.DIMENSION_TYPE_KEY, - AppEng.makeId("storage_cell")); + public static final RegistryKey STORAGE_DIMENSION_TYPE = RegistryKey + .func_240903_a_(Registry.DIMENSION_TYPE_KEY, AppEng.makeId("storage_cell")); // See the fabric version of this to get any idea what its doing - public static final DimensionRenderInfo STORAGE_SKY = new DimensionRenderInfo(Float.NaN /* disables clouds */, false, - DimensionRenderInfo.FogType.NONE /* we use a custom render mixin */, true, false) { + public static final DimensionRenderInfo STORAGE_SKY = new DimensionRenderInfo(Float.NaN /* disables clouds */, + false, DimensionRenderInfo.FogType.NONE /* we use a custom render mixin */, true, false) { @Override public Vector3d func_230494_a_(Vector3d p_230494_1_, float p_230494_2_) { @@ -97,8 +97,8 @@ public final class SpatialDimensionManager implements ISpatialDimension { ServerWorld world = dynamicDimensions.addWorld(worldId, STORAGE_DIMENSION_TYPE, StorageChunkGenerator.INSTANCE); - SpatialDimensionExtraData spatialExtraData = world.getSavedData() - .getOrCreate(SpatialDimensionExtraData::new, SpatialDimensionExtraData.ID); + SpatialDimensionExtraData spatialExtraData = world.getSavedData().getOrCreate(SpatialDimensionExtraData::new, + SpatialDimensionExtraData.ID); spatialExtraData.setSize(size); return worldId; diff --git a/src/main/java/appeng/spatial/StorageCellBiome.java b/src/main/java/appeng/spatial/StorageCellBiome.java index 0f7cc1bd6..f2f35027f 100644 --- a/src/main/java/appeng/spatial/StorageCellBiome.java +++ b/src/main/java/appeng/spatial/StorageCellBiome.java @@ -31,11 +31,12 @@ public class StorageCellBiome extends Biome { public StorageCellBiome() { super(new Biome.Builder() - .surfaceBuilder(new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_STONE_GRAVEL_CONFIG)) + .surfaceBuilder( + new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_STONE_GRAVEL_CONFIG)) .precipitation(RainType.NONE).category(Category.NONE).depth(0).scale(1) // Copied from the vanilla void biome - .temperature(0.5F).downfall(0.5F) - .func_235097_a_(new BiomeAmbience.Builder().func_235246_b_(4159204).func_235248_c_(329011).func_235239_a_(0).func_235238_a_()) + .temperature(0.5F).downfall(0.5F).func_235097_a_(new BiomeAmbience.Builder().func_235246_b_(4159204) + .func_235248_c_(329011).func_235239_a_(0).func_235238_a_()) .parent(null)); } diff --git a/src/main/java/appeng/spatial/StorageHelper.java b/src/main/java/appeng/spatial/StorageHelper.java index a3ba7f351..c9b86ba78 100644 --- a/src/main/java/appeng/spatial/StorageHelper.java +++ b/src/main/java/appeng/spatial/StorageHelper.java @@ -97,7 +97,8 @@ public class StorageHelper { newWorld.getChunkProvider().getChunk(MathHelper.floor(link.x) >> 4, MathHelper.floor(link.z) >> 4, ChunkStatus.FULL, true); - if (entity instanceof ServerPlayerEntity && link.dim.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { + if (entity instanceof ServerPlayerEntity + && link.dim.func_234922_V_() == SpatialDimensionManager.STORAGE_DIMENSION_TYPE) { AppEng.instance().getAdvancementTriggers().getSpatialExplorer().trigger((ServerPlayerEntity) entity); } @@ -136,8 +137,9 @@ public class StorageHelper { } } - public void swapRegions(final ServerWorld srcWorld, final int srcX, final int srcY, final int srcZ, final ServerWorld dstWorld, - final int dstX, final int dstY, final int dstZ, final int scaleX, final int scaleY, final int scaleZ) { + public void swapRegions(final ServerWorld srcWorld, final int srcX, final int srcY, final int srcZ, + final ServerWorld dstWorld, final int dstX, final int dstY, final int dstZ, final int scaleX, + final int scaleY, final int scaleZ) { Api.instance().definitions().blocks().matrixFrame().maybeBlock() .ifPresent(matrixFrameBlock -> this.transverseEdges(dstX - 1, dstY - 1, dstZ - 1, dstX + scaleX + 1, dstY + scaleY + 1, dstZ + scaleZ + 1, diff --git a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java index 5f5b0d3ad..46eec20b1 100644 --- a/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java +++ b/src/main/java/appeng/tile/spatial/SpatialIOPortTileEntity.java @@ -140,8 +140,8 @@ public class SpatialIOPortTileEntity extends AENetworkInvTileEntity implements I playerId = this.getProxy().getSecurity().getOwner(); } - final TransitionResult tr = sc.doSpatialTransition(cell, serverWorld, spc.getMin(), spc.getMax(), - playerId); + final TransitionResult tr = sc.doSpatialTransition(cell, serverWorld, spc.getMin(), + spc.getMax(), playerId); if (tr.success) { energy.extractAEPower(req, Actionable.MODULATE, PowerMultiplier.CONFIG); this.inv.setStackInSlot(0, ItemStack.EMPTY); diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java index eaac90b9c..fcc2e50a8 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreFeature.java @@ -27,7 +27,8 @@ public class ChargedQuartzOreFeature extends Feature { } @Override - public boolean func_230362_a_(ISeedReader worldIn, StructureManager structureAccessor, ChunkGenerator generator, Random rand, BlockPos pos, ChargedQuartzOreConfig config) { + public boolean func_230362_a_(ISeedReader worldIn, StructureManager structureAccessor, 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/MeteoriteStructure.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java index 4e1da28a6..175b96918 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructure.java @@ -17,8 +17,7 @@ public class MeteoriteStructure extends Structure { public static final ResourceLocation ID = AppEng.makeId("meteorite"); - public static final Structure INSTANCE = new MeteoriteStructure( - NoFeatureConfig.field_236558_a_); + public static final Structure INSTANCE = new MeteoriteStructure(NoFeatureConfig.field_236558_a_); public MeteoriteStructure(Codec configCodec) { super(configCodec); @@ -31,7 +30,9 @@ public class MeteoriteStructure extends Structure { } @Override - protected boolean func_230363_a_(ChunkGenerator generator, BiomeProvider biomeSource, long seed, SharedSeedRandom randIn, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos2, NoFeatureConfig featureConfig) { + protected boolean func_230363_a_(ChunkGenerator generator, BiomeProvider biomeSource, long seed, + SharedSeedRandom randIn, int chunkX, int chunkZ, Biome biome, ChunkPos chunkPos2, + NoFeatureConfig featureConfig) { return randIn.nextBoolean(); } diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java index dad15f4e8..77dd2dde2 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructurePiece.java @@ -86,11 +86,13 @@ public class MeteoriteStructurePiece extends StructurePiece { } @Override - public boolean func_230383_a_(ISeedReader world, StructureManager p_230383_2_, ChunkGenerator chunkGeneratorIn, Random rand, MutableBoundingBox bounds, ChunkPos chunkPos, BlockPos p_230383_7_) { + public boolean func_230383_a_(ISeedReader world, StructureManager p_230383_2_, ChunkGenerator chunkGeneratorIn, + Random rand, MutableBoundingBox bounds, ChunkPos chunkPos, BlockPos p_230383_7_) { MeteoritePlacer placer = new MeteoritePlacer(world, settings, bounds); placer.place(); - WorldData.instance().compassData().service().tryUpdateArea(world, chunkPos); // FIXME: We know the y-range here... + WorldData.instance().compassData().service().tryUpdateArea(world, chunkPos); // FIXME: We know the y-range + // here... return true; } } diff --git a/src/main/resources/appliedenergistics2.mixins.json b/src/main/resources/appliedenergistics2.mixins.json index dc34c44b5..c4dd6f20d 100644 --- a/src/main/resources/appliedenergistics2.mixins.json +++ b/src/main/resources/appliedenergistics2.mixins.json @@ -10,10 +10,7 @@ "DimensionStructuresSettingsMixin", "StructureAccessor" ], - "client": [ - "SkyRenderMixin", - "SkyPropertiesMixin" - ], + "client": ["SkyRenderMixin", "SkyPropertiesMixin"], "server": [], "injectors": { "defaultRequire": 1 From 307a6817d433386ea1bfb86e8964ac0a0a05b78c Mon Sep 17 00:00:00 2001 From: yueh Date: Tue, 28 Jul 2020 14:49:33 +0200 Subject: [PATCH 05/11] Remove xvfb steps as runData should now run headless (#4513) Also run `prepareRunData` in a separate step to avoid a race condition with ForgeGradle writing the generated dependency after it has already written it for `runData` --- .github/workflows/branches.yml | 7 ++++--- .github/workflows/master.yml | 7 ++++--- .github/workflows/pull_requests.yml | 7 ++++--- .github/workflows/release.yml | 7 ++++--- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/branches.yml b/.github/workflows/branches.yml index 4ac445b70..ff68a5613 100644 --- a/.github/workflows/branches.yml +++ b/.github/workflows/branches.yml @@ -25,10 +25,11 @@ jobs: run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated + # FG does appear to read the deps in runData before it has written it. Separate step to avoid it + - name: Compile Java and prepare runData + run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - uses: GabrielBB/xvfb-action@v1.2 - with: - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index d55923846..ded3bb27c 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -25,10 +25,11 @@ jobs: run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated + # FG does appear to read the deps in runData before it has written it. Separate step to avoid it + - name: Compile Java and prepare runData + run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - uses: GabrielBB/xvfb-action@v1.2 - with: - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 397ea6c5d..934aa6d30 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -25,10 +25,11 @@ jobs: run: ./gradlew clean --no-daemon - name: Validate no assets run: test ! -d ./src/generated + # FG does appear to read the deps in runData before it has written it. Separate step to avoid it + - name: Compile Java and prepare runData + run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - uses: GabrielBB/xvfb-action@v1.2 - with: - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b450879f2..80e56c720 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,10 +30,11 @@ jobs: run: chmod +x gradlew - name: Validate no assets run: test ! -d ./src/generated + # FG does appear to read the deps in runData before it has written it. Separate step to avoid it + - name: Compile Java and prepare runData + run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - uses: GabrielBB/xvfb-action@v1.2 - with: - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle From b3b7547325dce9ad3c1e34d8b1e0e145d1d73dfa Mon Sep 17 00:00:00 2001 From: yueh Date: Tue, 28 Jul 2020 18:33:28 +0200 Subject: [PATCH 06/11] Updated mappings to 20200723-1.16.1 (#4514) * Limit to 1 gradle worker --- .github/workflows/branches.yml | 9 ++--- .github/workflows/master.yml | 9 ++--- .github/workflows/pull_requests.yml | 9 ++--- .github/workflows/release.yml | 11 ++---- gradle.properties | 2 +- src/api/java/appeng/api/config/Upgrades.java | 2 +- .../block/AEBaseBlockItemChargeable.java | 6 +-- .../block/networking/CableBusBlock.java | 2 +- .../appeng/client/gui/AEBaseMEScreen.java | 5 +-- .../java/appeng/client/gui/AEBaseScreen.java | 22 +++++------ .../implementations/MEMonitorableScreen.java | 4 +- .../client/gui/widgets/ProgressBar.java | 4 +- .../render/model/SkyCompassBakedModel.java | 2 +- .../java/appeng/core/api/ApiClientHelper.java | 14 +++---- .../appeng/core/localization/GuiText.java | 4 +- .../core/stats/AppEngAdvancementTrigger.java | 4 +- .../client/gui/widgets/FluidTankWidget.java | 2 +- .../appeng/helpers/InvalidPatternHelper.java | 5 +-- .../java/appeng/helpers/MetaRotation.java | 4 +- .../appeng/items/misc/EncodedPatternItem.java | 37 +++++++++---------- .../java/appeng/items/parts/FacadeItem.java | 2 +- .../items/storage/SpatialStorageCellItem.java | 2 +- .../appeng/items/tools/BiometricCardItem.java | 6 +-- .../tools/powered/ColorApplicatorItem.java | 6 +-- .../powered/powersink/AEBasePoweredItem.java | 6 +-- .../implementations/CraftingCPUCluster.java | 2 +- .../appeng/mixins/MinecraftServerMixin.java | 6 +-- .../appeng/parts/misc/CableAnchorPart.java | 2 +- .../subcommands/TestMeteoritesCommand.java | 10 ++--- .../java/appeng/spatial/StorageCellBiome.java | 4 +- .../appeng/spatial/StorageChunkGenerator.java | 2 +- src/main/java/appeng/util/Platform.java | 2 +- .../worldgen/ChargedQuartzOreConfig.java | 4 +- .../meteorite/MeteoriteStructureStart.java | 4 +- .../resources/META-INF/accesstransformer.cfg | 2 +- 35 files changed, 98 insertions(+), 119 deletions(-) diff --git a/.github/workflows/branches.yml b/.github/workflows/branches.yml index ff68a5613..08d25a9f4 100644 --- a/.github/workflows/branches.yml +++ b/.github/workflows/branches.yml @@ -22,15 +22,12 @@ jobs: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - name: Clean gradle - run: ./gradlew clean --no-daemon + run: ./gradlew clean --no-daemon --max-workers 1 - name: Validate no assets run: test ! -d ./src/generated - # FG does appear to read the deps in runData before it has written it. Separate step to avoid it - - name: Compile Java and prepare runData - run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon --max-workers 1 - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle - run: ./gradlew build --no-daemon + run: ./gradlew build --no-daemon --max-workers 1 diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index ded3bb27c..eb2369834 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -22,15 +22,12 @@ jobs: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - name: Clean gradle - run: ./gradlew clean --no-daemon + run: ./gradlew clean --no-daemon --max-workers 1 - name: Validate no assets run: test ! -d ./src/generated - # FG does appear to read the deps in runData before it has written it. Separate step to avoid it - - name: Compile Java and prepare runData - run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon --max-workers 1 - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle - run: ./gradlew build --no-daemon + run: ./gradlew build --no-daemon --max-workers 1 diff --git a/.github/workflows/pull_requests.yml b/.github/workflows/pull_requests.yml index 934aa6d30..2cee10876 100644 --- a/.github/workflows/pull_requests.yml +++ b/.github/workflows/pull_requests.yml @@ -22,20 +22,17 @@ jobs: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} - name: Clean gradle - run: ./gradlew clean --no-daemon + run: ./gradlew clean --no-daemon --max-workers 1 - name: Validate no assets run: test ! -d ./src/generated - # FG does appear to read the deps in runData before it has written it. Separate step to avoid it - - name: Compile Java and prepare runData - run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon --max-workers 1 - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle env: PR_NUMBER: ${{ github.event.pull_request.number }} - run: ./gradlew build --no-daemon + run: ./gradlew build --no-daemon --max-workers 1 - uses: actions/upload-artifact@v2 with: name: dist diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 80e56c720..f5ffe6854 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,11 +30,8 @@ jobs: run: chmod +x gradlew - name: Validate no assets run: test ! -d ./src/generated - # FG does appear to read the deps in runData before it has written it. Separate step to avoid it - - name: Compile Java and prepare runData - run: ./gradlew compileJava prepareRunData --no-daemon - name: Generate assets - run: ./gradlew runData --no-daemon + run: ./gradlew runData --no-daemon --max-workers 1 - name: Validate assets run: test -d ./src/generated -a -f ./src/generated/resources/.cache/cache - name: Build with Gradle @@ -43,7 +40,7 @@ jobs: KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }} KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew build --no-daemon + run: ./gradlew build --no-daemon --max-workers 1 - name: Upload to curseforge env: KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} @@ -51,14 +48,14 @@ jobs: KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} CHANGELOG: ${{ github.event.release.body }} CURSEFORGE: ${{ secrets.CURSEFORGE }} - run: ./gradlew curseforge --no-daemon + run: ./gradlew curseforge --no-daemon --max-workers 1 - name: Publish to github packages env: KEY_STORE_PASS: ${{ secrets.KEY_STORE_PASS }} KEY_STORE_ALIAS: ${{ secrets.KEY_STORE_ALIAS }} KEY_STORE_KEY_PASS: ${{ secrets.KEY_STORE_KEY_PASS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew publish --no-daemon + run: ./gradlew publish --no-daemon --max-workers 1 - name: Prepare artifact metadata id: prepare_artifact_metadata run: | diff --git a/gradle.properties b/gradle.properties index 693353618..1a2582329 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ artifact_basename=appliedenergistics2 ######################################################### minecraft_release=1.16 minecraft_version=1.16.1 -mcp_mappings=20200707-1.16.1 +mcp_mappings=20200723-1.16.1 forge_version=32.0.75 ######################################################### diff --git a/src/api/java/appeng/api/config/Upgrades.java b/src/api/java/appeng/api/config/Upgrades.java index 4926f5856..27b7b92c3 100644 --- a/src/api/java/appeng/api/config/Upgrades.java +++ b/src/api/java/appeng/api/config/Upgrades.java @@ -119,7 +119,7 @@ public enum Upgrades { if (namesAdded.add(name)) { // append the supported count only if its > 1 if (supported.maxCount > 1) { - name = name.deepCopy().func_240702_b_(" (" + supported.maxCount + ")"); + name = name.deepCopy().appendString(" (" + supported.maxCount + ")"); } supportedTooltipLines.add(name); } diff --git a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java index a6111824a..1bb71940a 100644 --- a/src/main/java/appeng/block/AEBaseBlockItemChargeable.java +++ b/src/main/java/appeng/block/AEBaseBlockItemChargeable.java @@ -71,9 +71,9 @@ public class AEBaseBlockItemChargeable extends AEBaseBlockItem implements IAEIte final double percent = internalCurrentPower / internalMaxPower; lines.add(GuiText.StoredEnergy.text().deepCopy() - .func_240702_b_(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) - .func_230529_a_(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) - .func_240702_b_(" - " + MessageFormat.format("{0,number,#.##%}", percent))); + .appendString(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) + .append(new TranslationTextComponent(PowerUnits.AE.unlocalizedName)) + .appendString(" - " + MessageFormat.format("{0,number,#.##%}", percent))); } } diff --git a/src/main/java/appeng/block/networking/CableBusBlock.java b/src/main/java/appeng/block/networking/CableBusBlock.java index 48fbca28c..6a9794f33 100644 --- a/src/main/java/appeng/block/networking/CableBusBlock.java +++ b/src/main/java/appeng/block/networking/CableBusBlock.java @@ -223,7 +223,7 @@ public class CableBusBlock extends AEBaseTileBlock implement // FIXME: Check how this looks, probably like shit, maybe provide parts the // ability to supply particle textures??? effectRenderer.addEffect( - new CableBusBreakingParticle((ClientWorld) world, x, y, z, texture).multipleParticleScaleBy(0.8F)); + new CableBusBreakingParticle((ClientWorld) world, x, y, z, texture).multiplyParticleScaleBy(0.8F)); } return true; diff --git a/src/main/java/appeng/client/gui/AEBaseMEScreen.java b/src/main/java/appeng/client/gui/AEBaseMEScreen.java index a6a41200c..405acdbf3 100644 --- a/src/main/java/appeng/client/gui/AEBaseMEScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseMEScreen.java @@ -63,7 +63,7 @@ public abstract class AEBaseMEScreen extends AEBaseSc final String formattedAmount = NumberFormat.getNumberInstance(Locale.US) .format(myStack.getStackSize()); currentToolTip - .add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); + .add(ButtonToolTips.ItemsStored.text(formattedAmount).mergeStyle(TextFormatting.GRAY)); } if (myStack.getCountRequestable() > 0) { @@ -77,8 +77,7 @@ public abstract class AEBaseMEScreen extends AEBaseSc return; } else if (stack.getCount() > bigNumber) { final String formattedAmount = NumberFormat.getNumberInstance(Locale.US).format(stack.getCount()); - currentToolTip - .add(ButtonToolTips.ItemsStored.text(formattedAmount).func_240699_a_(TextFormatting.GRAY)); + currentToolTip.add(ButtonToolTips.ItemsStored.text(formattedAmount).mergeStyle(TextFormatting.GRAY)); this.renderToolTip(matrixStack, currentToolTip, x, y, this.font); diff --git a/src/main/java/appeng/client/gui/AEBaseScreen.java b/src/main/java/appeng/client/gui/AEBaseScreen.java index c297ab724..ca30c7aa0 100644 --- a/src/main/java/appeng/client/gui/AEBaseScreen.java +++ b/src/main/java/appeng/client/gui/AEBaseScreen.java @@ -211,7 +211,7 @@ public abstract class AEBaseScreen extends ContainerS List styledLines = new ArrayList<>(lines.size()); for (int i = 0; i < lines.size(); i++) { Style style = (i == 0) ? TOOLTIP_HEADER : TOOLTIP_BODY; - styledLines.add(lines.get(i).deepCopy().func_240700_a_(s -> style)); + styledLines.add(lines.get(i).deepCopy().modifyStyle(s -> style)); } this.renderTooltip(matrices, styledLines, x, y); @@ -219,7 +219,7 @@ public abstract class AEBaseScreen extends ContainerS } @Override - protected final void func_230451_b_(MatrixStack matrixStack, final int x, final int y) { + protected final void drawGuiContainerForegroundLayer(MatrixStack matrixStack, final int x, final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -234,7 +234,8 @@ public abstract class AEBaseScreen extends ContainerS public abstract void drawFG(MatrixStack matrixStack, int offsetX, int offsetY, int mouseX, int mouseY); @Override - protected final void func_230450_a_(MatrixStack matrixStack, final float f, final int x, final int y) { + protected final void drawGuiContainerBackgroundLayer(MatrixStack matrixStack, final float f, final int x, + final int y) { final int ox = this.guiLeft; // (width - xSize) / 2; final int oy = this.guiTop; // (height - ySize) / 2; RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); @@ -544,11 +545,6 @@ public abstract class AEBaseScreen extends ContainerS return false; } - @Override - public void removed() { - super.removed(); - } - protected Slot getSlot(final int mouseX, final int mouseY) { final List slots = this.getInventorySlots(); for (final Slot slot : slots) { @@ -630,7 +626,7 @@ public abstract class AEBaseScreen extends ContainerS * hackery... */ @Override - public void func_238746_a_(MatrixStack matrices, Slot s) { + public void moveItems(MatrixStack matrices, Slot s) { if (s instanceof SlotME) { try { @@ -639,7 +635,7 @@ public abstract class AEBaseScreen extends ContainerS } // Annoying but easier than trying to splice into render item - super.func_238746_a_(matrices, new Size1Slot((SlotME) s)); + super.moveItems(matrices, new Size1Slot((SlotME) s)); this.stackSizeRenderer.renderStackSize(this.font, ((SlotME) s).getAEStack(), s.xPos, s.yPos); @@ -755,9 +751,9 @@ public abstract class AEBaseScreen extends ContainerS if (s instanceof AppEngSlot) { ((AppEngSlot) s).setDisplay(true); - super.func_238746_a_(matrices, s); + super.moveItems(matrices, s); } else { - super.func_238746_a_(matrices, s); + super.moveItems(matrices, s); } return; @@ -766,7 +762,7 @@ public abstract class AEBaseScreen extends ContainerS } } // do the usual for non-ME Slots. - super.func_238746_a_(matrices, s); + super.moveItems(matrices, s); } protected boolean isPowered() { diff --git a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java index d433aa292..8b4625332 100644 --- a/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java +++ b/src/main/java/appeng/client/gui/implementations/MEMonitorableScreen.java @@ -314,8 +314,8 @@ public class MEMonitorableScreen extends AEBas } @Override - public void removed() { - super.removed(); + public void onClose() { + super.onClose(); getMinecraft().keyboardListener.enableRepeatEvents(false); memoryText = this.searchField.getText(); } diff --git a/src/main/java/appeng/client/gui/widgets/ProgressBar.java b/src/main/java/appeng/client/gui/widgets/ProgressBar.java index 10980c2e8..7bfe01268 100644 --- a/src/main/java/appeng/client/gui/widgets/ProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/ProgressBar.java @@ -87,8 +87,8 @@ public class ProgressBar extends Widget implements ITooltip { } ITextComponent result = this.titleName != null ? this.titleName : new StringTextComponent(""); - return result.deepCopy().func_240702_b_("\n").func_240702_b_(this.source.getCurrentProgress() + " ") - .func_230529_a_(GuiText.Of.text().deepCopy().func_240702_b_(" " + this.source.getMaxProgress())); + return result.deepCopy().appendString("\n").appendString(this.source.getCurrentProgress() + " ") + .append(GuiText.Of.text().deepCopy().appendString(" " + this.source.getMaxProgress())); } @Override diff --git a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java index 7d29dc180..4d3779633 100644 --- a/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java +++ b/src/main/java/appeng/client/render/model/SkyCompassBakedModel.java @@ -159,7 +159,7 @@ public class SkyCompassBakedModel implements IDynamicBakedModel { float offRads = (float) (player.rotationYaw / 180.0f * (float) Math.PI + Math.PI); SkyCompassBakedModel.this.fallbackRotation = offRads - + getAnimatedRotation(player.func_233580_cy_(), true); + + getAnimatedRotation(player.getPosition(), true); } else { SkyCompassBakedModel.this.fallbackRotation = getAnimatedRotation(null, false); } diff --git a/src/main/java/appeng/core/api/ApiClientHelper.java b/src/main/java/appeng/core/api/ApiClientHelper.java index 0e43e3099..1257c86a2 100644 --- a/src/main/java/appeng/core/api/ApiClientHelper.java +++ b/src/main/java/appeng/core/api/ApiClientHelper.java @@ -52,13 +52,11 @@ public class ApiClientHelper implements IClientHelper { final ICellInventory cellInventory = handler.getCellInv(); if (cellInventory != null) { - lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ").func_230529_a_(GuiText.Of.text()) - .func_240702_b_(" " + cellInventory.getTotalBytes() + " ") - .func_230529_a_(GuiText.BytesUsed.text())); + lines.add(new StringTextComponent(cellInventory.getUsedBytes() + " ").append(GuiText.Of.text()) + .appendString(" " + cellInventory.getTotalBytes() + " ").append(GuiText.BytesUsed.text())); - lines.add(new StringTextComponent(cellInventory.getStoredItemTypes() + " ") - .func_230529_a_(GuiText.Of.text()).func_240702_b_(" " + cellInventory.getTotalItemTypes() + " ") - .func_230529_a_(GuiText.Types.text())); + lines.add(new StringTextComponent(cellInventory.getStoredItemTypes() + " ").append(GuiText.Of.text()) + .appendString(" " + cellInventory.getTotalItemTypes() + " ").append(GuiText.Types.text())); } if (handler.isPreformatted()) { @@ -66,9 +64,9 @@ public class ApiClientHelper implements IClientHelper { : GuiText.Excluded).getLocal(); if (handler.isFuzzy()) { - lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").func_230529_a_(GuiText.Fuzzy.text())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").append(GuiText.Fuzzy.text())); } else { - lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").func_230529_a_(GuiText.Precise.text())); + lines.add(GuiText.Partitioned.withSuffix(" - " + list + " ").append(GuiText.Precise.text())); } } diff --git a/src/main/java/appeng/core/localization/GuiText.java b/src/main/java/appeng/core/localization/GuiText.java index ae0827201..c6a184e65 100644 --- a/src/main/java/appeng/core/localization/GuiText.java +++ b/src/main/java/appeng/core/localization/GuiText.java @@ -111,11 +111,11 @@ public enum GuiText { } public IFormattableTextComponent withSuffix(String text) { - return text().deepCopy().func_240702_b_(text); + return text().deepCopy().appendString(text); } public IFormattableTextComponent withSuffix(ITextComponent text) { - return text().deepCopy().func_230529_a_(text); + return text().deepCopy().append(text); } public IFormattableTextComponent text(Object... args) { diff --git a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java index 7ba41d285..2140cfe71 100644 --- a/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java +++ b/src/main/java/appeng/core/stats/AppEngAdvancementTrigger.java @@ -86,7 +86,7 @@ public class AppEngAdvancementTrigger } @Override - public Instance func_230307_a_(JsonObject p_230307_1_, ConditionArrayParser p_230307_2_) { + public Instance deserialize(JsonObject p_230307_1_, ConditionArrayParser p_230307_2_) { return new AppEngAdvancementTrigger.Instance(this.getId()); } @@ -116,7 +116,7 @@ public class AppEngAdvancementTrigger } @Override - public JsonObject func_230240_a_(ConditionArraySerializer p_230240_1_) { + public JsonObject serialize(ConditionArraySerializer p_230240_1_) { return new JsonObject(); } } diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java index 2f143168d..56033a335 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java @@ -93,7 +93,7 @@ public class FluidTankWidget extends Widget implements ITooltip { final IAEFluidStack fluid = this.tank.getFluidInSlot(this.slot); if (fluid != null && fluid.getStackSize() > 0) { return fluid.getFluid().getAttributes().getDisplayName(fluid.getFluidStack()).deepCopy() - .func_240702_b_("\n" + (fluid.getStackSize() + "mB")); + .appendString("\n" + (fluid.getStackSize() + "mB")); } return new StringTextComponent(""); } diff --git a/src/main/java/appeng/helpers/InvalidPatternHelper.java b/src/main/java/appeng/helpers/InvalidPatternHelper.java index 72288e9c6..12f2b847d 100644 --- a/src/main/java/appeng/helpers/InvalidPatternHelper.java +++ b/src/main/java/appeng/helpers/InvalidPatternHelper.java @@ -126,11 +126,10 @@ public class InvalidPatternHelper { } public ITextComponent getFormattedToolTip() { - IFormattableTextComponent result = new StringTextComponent(this.getCount() + " ") - .func_230529_a_(this.getName()); + IFormattableTextComponent result = new StringTextComponent(this.getCount() + " ").append(this.getName()); if (!this.isValid()) { - result.func_240699_a_(TextFormatting.RED); + result.mergeStyle(TextFormatting.RED); } return result; diff --git a/src/main/java/appeng/helpers/MetaRotation.java b/src/main/java/appeng/helpers/MetaRotation.java index fcc49a0fd..ba887b7b1 100644 --- a/src/main/java/appeng/helpers/MetaRotation.java +++ b/src/main/java/appeng/helpers/MetaRotation.java @@ -58,12 +58,12 @@ public class MetaRotation implements IOrientable { public Direction getUp() { final BlockState state = this.w.getBlockState(this.pos); - if (this.facingProp != null && state.func_235901_b_(this.facingProp)) { + if (this.facingProp != null && state.hasProperty(this.facingProp)) { return state.get(this.facingProp); } // TODO 1.10.2-R - Temp - if (state.func_235901_b_(QuartzPillarBlock.AXIS)) { + if (state.hasProperty(QuartzPillarBlock.AXIS)) { Axis a = state.get(QuartzPillarBlock.AXIS); switch (a) { case X: diff --git a/src/main/java/appeng/items/misc/EncodedPatternItem.java b/src/main/java/appeng/items/misc/EncodedPatternItem.java index b0117d4a2..d3e1e504e 100644 --- a/src/main/java/appeng/items/misc/EncodedPatternItem.java +++ b/src/main/java/appeng/items/misc/EncodedPatternItem.java @@ -116,33 +116,33 @@ public class EncodedPatternItem extends AEBaseItem { return; } - stack.setDisplayName(GuiText.InvalidPattern.text().deepCopy().func_240701_a_(TextFormatting.RED)); + stack.setDisplayName(GuiText.InvalidPattern.text().deepCopy().mergeStyle(TextFormatting.RED)); InvalidPatternHelper invalid = new InvalidPatternHelper(stack); final ITextComponent label = (invalid.isCraftable() ? GuiText.Crafts.text() : GuiText.Creates.text()) - .deepCopy().func_240702_b_(": "); - final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.text()) - .deepCopy().func_240702_b_(" "); - final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); + .deepCopy().appendString(": "); + final ITextComponent and = new StringTextComponent(" ").deepCopy().append(GuiText.And.text()).deepCopy() + .appendString(" "); + final ITextComponent with = GuiText.With.text().deepCopy().appendString(": "); boolean first = true; for (final InvalidPatternHelper.PatternIngredient output : invalid.getOutputs()) { - lines.add((first ? label : and).deepCopy().func_230529_a_(output.getFormattedToolTip())); + lines.add((first ? label : and).deepCopy().append(output.getFormattedToolTip())); first = false; } first = true; for (final InvalidPatternHelper.PatternIngredient input : invalid.getInputs()) { - lines.add((first ? with : and).deepCopy().func_230529_a_(input.getFormattedToolTip())); + lines.add((first ? with : and).deepCopy().append(input.getFormattedToolTip())); first = false; } if (invalid.isCraftable()) { - final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().func_240702_b_(" "); + final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().appendString(" "); final ITextComponent canSubstitute = invalid.canSubstitute() ? GuiText.Yes.text() : GuiText.No.text(); - lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); + lines.add(substitutionLabel.deepCopy().append(canSubstitute)); } return; @@ -159,10 +159,9 @@ public class EncodedPatternItem extends AEBaseItem { final Collection out = details.getOutputs(); final ITextComponent label = (isCrafting ? GuiText.Crafts.text() : GuiText.Creates.text()).deepCopy() - .func_240702_b_(": "); - final ITextComponent and = new StringTextComponent(" ").deepCopy().func_230529_a_(GuiText.And.text()) - .func_240702_b_(" "); - final ITextComponent with = GuiText.With.text().deepCopy().func_240702_b_(": "); + .appendString(": "); + final ITextComponent and = new StringTextComponent(" ").deepCopy().append(GuiText.And.text()).appendString(" "); + final ITextComponent with = GuiText.With.text().deepCopy().appendString(": "); boolean first = true; for (final IAEItemStack anOut : out) { @@ -170,8 +169,8 @@ public class EncodedPatternItem extends AEBaseItem { continue; } - lines.add((first ? label : and).deepCopy().func_240702_b_(anOut.getStackSize() + "x ") - .func_230529_a_(Platform.getItemDisplayName(anOut))); + lines.add((first ? label : and).deepCopy().appendString(anOut.getStackSize() + "x ") + .append(Platform.getItemDisplayName(anOut))); first = false; } @@ -181,16 +180,16 @@ public class EncodedPatternItem extends AEBaseItem { continue; } - lines.add((first ? with : and).deepCopy().func_240702_b_(anIn.getStackSize() + "x ") - .func_230529_a_(Platform.getItemDisplayName(anIn))); + lines.add((first ? with : and).deepCopy().appendString(anIn.getStackSize() + "x ") + .append(Platform.getItemDisplayName(anIn))); first = false; } if (isCrafting) { - final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().func_240702_b_(" "); + final ITextComponent substitutionLabel = GuiText.Substitute.text().deepCopy().appendString(" "); final ITextComponent canSubstitute = substitute ? GuiText.Yes.text() : GuiText.No.text(); - lines.add(substitutionLabel.deepCopy().func_230529_a_(canSubstitute)); + lines.add(substitutionLabel.deepCopy().append(canSubstitute)); } } diff --git a/src/main/java/appeng/items/parts/FacadeItem.java b/src/main/java/appeng/items/parts/FacadeItem.java index cb73ff718..2b97f546f 100644 --- a/src/main/java/appeng/items/parts/FacadeItem.java +++ b/src/main/java/appeng/items/parts/FacadeItem.java @@ -77,7 +77,7 @@ public class FacadeItem extends AEBaseItem implements IFacadeItem, IAlphaPassIte try { final ItemStack in = this.getTextureItem(is); if (!in.isEmpty()) { - return super.getDisplayName(is).deepCopy().func_240702_b_(" - ").func_230529_a_(in.getDisplayName()); + return super.getDisplayName(is).deepCopy().appendString(" - ").append(in.getDisplayName()); } } catch (final Throwable ignored) { diff --git a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java index 6a47e7409..68cba4bdd 100644 --- a/src/main/java/appeng/items/storage/SpatialStorageCellItem.java +++ b/src/main/java/appeng/items/storage/SpatialStorageCellItem.java @@ -61,7 +61,7 @@ public class SpatialStorageCellItem extends AEBaseItem implements ISpatialStorag final ITooltipFlag advancedTooltips) { final RegistryKey worldId = this.getStoredDimension(stack); if (worldId == null) { - lines.add(GuiText.Unformatted.text().deepCopy().func_240699_a_(TextFormatting.ITALIC)); + lines.add(GuiText.Unformatted.text().deepCopy().mergeStyle(TextFormatting.ITALIC)); lines.add(GuiText.SpatialCapacity.text(maxRegion, maxRegion, maxRegion)); } else { SpatialDimensionManager.INSTANCE.addCellDimensionTooltip(worldId, lines); diff --git a/src/main/java/appeng/items/tools/BiometricCardItem.java b/src/main/java/appeng/items/tools/BiometricCardItem.java index ca6634eaf..275a67270 100644 --- a/src/main/java/appeng/items/tools/BiometricCardItem.java +++ b/src/main/java/appeng/items/tools/BiometricCardItem.java @@ -78,7 +78,7 @@ public class BiometricCardItem extends AEBaseItem implements IBiometricCard { @Override public ITextComponent getDisplayName(final ItemStack is) { final GameProfile username = this.getProfile(is); - return username != null ? super.getDisplayName(is).deepCopy().func_240702_b_(" - " + username.getName()) + return username != null ? super.getDisplayName(is).deepCopy().appendString(" - " + username.getName()) : super.getDisplayName(is); } @@ -167,8 +167,8 @@ public class BiometricCardItem extends AEBaseItem implements IBiometricCard { if (msg == null) { msg = new TranslationTextComponent(sp.getTranslatedName()); } else { - msg = msg.deepCopy().func_240702_b_(", ") - .func_230529_a_(new TranslationTextComponent(sp.getTranslatedName())); + msg = msg.deepCopy().appendString(", ") + .append(new TranslationTextComponent(sp.getTranslatedName())); } } lines.add(msg); diff --git a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java index 7012a92d7..e533fc654 100644 --- a/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java +++ b/src/main/java/appeng/items/tools/powered/ColorApplicatorItem.java @@ -207,7 +207,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem extra = new TranslationTextComponent(selected.translationKey); } - return super.getDisplayName(is).deepCopy().func_240702_b_(" - ").func_230529_a_(extra); + return super.getDisplayName(is).deepCopy().appendString(" - ").append(extra); } public AEColor getActiveColor(final ItemStack tol) { @@ -328,7 +328,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem Block recolored = BlockRecolorer.recolor(blk, newColor); if (recolored != blk) { BlockState newState = recolored.getDefaultState(); - for (Property prop : newState.func_235904_r_()) { + for (Property prop : newState.getProperties()) { newState = copyProp(state, newState, prop); } @@ -355,7 +355,7 @@ public class ColorApplicatorItem extends AEBasePoweredItem private static > BlockState copyProp(BlockState oldState, BlockState newState, Property prop) { - if (newState.func_235901_b_(prop)) { + if (newState.hasProperty(prop)) { return newState.with(prop, oldState.get(prop)); } return newState; diff --git a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java index 4fcfa3cdf..533e255e3 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java +++ b/src/main/java/appeng/items/tools/powered/powersink/AEBasePoweredItem.java @@ -67,9 +67,9 @@ public abstract class AEBasePoweredItem extends AEBaseItem implements IAEItemPow final double percent = internalCurrentPower / internalMaxPower; lines.add(GuiText.StoredEnergy.text().deepCopy() - .func_240702_b_(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) - .func_230529_a_(PowerUnits.AE.textComponent()) - .func_240702_b_(" - " + MessageFormat.format(" {0,number,#.##%} ", percent))); + .appendString(':' + MessageFormat.format(" {0,number,#} ", internalCurrentPower)) + .append(PowerUnits.AE.textComponent()) + .appendString(" - " + MessageFormat.format(" {0,number,#.##%} ", percent))); } @Override diff --git a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java index 880396736..9ede3dd31 100644 --- a/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java +++ b/src/main/java/appeng/me/cluster/implementations/CraftingCPUCluster.java @@ -1106,7 +1106,7 @@ public final class CraftingCPUCluster implements IAECluster, ICraftingCPU { if (te.hasCustomInventoryName()) { if (this.myName != null) { - this.myName.deepCopy().func_240702_b_(" ").func_230529_a_(te.getCustomInventoryName()); + this.myName.deepCopy().appendString(" ").append(te.getCustomInventoryName()); } else { this.myName = te.getCustomInventoryName().deepCopy(); } diff --git a/src/main/java/appeng/mixins/MinecraftServerMixin.java b/src/main/java/appeng/mixins/MinecraftServerMixin.java index 02cbf477e..f2d28b821 100644 --- a/src/main/java/appeng/mixins/MinecraftServerMixin.java +++ b/src/main/java/appeng/mixins/MinecraftServerMixin.java @@ -54,16 +54,16 @@ public class MinecraftServerMixin implements DynamicDimensions { // Each worlds must have a corresponding dimension options, otherwise they will // not be re-created on load - DimensionGeneratorSettings generatorOptions = this.field_240768_i_.func_230418_z_(); + DimensionGeneratorSettings generatorOptions = this.field_240768_i_.getDimensionGeneratorSettings(); Preconditions.checkArgument(!generatorOptions.func_236224_e_().containsKey(worldId.func_240901_a_()), "Dimension config with id %s already exists.", worldId.func_240901_a_()); - DimensionType dimensionType = field_240767_f_.func_230520_a_().func_230516_a_(dimensionTypeId); + DimensionType dimensionType = field_240767_f_.func_230520_a_().getValueForKey(dimensionTypeId); Preconditions.checkArgument(dimensionType != null, "dimensionTypeId %s is not registered", dimensionTypeId); // Create dimension options with the given world-id and chunk generator Dimension dimensionOptions = new Dimension( - () -> field_240767_f_.func_230520_a_().func_230516_a_(dimensionTypeId), chunkGenerator); + () -> field_240767_f_.func_230520_a_().getValueForKey(dimensionTypeId), chunkGenerator); IServerWorldInfo serverWorldProperties = this.field_240768_i_.func_230407_G_(); diff --git a/src/main/java/appeng/parts/misc/CableAnchorPart.java b/src/main/java/appeng/parts/misc/CableAnchorPart.java index 97c2586c3..a15a89d97 100644 --- a/src/main/java/appeng/parts/misc/CableAnchorPart.java +++ b/src/main/java/appeng/parts/misc/CableAnchorPart.java @@ -113,7 +113,7 @@ public class CableAnchorPart implements IPart { @Override public boolean isLadder(final LivingEntity entity) { - return this.mySide.yOffset == 0 && (entity.collidedHorizontally || !entity.func_233570_aj_()); + return this.mySide.yOffset == 0 && (entity.collidedHorizontally || !entity.isOnGround()); } @Override diff --git a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java index f813ab2e5..be395efb0 100644 --- a/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java +++ b/src/main/java/appeng/server/subcommands/TestMeteoritesCommand.java @@ -169,12 +169,12 @@ public class TestMeteoritesCommand implements ISubCommand { } IFormattableTextComponent msg = new StringTextComponent(" #" + (i + 1) + " "); - msg.func_230529_a_(getClickablePosition(world, settings, pos)).func_230529_a_(restOfLine); + msg.append(getClickablePosition(world, settings, pos)).append(restOfLine); // Add a tooltip ITextComponent tooltip = new StringTextComponent(settings.toString() + "\nBiome: ").deepCopy() - .func_230529_a_(world.getBiome(pos).getDisplayName()); - msg.func_240700_a_(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); + .append(world.getBiome(pos).getDisplayName()); + msg.modifyStyle(style -> style.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, tooltip))); sender.sendFeedback(msg, true); } @@ -192,8 +192,8 @@ public class TestMeteoritesCommand implements ISubCommand { String displayText = String.format(Locale.ROOT, "pos=%d,%d,%d", tpPos.getX(), tpPos.getY(), tpPos.getZ()); String tpCommand = String.format(Locale.ROOT, "/tp @s %d %d %d", tpPos.getX(), tpPos.getY(), tpPos.getZ()); - return new StringTextComponent(displayText).func_240699_a_(TextFormatting.UNDERLINE) - .func_240700_a_(style -> style.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, tpCommand))); + return new StringTextComponent(displayText).mergeStyle(TextFormatting.UNDERLINE) + .modifyStyle(style -> style.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, tpCommand))); } private static MeteoriteStructurePiece getMeteoritePieceFromChunk(IChunk chunk) { diff --git a/src/main/java/appeng/spatial/StorageCellBiome.java b/src/main/java/appeng/spatial/StorageCellBiome.java index f2f35027f..68dd62285 100644 --- a/src/main/java/appeng/spatial/StorageCellBiome.java +++ b/src/main/java/appeng/spatial/StorageCellBiome.java @@ -35,8 +35,8 @@ public class StorageCellBiome extends Biome { new ConfiguredSurfaceBuilder<>(SurfaceBuilder.NOPE, SurfaceBuilder.STONE_STONE_GRAVEL_CONFIG)) .precipitation(RainType.NONE).category(Category.NONE).depth(0).scale(1) // Copied from the vanilla void biome - .temperature(0.5F).downfall(0.5F).func_235097_a_(new BiomeAmbience.Builder().func_235246_b_(4159204) - .func_235248_c_(329011).func_235239_a_(0).func_235238_a_()) + .temperature(0.5F).downfall(0.5F).func_235097_a_(new BiomeAmbience.Builder().setWaterColor(4159204) + .setWaterFogColor(329011).setFogColor(0).build()) .parent(null)); } diff --git a/src/main/java/appeng/spatial/StorageChunkGenerator.java b/src/main/java/appeng/spatial/StorageChunkGenerator.java index 8ea0d8abc..01763d65f 100644 --- a/src/main/java/appeng/spatial/StorageChunkGenerator.java +++ b/src/main/java/appeng/spatial/StorageChunkGenerator.java @@ -119,7 +119,7 @@ public class StorageChunkGenerator extends ChunkGenerator { } @Override - public int func_222529_a(int p_222529_1_, int p_222529_2_, Heightmap.Type heightmapType) { + public int getHeight(int p_222529_1_, int p_222529_2_, Heightmap.Type heightmapType) { return 0; } diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index 4d67d8655..5a104b4d1 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -257,7 +257,7 @@ public class Platform { final ISecurityGrid sg = g.getCache(ISecurityGrid.class); if (!sg.hasPermission(player, requiredPermission)) { player.sendMessage(new TranslationTextComponent("appliedenergistics2.permission_denied") - .func_240699_a_(TextFormatting.RED), Util.DUMMY_UUID); + .mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); // FIXME trace logging? return false; } diff --git a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java index d1915c01e..f3c428b8c 100644 --- a/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java +++ b/src/main/java/appeng/worldgen/ChargedQuartzOreConfig.java @@ -13,8 +13,8 @@ import net.minecraft.world.gen.feature.ReplaceBlockConfig; public class ChargedQuartzOreConfig implements IFeatureConfig { public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance - .group(BlockState.field_235877_b_.fieldOf("target").forGetter((config) -> config.target), - BlockState.field_235877_b_.fieldOf("state").forGetter((config) -> config.state), + .group(BlockState.BLOCKSTATE_CODEC.fieldOf("target").forGetter((config) -> config.target), + BlockState.BLOCKSTATE_CODEC.fieldOf("state").forGetter((config) -> config.state), Codec.FLOAT.fieldOf("chance").withDefault(0f).forGetter((config) -> config.chance)) .apply(instance, ChargedQuartzOreConfig::new)); diff --git a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java index 81a3193bb..86a24074e 100644 --- a/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java +++ b/src/main/java/appeng/worldgen/meteorite/MeteoriteStructureStart.java @@ -54,7 +54,7 @@ public class MeteoriteStructureStart extends StructureStart { int scanRadius = (int) Math.max(1, meteoriteRadius * 2); for (int x = -scanRadius; x <= scanRadius; x++) { for (int z = -scanRadius; z <= scanRadius; z++) { - int h = generator.func_222529_a(centerX + x, centerZ + z, heightmapType); + int h = generator.getHeight(centerX + x, centerZ + z, heightmapType); stats.add(h); } } @@ -106,7 +106,7 @@ public class MeteoriteStructureStart extends StructureStart { final double distanceFrom = dx * dx + dz * dz; if (maxY > h + distanceFrom * 0.0175 && maxY < h + distanceFrom * 0.02) { - int heigth = generator.func_222529_a(blockPos.getX(), blockPos.getZ(), Heightmap.Type.OCEAN_FLOOR); + int heigth = generator.getHeight(blockPos.getX(), blockPos.getZ(), Heightmap.Type.OCEAN_FLOOR); if (heigth < seaLevel) { return true; } diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index a2e859b7d..779f78285 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -1,5 +1,5 @@ # GUI rendering -protected net.minecraft.client.gui.screen.inventory.ContainerScreen func_238746_a_(Lcom/mojang/blaze3d/matrix/MatrixStack;Lnet/minecraft/inventory/container/Slot;)V # drawSlot +protected net.minecraft.client.gui.screen.inventory.ContainerScreen func_238746_a_(Lcom/mojang/blaze3d/matrix/MatrixStack;Lnet/minecraft/inventory/container/Slot;)V # moveItems public net.minecraft.client.gui.widget.TextFieldWidget func_146188_c(IIII)V # drawSelectionBox public net.minecraft.client.gui.widget.TextFieldWidget func_146208_g()I # getMaxStringLength From 1cb32517aea310a6761d02c806fbb7d8f018a081 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 20:11:18 +0200 Subject: [PATCH 07/11] Added missing chunk generator registration. --- gradle.properties | 2 +- src/main/java/appeng/core/Registration.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1a2582329..f3832bff7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ artifact_basename=appliedenergistics2 minecraft_release=1.16 minecraft_version=1.16.1 mcp_mappings=20200723-1.16.1 -forge_version=32.0.75 +forge_version=32.0.93 ######################################################### # Provided APIs # diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 783b0df34..61ef6edd4 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -18,6 +18,7 @@ package appeng.core; +import appeng.spatial.StorageChunkGenerator; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -31,6 +32,7 @@ import net.minecraft.item.crafting.IRecipeSerializer; import net.minecraft.particles.ParticleType; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.ResourceLocation; +import net.minecraft.util.registry.Registry; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.GenerationStage; @@ -49,6 +51,7 @@ import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.client.event.TextureStitchEvent; import net.minecraftforge.client.model.ModelLoader; +import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.extensions.IForgeContainerType; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.IEventBus; @@ -694,6 +697,8 @@ final class Registration { StructureAccessor.register(MeteoriteStructure.ID.toString(), MeteoriteStructure.INSTANCE.setRegistryName(MeteoriteStructure.ID), GenerationStage.Decoration.TOP_LAYER_MODIFICATION); + + Registry.register(Registry.CHUNK_GENERATOR_CODEC, AppEng.makeId("storage"), StorageChunkGenerator.CODEC); } public void registerBiomes(RegistryEvent.Register evt) { @@ -732,7 +737,7 @@ final class Registration { modEventBus.addListener(this::registerParticleFactories); modEventBus.addListener(this::registerTextures); - modEventBus.addListener(this::modelRegistryEvent); + MinecraftForge.EVENT_BUS.addListener(this::modelRegistryEvent); modEventBus.addListener(this::registerItemColors); modEventBus.addListener(this::handleModelBake); } From 2b9c997191d74da9698ada9b761c22d733e3f98a Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 20:19:11 +0200 Subject: [PATCH 08/11] Fix formatting. --- src/main/java/appeng/core/Registration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/appeng/core/Registration.java b/src/main/java/appeng/core/Registration.java index 61ef6edd4..d178b9a51 100644 --- a/src/main/java/appeng/core/Registration.java +++ b/src/main/java/appeng/core/Registration.java @@ -18,7 +18,6 @@ package appeng.core; -import appeng.spatial.StorageChunkGenerator; import net.minecraft.advancements.CriteriaTriggers; import net.minecraft.block.Block; import net.minecraft.block.BlockState; @@ -207,6 +206,7 @@ import appeng.recipes.handlers.InscriberRecipe; import appeng.recipes.handlers.InscriberRecipeSerializer; import appeng.server.AECommand; import appeng.spatial.StorageCellBiome; +import appeng.spatial.StorageChunkGenerator; import appeng.tile.AEBaseTileEntity; import appeng.tile.crafting.MolecularAssemblerRenderer; import appeng.worldgen.ChargedQuartzOreConfig; From 3802eace7a547d92a6ae30f61b2e2f2612a9e009 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 20:24:07 +0200 Subject: [PATCH 09/11] Use StringTextComponent.EMPTY --- .../appeng/client/gui/implementations/QuartzKnifeScreen.java | 2 +- src/main/java/appeng/client/gui/widgets/AETextField.java | 2 +- src/main/java/appeng/client/gui/widgets/IconButton.java | 2 +- src/main/java/appeng/client/gui/widgets/ProgressBar.java | 4 ++-- src/main/java/appeng/client/gui/widgets/ToggleButton.java | 4 ++-- .../appeng/fluids/client/gui/widgets/FluidTankWidget.java | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java index 96ed04828..a064eb6fd 100644 --- a/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java +++ b/src/main/java/appeng/client/gui/implementations/QuartzKnifeScreen.java @@ -51,7 +51,7 @@ public class QuartzKnifeScreen extends AEBaseScreen { super.init(); this.name = new TextFieldWidget(this.font, this.guiLeft + 24, this.guiTop + 32, 79, this.font.FONT_HEIGHT, - new StringTextComponent("")); + StringTextComponent.EMPTY); this.name.setEnableBackgroundDrawing(false); this.name.setMaxStringLength(32); this.name.setTextColor(0xFFFFFF); diff --git a/src/main/java/appeng/client/gui/widgets/AETextField.java b/src/main/java/appeng/client/gui/widgets/AETextField.java index 10112a973..a9c26c85b 100644 --- a/src/main/java/appeng/client/gui/widgets/AETextField.java +++ b/src/main/java/appeng/client/gui/widgets/AETextField.java @@ -56,7 +56,7 @@ public class AETextField extends TextFieldWidget { final int height) { super(fontRenderer, xPos + PADDING, yPos + PADDING, width - 2 * PADDING - (int) fontRenderer.getStringWidth("_"), height - 2 * PADDING, - new StringTextComponent("")); + StringTextComponent.EMPTY); this._fontPad = (int) fontRenderer.getStringWidth("_"); } diff --git a/src/main/java/appeng/client/gui/widgets/IconButton.java b/src/main/java/appeng/client/gui/widgets/IconButton.java index fd8e9b6be..075c63c3a 100644 --- a/src/main/java/appeng/client/gui/widgets/IconButton.java +++ b/src/main/java/appeng/client/gui/widgets/IconButton.java @@ -35,7 +35,7 @@ public abstract class IconButton extends Button implements ITooltip { private boolean halfSize = false; public IconButton(final int x, final int y, IPressable onPress) { - super(x, y, 16, 16, new StringTextComponent(""), onPress); + super(x, y, 16, 16, StringTextComponent.EMPTY, onPress); } public void setVisibility(final boolean vis) { diff --git a/src/main/java/appeng/client/gui/widgets/ProgressBar.java b/src/main/java/appeng/client/gui/widgets/ProgressBar.java index 7bfe01268..2fa20b7b6 100644 --- a/src/main/java/appeng/client/gui/widgets/ProgressBar.java +++ b/src/main/java/appeng/client/gui/widgets/ProgressBar.java @@ -48,7 +48,7 @@ public class ProgressBar extends Widget implements ITooltip { public ProgressBar(final IProgressProvider source, final String texture, final int posX, final int posY, final int u, final int y, final int width, final int height, final Direction dir, final ITextComponent title) { - super(posX, posY, width, height, new StringTextComponent("")); + super(posX, posY, width, height, StringTextComponent.EMPTY); this.source = source; this.texture = new ResourceLocation("appliedenergistics2", "textures/" + texture); this.fill_u = u; @@ -85,7 +85,7 @@ public class ProgressBar extends Widget implements ITooltip { if (this.fullMsg != null) { return this.fullMsg; } - ITextComponent result = this.titleName != null ? this.titleName : new StringTextComponent(""); + ITextComponent result = this.titleName != null ? this.titleName : StringTextComponent.EMPTY; return result.deepCopy().appendString("\n").appendString(this.source.getCurrentProgress() + " ") .append(GuiText.Of.text().deepCopy().appendString(" " + this.source.getMaxProgress())); diff --git a/src/main/java/appeng/client/gui/widgets/ToggleButton.java b/src/main/java/appeng/client/gui/widgets/ToggleButton.java index 90b774a0a..254cabf14 100644 --- a/src/main/java/appeng/client/gui/widgets/ToggleButton.java +++ b/src/main/java/appeng/client/gui/widgets/ToggleButton.java @@ -45,7 +45,7 @@ public class ToggleButton extends Button implements ITooltip { public ToggleButton(final int x, final int y, final int on, final int off, final String displayName, final String displayHint, IPressable onPress) { - super(x, y, 16, 16, new StringTextComponent(""), onPress); + super(x, y, 16, 16, StringTextComponent.EMPTY, onPress); this.iconIdxOn = on; this.iconIdxOff = off; this.displayName = displayName; @@ -102,7 +102,7 @@ public class ToggleButton extends Button implements ITooltip { return new StringTextComponent(name + '\n' + sb); } - return new StringTextComponent(""); + return StringTextComponent.EMPTY; } @Override diff --git a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java index 56033a335..05a4625a9 100644 --- a/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java +++ b/src/main/java/appeng/fluids/client/gui/widgets/FluidTankWidget.java @@ -43,7 +43,7 @@ public class FluidTankWidget extends Widget implements ITooltip { private final int slot; public FluidTankWidget(IAEFluidTank tank, int slot, int x, int y, int w, int h) { - super(x, y, w, h, new StringTextComponent("")); + super(x, y, w, h, StringTextComponent.EMPTY); this.tank = tank; this.slot = slot; } @@ -95,7 +95,7 @@ public class FluidTankWidget extends Widget implements ITooltip { return fluid.getFluid().getAttributes().getDisplayName(fluid.getFluidStack()).deepCopy() .appendString("\n" + (fluid.getStackSize() + "mB")); } - return new StringTextComponent(""); + return StringTextComponent.EMPTY; } @Override From 2fca330ff1a0aec9de9283a93017dda83633f48c Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 20:25:18 +0200 Subject: [PATCH 10/11] Use BlockPos.toMutable --- src/main/java/appeng/me/cluster/MBCalculator.java | 4 ++-- .../appeng/worldgen/meteorite/debug/MeteoriteSpawner.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/appeng/me/cluster/MBCalculator.java b/src/main/java/appeng/me/cluster/MBCalculator.java index bdc94526c..5b37233b4 100644 --- a/src/main/java/appeng/me/cluster/MBCalculator.java +++ b/src/main/java/appeng/me/cluster/MBCalculator.java @@ -95,8 +95,8 @@ public abstract class MBCalculator, TClust } try { - final BlockPos.Mutable min = new BlockPos.Mutable(loc.getX(), loc.getY(), loc.getZ()); - final BlockPos.Mutable max = new BlockPos.Mutable(loc.getX(), loc.getY(), loc.getZ()); + final BlockPos.Mutable min = loc.toMutable(); + final BlockPos.Mutable max = loc.toMutable(); // find size of MB structure... while (this.isValidTileAt(world, min.getX() - 1, min.getY(), min.getZ())) { diff --git a/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java b/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java index e9b7f73bb..da208d401 100644 --- a/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java +++ b/src/main/java/appeng/worldgen/meteorite/debug/MeteoriteSpawner.java @@ -39,7 +39,7 @@ public class MeteoriteSpawner { float coreRadius, CraterType craterType, boolean pureCrater, boolean worldGen) { int stepSize = Math.min(5, (int) Math.ceil(coreRadius) + 1); int minY = 10 + stepSize; - BlockPos.Mutable mutablePos = new BlockPos.Mutable(startPos.getX(), startPos.getY(), startPos.getZ()); + BlockPos.Mutable mutablePos = startPos.toMutable(); mutablePos.move(Direction.DOWN, stepSize); @@ -80,7 +80,7 @@ public class MeteoriteSpawner { } private static boolean isAirBelowSpawnPoint(IWorldReader w, BlockPos pos) { - BlockPos.Mutable testPos = new BlockPos.Mutable(pos.getX(), pos.getY(), pos.getZ()); + BlockPos.Mutable testPos = pos.toMutable(); for (int j = pos.getY() - 15; j < pos.getY() - 1; j++) { testPos.setY(j); if (w.isAirBlock(testPos)) { From a628a469ce0779f57132c6f4c78ed995ebf5e58b Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Tue, 28 Jul 2020 21:02:51 +0200 Subject: [PATCH 11/11] Fix refmap reference for non-dev deployment. --- build.gradle | 2 +- src/main/resources/appliedenergistics2.mixins.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index af88836f7..5abf5b3bd 100644 --- a/build.gradle +++ b/build.gradle @@ -148,7 +148,7 @@ minecraft { } mixin { - add sourceSets.main, "mixins.appliedenergistics2.refmap.json" + add sourceSets.main, "appliedenergistics2.mixins.refmap.json" } jar { diff --git a/src/main/resources/appliedenergistics2.mixins.json b/src/main/resources/appliedenergistics2.mixins.json index c4dd6f20d..c156dcc24 100644 --- a/src/main/resources/appliedenergistics2.mixins.json +++ b/src/main/resources/appliedenergistics2.mixins.json @@ -2,6 +2,7 @@ "required": true, "minVersion": "0.8", "package": "appeng.mixins", + "refmap": "appliedenergistics2.mixins.refmap.json", "compatibilityLevel": "JAVA_8", "mixins": [ "DimensionTypeMixin",