From ccfb8d162d05fd1adcdaa8eb51022dc374a3c89b Mon Sep 17 00:00:00 2001 From: Flanks255 <32142731+Flanks255@users.noreply.github.com> Date: Sun, 28 Apr 2024 16:46:39 -0500 Subject: [PATCH] Fixed Phantom Placer / Breaker. Removed some Wips. Bump for FC --- gradle.properties | 2 +- .../59eb3dbb5f86130e09b3c62d89b9525ee01cf52d | 3 +- .../9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e | 4 +- .../b3ca5dca15f867120b82824364d3156b7fdfd666 | 3 +- .../models/item/crate_small.json | 3 ++ .../loot_tables/blocks/crate_small.json | 21 ++++++++ .../recipes/phantom_breaker.json | 15 ++++++ .../recipes/phantom_placer.json | 15 ++++++ .../data/BlockRecipeGenerator.java | 10 ++++ .../data/LootTableGenerator.java | 1 + .../mod/blocks/BlockPhantom.java | 43 +++++++--------- .../mod/blocks/base/BlockContainerBase.java | 10 ++-- .../mod/inventory/gui/AAScreen.java | 3 ++ .../mod/inventory/gui/GuiPhantomPlacer.java | 48 +++++++++--------- .../mod/items/ItemDrillUpgrade.java | 2 + .../mod/tile/TileEntityPhantomBreaker.java | 22 +++------ .../mod/tile/TileEntityPhantomPlacer.java | 4 +- .../actuallyadditions/mod/util/WorldUtil.java | 1 + .../assets/actuallyadditions/lang/en_us.json | 49 ++++++++++--------- 19 files changed, 164 insertions(+), 95 deletions(-) create mode 100644 src/generated/resources/assets/actuallyadditions/models/item/crate_small.json create mode 100644 src/generated/resources/data/actuallyadditions/loot_tables/blocks/crate_small.json create mode 100644 src/generated/resources/data/actuallyadditions/recipes/phantom_breaker.json create mode 100644 src/generated/resources/data/actuallyadditions/recipes/phantom_placer.json diff --git a/gradle.properties b/gradle.properties index a414b9b8d..ce2515b8a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Actually Additions -mod_version=1.2.10 +mod_version=1.2.11 # Forge game_version=1.20.4 diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 23c6099bd..858aa5897 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,4 +1,4 @@ -// 1.20.4 2024-03-11T19:15:36.5038055 Loot Tables +// 1.20.4 2024-04-28T16:44:33.1316406 Loot Tables f6655bb234dbcf1041fe8ad95c976ddddda2b02a data/actuallyadditions/loot_tables/blocks/atomic_reconstructor.json e15c868b26b669c30365bfb93e7d9274e07df16d data/actuallyadditions/loot_tables/blocks/battery_box.json 745d64af3b0203a138f9eca7de21ed4988b35c95 data/actuallyadditions/loot_tables/blocks/bio_reactor.json @@ -25,6 +25,7 @@ b598ece027ef00e9ed0457a7f9542ebe8b89538c data/actuallyadditions/loot_tables/bloc 6416e24b52f6a361efa8c9955b20fdeb1c623d79 data/actuallyadditions/loot_tables/blocks/coal_generator.json afab93747299dba6783292e5949ea7e0cd5d5b13 data/actuallyadditions/loot_tables/blocks/coffee.json ef604b6cc4ac21ee792ab7df41b77578b4d213db data/actuallyadditions/loot_tables/blocks/coffee_machine.json +fa895b25a0816ca506f7031ec3861cfd4de04f28 data/actuallyadditions/loot_tables/blocks/crate_small.json 7767779372fd1929d1d818e00d8a3d869f2d4a87 data/actuallyadditions/loot_tables/blocks/crusher.json 9f549621d659a42dcb71516dd1d97cb347611094 data/actuallyadditions/loot_tables/blocks/crusher_double.json 25b7a44418e2858552dd5150d67bffe1f30269a8 data/actuallyadditions/loot_tables/blocks/diamatine_crystal_block.json diff --git a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e index b293b213d..e0e8d030b 100644 --- a/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e +++ b/src/generated/resources/.cache/9fb1092f32d4fcbf9e061ffd718d4ec689c6c95e @@ -1,4 +1,4 @@ -// 1.20.4 2024-03-13T18:06:15.6143021 Recipes +// 1.20.4 2024-04-28T16:44:33.1452594 Recipes 4d3128b37a7153882a9324cda49b5069207561c5 data/actuallyadditions/recipes/atomic_reconstructor.json b0367f5012651764931e8b8fd0c5bcca4e8614c0 data/actuallyadditions/recipes/battery_box.json dba5d4a1a79489d5766fad32f912ab1a64618854 data/actuallyadditions/recipes/bio_reactor.json @@ -56,9 +56,11 @@ ff81da8a0f6632779414c0512100696a11771814 data/actuallyadditions/recipes/hopping_ 11a57ce2eea04fed226a817a3995acd406bb2efb data/actuallyadditions/recipes/long_range_breaker.json 73696fd4e851f440a9850485fc9ad03fc63442a9 data/actuallyadditions/recipes/oil_generator.json afbee3f7074b7aa88d4bc8941d820d02b827da4b data/actuallyadditions/recipes/phantom_booster.json +8dd44158b3b1780fa4479879262239294c45c37f data/actuallyadditions/recipes/phantom_breaker.json f0a9c8a0de8fb884cd207c34c4a10e7a4a021153 data/actuallyadditions/recipes/phantom_energyface.json c7b65084e855bd7f083819ed9339320577510c6f data/actuallyadditions/recipes/phantom_itemface.json 6d3aa070e0fccbb126c80323423c9482259dd6de data/actuallyadditions/recipes/phantom_liquiface.json +bb11bd865cfdf6756e104ecc0d755772183b047f data/actuallyadditions/recipes/phantom_placer.json 253e31ad471e2a8e20bfbe077826a8fac35fcc84 data/actuallyadditions/recipes/phantom_redstoneface.json 8c78ebb9351b98ffe368391a391b90385c0b8b7f data/actuallyadditions/recipes/placer.json 981e7e91216504b421d069f72920499df052e64f data/actuallyadditions/recipes/player_interface.json diff --git a/src/generated/resources/.cache/b3ca5dca15f867120b82824364d3156b7fdfd666 b/src/generated/resources/.cache/b3ca5dca15f867120b82824364d3156b7fdfd666 index 8d801fcd2..f391ae517 100644 --- a/src/generated/resources/.cache/b3ca5dca15f867120b82824364d3156b7fdfd666 +++ b/src/generated/resources/.cache/b3ca5dca15f867120b82824364d3156b7fdfd666 @@ -1,4 +1,4 @@ -// 1.20.4 2024-04-09T17:25:30.7116661 Item Models: actuallyadditions +// 1.20.4 2024-04-28T16:44:33.1387413 Item Models: actuallyadditions 34463d3d2ae3fafaaea338e7ffc03cd139d3cfeb assets/actuallyadditions/models/item/advanced_coil.json 24594fc68e66011dc2d7b79b92c94b387e710318 assets/actuallyadditions/models/item/advanced_leaf_blower.json ba2d814e269cdef72e1045f200b3c20ed6961517 assets/actuallyadditions/models/item/atomic_reconstructor.json @@ -37,6 +37,7 @@ c73981382d646e4a0186b26fcfad817d39252055 assets/actuallyadditions/models/item/ch a67f1795e1ad1d6ed19f2a35f176f39e00dbb9c3 assets/actuallyadditions/models/item/coffee_machine.json 523148eac33929fb0d2892856a5ddcb784043bb5 assets/actuallyadditions/models/item/crafter_on_a_stick.json 89cc79420e3a7c2952ce729537b7503a517bb9de assets/actuallyadditions/models/item/crate_keeper.json +cfc7022ad26717b33c916d380435cc32ace34c0b assets/actuallyadditions/models/item/crate_small.json 9bc734dadf9d5b85b8cc5685b673a1d074cf3d6d assets/actuallyadditions/models/item/crusher.json 4b7ef5dd15d930d4b0b5507cd08c27cb5ee1498a assets/actuallyadditions/models/item/crusher_double.json 91e18e2c5ae8f657b977865312e8cd7ee348d8f1 assets/actuallyadditions/models/item/crystallized_canola_seed.json diff --git a/src/generated/resources/assets/actuallyadditions/models/item/crate_small.json b/src/generated/resources/assets/actuallyadditions/models/item/crate_small.json new file mode 100644 index 000000000..e53ea610d --- /dev/null +++ b/src/generated/resources/assets/actuallyadditions/models/item/crate_small.json @@ -0,0 +1,3 @@ +{ + "parent": "actuallyadditions:block/crate_small" +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/loot_tables/blocks/crate_small.json b/src/generated/resources/data/actuallyadditions/loot_tables/blocks/crate_small.json new file mode 100644 index 000000000..61b9919ba --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/loot_tables/blocks/crate_small.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "actuallyadditions:crate_small" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "actuallyadditions:blocks/crate_small" +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/recipes/phantom_breaker.json b/src/generated/resources/data/actuallyadditions/recipes/phantom_breaker.json new file mode 100644 index 000000000..e7c361bfd --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/phantom_breaker.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "actuallyadditions:breaker" + }, + { + "item": "actuallyadditions:phantom_itemface" + } + ], + "result": { + "item": "actuallyadditions:phantom_breaker" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/actuallyadditions/recipes/phantom_placer.json b/src/generated/resources/data/actuallyadditions/recipes/phantom_placer.json new file mode 100644 index 000000000..25bfabfa3 --- /dev/null +++ b/src/generated/resources/data/actuallyadditions/recipes/phantom_placer.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "actuallyadditions:placer" + }, + { + "item": "actuallyadditions:phantom_itemface" + } + ], + "result": { + "item": "actuallyadditions:phantom_placer" + } +} \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/BlockRecipeGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/BlockRecipeGenerator.java index 6713c8c0c..a4fe34049 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/BlockRecipeGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/BlockRecipeGenerator.java @@ -317,6 +317,16 @@ public class BlockRecipeGenerator extends RecipeProvider { .define('F', ActuallyBlocks.BREAKER.get()) .save(recipeOutput); + // Phantom Placer + Recipe.shapeless(ActuallyBlocks.PHANTOM_PLACER.get()) + .ingredients(ActuallyBlocks.PLACER.get(), ActuallyBlocks.PHANTOM_ITEMFACE.get()) + .save(recipeOutput); + + // Phantom Breaker + Recipe.shapeless(ActuallyBlocks.PHANTOM_BREAKER.get()) + .ingredients(ActuallyBlocks.BREAKER.get(), ActuallyBlocks.PHANTOM_ITEMFACE.get()) + .save(recipeOutput); + // Powered furnace. Recipe.shaped(ActuallyBlocks.POWERED_FURNACE.getItem()) .pattern("EXC", "FIF", "CXE") diff --git a/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java b/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java index 51b1d3b4f..368797192 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java +++ b/src/main/java/de/ellpeck/actuallyadditions/data/LootTableGenerator.java @@ -102,6 +102,7 @@ public class LootTableGenerator extends LootTableProvider { this.dropSelf(ActuallyBlocks.BREAKER.get()); this.dropSelf(ActuallyBlocks.PLACER.get()); this.dropSelf(ActuallyBlocks.DROPPER.get()); + this.dropSelf(ActuallyBlocks.CRATE_SMALL.get()); this.dropSelf(ActuallyBlocks.FLUID_PLACER.get()); this.dropSelf(ActuallyBlocks.FLUID_COLLECTOR.get()); this.dropSelf(ActuallyBlocks.COFFEE_MACHINE.get()); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java index 0310e89d0..341d08ed8 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/BlockPhantom.java @@ -27,6 +27,7 @@ import net.minecraft.util.FormattedCharSequence; import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -109,40 +110,34 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay { @Nullable @Override public BlockEntityTicker getTicker(Level level, BlockState blockState, BlockEntityType entityType) { - switch (this.type) { - case PLACER: - return level.isClientSide? TileEntityPhantomPlacer::clientTick : TileEntityPhantomPlacer::serverTick; - case BREAKER: - return level.isClientSide? TileEntityPhantomBreaker::clientTick : TileEntityPhantomBreaker::serverTick; - case LIQUIFACE: - return level.isClientSide? TileEntityPhantomLiquiface::clientTick : TileEntityPhantomLiquiface::serverTick; - case ENERGYFACE: - return level.isClientSide? TileEntityPhantomEnergyface::clientTick : TileEntityPhantomEnergyface::serverTick; - case REDSTONEFACE: - return level.isClientSide? TileEntityPhantomRedstoneface::clientTick : TileEntityPhantomRedstoneface::serverTick; - default: - return level.isClientSide? TileEntityPhantomItemface::clientTick : TileEntityPhantomItemface::serverTick; - } + return switch (this.type) { + case PLACER, BREAKER -> + level.isClientSide ? TileEntityPhantomPlacer::clientTick : TileEntityPhantomPlacer::serverTick; + case LIQUIFACE -> + level.isClientSide ? TileEntityPhantomLiquiface::clientTick : TileEntityPhantomLiquiface::serverTick; + case ENERGYFACE -> + level.isClientSide ? TileEntityPhantomEnergyface::clientTick : TileEntityPhantomEnergyface::serverTick; + case REDSTONEFACE -> + level.isClientSide ? TileEntityPhantomRedstoneface::clientTick : TileEntityPhantomRedstoneface::serverTick; + default -> + level.isClientSide ? TileEntityPhantomItemface::clientTick : TileEntityPhantomItemface::serverTick; + }; } - // TODO: [port] validate this works @Override public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand handIn, BlockHitResult hit) { if (this.tryToggleRedstone(world, pos, player)) { - return InteractionResult.PASS; + return InteractionResult.SUCCESS; } -/* if (!world.isClientSide) { - TileEntity tile = world.getBlockEntity(pos); - if (tile instanceof IPhantomTile && ((IPhantomTile) tile).getGuiID() != -1) { - NetworkHooks.openGui((ServerPlayerEntity) player, (INamedContainerProvider) tile, pos); + BlockEntity tile = world.getBlockEntity(pos); + if (tile instanceof MenuProvider menuProvider) { + player.openMenu(menuProvider, pos); } } -*/ - return InteractionResult.PASS; + return InteractionResult.SUCCESS; } - // TODO: [port] fix all of this, it's a mess @Override @OnlyIn(Dist.CLIENT) public void displayHud(GuiGraphics guiGraphics, Minecraft minecraft, Player player, ItemStack stack, HitResult rayCast, Window resolution) { @@ -163,10 +158,8 @@ public class BlockPhantom extends BlockContainerBase implements IHudDisplay { drawWordWrap(guiGraphics, minecraft.font, Component.translatable("tooltip.actuallyadditions.phantom.blockInfo.desc", name, phantom.getBoundPosition().getX(), phantom.getBoundPosition().getY(), phantom.getBoundPosition().getZ(), distance), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 - 30, 200, 0xFFFFFF, true); if (phantom.isBoundThingInRange()) { - //StringUtil.drawSplitString(minecraft.font, ChatFormatting.DARK_GREEN + I18n.get("tooltip.actuallyadditions.phantom.connectedRange.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 25, 200, 0xFFFFFF, true); drawWordWrap(guiGraphics, minecraft.font, Component.translatable("tooltip.actuallyadditions.phantom.connectedRange.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 25, 200, 0xFFFFFF, true); } else { - //StringUtil.drawSplitString(minecraft.font, ChatFormatting.DARK_RED + I18n.get("tooltip.actuallyadditions.phantom.connectedNoRange.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 25, 200, 0xFFFFFF, true); drawWordWrap(guiGraphics, minecraft.font, Component.translatable("tooltip.actuallyadditions.phantom.connectedNoRange.desc"), resolution.getGuiScaledWidth() / 2 + 5, resolution.getGuiScaledHeight() / 2 + 25, 200, 0xFFFFFF, true); } } else { diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java index 68cd676fa..dc43efac4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/blocks/base/BlockContainerBase.java @@ -91,7 +91,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock { if (stack.getItem() == CommonConfig.Other.redstoneConfigureItem) { BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEntityBase base) { - if (!world.isClientSide && base.isRedstoneToggle()) { + if (!world.isClientSide && base.isRedstoneToggle()) { base.isPulseMode = !base.isPulseMode; base.setChanged(); base.sendUpdate(); @@ -107,7 +107,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock { if (!world.isClientSide) { BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEntityBase base) { - if (base.respondsToPulses()) { + if (base.respondsToPulses()) { base.activateOnPulse(); } } @@ -119,7 +119,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock { BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEntityBase base) { - if (base.shouldSaveDataOnChangeOrWorldStart()) { + if (base.shouldSaveDataOnChangeOrWorldStart()) { base.saveDataOnChangeOrWorldStart(); } } @@ -142,7 +142,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock { if (!world.isClientSide) { BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEntityBase base) { - boolean powered = world.getBestNeighborSignal(pos) > 0; + boolean powered = world.getBestNeighborSignal(pos) > 0; boolean wasPowered = base.isRedstonePowered; if (powered && !wasPowered) { if (base.respondsToPulses()) { @@ -175,7 +175,7 @@ public abstract class BlockContainerBase extends Block implements EntityBlock { if (stack.hasTag()) { BlockEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEntityBase base) { - CompoundTag compound = stack.getOrCreateTag().getCompound("Data"); + CompoundTag compound = stack.getOrCreateTag().getCompound("Data"); base.readSyncableNBT(compound, TileEntityBase.NBTType.SAVE_BLOCK); } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/AAScreen.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/AAScreen.java index 366cbd5a6..c8ed1922e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/AAScreen.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/AAScreen.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.resources.language.I18n; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -19,6 +20,8 @@ import net.minecraft.world.inventory.AbstractContainerMenu; import javax.annotation.Nonnull; public abstract class AAScreen extends AbstractContainerScreen { + //TODO standardize this to dunswe? + public static final String[] SIDES = { I18n.get("info.actuallyadditions.gui.disabled"), I18n.get("info.actuallyadditions.gui.up"), I18n.get("info.actuallyadditions.gui.down"), I18n.get("info.actuallyadditions.gui.north"), I18n.get("info.actuallyadditions.gui.east"), I18n.get("info.actuallyadditions.gui.south"), I18n.get("info.actuallyadditions.gui.west") }; public AAScreen(T container, Inventory inventory, Component pTitle) { super(container, inventory, pTitle); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiPhantomPlacer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiPhantomPlacer.java index 0f8b265a9..8861da114 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiPhantomPlacer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiPhantomPlacer.java @@ -12,9 +12,12 @@ package de.ellpeck.actuallyadditions.mod.inventory.gui; import com.mojang.blaze3d.systems.RenderSystem; import de.ellpeck.actuallyadditions.mod.inventory.ContainerPhantomPlacer; +import de.ellpeck.actuallyadditions.mod.network.PacketHandlerHelper; import de.ellpeck.actuallyadditions.mod.tile.TileEntityPhantomPlacer; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; +import net.minecraft.ChatFormatting; import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.Button; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Inventory; @@ -22,12 +25,15 @@ import net.neoforged.api.distmarker.Dist; import net.neoforged.api.distmarker.OnlyIn; import javax.annotation.Nonnull; +import java.util.ArrayList; +import java.util.List; @OnlyIn(Dist.CLIENT) public class GuiPhantomPlacer extends AAScreen { private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("gui_breaker"); private final TileEntityPhantomPlacer placer; + private Button buttonSide; public GuiPhantomPlacer(ContainerPhantomPlacer container, Inventory inventory, Component title) { super(container, inventory, title); @@ -40,44 +46,40 @@ public class GuiPhantomPlacer extends AAScreen { public void init() { super.init(); -// if (!this.placer.isBreaker) { -// this.addButton(new Button(0, this.leftPos + 63, this.topPos + 75, 50, 20, this.getSide())); -// } + if (!this.placer.isBreaker) { + buttonSide = Button.builder(Component.literal(this.getSide()), (button) -> PacketHandlerHelper.sendButtonPacket(this.placer, 0)) + .bounds(this.leftPos + 63, this.topPos + 75, 50, 20).build(); + this.addRenderableWidget(buttonSide); + } } @Override protected void containerTick() { super.containerTick(); -// if (!this.placer.isBreaker) { -// this.buttonList.get(0).displayString = this.getSide(); -// } + if (!this.placer.isBreaker && this.buttonSide != null) { + buttonSide.setMessage(Component.literal(this.getSide())); + } } @Override public void render(@Nonnull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTicks) { super.render(guiGraphics, mouseX, mouseY, partialTicks); -// if (!this.placer.isBreaker && this.buttonList.get(0).isMouseOver()) { -// String loc = "info." + ActuallyAdditions.MODID + ".placer.sides"; -// -// List textList = new ArrayList<>(); -// textList.add(TextFormatting.GOLD + StringUtil.localize(loc + ".1")); -// textList.addAll(this.font.listFormattedStringToWidth(StringUtil.localize(loc + ".2"), 200)); -// this.drawHoveringText(textList, mouseX, mouseY); //renderComponentTooltip -// } + if (!this.placer.isBreaker && buttonSide.isMouseOver(mouseX, mouseY)) { + String loc = "info.actuallyadditions.placer.sides"; + + List textList = new ArrayList<>(); + textList.add(Component.translatable(loc + ".1").withStyle(ChatFormatting.GOLD)); + textList.add(Component.translatable(loc + ".2")); + guiGraphics.renderComponentTooltip(font, textList, mouseX, mouseY); + } } -// @Override -// protected void actionPerformed(Button button) throws IOException { -// if (!this.placer.isBreaker) { -// PacketHandlerHelper.sendButtonPacket(this.placer, button.id); -// } -// } -// private String getSide() { -// return GuiInputter.SIDES[this.placer.side + 1]; -// } + private String getSide() { + return SIDES[this.placer.side + 1]; + } @Override public void renderBg(GuiGraphics guiGraphics, float f, int x, int y) { RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrillUpgrade.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrillUpgrade.java index 872ef13f4..6d817b0b4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrillUpgrade.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrillUpgrade.java @@ -12,6 +12,7 @@ package de.ellpeck.actuallyadditions.mod.items; import de.ellpeck.actuallyadditions.mod.items.base.ItemBase; import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.InteractionResultHolder; @@ -41,6 +42,7 @@ public class ItemDrillUpgrade extends ItemBase { ItemStack stack = player.getItemInHand(hand); if (!world.isClientSide && this.type == UpgradeType.PLACER) { this.setSlotToPlaceFrom(stack, player.getInventory().selected); + player.sendSystemMessage(Component.literal("Set the slot to place from to " + (player.getInventory().selected + 1))); return new InteractionResultHolder<>(InteractionResult.SUCCESS, stack); } return new InteractionResultHolder<>(InteractionResult.FAIL, stack); diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBreaker.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBreaker.java index a6ef3d5f8..05719ba28 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBreaker.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomBreaker.java @@ -15,10 +15,11 @@ import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IAcceptor; import de.ellpeck.actuallyadditions.mod.util.ItemStackHandlerAA.IRemover; import net.minecraft.core.BlockPos; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.network.chat.Component; import net.minecraft.world.level.block.state.BlockState; +import javax.annotation.Nonnull; + public class TileEntityPhantomBreaker extends TileEntityPhantomPlacer { public TileEntityPhantomBreaker(BlockPos pos, BlockState state) { @@ -26,18 +27,6 @@ public class TileEntityPhantomBreaker extends TileEntityPhantomPlacer { this.isBreaker = true; } - public static void clientTick(Level level, BlockPos pos, BlockState state, T t) { - if (t instanceof TileEntityPhantomBreaker tile) { - tile.clientTick(); - } - } - - public static void serverTick(Level level, BlockPos pos, BlockState state, T t) { - if (t instanceof TileEntityPhantomBreaker tile) { - tile.serverTick(); - } - } - @Override public IAcceptor getAcceptor() { return (slot, stack, automation) -> !automation; @@ -48,4 +37,9 @@ public class TileEntityPhantomBreaker extends TileEntityPhantomPlacer { return ItemStackHandlerAA.REMOVE_TRUE; } + @Nonnull + @Override + public Component getDisplayName() { + return Component.translatable("container.actuallyadditions.phantomBreaker"); + } } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java index 78242b1f5..b5cbf6674 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/tile/TileEntityPhantomPlacer.java @@ -37,6 +37,7 @@ import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; @@ -236,9 +237,10 @@ public class TileEntityPhantomPlacer extends TileEntityInventoryBase implements this.sendUpdate(); } + @Nonnull @Override public Component getDisplayName() { - return Component.empty(); + return Component.translatable("container.actuallyadditions.phantomPlacer"); } @Nullable diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index 367b2c862..1fac5b7a7 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -214,6 +214,7 @@ public final class WorldUtil { return false; } + //TODO standardize this to dunswe? public static Direction getDirectionBySidesInOrder(int side) { switch (side) { case 0: diff --git a/src/main/resources/assets/actuallyadditions/lang/en_us.json b/src/main/resources/assets/actuallyadditions/lang/en_us.json index 5c97272af..9e7ba3000 100644 --- a/src/main/resources/assets/actuallyadditions/lang/en_us.json +++ b/src/main/resources/assets/actuallyadditions/lang/en_us.json @@ -136,12 +136,12 @@ "block.actuallyadditions.lamp_cyan": "Cyan Lamp", "block.actuallyadditions.lamp_purple": "Purple Lamp", "block.actuallyadditions.phantom_itemface": "Phantom Itemface", - "block.actuallyadditions.player_interface": "Player Interface (wip)", + "block.actuallyadditions.player_interface": "Player Interface", "block.actuallyadditions.phantom_energyface": "Phantom Energyface", "block.actuallyadditions.phantom_redstoneface": "Phantom Redstoneface", "block.actuallyadditions.phantom_liquiface": "Phantom Liquiface", - "block.actuallyadditions.phantom_placer": "Phantom Placer (wip)", - "block.actuallyadditions.phantom_breaker": "Phantom Breaker (wip)", + "block.actuallyadditions.phantom_placer": "Phantom Placer", + "block.actuallyadditions.phantom_breaker": "Phantom Breaker", "block.actuallyadditions.lava_factory_controller": "Lava Factory Controller", "block.actuallyadditions.lava_factory_casing": "Lava Casing", "block.actuallyadditions.fluid_placer": "Fluid Placer", @@ -257,23 +257,26 @@ "block.actuallyadditions.atomic_reconstructor.info.2.12": "Replacer", "block.actuallyadditions.atomic_reconstructor.info.2.13": "Differentiator", "block.actuallyadditions.atomic_reconstructor.info.2.14": "Receiver", + "block.actuallyadditions.crate_small": "Small Storage Crate (wip)", + "block.actuallyadditions.crate_medium": "Medium Storage Crate (wip)", + "block.actuallyadditions.crate_large": "Large Storage Crate (wip)", "_comment": "Items", - "item.actuallyadditions.drill_blue": "Blue Drill (wip)", - "item.actuallyadditions.drill_light_blue": "Light Blue Drill (wip)", - "item.actuallyadditions.drill_brown": "Brown Drill (wip)", - "item.actuallyadditions.drill_black": "Black Drill (wip)", - "item.actuallyadditions.drill_white": "White Drill (wip)", - "item.actuallyadditions.drill_magenta": "Magenta Drill (wip)", - "item.actuallyadditions.drill_orange": "Orange Drill (wip)", - "item.actuallyadditions.drill_pink": "Pink Drill (wip)", - "item.actuallyadditions.drill_purple": "Purple Drill (wip)", - "item.actuallyadditions.drill_red": "Red Drill (wip)", - "item.actuallyadditions.drill_yellow": "Yellow Drill (wip)", - "item.actuallyadditions.drill_cyan": "Cyan Drill (wip)", - "item.actuallyadditions.drill_gray": "Gray Drill (wip)", - "item.actuallyadditions.drill_green": "Green Drill (wip)", - "item.actuallyadditions.drill_light_gray": "Light Gray Drill (wip)", - "item.actuallyadditions.drill_lime": "Lime Drill (wip)", + "item.actuallyadditions.drill_blue": "Blue Drill", + "item.actuallyadditions.drill_light_blue": "Light Blue Drill", + "item.actuallyadditions.drill_brown": "Brown Drill", + "item.actuallyadditions.drill_black": "Black Drill", + "item.actuallyadditions.drill_white": "White Drill", + "item.actuallyadditions.drill_magenta": "Magenta Drill", + "item.actuallyadditions.drill_orange": "Orange Drill", + "item.actuallyadditions.drill_pink": "Pink Drill", + "item.actuallyadditions.drill_purple": "Purple Drill", + "item.actuallyadditions.drill_red": "Red Drill", + "item.actuallyadditions.drill_yellow": "Yellow Drill", + "item.actuallyadditions.drill_cyan": "Cyan Drill", + "item.actuallyadditions.drill_gray": "Gray Drill", + "item.actuallyadditions.drill_green": "Green Drill", + "item.actuallyadditions.drill_light_gray": "Light Gray Drill", + "item.actuallyadditions.drill_lime": "Lime Drill", "item.actuallyadditions.rice": "Rice", "item.actuallyadditions.rice_dough": "Rice Dough", "item.actuallyadditions.rice_seeds": "Rice Seeds", @@ -313,7 +316,7 @@ "item.actuallyadditions.drill_upgrade_silk_touch": "Drill Silk Touch Augment", "item.actuallyadditions.drill_upgrade_fortune": "Drill Fortune Augment I", "item.actuallyadditions.drill_upgrade_fortune_ii": "Drill Fortune Augment II (Gives Fortune III!)", - "item.actuallyadditions.drill_upgrade_block_placing": "Drill Block Placing Augment (wip)", + "item.actuallyadditions.drill_upgrade_block_placing": "Drill Block Placing Augment", "item.actuallyadditions.drill_upgrade_three_by_three": "Drill Area Augment I", "item.actuallyadditions.drill_upgrade_five_by_five": "Drill Area Augment II", "item.actuallyadditions.dough": "Dough (wip)", @@ -530,10 +533,10 @@ "container.actuallyadditions.crusher_double": "Double Crusher", "container.actuallyadditions.powered_furnace": "Powered Furnace", "container.actuallyadditions.feeder": "Feeder", - "container.actuallyadditions.crate_small": "Small Storage Crate (wip)", + "container.actuallyadditions.crate_small": "Small Storage Crate", "container.actuallyadditions.crate_small.desc": "'Small'", - "container.actuallyadditions.crate_medium": "Medium Storage Crate (wip)", - "container.actuallyadditions.crate_large": "Large Storage Crate (wip)", + "container.actuallyadditions.crate_medium": "Medium Storage Crate", + "container.actuallyadditions.crate_large": "Large Storage Crate", "container.actuallyadditions.crate_large.desc": "Supersolid", "container.actuallyadditions.repairer": "Repairer", "container.actuallyadditions.placer": "Placer",