diff --git a/src/main/java/de/jottyfan/minecraft/block/BlockDrill.java b/src/main/java/de/jottyfan/minecraft/block/BlockDrill.java index 8eb8943..c72e7b6 100644 --- a/src/main/java/de/jottyfan/minecraft/block/BlockDrill.java +++ b/src/main/java/de/jottyfan/minecraft/block/BlockDrill.java @@ -91,17 +91,10 @@ public class BlockDrill extends FallingBlock implements EntityBlock { loadings.put(QuicklyItems.CANOLABOTTLE, 8); loadings.put(QuicklyItems.CANOLABOTTLESTACK, 72); Item item = itemStack.getItem(); - if (itemStack.isEmpty()) { + if (QuicklyItems.MAGNIFIER.equals(item)) { if (!level.isClientSide() && player instanceof ServerPlayer serverPlayer) { serverPlayer.sendSystemMessage(Component.translatable("info.block.drillfuel", state.getValue(FUEL)), false); } - } else if (QuicklyItems.COPPERSTICK.equals(item)) { - Direction newDirection = hitResult.getDirection(); - newDirection = newDirection.equals(Direction.UP) ? Direction.DOWN : newDirection; - Integer fuelLeft = state.getValue(FUEL); - level.addFreshEntity( - new ItemEntity(level, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(QuicklyItems.CANOLABOTTLE, fuelLeft))); - level.setBlockAndUpdate(pos, QuicklyBlocks.DRILL.defaultBlockState().setValue(FACING, newDirection)); } else if (loadings.containsKey(item)) { Integer fuelWeight = loadings.get(item); if (fuelWeight != null) { @@ -119,6 +112,13 @@ public class BlockDrill extends FallingBlock implements EntityBlock { } player.getActiveItem().shrink(1); } + } else { + Direction newDirection = hitResult.getDirection(); + newDirection = newDirection.equals(Direction.UP) ? Direction.DOWN : newDirection; + Integer fuelLeft = state.getValue(FUEL); + level.addFreshEntity( + new ItemEntity(level, pos.getX(), pos.getY(), pos.getZ(), new ItemStack(QuicklyItems.CANOLABOTTLE, fuelLeft))); + level.setBlockAndUpdate(pos, QuicklyBlocks.DRILL.defaultBlockState().setValue(FACING, newDirection)); } return InteractionResult.SUCCESS; } diff --git a/src/main/java/de/jottyfan/minecraft/block/Itemhoarder.java b/src/main/java/de/jottyfan/minecraft/block/Itemhoarder.java index 5805771..6682cfe 100644 --- a/src/main/java/de/jottyfan/minecraft/block/Itemhoarder.java +++ b/src/main/java/de/jottyfan/minecraft/block/Itemhoarder.java @@ -6,10 +6,12 @@ import java.util.List; import org.jspecify.annotations.Nullable; import de.jottyfan.minecraft.blockentity.ItemHoarderBlockEntity; +import de.jottyfan.minecraft.item.QuicklyItems; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -52,21 +54,22 @@ public class Itemhoarder extends Block implements EntityBlock { } @Override - protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, - BlockHitResult hitResult) { - MutableComponent message = Component.empty(); - BlockEntity blockEntity = level.getBlockEntity(pos); - if (blockEntity instanceof ItemHoarderBlockEntity) { - ItemHoarderBlockEntity ihbe = (ItemHoarderBlockEntity) blockEntity; - for (ItemStack stack : ihbe.getStacks().values()) { - MutableComponent line = Component.literal(stack.getCount() + "x ").append(stack.getHoverName()); - message.append(Component.literal("\n")).append(line); - } - } - - Component complete = Component.translatable("info.block.itemhoarder", message); + protected InteractionResult useItemOn(ItemStack itemStack, BlockState state, Level level, BlockPos pos, Player player, + InteractionHand hand, BlockHitResult hitResult) { if (player instanceof ServerPlayer serverPlayer) { - serverPlayer.displayClientMessage(complete, false); + if (QuicklyItems.MAGNIFIER.equals(itemStack.getItem())) { + MutableComponent message = Component.empty(); + BlockEntity blockEntity = level.getBlockEntity(pos); + if (blockEntity instanceof ItemHoarderBlockEntity) { + ItemHoarderBlockEntity ihbe = (ItemHoarderBlockEntity) blockEntity; + for (ItemStack stack : ihbe.getStacks().values()) { + MutableComponent line = Component.literal(stack.getCount() + "x ").append(stack.getHoverName()); + message.append(Component.literal("\n")).append(line); + } + } + Component complete = Component.translatable("info.block.itemhoarder", message); + serverPlayer.displayClientMessage(complete, false); + } } return InteractionResult.SUCCESS; } diff --git a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java index d740f80..35a5139 100644 --- a/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java +++ b/src/main/java/de/jottyfan/minecraft/item/QuicklyItems.java @@ -43,6 +43,7 @@ public class QuicklyItems { public static final Item QUICKIEPOWDER = registerItem("quickiepowder"); public static final Item SPEEDINGOT = registerItem("speedingot"); public static final Item QUICKIEINGOT = registerItem("quickieingot"); + public static final Item MAGNIFIER = registerItem("magnifier"); // TODO: salpeter, sulfor // TODO: carrot stack @@ -98,6 +99,7 @@ public class QuicklyItems { item.accept(COPPERSTRING); item.accept(COPPERSTICK); item.accept(COPPERSTUB); + item.accept(MAGNIFIER); item.accept(ARMOR_TURQUOISE_HELMET); item.accept(ARMOR_TURQUOISE_CHESTPLATE); item.accept(ARMOR_TURQUOISE_LEGGINGS); diff --git a/src/main/java/de/jottyfan/minecraft/tab/QuicklyTab.java b/src/main/java/de/jottyfan/minecraft/tab/QuicklyTab.java index 7b72688..1adcb07 100644 --- a/src/main/java/de/jottyfan/minecraft/tab/QuicklyTab.java +++ b/src/main/java/de/jottyfan/minecraft/tab/QuicklyTab.java @@ -24,7 +24,7 @@ public class QuicklyTab { public static final void registerItemGroup() { Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, QUICKLY_TAB, - FabricItemGroup.builder().icon(() -> new ItemStack(QuicklyItems.STUB)) + FabricItemGroup.builder().icon(() -> new ItemStack(QuicklyItems.QUICKIEPOWDER)) .title(Component.translatable("tab." + Quickly.MOD_ID)).build()); } diff --git a/src/main/resources/assets/quickly/items/magnifier.json b/src/main/resources/assets/quickly/items/magnifier.json new file mode 100644 index 0000000..bf1b312 --- /dev/null +++ b/src/main/resources/assets/quickly/items/magnifier.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "quickly:item/magnifier" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/lang/de_de.json b/src/main/resources/assets/quickly/lang/de_de.json index ee010df..2f77633 100644 --- a/src/main/resources/assets/quickly/lang/de_de.json +++ b/src/main/resources/assets/quickly/lang/de_de.json @@ -22,6 +22,7 @@ "item.quickly.itemhoarder": "Itemsauger", "item.quickly.kelpbundle": "Seegrassbündel", "item.quickly.lavahoarder": "voller Lavasauger", + "item.quickly.magnifier": "Lupe", "item.quickly.monsterhoarder": "Monstersauger", "item.quickly.oredeepslateturquoise": "Türkistiefenerz", "item.quickly.oreturquoise": "Türkiserz", diff --git a/src/main/resources/assets/quickly/lang/en_us.json b/src/main/resources/assets/quickly/lang/en_us.json index 4c64766..35972b8 100644 --- a/src/main/resources/assets/quickly/lang/en_us.json +++ b/src/main/resources/assets/quickly/lang/en_us.json @@ -22,6 +22,7 @@ "item.quickly.itemhoarder": "item hoarder", "item.quickly.kelpbundle": "kelp bundle", "item.quickly.lavahoarder": "filled lava hoarder", + "item.quickly.magnifier": "magnifier", "item.quickly.monsterhoarder": "monster hoarder", "item.quickly.oredeepslateturquoise": "turquoise deepslate ore", "item.quickly.oreturquoise": "turquoise ore", diff --git a/src/main/resources/assets/quickly/models/item/magnifier.json b/src/main/resources/assets/quickly/models/item/magnifier.json new file mode 100644 index 0000000..e982bf3 --- /dev/null +++ b/src/main/resources/assets/quickly/models/item/magnifier.json @@ -0,0 +1,6 @@ +{ + "parent": "item/stick", + "textures": { + "layer0": "quickly:item/magnifier" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/quickly/textures/item/magnifier.png b/src/main/resources/assets/quickly/textures/item/magnifier.png new file mode 100644 index 0000000..e19c0ae Binary files /dev/null and b/src/main/resources/assets/quickly/textures/item/magnifier.png differ diff --git a/src/main/resources/data/quickly/recipe/shaped_magnifier.json b/src/main/resources/data/quickly/recipe/shaped_magnifier.json new file mode 100644 index 0000000..46e5b99 --- /dev/null +++ b/src/main/resources/data/quickly/recipe/shaped_magnifier.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "g ", + " s" + ], + "key": { + "g": "minecraft:glass_pane", + "s": "quickly:copperstick" + }, + "result": { + "id": "quickly:magnifier", + "count": 1 + } +} \ No newline at end of file