From ae7a24d2a3735561bf40af401e45b21074d05c60 Mon Sep 17 00:00:00 2001 From: grimmauld Date: Wed, 23 Sep 2020 21:42:31 +0200 Subject: [PATCH] Below 3 digit compile errors, finally --- .../jei/category/BlastingViaFanCategory.java | 2 +- .../category/BlockzapperUpgradeCategory.java | 12 +-- .../category/MechanicalCraftingCategory.java | 10 +-- .../category/ProcessingViaFanCategory.java | 4 +- .../jei/category/SmokingViaFanCategory.java | 2 +- .../jei/category/SplashingCategory.java | 2 +- .../animations/AnimatedBlazeBurner.java | 9 ++- .../category/animations/AnimatedCrafter.java | 4 +- .../animations/AnimatedCrushingWheels.java | 4 +- .../animations/AnimatedMillstone.java | 4 +- .../category/animations/AnimatedMixer.java | 10 +-- .../category/animations/AnimatedPress.java | 8 +- .../jei/category/animations/AnimatedSaw.java | 21 +++--- .../contraptions/TorquePropagator.java | 7 +- .../dispenser/ContraptionBlockSource.java | 6 +- .../IMovedDispenseItemBehaviour.java | 9 ++- .../components/deployer/DeployerHandler.java | 16 ++-- .../structureMovement/MovementContext.java | 6 +- .../goggles/GoggleConfigScreen.java | 2 +- .../goggles/GoggleOverlayRenderer.java | 6 +- .../sequencer/SequencedGearshiftScreen.java | 2 +- .../symmetry/SymmetryWandScreen.java | 17 ++--- .../tools/SandPaperItemRenderer.java | 9 ++- .../curiosities/zapper/ZapperScreen.java | 23 +++--- .../zapper/blockzapper/BlockzapperItem.java | 2 +- .../logistics/RedstoneLinkNetworkHandler.java | 7 +- .../inventories/AdjustableCrateScreen.java | 2 +- .../block/redstone/StockpileSwitchScreen.java | 12 +-- .../item/filter/AbstractFilterScreen.java | 2 +- .../content/schematics/SchematicWorld.java | 9 ++- .../block/SchematicTableScreen.java | 2 +- .../block/SchematicannonScreen.java | 2 +- .../block/SchematicannonTileEntity.java | 16 ++-- .../schematics/client/SchematicHandler.java | 10 +-- .../schematics/client/SchematicRenderer.java | 2 +- .../schematics/client/tools/Tools.java | 3 +- .../packet/SchematicPlacePacket.java | 2 +- .../advancement/KineticBlockTrigger.java | 6 +- .../foundation/advancement/SimpleTrigger.java | 3 +- .../simibubi/create/foundation/block/ITE.java | 4 +- .../foundation/data/BuilderTransformers.java | 6 +- .../foundation/data/SharedProperties.java | 2 +- .../gui/AbstractSimiContainerScreen.java | 12 +-- .../create/foundation/gui/GuiGameElement.java | 73 +++++++++++++------ .../foundation/gui/ToolSelectionScreen.java | 11 ++- .../create/foundation/item/WipScription.java | 3 +- .../foundation/utility/WorldHelper.java | 11 +++ .../worldWrappers/WrappedServerWorld.java | 12 +-- .../utility/worldWrappers/WrappedWorld.java | 11 +-- 49 files changed, 240 insertions(+), 180 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java diff --git a/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java index 8545f3d9e..0bb6af6fc 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/BlastingViaFanCategory.java @@ -27,7 +27,7 @@ public class BlastingViaFanCategory extends ProcessingViaFanCategory> extends Cre GuiGameElement.of(AllBlockPartials.ENCASED_FAN_INNER) .rotateBlock(180, 0, AnimatedKinetics.getCurrentAngle() * 16) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.ENCASED_FAN.getDefaultState()) .rotateBlock(0, 180, 0) .atLocal(0, 0, 0) .scale(scale) - .render(); + .render(matrixStack); renderAttachedBlock(matrixStack); matrixStack.pop(); diff --git a/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java b/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java index 4835bb79c..a14135c59 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/SmokingViaFanCategory.java @@ -25,7 +25,7 @@ public class SmokingViaFanCategory extends ProcessingViaFanCategory GuiGameElement.of(Fluids.WATER) .scale(24) .atLocal(0, 0, 2) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java index 90fb942b9..7d17fb862 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedBlazeBurner.java @@ -8,6 +8,7 @@ import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlo import com.simibubi.create.foundation.gui.GuiGameElement; import mezz.jei.api.gui.drawable.IDrawable; +import net.minecraft.util.math.vector.Quaternion; public class AnimatedBlazeBurner implements IDrawable { @@ -21,21 +22,21 @@ public class AnimatedBlazeBurner implements IDrawable { public void draw(MatrixStack matrixStack, int xOffset, int yOffset) { matrixStack.push(); matrixStack.translate(xOffset, yOffset, 200); - RenderSystem.rotatef(-15.5f, 1, 0, 0); - RenderSystem.rotatef(22.5f, 0, 1, 0); + matrixStack.multiply(new Quaternion(-15.5f, 1, 0, 0)); + matrixStack.multiply(new Quaternion(22.5f, 0, 1, 0)); int scale = 23; GuiGameElement.of(AllBlocks.BLAZE_BURNER.getDefaultState()) .atLocal(0, 1.65, 0) .scale(scale) - .render(); + .render(matrixStack); AllBlockPartials blaze = AllBlockPartials.BLAZES.get(heatLevel); GuiGameElement.of(blaze) .atLocal(1, 1.65, 1) .rotate(0, 180, 0) .scale(scale) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java index 9cd1ab3fd..08ec5cff8 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrafter.java @@ -22,12 +22,12 @@ public class AnimatedCrafter extends AnimatedKinetics { GuiGameElement.of(cogwheel()) .rotateBlock(90, 0, getCurrentAngle()) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.MECHANICAL_CRAFTER.getDefaultState()) .rotateBlock(0, 180, 0) .scale(scale) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java index 0077655c7..8253141fe 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedCrushingWheels.java @@ -28,13 +28,13 @@ public class AnimatedCrushingWheels extends AnimatedKinetics { GuiGameElement.of(wheel) .rotateBlock(0, 90, -getCurrentAngle()) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(wheel) .rotateBlock(0, 90, getCurrentAngle()) .atLocal(2, 0, 0) .scale(scale) - .render(); + .render(matrixStack); } } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMillstone.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMillstone.java index da99938ff..b53aff4d7 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMillstone.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMillstone.java @@ -20,12 +20,12 @@ public class AnimatedMillstone extends AnimatedKinetics { GuiGameElement.of(AllBlockPartials.MILLSTONE_COG) .rotateBlock(22.5, getCurrentAngle() * 2, 0) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.MILLSTONE.getDefaultState()) .rotateBlock(22.5, 22.5, 0) .scale(scale) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java index 7d7c18d1b..bf7156d87 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedMixer.java @@ -24,30 +24,30 @@ public class AnimatedMixer extends AnimatedKinetics { .rotateBlock(0, getCurrentAngle() * 2, 0) .atLocal(0, 0, 0) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.MECHANICAL_MIXER.getDefaultState()) .atLocal(0, 0, 0) .scale(scale) - .render(); + .render(matrixStack); float animation = ((MathHelper.sin(AnimationTickHolder.getRenderTick() / 32f) + 1) / 5) + .5f; GuiGameElement.of(AllBlockPartials.MECHANICAL_MIXER_POLE) .atLocal(0, animation, 0) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlockPartials.MECHANICAL_MIXER_HEAD) .rotateBlock(0, getCurrentAngle() * 4, 0) .atLocal(0, animation, 0) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.BASIN.getDefaultState()) .atLocal(0, 1.65, 0) .scale(scale) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java index 46ab6f553..122c28dfe 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedPress.java @@ -31,22 +31,22 @@ public class AnimatedPress extends AnimatedKinetics { GuiGameElement.of(shaft(Axis.Z)) .rotateBlock(0, 0, getCurrentAngle()) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.MECHANICAL_PRESS.getDefaultState()) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlockPartials.MECHANICAL_PRESS_HEAD) .atLocal(0, -getAnimatedHeadOffset(), 0) .scale(scale) - .render(); + .render(matrixStack); if (basin) GuiGameElement.of(AllBlocks.BASIN.getDefaultState()) .atLocal(0, 1.65, 0) .scale(scale) - .render(); + .render(matrixStack); matrixStack.pop(); } diff --git a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java index 14d38761c..4df2b5a7a 100644 --- a/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java +++ b/src/main/java/com/simibubi/create/compat/jei/category/animations/AnimatedSaw.java @@ -9,34 +9,35 @@ import com.simibubi.create.foundation.gui.GuiGameElement; import net.minecraft.util.Direction; import net.minecraft.util.Direction.Axis; +import net.minecraft.util.math.vector.Quaternion; public class AnimatedSaw extends AnimatedKinetics { @Override public void draw(MatrixStack matrixStack, int xOffset, int yOffset) { - RenderSystem.pushMatrix(); - RenderSystem.translatef(xOffset, yOffset, 0); + matrixStack.push(); + matrixStack.translate(xOffset, yOffset, 0); AllGuiTextures.JEI_SHADOW.draw(matrixStack, -16, 13); - - RenderSystem.translatef(0, 0, 200); - RenderSystem.translatef(-6, 19, 0); - RenderSystem.rotatef(-22.5f, 1, 0, 0); - RenderSystem.rotatef(90 - 22.5f, 0, 1, 0); + + matrixStack.translate(0, 0, 200); + matrixStack.translate(-6, 19, 0); + matrixStack.multiply(new Quaternion( -22.5f, 1, 0, 0)); + matrixStack.multiply(new Quaternion(90 - 22.5f, 0, 1, 0)); int scale = 25; GuiGameElement.of(shaft(Axis.X)) .rotateBlock(-getCurrentAngle(), 0, 0) .scale(scale) - .render(); + .render(matrixStack); GuiGameElement.of(AllBlocks.MECHANICAL_SAW.getDefaultState() .with(SawBlock.FACING, Direction.UP) .with(SawBlock.RUNNING, true)) .rotateBlock(0, 0, 0) .scale(scale) - .render(); + .render(matrixStack); - RenderSystem.popMatrix(); + matrixStack.pop(); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java b/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java index 35a25f007..47cb219a4 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java +++ b/src/main/java/com/simibubi/create/content/contraptions/TorquePropagator.java @@ -6,6 +6,9 @@ import java.util.Map; import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.foundation.utility.WorldHelper; +import net.minecraft.util.registry.DynamicRegistries; +import net.minecraft.util.registry.Registry; import net.minecraft.world.IWorld; public class TorquePropagator { @@ -14,12 +17,12 @@ public class TorquePropagator { public void onLoadWorld(IWorld world) { networks.put(world, new HashMap<>()); - Create.logger.debug("Prepared Kinetic Network Space for " + world.getDimension().getType().getRegistryName()); + Create.logger.debug("Prepared Kinetic Network Space for " + WorldHelper.getDimensionID(world)); } public void onUnloadWorld(IWorld world) { networks.remove(world); - Create.logger.debug("Removed Kinetic Network Space for " + world.getDimension().getType().getRegistryName()); + Create.logger.debug("Removed Kinetic Network Space for " + WorldHelper.getDimensionID(world)); } public KineticNetwork getOrCreateNetworkFor(KineticTileEntity te) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/ContraptionBlockSource.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/ContraptionBlockSource.java index fb5501ad6..467a18f2c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/ContraptionBlockSource.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/ContraptionBlockSource.java @@ -5,10 +5,12 @@ import com.simibubi.create.foundation.utility.BlockHelper; import mcp.MethodsReturnNonnullByDefault; import net.minecraft.block.BlockState; import net.minecraft.dispenser.IBlockSource; +import net.minecraft.server.MinecraftServer; import net.minecraft.state.properties.BlockStateProperties; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.minecraft.world.server.ServerWorld; import javax.annotation.Nullable; @@ -63,7 +65,9 @@ public class ContraptionBlockSource implements IBlockSource { } @Override + @Nullable public ServerWorld getWorld() { - return context.world; + MinecraftServer server = context.world.getServer(); + return server != null ? server.getWorld(context.world.getRegistryKey()) : null; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/IMovedDispenseItemBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/IMovedDispenseItemBehaviour.java index 31b7611b0..3f2ca2366 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/IMovedDispenseItemBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/dispenser/IMovedDispenseItemBehaviour.java @@ -27,6 +27,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.IWorld; import net.minecraft.world.World; +import net.minecraft.world.server.ServerWorld; import java.util.Random; @@ -148,9 +149,11 @@ public interface IMovedDispenseItemBehaviour { if (!(itemStack.getItem() instanceof SpawnEggItem)) return super.dispenseStack(itemStack, context, pos, facing); EntityType entityType = ((SpawnEggItem) itemStack.getItem()).getType(itemStack.getTag()); - Entity spawnedEntity = entityType.spawn(context.world, itemStack, null, pos.add(facing.x + .7, facing.y + .7, facing.z + .7), SpawnReason.DISPENSER, facing.y < .5, false); - if (spawnedEntity != null) - spawnedEntity.setMotion(context.motion.scale(2)); + if (context.world instanceof ServerWorld) { + Entity spawnedEntity = entityType.spawn((ServerWorld) context.world, itemStack, null, pos.add(facing.x + .7, facing.y + .7, facing.z + .7), SpawnReason.DISPENSER, facing.y < .5, false); + if (spawnedEntity != null) + spawnedEntity.setMotion(context.motion.scale(2)); + } itemStack.shrink(1); return itemStack; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java index df7a000ac..77b8a47ee 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java @@ -7,10 +7,10 @@ import java.util.ArrayList; import java.util.List; import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.block.BeehiveBlock; -import net.minecraft.block.Block; +import net.minecraft.block.*; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.enchantment.Enchantments; +import net.minecraft.entity.ai.attributes.Attribute; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.server.management.PlayerInteractionManager; import net.minecraft.stats.Stats; @@ -23,8 +23,6 @@ import com.simibubi.create.content.contraptions.components.deployer.DeployerTile import com.simibubi.create.content.curiosities.tools.SandPaperItem; import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; -import net.minecraft.block.BlockState; -import net.minecraft.block.Blocks; import net.minecraft.block.material.Material; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -110,13 +108,13 @@ public class DeployerHandler { } static void activate(DeployerFakePlayer player, Vector3d vec, BlockPos clickedPos, Vector3d extensionVector, Mode mode) { - Multimap attributeModifiers = player.getHeldItemMainhand() + Multimap attributeModifiers = player.getHeldItemMainhand() .getAttributeModifiers(EquipmentSlotType.MAINHAND); player.getAttributes() - .applyAttributeModifiers(attributeModifiers); + .addTemporaryModifiers(attributeModifiers); activateInner(player, vec, clickedPos, extensionVector, mode); player.getAttributes() - .removeAttributeModifiers(attributeModifiers); + .addTemporaryModifiers(attributeModifiers); } private static void activateInner(DeployerFakePlayer player, Vector3d vec, BlockPos clickedPos, Vector3d extensionVector, @@ -147,7 +145,7 @@ public class DeployerHandler { return; } if (cancelResult == null) { - if (entity.processInitialInteract(player, hand)) + if (entity.processInitialInteract(player, hand).isAccepted()) success = true; else if (entity instanceof LivingEntity && stack.interactWithEntity(player, (LivingEntity) entity, hand)) @@ -268,7 +266,7 @@ public class DeployerHandler { if (item == Items.FLINT_AND_STEEL) { Direction newFace = result.getFace(); BlockPos newPos = result.getPos(); - if (!FlintAndSteelItem.canSetFire(clickedState, world, clickedPos)) + if (!AbstractFireBlock.method_30032(world, clickedPos, newFace)) newFace = Direction.UP; if (clickedState.getMaterial() == Material.AIR) newPos = newPos.offset(face.getOpposite()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java index 710497ffd..fd60631e6 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/MovementContext.java @@ -17,7 +17,7 @@ public class MovementContext { public Vector3d motion; public Vector3d relativeMotion; public Vector3d rotation; - public ServerWorld world; + public World world; public BlockState state; public BlockPos localPos; public CompoundNBT tileData; @@ -28,7 +28,7 @@ public class MovementContext { public Contraption contraption; public Object temporaryData; - public MovementContext(ServerWorld world, BlockInfo info) { + public MovementContext(World world, BlockInfo info) { this.world = world; this.state = info.state; this.tileData = info.nbt; @@ -53,7 +53,7 @@ public class MovementContext { return (((int) (length * modifier + 100 * Math.signum(length))) / 100) * 100; } - public static MovementContext readNBT(ServerWorld world, BlockInfo info, CompoundNBT nbt) { + public static MovementContext readNBT(World world, BlockInfo info, CompoundNBT nbt) { MovementContext context = new MovementContext(world, info); context.motion = VecHelper.readNBT(nbt.getList("Motion", NBT.TAG_DOUBLE)); context.relativeMotion = VecHelper.readNBT(nbt.getList("RelativeMotion", NBT.TAG_DOUBLE)); diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java index 14b4dbed9..ac10a550d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleConfigScreen.java @@ -81,7 +81,7 @@ public class GoggleConfigScreen extends AbstractSimiScreen { ItemStack item = AllItems.GOGGLES.asStack(); //GuiGameElement.of(item).at(tooltipScreen.width / 2 + 10, tooltipScreen.height / 2 - 16).render(); - GuiGameElement.of(item).at(posX + 10, posY - 16).render(); + GuiGameElement.of(item).at(posX + 10, posY - 16).render(ms); ms.pop(); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java index 449255aed..098eb7745 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/goggles/GoggleOverlayRenderer.java @@ -75,7 +75,7 @@ public class GoggleOverlayRenderer { if (tooltip.isEmpty()) return; - RenderSystem.pushMatrix(); + ms.push(); Screen tooltipScreen = new TooltipScreen(null); tooltipScreen.init(mc, mc.getWindow().getScaledWidth(), mc.getWindow().getScaledHeight()); int posX = tooltipScreen.width / 2 + AllConfigs.CLIENT.overlayOffsetX.get(); @@ -85,8 +85,8 @@ public class GoggleOverlayRenderer { ItemStack item = AllItems.GOGGLES.asStack(); //GuiGameElement.of(item).at(tooltipScreen.width / 2 + 10, tooltipScreen.height / 2 - 16).render(); - GuiGameElement.of(item).at(posX + 10, posY - 16).render(); - RenderSystem.popMatrix(); + GuiGameElement.of(item).at(posX + 10, posY - 16).render(ms); + ms.pop(); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java index 9b3048dae..1bbef6837 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/advanced/sequencer/SequencedGearshiftScreen.java @@ -147,7 +147,7 @@ public class SequencedGearshiftScreen extends AbstractSimiScreen { GuiGameElement.of(renderedItem) .at(guiLeft + background.width + 20, guiTop + 50) .scale(5) - .render(); + .render(matrixStack); } private void label(MatrixStack matrixStack, int x, int y, ITextComponent text) { diff --git a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java index e18ddc169..e71370e9d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/symmetry/SymmetryWandScreen.java @@ -114,29 +114,26 @@ public class SymmetryWandScreen extends AbstractSimiScreen { textRenderer.draw(matrixStack, mirrorType, x - 5, y, AllGuiTextures.FONT_COLOR); textRenderer.draw(matrixStack, orientation, x - 5, y + 20, AllGuiTextures.FONT_COLOR); - renderBlock(); + renderBlock(matrixStack); GuiGameElement.of(wand) .at(guiLeft + 200, guiTop + 170) .scale(4) .rotate(-70, 20, 20) - .render(); + .render(matrixStack); } - protected void renderBlock() { - RenderSystem.pushMatrix(); - - MatrixStack ms = new MatrixStack(); + protected void renderBlock(MatrixStack ms) { + ms.push(); ms.translate(guiLeft + 18, guiTop + 11, 20); ms.multiply(new Vector3f(.3f, 1f, 0f).getDegreesQuaternion(-22.5f)); ms.scale(32, -32, 32); currentElement.applyModelTransform(ms); - RenderSystem.multMatrix(ms.peek() - .getModel()); + // RenderSystem.multMatrix(ms.peek().getModel()); GuiGameElement.of(currentElement.getModel()) - .render(); + .render(ms); - RenderSystem.popMatrix(); + ms.pop(); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java index ed3c9865b..e05110ba9 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/SandPaperItemRenderer.java @@ -10,6 +10,7 @@ import net.minecraft.client.entity.player.ClientPlayerEntity; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.model.ItemCameraTransforms; +import net.minecraft.util.math.vector.Quaternion; import net.minecraft.util.math.vector.Vector3f; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; @@ -70,10 +71,10 @@ public class SandPaperItemRenderer extends ItemStackTileEntityRenderer { int itemInUseCount = player.getItemInUseCount(); if (itemInUseCount > 0) { int modifier = leftHand ? -1 : 1; - RenderSystem.translatef(modifier * .5f, 0, -.25f); - RenderSystem.rotatef(modifier * 40, 0, 0, 1); - RenderSystem.rotatef(modifier * 10, 1, 0, 0); - RenderSystem.rotatef(modifier * 90, 0, 1, 0); + ms.translate(modifier * .5f, 0, -.25f); + ms.multiply(new Quaternion(modifier * 40, 0, 0, 1)); + ms.multiply(new Quaternion(modifier * 10, 1, 0, 0)); + ms.multiply(new Quaternion(modifier * 90, 0, 1, 0)); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java index 8a32ebe26..384545469 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/ZapperScreen.java @@ -20,6 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.NBTUtil; import net.minecraft.util.Hand; +import net.minecraft.util.math.vector.Quaternion; import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.StringTextComponent; @@ -89,8 +90,8 @@ public class ZapperScreen extends AbstractSimiScreen { .bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); RenderSystem.enableBlend(); - renderBlock(); - renderZapper(); + renderBlock(matrixStack); + renderZapper(matrixStack); } protected void drawOnBackground(MatrixStack matrixStack, int i, int j) { @@ -129,18 +130,18 @@ public class ZapperScreen extends AbstractSimiScreen { return super.mouseClicked(x, y, button); } - protected void renderZapper() { + protected void renderZapper(MatrixStack matrixStack) { GuiGameElement.of(zapper) .at((this.width - this.sWidth) / 2 + 210, this.height / 2 - this.sHeight / 4) .scale(4) - .render(); + .render(matrixStack); } - protected void renderBlock() { - RenderSystem.pushMatrix(); - RenderSystem.translated(guiLeft + 1.7f, guiTop + 48, 120); - RenderSystem.rotatef(-30f, .5f, .9f, -.1f); - RenderSystem.scaled(20, 20, 20); + protected void renderBlock(MatrixStack matrixStack) { + matrixStack.push(); + matrixStack.translate(guiLeft + 1.7f, guiTop + 48, 120); + matrixStack.multiply(new Quaternion( -30f, .5f, .9f, -.1f)); + matrixStack.scale(20, 20, 20); BlockState state = Blocks.AIR.getDefaultState(); if (zapper.hasTag() && zapper.getTag() @@ -149,8 +150,8 @@ public class ZapperScreen extends AbstractSimiScreen { .getCompound("BlockUsed")); GuiGameElement.of(state) - .render(); - RenderSystem.popMatrix(); + .render(matrixStack); + matrixStack.pop(); } protected void writeAdditionalOptions(CompoundNBT nbt) {} diff --git a/src/main/java/com/simibubi/create/content/curiosities/zapper/blockzapper/BlockzapperItem.java b/src/main/java/com/simibubi/create/content/curiosities/zapper/blockzapper/BlockzapperItem.java index 73bdec220..903a8d572 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/zapper/blockzapper/BlockzapperItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/zapper/blockzapper/BlockzapperItem.java @@ -121,7 +121,7 @@ public class BlockzapperItem extends ZapperItem { selectedState = selectedState.updatePostPlacement(updateDirection, world.getBlockState(placed.offset(updateDirection)), world, placed, placed.offset(updateDirection)); - BlockSnapshot blocksnapshot = BlockSnapshot.getBlockSnapshot(world, placed); + BlockSnapshot blocksnapshot = BlockSnapshot.create(world.getRegistryKey(), world, placed); FluidState FluidState = world.getFluidState(placed); world.setBlockState(placed, FluidState.getBlockState(), 18); world.setBlockState(placed, selectedState); diff --git a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java index 304ac2f7c..12f57a01f 100644 --- a/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java +++ b/src/main/java/com/simibubi/create/content/logistics/RedstoneLinkNetworkHandler.java @@ -6,6 +6,7 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; +import com.simibubi.create.foundation.utility.WorldHelper; import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.Create; @@ -53,12 +54,12 @@ public class RedstoneLinkNetworkHandler { public void onLoadWorld(IWorld world) { connections.put(world, new HashMap<>()); - Create.logger.debug("Prepared Redstone Network Space for " + world.getDimension().getType().getRegistryName()); + Create.logger.debug("Prepared Redstone Network Space for " + WorldHelper.getDimensionID(world)); } public void onUnloadWorld(IWorld world) { connections.remove(world); - Create.logger.debug("Removed Redstone Network Space for " + world.getDimension().getType().getRegistryName()); + Create.logger.debug("Removed Redstone Network Space for " + WorldHelper.getDimensionID(world)); } public Set getNetworkOf(LinkBehaviour actor) { @@ -130,7 +131,7 @@ public class RedstoneLinkNetworkHandler { public Map, Set> networksIn(IWorld world) { if (!connections.containsKey(world)) { Create.logger.warn( - "Tried to Access unprepared network space of " + world.getDimension().getType().getRegistryName()); + "Tried to Access unprepared network space of " + WorldHelper.getDimensionID(world)); return new HashMap<>(); } return connections.get(world); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateScreen.java b/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateScreen.java index 5afcc4312..b4ca788ef 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateScreen.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/inventories/AdjustableCrateScreen.java @@ -99,7 +99,7 @@ public class AdjustableCrateScreen extends AbstractSimiContainerScreen ex GuiGameElement.of(container.filterItem) .at(guiLeft + background.width, guiTop +background.height -60) .scale(5) - .render(); + .render(ms); } diff --git a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java index 57135191d..0d82e4108 100644 --- a/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java +++ b/src/main/java/com/simibubi/create/content/schematics/SchematicWorld.java @@ -28,6 +28,7 @@ import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MutableBoundingBox; import net.minecraft.world.*; import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.BiomeRegistry; import net.minecraft.world.biome.Biomes; import net.minecraft.world.server.ServerTickList; import net.minecraft.world.server.ServerWorld; @@ -41,11 +42,11 @@ public class SchematicWorld extends WrappedServerWorld { public BlockPos anchor; public boolean renderMode; - public SchematicWorld(ServerWorld original) { + public SchematicWorld(World original) { this(BlockPos.ZERO, original); } - public SchematicWorld(BlockPos anchor, ServerWorld original) { + public SchematicWorld(BlockPos anchor, World original) { super(original); this.blocks = new HashMap<>(); this.tileEntities = new HashMap<>(); @@ -121,7 +122,7 @@ public class SchematicWorld extends WrappedServerWorld { @Override public Biome getBiome(BlockPos pos) { - return Biomes.THE_VOID; + return BiomeRegistry.THE_VOID; } @Override @@ -174,7 +175,7 @@ public class SchematicWorld extends WrappedServerWorld { } @Override - public ServerTickList getPendingBlockTicks() { + public ITickList getPendingBlockTicks() { return EmptyTickList.get(); } diff --git a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java index 941756030..e4cc8f3f6 100644 --- a/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java +++ b/src/main/java/com/simibubi/create/content/schematics/block/SchematicTableScreen.java @@ -111,7 +111,7 @@ public class SchematicTableScreen extends AbstractSimiContainerScreen entities = blockReader.getEntities(); + List entities = blockReader.getEntities().collect(Collectors.toList()); if (printingEntityIndex != -1) { printingEntityIndex++; @@ -885,14 +886,15 @@ public class SchematicannonTileEntity extends SmartTileEntity implements INamedC checklist.require(requirement); blocksToPlace++; } - for (Entity entity : blockReader.getEntities()) { + blockReader.getEntities().forEach(entity -> { ItemRequirement requirement = ItemRequirement.of(entity); if (requirement.isEmpty()) - continue; + return; if (requirement.isInvalid()) - continue; + return; checklist.require(requirement); - } + }); + } checklist.gathered.clear(); for (IItemHandler inventory : attachedInventories) { diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java index bb71bfc70..8ac7db3ea 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicHandler.java @@ -127,11 +127,11 @@ public class SchematicHandler { SchematicWorld wMirroredLR = new SchematicWorld(clientWorld); PlacementSettings placementSettings = new PlacementSettings(); - schematic.place(w, BlockPos.ZERO, placementSettings); + schematic.place(w, BlockPos.ZERO, placementSettings, w.getRandom()); placementSettings.setMirror(Mirror.FRONT_BACK); - schematic.place(wMirroredFB, BlockPos.ZERO.east(size.getX() - 1), placementSettings); + schematic.place(wMirroredFB, BlockPos.ZERO.east(size.getX() - 1), placementSettings, wMirroredFB.getRandom()); placementSettings.setMirror(Mirror.LEFT_RIGHT); - schematic.place(wMirroredLR, BlockPos.ZERO.south(size.getZ() - 1), placementSettings); + schematic.place(wMirroredLR, BlockPos.ZERO.south(size.getZ() - 1), placementSettings, wMirroredFB.getRandom()); renderers.get(0) .display(w); @@ -186,11 +186,11 @@ public class SchematicHandler { if (!active) return; if (activeSchematicItem != null) - this.overlay.renderOn(activeHotbarSlot); + this.overlay.renderOn(ms, activeHotbarSlot); currentTool.getTool() .renderOverlay(ms, buffer); - selectionScreen.renderPassive(Minecraft.getInstance() + selectionScreen.renderPassive(ms, Minecraft.getInstance() .getRenderPartialTicks()); } diff --git a/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java b/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java index 805c48cb9..e0e326c2e 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/SchematicRenderer.java @@ -92,7 +92,7 @@ public class SchematicRenderer { Map buffers = new HashMap<>(); MatrixStack ms = new MatrixStack(); - BlockPos.func_229383_a_(blockAccess.getBounds()) + BlockPos.stream(blockAccess.getBounds()) .forEach(localPos -> { ms.push(); MatrixStacker.of(ms) diff --git a/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java b/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java index ebeb232eb..26f9ea1eb 100644 --- a/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java +++ b/src/main/java/com/simibubi/create/content/schematics/client/tools/Tools.java @@ -6,6 +6,7 @@ import java.util.List; import com.simibubi.create.foundation.gui.AllIcons; import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.TranslationTextComponent; public enum Tools { @@ -45,7 +46,7 @@ public enum Tools { return tools; } - public List getDescription() { + public List getDescription() { return Lang.translatedOptions("schematic.tool." + Lang.asId(name()) + ".description", "0", "1", "2", "3"); } diff --git a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java index 2a5153d4d..8fba4f8cc 100644 --- a/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java +++ b/src/main/java/com/simibubi/create/content/schematics/packet/SchematicPlacePacket.java @@ -38,7 +38,7 @@ public class SchematicPlacePacket extends SimplePacketBase { PlacementSettings settings = SchematicItem.getSettings(stack); settings.setIgnoreEntities(false); t.place(player.getServerWorld(), NBTUtil.readBlockPos(stack.getTag().getCompound("Anchor")), - settings); + settings, player.getRNG()); }); context.get().setPacketHandled(true); } diff --git a/src/main/java/com/simibubi/create/foundation/advancement/KineticBlockTrigger.java b/src/main/java/com/simibubi/create/foundation/advancement/KineticBlockTrigger.java index 51d634b3b..f5a741f11 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/KineticBlockTrigger.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/KineticBlockTrigger.java @@ -13,6 +13,7 @@ import com.simibubi.create.Create; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.player.ServerPlayerEntity; +import net.minecraft.loot.ConditionArrayParser; import net.minecraft.util.JSONUtils; import net.minecraft.util.ResourceLocation; import net.minecraft.util.registry.Registry; @@ -31,7 +32,7 @@ public class KineticBlockTrigger extends CriterionTriggerBase implements ITriggerable { @@ -16,7 +17,7 @@ public class SimpleTrigger extends CriterionTriggerBase } @Override - public Instance deserializeInstance(JsonObject json, JsonDeserializationContext context) { + public Instance conditionsFromJson(JsonObject json, ConditionArrayParser context) { return new Instance(getId()); } diff --git a/src/main/java/com/simibubi/create/foundation/block/ITE.java b/src/main/java/com/simibubi/create/foundation/block/ITE.java index 5c70ad04b..b0db0ef93 100644 --- a/src/main/java/com/simibubi/create/foundation/block/ITE.java +++ b/src/main/java/com/simibubi/create/foundation/block/ITE.java @@ -5,6 +5,7 @@ import java.util.function.Consumer; import com.simibubi.create.Create; import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.utility.WorldHelper; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.BlockPos; @@ -60,8 +61,7 @@ public interface ITE { String notAvailable = "Dim N/A"; if (world == null) return notAvailable; - DimensionType type = world.getDimension(); - ResourceLocation registryName = type.getRegistryName(); + ResourceLocation registryName = WorldHelper.getDimensionID(world); if (registryName == null) return notAvailable; return registryName.toString(); diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index e437fba6b..e1ac44d71 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -58,7 +58,7 @@ public class BuilderTransformers { return b.blockstate((c, p) -> { Function model = s -> { String powered = - s.has(BlockStateProperties.POWERED) && s.get(BlockStateProperties.POWERED) ? "_powered" : ""; + s.method_28500(BlockStateProperties.POWERED).orElse(false) ? "_powered" : ""; return p.models() .withExistingParent("block/" + type + "_funnel" + powered, p.modLoc("block/funnel/block")) .texture("0", p.modLoc("block/" + type + "_funnel_plating")) @@ -90,7 +90,7 @@ public class BuilderTransformers { Shape shape = state.get(BeltTunnelBlock.SHAPE); if (shape == BeltTunnelBlock.Shape.CLOSED) shape = BeltTunnelBlock.Shape.STRAIGHT; - String shapeName = shape.getName(); + String shapeName = shape.getString(); return ConfiguredModel.builder() .modelFile(p.models() .withExistingParent(id + "/" + shapeName, p.modLoc("block/belt_tunnel/" + shapeName)) @@ -119,7 +119,7 @@ public class BuilderTransformers { .addLayer(() -> RenderType::getCutoutMipped) .transform(StressConfigDefaults.setImpact(4.0)) .item() - .transform(ModelGen.customItemModel("mechanical_piston", type.getName(), "item")); + .transform(ModelGen.customItemModel("mechanical_piston", type.getString(), "item")); } public static NonNullUnaryOperator> bearing(String prefix, diff --git a/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java b/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java index f5f82a7f6..246dc6abe 100644 --- a/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java +++ b/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java @@ -11,7 +11,7 @@ import net.minecraft.block.material.PushReaction; @MethodsReturnNonnullByDefault public class SharedProperties { public static Material beltMaterial = - new Material(MaterialColor.GRAY, false, true, true, true, true, false, false, PushReaction.NORMAL); + new Material(MaterialColor.GRAY, false, true, true, true, false, false, PushReaction.NORMAL); public static Block stone() { return Blocks.ANDESITE; diff --git a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java index de7c439a7..8f430f2f7 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AbstractSimiContainerScreen.java @@ -132,7 +132,7 @@ public abstract class AbstractSimiContainerScreen extends C } protected void renderWindowForeground(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { - renderHoveredToolTip(matrixStack, mouseX, mouseY); + drawMouseoverTooltip(matrixStack, mouseX, mouseY); for (Widget widget : widgets) { if (!widget.isHovered()) continue; @@ -172,18 +172,18 @@ public abstract class AbstractSimiContainerScreen extends C RenderSystem.disableLighting(); RenderSystem.disableDepthTest(); RenderSystem.disableBlend(); - RenderSystem.pushMatrix(); + matrixStack.push(); int guiScaleFactor = (int) client.getWindow().getGuiScaleFactor(); - RenderSystem.translated((float) (xPosition + 16.5f), (float) (yPosition + 16.5f), 0); + matrixStack.translate(xPosition + 16.5f, yPosition + 16.5f, 0); double scale = getItemCountTextScale(); - RenderSystem.scaled(scale, scale, 0); - RenderSystem.translated(-fr.getStringWidth(s) - (guiScaleFactor > 1 ? 0 : -.5f), + matrixStack.scale((float) scale, (float) scale, 0); + matrixStack.translate(-fr.getStringWidth(s) - (guiScaleFactor > 1 ? 0 : -.5f), -textRenderer.FONT_HEIGHT + (guiScaleFactor > 1 ? 1 : 1.75f), 0); fr.drawWithShadow(matrixStack, s, 0, 0, textColor); - RenderSystem.popMatrix(); + matrixStack.pop(); RenderSystem.enableBlend(); RenderSystem.enableLighting(); RenderSystem.enableDepthTest(); diff --git a/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java b/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java index c690e6bfa..546dd82a3 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java +++ b/src/main/java/com/simibubi/create/foundation/gui/GuiGameElement.java @@ -30,6 +30,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.Direction.AxisDirection; import net.minecraft.util.IItemProvider; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.vector.Quaternion; import net.minecraft.util.math.vector.Vector3d; import net.minecraft.world.LightType; import net.minecraft.world.World; @@ -107,7 +108,7 @@ public class GuiGameElement { return this; } - public abstract void render(); + public abstract void render(MatrixStack matrixStack); protected void prepare() { RenderSystem.pushMatrix(); @@ -120,6 +121,17 @@ public class GuiGameElement { RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); } + protected void prepareMatrix(MatrixStack matrixStack) { + matrixStack.push(); + RenderSystem.enableBlend(); + RenderSystem.enableRescaleNormal(); + RenderSystem.enableAlphaTest(); + RenderHelper.enableGuiDepthLighting(); + RenderSystem.alphaFunc(516, 0.1F); + RenderSystem.blendFunc(SourceFactor.SRC_ALPHA, DestFactor.ONE_MINUS_SRC_ALPHA); + RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); + } + protected void transform() { RenderSystem.translated(xBeforeScale, yBeforeScale, 0); RenderSystem.scaled(scale, scale, scale); @@ -132,11 +144,29 @@ public class GuiGameElement { RenderSystem.translated(-rotationOffset.x, -rotationOffset.y, -rotationOffset.z); } + protected void transformMatrix(MatrixStack matrixStack) { + matrixStack.translate(xBeforeScale, yBeforeScale, 0); + matrixStack.scale((float) scale, (float) scale, (float) scale); + matrixStack.translate(x, y, z); + matrixStack.scale(1, -1, 1); + matrixStack.translate(rotationOffset.x, rotationOffset.y, rotationOffset.z); + matrixStack.multiply(new Quaternion((float) zRot, 0, 0, 1)); + matrixStack.multiply(new Quaternion((float) xRot, 1, 0, 0)); + matrixStack.multiply(new Quaternion((float) yRot, 0, 1, 0)); + matrixStack.translate(-rotationOffset.x, -rotationOffset.y, -rotationOffset.z); + } + protected void cleanUp() { RenderSystem.popMatrix(); RenderSystem.disableAlphaTest(); RenderSystem.disableRescaleNormal(); } + + protected void cleanUpMatrix(MatrixStack matrixStack) { + matrixStack.pop(); + RenderSystem.disableAlphaTest(); + RenderSystem.disableRescaleNormal(); + } } private static class GuiBlockModelRenderBuilder extends GuiRenderBuilder { @@ -150,25 +180,24 @@ public class GuiGameElement { } @Override - public void render() { - prepare(); + public void render(MatrixStack matrixStack) { + prepareMatrix(matrixStack); Minecraft mc = Minecraft.getInstance(); BlockRendererDispatcher blockRenderer = mc.getBlockRendererDispatcher(); IRenderTypeBuffer.Impl buffer = mc.getBufferBuilders() .getEntityVertexConsumers(); RenderType renderType = blockState.getBlock() == Blocks.AIR ? Atlases.getEntityTranslucent() - : RenderTypeLookup.getEntityBlockLayer(blockState); + : RenderTypeLookup.getEntityBlockLayer(blockState, true); IVertexBuilder vb = buffer.getBuffer(renderType); - MatrixStack ms = new MatrixStack(); - transform(); + transformMatrix(matrixStack); mc.getTextureManager() .bindTexture(PlayerContainer.BLOCK_ATLAS_TEXTURE); - renderModel(blockRenderer, buffer, renderType, vb, ms); + renderModel(blockRenderer, buffer, renderType, vb, matrixStack); - cleanUp(); + cleanUpMatrix(matrixStack); } protected void renderModel(BlockRendererDispatcher blockRenderer, IRenderTypeBuffer.Impl buffer, @@ -211,7 +240,7 @@ public class GuiGameElement { if (!RenderTypeLookup.canRenderInLayer(blockState.getFluidState(), type)) continue; - RenderSystem.pushMatrix(); + ms.push(); RenderHelper.disableStandardItemLighting(); ClientWorld world = Minecraft.getInstance().world; @@ -223,18 +252,18 @@ public class GuiGameElement { if (d.getAxisDirection() == AxisDirection.POSITIVE) continue; - RenderSystem.pushMatrix(); - RenderSystem.translated(.5, .5, .5); - RenderSystem.rotatef(AngleHelper.horizontalAngle(d), 0, 1, 0); - RenderSystem.rotatef(AngleHelper.verticalAngle(d) - 90, 0, 0, 1); - RenderSystem.translated(-.5, -.5, -.5); + ms.push(); + ms.translate(.5, .5, .5); + ms.multiply(new Quaternion(AngleHelper.horizontalAngle(d), 0, 1, 0)); + ms.multiply(new Quaternion(AngleHelper.verticalAngle(d) - 90, 0, 0, 1)); + ms.translate(-.5, -.5, -.5); blockRenderer.renderFluid(new BlockPos(0, 1, 0), renderWorld, vb, blockState.getFluidState()); buffer.draw(type); - RenderSystem.popMatrix(); + ms.pop(); } RenderHelper.enable(); - RenderSystem.popMatrix(); + ms.pop(); break; } } @@ -261,13 +290,13 @@ public class GuiGameElement { } @Override - public void render() { - prepare(); - transform(); - RenderSystem.scaled(1, -1, 1); - RenderSystem.translated(0, 0, -75); + public void render(MatrixStack matrixStack) { + prepareMatrix(matrixStack); + transformMatrix(matrixStack); + matrixStack.scale(1, -1, 1); + matrixStack.translate(0, 0, -75); Minecraft.getInstance().getItemRenderer().renderItemIntoGUI(stack, 0, 0); - cleanUp(); + cleanUpMatrix(matrixStack); } } diff --git a/src/main/java/com/simibubi/create/foundation/gui/ToolSelectionScreen.java b/src/main/java/com/simibubi/create/foundation/gui/ToolSelectionScreen.java index 44550e3e9..3110dc9c0 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/ToolSelectionScreen.java +++ b/src/main/java/com/simibubi/create/foundation/gui/ToolSelectionScreen.java @@ -74,8 +74,7 @@ public class ToolSelectionScreen extends Screen { drawTexture(matrixStack, x - 15, y, gray.startX, gray.startY, w, h, gray.width, gray.height); float toolTipAlpha = yOffset / 10; - FontRenderer font = client.fontRenderer; - List toolTip = tools.get(selection).getDescription(); + List toolTip = tools.get(selection).getDescription(); int stringAlphaComponent = ((int) (toolTipAlpha * 0xFF)) << 24; if (toolTipAlpha > 0.25f) { @@ -84,13 +83,13 @@ public class ToolSelectionScreen extends Screen { RenderSystem.color4f(1, 1, 1, 1); if (toolTip.size() > 0) - drawString(matrixStack, font, toolTip.get(0), x - 10, y + 38, 0xEEEEEE + stringAlphaComponent); + textRenderer.draw(matrixStack, toolTip.get(0), x - 10, y + 38, 0xEEEEEE + stringAlphaComponent); if (toolTip.size() > 1) - drawString(matrixStack, font, toolTip.get(1), x - 10, y + 50, 0xCCDDFF + stringAlphaComponent); + textRenderer.draw(matrixStack, toolTip.get(1), x - 10, y + 50, 0xCCDDFF + stringAlphaComponent); if (toolTip.size() > 2) - drawString(matrixStack, font, toolTip.get(2), x - 10, y + 60, 0xCCDDFF + stringAlphaComponent); + textRenderer.draw(matrixStack, toolTip.get(2), x - 10, y + 60, 0xCCDDFF + stringAlphaComponent); if (toolTip.size() > 3) - drawString(matrixStack, font, toolTip.get(3), x - 10, y + 72, 0xCCCCDD + stringAlphaComponent); + textRenderer.draw(matrixStack, toolTip.get(3), x - 10, y + 72, 0xCCCCDD + stringAlphaComponent); } RenderSystem.color4f(1, 1, 1, 1); diff --git a/src/main/java/com/simibubi/create/foundation/item/WipScription.java b/src/main/java/com/simibubi/create/foundation/item/WipScription.java index 4fbd9768c..4744610b9 100644 --- a/src/main/java/com/simibubi/create/foundation/item/WipScription.java +++ b/src/main/java/com/simibubi/create/foundation/item/WipScription.java @@ -23,7 +23,8 @@ public class WipScription extends ItemDescription { if (--descriptions > 0) { int index = new Random().nextInt(descriptions); ITextComponent translate = Lang.translate("tooltip.randomWipDescription" + index); - add(getLines(), TooltipHelper.cutString(translate, TextFormatting.DARK_RED, TextFormatting.DARK_RED)); + List lines = getLines(); + TooltipHelper.cutString(translate, TextFormatting.DARK_RED, TextFormatting.DARK_RED).forEach(s -> lines.add(new StringTextComponent(s).formatted(TextFormatting.DARK_RED))); } } diff --git a/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java b/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java new file mode 100644 index 000000000..587c5b801 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/utility/WorldHelper.java @@ -0,0 +1,11 @@ +package com.simibubi.create.foundation.utility; + +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.IWorld; + +public class WorldHelper { + public static ResourceLocation getDimensionID(IWorld world) { + return world.getRegistryManager().get(Registry.DIMENSION_TYPE_KEY).getKey(world.getDimension()); + } +} diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java index 851b92106..928b27308 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedServerWorld.java @@ -15,6 +15,8 @@ import net.minecraft.tags.ITagCollectionSupplier; import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundEvent; import net.minecraft.util.math.BlockPos; +import net.minecraft.world.ITickList; +import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.server.ServerTickList; import net.minecraft.world.server.ServerWorld; @@ -22,9 +24,9 @@ import net.minecraft.world.storage.MapData; public class WrappedServerWorld extends ServerWorld { - protected ServerWorld world; + protected World world; - public WrappedServerWorld(ServerWorld world) { + public WrappedServerWorld(World world) { super(world.getServer(), world.getServer().getBackgroundExecutor(), world.getSaveHandler(), world.getWorldInfo(), world.getDimension(), world.getProfiler(), null); this.world = world; } @@ -35,7 +37,7 @@ public class WrappedServerWorld extends ServerWorld { } @Override - public float getCelestialAngle(float p_72826_1_) { + public float getCelestialAngleRadians(float p_72826_1_) { return 0; } @@ -50,12 +52,12 @@ public class WrappedServerWorld extends ServerWorld { } @Override - public ServerTickList getPendingBlockTicks() { + public ITickList getPendingBlockTicks() { return world.getPendingBlockTicks(); } @Override - public ServerTickList getPendingFluidTicks() { + public ITickList getPendingFluidTicks() { return world.getPendingFluidTicks(); } diff --git a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java index d74f2985f..3a130de68 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java +++ b/src/main/java/com/simibubi/create/foundation/utility/worldWrappers/WrappedWorld.java @@ -23,6 +23,7 @@ import net.minecraft.world.ITickList; import net.minecraft.world.World; import net.minecraft.world.biome.Biome; import net.minecraft.world.chunk.AbstractChunkProvider; +import net.minecraft.world.storage.ISpawnWorldInfo; import net.minecraft.world.storage.MapData; import javax.annotation.ParametersAreNonnullByDefault; @@ -34,16 +35,16 @@ public class WrappedWorld extends World { protected World world; public WrappedWorld(World world) { - super(world.getWorldInfo(), world.getDimension(), (w, d) -> world.getChunkProvider(), - world.getProfiler(), world.isRemote); + super((ISpawnWorldInfo) world.getWorldInfo(), world.getRegistryKey(), world.getDimension(), + world::getProfiler, world.isRemote, world.isDebugWorld(), 0); this.world = world; } - /*FIXME - @Override + // FIXME + // @Override public World getWorld() { return world; - }*/ + } @Override public BlockState getBlockState(BlockPos pos) {