diff --git a/src/main/generated/.cache/378f9509398ea584ca54616156177f9ec588f984 b/src/main/generated/.cache/378f9509398ea584ca54616156177f9ec588f984 index 43b7d58..9bf5eb3 100644 --- a/src/main/generated/.cache/378f9509398ea584ca54616156177f9ec588f984 +++ b/src/main/generated/.cache/378f9509398ea584ca54616156177f9ec588f984 @@ -1,4 +1,4 @@ -// 1.21.1 2024-09-09T20:42:17.6901731 Tutorial Mod/Block Loot Tables +// 1.21.1 2024-09-10T16:12:46.9973489 Tutorial Mod/Block Loot Tables 1382e8045641fe6784d8535d113c80a6028a5ace data\tutorialmod\loot_table\blocks\pink_garnet_pressure_plate.json f9fed56792aac989521a48d25cde5a55d5973db4 data\tutorialmod\loot_table\blocks\pink_garnet_fence_gate.json 3bfcba243820f2344471574d75b7b48ba680fd3f data\tutorialmod\loot_table\blocks\pink_garnet_door.json diff --git a/src/main/generated/.cache/80beaa027efbcf9e17d04d48300d7784fb0cb57f b/src/main/generated/.cache/80beaa027efbcf9e17d04d48300d7784fb0cb57f index 4780bc1..1bafc99 100644 --- a/src/main/generated/.cache/80beaa027efbcf9e17d04d48300d7784fb0cb57f +++ b/src/main/generated/.cache/80beaa027efbcf9e17d04d48300d7784fb0cb57f @@ -1,4 +1,4 @@ -// 1.21.1 2024-09-09T20:42:17.6921734 Tutorial Mod/Tags for minecraft:block +// 1.21.1 2024-09-10T16:12:46.9993517 Tutorial Mod/Tags for minecraft:block 8159fdbcb7619cbd57674525489b6dfed8a407fd data\minecraft\tags\block\fence_gates.json 079e21ee82e19be3b06c0ad61d06e9bdce588108 data\minecraft\tags\block\needs_iron_tool.json 87c23b954c6a1061edf28d30d87d40ccfecb8a8f data\minecraft\tags\block\fences.json diff --git a/src/main/generated/.cache/bf8b55c7a3e1253642a8b1063c0b39ff5689945b b/src/main/generated/.cache/bf8b55c7a3e1253642a8b1063c0b39ff5689945b index 79826e1..02fd068 100644 --- a/src/main/generated/.cache/bf8b55c7a3e1253642a8b1063c0b39ff5689945b +++ b/src/main/generated/.cache/bf8b55c7a3e1253642a8b1063c0b39ff5689945b @@ -1,4 +1,4 @@ -// 1.21.1 2024-09-09T20:42:17.6911749 Tutorial Mod/Model Definitions +// 1.21.1 2024-09-10T16:12:46.9983506 Tutorial Mod/Model Definitions 51e9c213683a5edc7250a3fc72a4dda3cd4a547e assets\tutorialmod\models\block\pink_garnet_stairs_inner.json 06cb8ccbdefea36e870bb0d601dec9e4baddc6b9 assets\tutorialmod\blockstates\pink_garnet_wall.json 44df06c1ed35df1eb8954755fdc61e81fb77e9da assets\tutorialmod\models\item\pink_garnet_deepslate_ore.json @@ -26,6 +26,7 @@ f8b6f1021ac80c221d8d83ede8e5816c45ef723f assets\tutorialmod\blockstates\pink_gar 91bcbb578a52ac33eb56704bbe5f62e310abe5ee assets\tutorialmod\models\block\pink_garnet_fence_inventory.json 7db57b6386f02d11557397a148c30dea085235e0 assets\tutorialmod\blockstates\pink_garnet_slab.json e10ed0f44080df33ec18cbea1e4ca95ffa54b62f assets\tutorialmod\models\item\pink_garnet_button.json +2c337e9d04bbac33f9d13fdfaac49fb239b1b0d9 assets\tutorialmod\models\item\pink_garnet_lamp.json ed27aaa00c275028e1495bb6d6bfdcea1851067b assets\tutorialmod\models\block\magic_block.json a7779ae2aac4f4da3808d0d77fdeae99af2b43f8 assets\tutorialmod\models\item\pink_garnet_wall.json f3f72a1eb57f8b905366cac9bf1a67bca00e859b assets\tutorialmod\models\block\pink_garnet_slab.json @@ -39,6 +40,7 @@ f3f72a1eb57f8b905366cac9bf1a67bca00e859b assets\tutorialmod\models\block\pink_ga f6782b74c6765a7069b470aa024e7842d988830e assets\tutorialmod\models\block\pink_garnet_door_top_left_open.json 69a45d9eda7fcbbb46f3a4bf568243a7b2141123 assets\tutorialmod\models\item\chisel.json ef1aa6cb184e8340a5afc3a86268274faaf4ce20 assets\tutorialmod\models\item\pink_garnet_ore.json +4d633dc23654e5f70770dc4b835059a04300f26f assets\tutorialmod\models\block\pink_garnet_lamp_on.json 8ddfdc10d7070d71bc96e16eda77bad9dfb603fe assets\tutorialmod\models\block\pink_garnet_button_pressed.json 78060f761e21d98042a47bf0698ec8ee5d9abad2 assets\tutorialmod\models\block\pink_garnet_wall_side.json 85f8daae4c33ffad6aebd3e7f1d0bba169b1dff1 assets\tutorialmod\models\block\pink_garnet_door_top_right.json @@ -61,11 +63,13 @@ c0f86e3f90e3aee91ec48242469069878a02edef assets\tutorialmod\models\block\pink_ga cf96d28db115823b34bfd1565914960950d7f752 assets\tutorialmod\models\block\pink_garnet_stairs_outer.json 37d814e2e0356a246af16618c42984b84d9e2ed9 assets\tutorialmod\models\block\pink_garnet_block.json 5766845b2b537199e0d43d0fa33b3fb4ff9dc38d assets\tutorialmod\models\block\pink_garnet_ore.json +19e117f512b98bc699379365b240a1afd8dfb66e assets\tutorialmod\blockstates\pink_garnet_lamp.json 728955dac1ae3917f7506e988e00df1c568fe08a assets\tutorialmod\blockstates\pink_garnet_stairs.json 22e3abaf5d35f4abb244206541c642bd57e93135 assets\tutorialmod\models\item\pink_garnet_fence.json 8d78b866bd5c4782e72d22f2bf83140a407bb550 assets\tutorialmod\models\block\pink_garnet_door_bottom_right.json f7956eb1acfccb309307cd40ba8d8e9a1f968b6e assets\tutorialmod\models\block\pink_garnet_pressure_plate_down.json 6a728eda7238fed6b027e801e464250c3f3144ba assets\tutorialmod\blockstates\pink_garnet_block.json +c5c2c9e3791629868052f3ae6a783c1fbeb77e49 assets\tutorialmod\models\block\pink_garnet_lamp.json 71d14427350d8972a3b7c9d3b7f2f9ebb012d386 assets\tutorialmod\models\block\pink_garnet_button.json 75e5b55e50c1534b829f5a052542c160ae5ed12d assets\tutorialmod\models\item\pink_garnet_slab.json b269497b1a0f1665b4f6e15f1fa613cbb3e52a72 assets\tutorialmod\blockstates\raw_pink_garnet_block.json diff --git a/src/main/generated/.cache/dfb0a8ea05a472c697eb35080aef6b0f1497af5b b/src/main/generated/.cache/dfb0a8ea05a472c697eb35080aef6b0f1497af5b index 9176172..3b23c3c 100644 --- a/src/main/generated/.cache/dfb0a8ea05a472c697eb35080aef6b0f1497af5b +++ b/src/main/generated/.cache/dfb0a8ea05a472c697eb35080aef6b0f1497af5b @@ -1,4 +1,4 @@ -// 1.21.1 2024-09-09T20:42:17.6911749 Tutorial Mod/Recipes +// 1.21.1 2024-09-10T16:12:46.9973489 Tutorial Mod/Recipes 612885645657e824e35aaf7ab21f9a0d6d427c19 data\tutorialmod\advancement\recipes\misc\raw_pink_garnet_from_magic_block.json 434e6d50936f8f4e61b7019a3b6f0717cf6020ac data\tutorialmod\recipe\pink_garnet_from_smelting_raw_pink_garnet.json e4ae33d7b5461829f0d6342e361ffab69adf9fbf data\tutorialmod\advancement\recipes\misc\pink_garnet_from_smelting_raw_pink_garnet.json diff --git a/src/main/generated/.cache/f3f56cafc2cbe41709406bb540eb1fca38a90f18 b/src/main/generated/.cache/f3f56cafc2cbe41709406bb540eb1fca38a90f18 index e8b69af..a48b9a7 100644 --- a/src/main/generated/.cache/f3f56cafc2cbe41709406bb540eb1fca38a90f18 +++ b/src/main/generated/.cache/f3f56cafc2cbe41709406bb540eb1fca38a90f18 @@ -1,2 +1,2 @@ -// 1.21.1 2024-09-09T20:42:17.6891736 Tutorial Mod/Tags for minecraft:item +// 1.21.1 2024-09-10T16:12:46.9963499 Tutorial Mod/Tags for minecraft:item 092261f42ebfb549fb26de57a2f4a5a8b86bc6b9 data\tutorialmod\tags\item\transformable_items.json diff --git a/src/main/generated/assets/tutorialmod/blockstates/pink_garnet_lamp.json b/src/main/generated/assets/tutorialmod/blockstates/pink_garnet_lamp.json new file mode 100644 index 0000000..551f2b8 --- /dev/null +++ b/src/main/generated/assets/tutorialmod/blockstates/pink_garnet_lamp.json @@ -0,0 +1,10 @@ +{ + "variants": { + "clicked=false": { + "model": "tutorialmod:block/pink_garnet_lamp" + }, + "clicked=true": { + "model": "tutorialmod:block/pink_garnet_lamp_on" + } + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp.json b/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp.json new file mode 100644 index 0000000..c1e2c28 --- /dev/null +++ b/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/pink_garnet_lamp" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp_on.json b/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp_on.json new file mode 100644 index 0000000..e4f1bf0 --- /dev/null +++ b/src/main/generated/assets/tutorialmod/models/block/pink_garnet_lamp_on.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tutorialmod:block/pink_garnet_lamp_on" + } +} \ No newline at end of file diff --git a/src/main/generated/assets/tutorialmod/models/item/pink_garnet_lamp.json b/src/main/generated/assets/tutorialmod/models/item/pink_garnet_lamp.json new file mode 100644 index 0000000..a270917 --- /dev/null +++ b/src/main/generated/assets/tutorialmod/models/item/pink_garnet_lamp.json @@ -0,0 +1,3 @@ +{ + "parent": "tutorialmod:block/pink_garnet_lamp" +} \ No newline at end of file diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java b/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java index b661234..c91c6b5 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/ModBlocks.java @@ -3,6 +3,7 @@ import net.fabricmc.fabric.api.itemgroup.v1.ItemGroupEvents; import net.kaupenjoe.tutorialmod.TutorialMod; import net.kaupenjoe.tutorialmod.block.custom.MagicBlock; +import net.kaupenjoe.tutorialmod.block.custom.PinkGarnetLampBlock; import net.minecraft.block.*; import net.minecraft.item.BlockItem; import net.minecraft.item.Item; @@ -54,6 +55,10 @@ public class ModBlocks { public static final Block PINK_GARNET_TRAPDOOR = registerBlock("pink_garnet_trapdoor", new TrapdoorBlock(BlockSetType.IRON, AbstractBlock.Settings.create().strength(2f).requiresTool().nonOpaque())); + public static final Block PINK_GARNET_LAMP = registerBlock("pink_garnet_lamp", + new PinkGarnetLampBlock(AbstractBlock.Settings.create() + .strength(1f).requiresTool().luminance(state -> state.get(PinkGarnetLampBlock.CLICKED) ? 15 : 0))); + private static Block registerBlock(String name, Block block) { registerBlockItem(name, block); diff --git a/src/main/java/net/kaupenjoe/tutorialmod/block/custom/PinkGarnetLampBlock.java b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/PinkGarnetLampBlock.java new file mode 100644 index 0000000..ec0cf1a --- /dev/null +++ b/src/main/java/net/kaupenjoe/tutorialmod/block/custom/PinkGarnetLampBlock.java @@ -0,0 +1,34 @@ +package net.kaupenjoe.tutorialmod.block.custom; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.util.ActionResult; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class PinkGarnetLampBlock extends Block { + public static final BooleanProperty CLICKED = BooleanProperty.of("clicked"); + + public PinkGarnetLampBlock(Settings settings) { + super(settings); + setDefaultState(this.getDefaultState().with(CLICKED, false)); + } + + @Override + protected ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, BlockHitResult hit) { + if(!world.isClient()) { + world.setBlockState(pos, state.cycle(CLICKED)); + } + + return ActionResult.SUCCESS; + } + + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(CLICKED); + } +} diff --git a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModModelProvider.java b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModModelProvider.java index c996951..0af1081 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModModelProvider.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/datagen/ModModelProvider.java @@ -3,10 +3,10 @@ import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput; import net.fabricmc.fabric.api.datagen.v1.provider.FabricModelProvider; import net.kaupenjoe.tutorialmod.block.ModBlocks; +import net.kaupenjoe.tutorialmod.block.custom.PinkGarnetLampBlock; import net.kaupenjoe.tutorialmod.item.ModItems; -import net.minecraft.data.client.BlockStateModelGenerator; -import net.minecraft.data.client.ItemModelGenerator; -import net.minecraft.data.client.Models; +import net.minecraft.data.client.*; +import net.minecraft.util.Identifier; public class ModModelProvider extends FabricModelProvider { public ModModelProvider(FabricDataOutput output) { @@ -34,6 +34,11 @@ public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGen blockStateModelGenerator.registerDoor(ModBlocks.PINK_GARNET_DOOR); blockStateModelGenerator.registerTrapdoor(ModBlocks.PINK_GARNET_TRAPDOOR); + + Identifier lampOffIdentifier = TexturedModel.CUBE_ALL.upload(ModBlocks.PINK_GARNET_LAMP, blockStateModelGenerator.modelCollector); + Identifier lampOnIdentifier = blockStateModelGenerator.createSubModel(ModBlocks.PINK_GARNET_LAMP, "_on", Models.CUBE_ALL, TextureMap::all); + blockStateModelGenerator.blockStateCollector.accept(VariantsBlockStateSupplier.create(ModBlocks.PINK_GARNET_LAMP) + .coordinate(BlockStateModelGenerator.createBooleanModelMap(PinkGarnetLampBlock.CLICKED, lampOnIdentifier, lampOffIdentifier))); } @Override diff --git a/src/main/java/net/kaupenjoe/tutorialmod/item/ModItemGroups.java b/src/main/java/net/kaupenjoe/tutorialmod/item/ModItemGroups.java index 340212d..728bba9 100644 --- a/src/main/java/net/kaupenjoe/tutorialmod/item/ModItemGroups.java +++ b/src/main/java/net/kaupenjoe/tutorialmod/item/ModItemGroups.java @@ -51,6 +51,8 @@ public class ModItemGroups { entries.add(ModBlocks.PINK_GARNET_DOOR); entries.add(ModBlocks.PINK_GARNET_TRAPDOOR); + entries.add(ModBlocks.PINK_GARNET_LAMP); + }).build()); diff --git a/src/main/resources/assets/tutorialmod/lang/en_us.json b/src/main/resources/assets/tutorialmod/lang/en_us.json index f39cd2c..cff7d6e 100644 --- a/src/main/resources/assets/tutorialmod/lang/en_us.json +++ b/src/main/resources/assets/tutorialmod/lang/en_us.json @@ -27,6 +27,8 @@ "block.tutorialmod.pink_garnet_door": "Pink Garnet Door", "block.tutorialmod.pink_garnet_trapdoor": "Pink Garnet Trapdoor", + "block.tutorialmod.pink_garnet_lamp": "Pink Garnet Lamp", + "itemgroup.tutorialmod.pink_garnet_items": "Pink Garnet Items", "itemgroup.tutorialmod.pink_garnet_blocks": "Pink Garnet Blocks", diff --git a/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp.png b/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp.png new file mode 100644 index 0000000..ed0f5fc Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp.png differ diff --git a/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp_on.png b/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp_on.png new file mode 100644 index 0000000..86df279 Binary files /dev/null and b/src/main/resources/assets/tutorialmod/textures/block/pink_garnet_lamp_on.png differ