diff --git a/src/main/java/com/learning/block/CustomBlocks.java b/src/main/java/com/learning/block/CustomBlocks.java index 0115c44..bd090b9 100644 --- a/src/main/java/com/learning/block/CustomBlocks.java +++ b/src/main/java/com/learning/block/CustomBlocks.java @@ -17,8 +17,9 @@ public class CustomBlocks { Learning.LOGGER.info("Registering blocks..."); } - public static final Block test_block = register("test_block"); + public static final Block testBlock = register("test_block"); public static final Block damageBlock = register("damage_block", DamageBlock::new, AbstractBlock.Settings.create()); + public static final Block transformBlock = register("transform_block", TransformBlock::new, AbstractBlock.Settings.create()); public static final Block register(String blockId) { return register(blockId, Block::new, AbstractBlock.Settings.create()); diff --git a/src/main/java/com/learning/block/DamageBlock.java b/src/main/java/com/learning/block/DamageBlock.java index 083e15b..1ef9d50 100644 --- a/src/main/java/com/learning/block/DamageBlock.java +++ b/src/main/java/com/learning/block/DamageBlock.java @@ -18,12 +18,15 @@ public class DamageBlock extends Block { public DamageBlock(AbstractBlock.Settings settings) { super(settings); } + + @Override public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) { if (!world.isClient() && entity.canHit()) { entity.damage((ServerWorld)world, world.getDamageSources().generic(), 6f); } } + @Override public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { super.appendTooltip(stack, context, tooltip, type); tooltip.add(Text.translatable("toolTip.learning.damage_block")); diff --git a/src/main/java/com/learning/block/TransformBlock.java b/src/main/java/com/learning/block/TransformBlock.java new file mode 100644 index 0000000..d7691b5 --- /dev/null +++ b/src/main/java/com/learning/block/TransformBlock.java @@ -0,0 +1,38 @@ +package com.learning.block; + +import com.learning.util.ModTags.ItemTags; +import java.util.List; + +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraft.entity.Entity; +import net.minecraft.entity.ItemEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.item.Item.TooltipContext; +import net.minecraft.item.tooltip.TooltipType; +import net.minecraft.text.Text; + +public class TransformBlock extends Block { + public TransformBlock(AbstractBlock.Settings settings) { + super(settings); + } + + @Override + public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) { + if (!world.isClient() && entity instanceof ItemEntity itemEntity) { + if (itemEntity.getStack().isIn(ItemTags.DIAMOND_TRANSFORMABLE)) { + itemEntity.setStack(new ItemStack(Items.DIAMOND, itemEntity.getStack().getCount())); + } + } + } + + @Override + public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { + super.appendTooltip(stack, context, tooltip, type); + tooltip.add(Text.translatable("toolTip.learning.transform_block")); + } +} diff --git a/src/main/java/com/learning/item/CustomItems.java b/src/main/java/com/learning/item/CustomItems.java index 1fa16c3..6f01f5a 100644 --- a/src/main/java/com/learning/item/CustomItems.java +++ b/src/main/java/com/learning/item/CustomItems.java @@ -25,6 +25,7 @@ public class CustomItems { public static Item toast = register("toast", Toast::new, new Item.Settings().food(Foods.toastFood)); public static Item bakedToast = register("baked_toast", BakedToast::new, new Item.Settings().food(Foods.bakedToastFood, ConsumableComponents.food().consumeSeconds(0.8f).build())); public static Item damageBlock = register(CustomBlocks.damageBlock, false); + public static Item transformBlock = register(CustomBlocks.transformBlock, false); private static Item register(Block block, Boolean useItemTranslateKey) { RegistryKey key = keyOf(Registries.BLOCK.getKey(block).get()); diff --git a/src/main/java/com/learning/itemgroup/CustomItemGroup.java b/src/main/java/com/learning/itemgroup/CustomItemGroup.java index ea7897c..db3062e 100644 --- a/src/main/java/com/learning/itemgroup/CustomItemGroup.java +++ b/src/main/java/com/learning/itemgroup/CustomItemGroup.java @@ -29,6 +29,7 @@ public class CustomItemGroup { entries.add(CustomItems.toast); entries.add(CustomItems.bakedToast); entries.add(CustomItems.damageBlock); + entries.add(CustomItems.transformBlock); }) .build()); diff --git a/src/main/java/com/learning/util/ModTags.java b/src/main/java/com/learning/util/ModTags.java new file mode 100644 index 0000000..b4f6367 --- /dev/null +++ b/src/main/java/com/learning/util/ModTags.java @@ -0,0 +1,23 @@ +package com.learning.util; + +import com.learning.Learning; + +import net.minecraft.item.Item; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; + +public class ModTags { + public static void registerTags() { + Learning.LOGGER.info("Registering Tags for " + Learning.MOD_ID + "."); + } + + public static class ItemTags { + + public static TagKey DIAMOND_TRANSFORMABLE = register("diamond_transformable"); + + private static TagKey register(String tagId) { + return TagKey.of(RegistryKeys.ITEM, Identifier.of(Learning.MOD_ID, tagId)); + } + } +} diff --git a/src/main/resources/assets/learning/blockstates/transform_block.json b/src/main/resources/assets/learning/blockstates/transform_block.json new file mode 100644 index 0000000..c6ad4d2 --- /dev/null +++ b/src/main/resources/assets/learning/blockstates/transform_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "learning:block/transform_block" + } + } +} diff --git a/src/main/resources/assets/learning/items/transform_block.json b/src/main/resources/assets/learning/items/transform_block.json new file mode 100644 index 0000000..1d626c7 --- /dev/null +++ b/src/main/resources/assets/learning/items/transform_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "learning:block/transform_block" + } +} diff --git a/src/main/resources/assets/learning/lang/en_us.json b/src/main/resources/assets/learning/lang/en_us.json index 4de9584..46af142 100644 --- a/src/main/resources/assets/learning/lang/en_us.json +++ b/src/main/resources/assets/learning/lang/en_us.json @@ -3,9 +3,11 @@ "item.learning.baked_toast": "Baked Toast", "block.learning.damage_block": "Damage Block", + "block.learning.transform_block": "Transform Block", "itemGroup.learning.custom_itemgroup": "My Dear...", + "toolTip.learning.transform_block": "Will turn the specific item into diamond!", "toolTip.learning.toast0": "A simple fastfood.", "toolTip.learning.toast1": "Will be tastier after baking in the furnace!", "toolTip.learning.baked_toast": "Yummy!", diff --git a/src/main/resources/assets/learning/models/block/damage_block.json b/src/main/resources/assets/learning/models/block/damage_block.json index bd93bda..cae7362 100644 --- a/src/main/resources/assets/learning/models/block/damage_block.json +++ b/src/main/resources/assets/learning/models/block/damage_block.json @@ -1,7 +1,7 @@ { "parent": "block/cube_bottom_top", "textures": { - "bottom": "learning:block/damage_block_bottom", + "bottom": "learning:block/white_block_bottom", "top": "learning:block/damage_block_top", "side": "learning:block/damage_block_side" } diff --git a/src/main/resources/assets/learning/models/block/transform_block.json b/src/main/resources/assets/learning/models/block/transform_block.json new file mode 100644 index 0000000..ee26761 --- /dev/null +++ b/src/main/resources/assets/learning/models/block/transform_block.json @@ -0,0 +1,8 @@ +{ + "parent": "block/cube_bottom_top", + "textures": { + "bottom": "learning:block/white_block_bottom", + "top": "learning:block/transformblock_top", + "side": "learning:block/transformblock_side" + } +} diff --git a/src/main/resources/assets/learning/textures/block/transformblock_side.png b/src/main/resources/assets/learning/textures/block/transformblock_side.png new file mode 100644 index 0000000..544e8d0 Binary files /dev/null and b/src/main/resources/assets/learning/textures/block/transformblock_side.png differ diff --git a/src/main/resources/assets/learning/textures/block/transformblock_top.png b/src/main/resources/assets/learning/textures/block/transformblock_top.png new file mode 100644 index 0000000..5c88132 Binary files /dev/null and b/src/main/resources/assets/learning/textures/block/transformblock_top.png differ diff --git a/src/main/resources/assets/learning/textures/block/damage_block_bottom.png b/src/main/resources/assets/learning/textures/block/white_block_bottom.png similarity index 100% rename from src/main/resources/assets/learning/textures/block/damage_block_bottom.png rename to src/main/resources/assets/learning/textures/block/white_block_bottom.png diff --git a/src/main/resources/data/learning/tags/item/diamond_transformable.json b/src/main/resources/data/learning/tags/item/diamond_transformable.json new file mode 100644 index 0000000..af4b178 --- /dev/null +++ b/src/main/resources/data/learning/tags/item/diamond_transformable.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:coal", + "learning:baked_toast" + ] +}