From 73cb9b1991cb675df6af9862724adf6b7c17a090 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Wed, 8 Apr 2020 18:22:38 -0400 Subject: [PATCH] 1.0.11 Ctrl+Middle-Clicking an active Teleportation Beacon/Restrictor will now correctly appear as active in the inventory --- CHANGELOG.md | 3 ++ build.gradle | 3 -- gradle.properties | 2 +- .../thebrokenrail/reliccraft/RelicCraft.java | 8 ++--- .../block/DragonEggHolderBlockEntity.java | 4 +++ .../item/DragonEggHolderBlockItem.java | 29 +++++++++++++++++++ .../models/item/teleportation_beacon.json | 2 +- .../models/item/teleportation_restrictor.json | 2 +- .../activate_teleportation_beacon.json | 2 +- .../activate_teleportation_restrictor.json | 2 +- .../use_targeted_ender_pearl.json | 2 +- 11 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 650f45a..162d9de 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog +**1.0.11** +* Ctrl+Middle-Clicking an active Teleportation Beacon/Restrictor will now correctly appear as active in the inventory + **1.0.10** * Allow Dilating Random Tick Speed diff --git a/build.gradle b/build.gradle index 7da7499..6dd650e 100644 --- a/build.gradle +++ b/build.gradle @@ -19,9 +19,6 @@ minecraft { repositories { jcenter() - maven { - url "https://dl.bintray.com/shedaniel/autoconfig1u/" - } } dependencies { diff --git a/gradle.properties b/gradle.properties index 45b35f0..579991a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G fabric_loader_version = 0.7.10+build.191 # Mod Properties - mod_version = 1.0.10 + mod_version = 1.0.11 maven_group = com.thebrokenrail archives_base_name = reliccraft diff --git a/src/main/java/com/thebrokenrail/reliccraft/RelicCraft.java b/src/main/java/com/thebrokenrail/reliccraft/RelicCraft.java index 089063b..5362403 100644 --- a/src/main/java/com/thebrokenrail/reliccraft/RelicCraft.java +++ b/src/main/java/com/thebrokenrail/reliccraft/RelicCraft.java @@ -11,6 +11,7 @@ import com.thebrokenrail.reliccraft.block.DragonEggHolderBlockEntity; import com.thebrokenrail.reliccraft.block.TeleportationBeaconBlock; import com.thebrokenrail.reliccraft.block.TeleportationRestrictorBlock; import com.thebrokenrail.reliccraft.entity.RelicEntity; +import com.thebrokenrail.reliccraft.item.DragonEggHolderBlockItem; import com.thebrokenrail.reliccraft.item.TargetedEnderPearlItem; import com.thebrokenrail.reliccraft.item.TimeDilaterItem; import com.thebrokenrail.reliccraft.item.RelicItem; @@ -31,9 +32,7 @@ import net.minecraft.entity.EntityCategory; import net.minecraft.entity.EntityDimensions; import net.minecraft.entity.EntityType; import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItem; import net.minecraft.item.Item; -import net.minecraft.item.ItemGroup; import net.minecraft.loot.BinomialLootTableRange; import net.minecraft.loot.LootTables; import net.minecraft.loot.entry.ItemEntry; @@ -43,7 +42,6 @@ import net.minecraft.sound.SoundEvent; import net.minecraft.sound.SoundEvents; import net.minecraft.structure.StructurePieceType; import net.minecraft.util.Identifier; -import net.minecraft.util.Rarity; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.Registry; import net.minecraft.world.World; @@ -154,8 +152,8 @@ public class RelicCraft implements ModInitializer { TELEPORTATION_BEACON_BLOCK = Registry.register(Registry.BLOCK, new Identifier(NAMESPACE, "teleportation_beacon"), new TeleportationBeaconBlock()); DRAGON_EGG_HOLDER_BLOCK_ENTITY = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(NAMESPACE, "dragon_egg_holder"), BlockEntityType.Builder.create(DragonEggHolderBlockEntity::new, TELEPORTATION_RESTRICTOR_BLOCK, TELEPORTATION_BEACON_BLOCK).build(null)); - Registry.register(Registry.ITEM, new Identifier(NAMESPACE, "teleportation_restrictor"), new BlockItem(TELEPORTATION_RESTRICTOR_BLOCK, new Item.Settings().group(ItemGroup.MISC).rarity(Rarity.UNCOMMON))); - Registry.register(Registry.ITEM, new Identifier(NAMESPACE, "teleportation_beacon"), new BlockItem(TELEPORTATION_BEACON_BLOCK, new Item.Settings().group(ItemGroup.MISC).rarity(Rarity.UNCOMMON))); + Registry.register(Registry.ITEM, new Identifier(NAMESPACE, "teleportation_restrictor"), new DragonEggHolderBlockItem(TELEPORTATION_RESTRICTOR_BLOCK)); + Registry.register(Registry.ITEM, new Identifier(NAMESPACE, "teleportation_beacon"), new DragonEggHolderBlockItem(TELEPORTATION_BEACON_BLOCK)); ACTIVATE_TELEPORTATION_RESTRICTOR_CRITERION = CriteriaRegistryHook.callRegister(new ActivateTeleportationRestrictorCriterion()); REVEAL_RELIC_CRITERION = CriteriaRegistryHook.callRegister(new RevealRelicCriterion()); diff --git a/src/main/java/com/thebrokenrail/reliccraft/block/DragonEggHolderBlockEntity.java b/src/main/java/com/thebrokenrail/reliccraft/block/DragonEggHolderBlockEntity.java index fa02836..ffaa073 100644 --- a/src/main/java/com/thebrokenrail/reliccraft/block/DragonEggHolderBlockEntity.java +++ b/src/main/java/com/thebrokenrail/reliccraft/block/DragonEggHolderBlockEntity.java @@ -108,6 +108,10 @@ public class DragonEggHolderBlockEntity extends BlockEntity implements Inventory @Override public void markDirty() { super.markDirty(); + updateBlockState(); + } + + private void updateBlockState() { if (hasWorld()) { assert getWorld() != null; BlockState state = getWorld().getBlockState(pos); diff --git a/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java b/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java new file mode 100644 index 0000000..b286978 --- /dev/null +++ b/src/main/java/com/thebrokenrail/reliccraft/item/DragonEggHolderBlockItem.java @@ -0,0 +1,29 @@ +package com.thebrokenrail.reliccraft.item; + +import com.thebrokenrail.reliccraft.RelicCraft; +import net.minecraft.block.Block; +import net.minecraft.inventory.Inventories; +import net.minecraft.item.BlockItem; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.util.DefaultedList; +import net.minecraft.util.Identifier; +import net.minecraft.util.Rarity; + +public class DragonEggHolderBlockItem extends BlockItem { + public DragonEggHolderBlockItem(Block block) { + super(block, new Settings().rarity(Rarity.UNCOMMON).group(ItemGroup.MISC)); + addPropertyGetter(new Identifier(RelicCraft.NAMESPACE, "active"), (stack, world, entity) -> { + CompoundTag tag = stack.getSubTag("BlockEntityTag"); + if (tag != null) { + DefaultedList list = DefaultedList.ofSize(1, ItemStack.EMPTY); + Inventories.fromTag(tag, list); + if (!list.get(0).isEmpty()) { + return 1; + } + } + return 0; + }); + } +} diff --git a/src/main/resources/assets/reliccraft/models/item/teleportation_beacon.json b/src/main/resources/assets/reliccraft/models/item/teleportation_beacon.json index f96ab67..d268d6a 100644 --- a/src/main/resources/assets/reliccraft/models/item/teleportation_beacon.json +++ b/src/main/resources/assets/reliccraft/models/item/teleportation_beacon.json @@ -3,7 +3,7 @@ "overrides": [ { "predicate": { - "custom_model_data": 1 + "reliccraft:active": 1 }, "model": "reliccraft:block/active_teleportation_beacon" } diff --git a/src/main/resources/assets/reliccraft/models/item/teleportation_restrictor.json b/src/main/resources/assets/reliccraft/models/item/teleportation_restrictor.json index 5b8fd3b..e9ab779 100644 --- a/src/main/resources/assets/reliccraft/models/item/teleportation_restrictor.json +++ b/src/main/resources/assets/reliccraft/models/item/teleportation_restrictor.json @@ -3,7 +3,7 @@ "overrides": [ { "predicate": { - "custom_model_data": 1 + "reliccraft:active": 1 }, "model": "reliccraft:block/active_teleportation_restrictor" } diff --git a/src/main/resources/data/reliccraft/advancements/activate_teleportation_beacon.json b/src/main/resources/data/reliccraft/advancements/activate_teleportation_beacon.json index 063aa99..0df14a2 100644 --- a/src/main/resources/data/reliccraft/advancements/activate_teleportation_beacon.json +++ b/src/main/resources/data/reliccraft/advancements/activate_teleportation_beacon.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "reliccraft:teleportation_beacon", - "nbt": "{CustomModelData: 1}" + "nbt": "{BlockEntityTag: {Items: [{Slot: 0b, id: \"minecraft:dragon_egg\", Count: 1b}], id: \"reliccraft:dragon_egg_holder\"}}" }, "title": { "translate": "advancements.reliccraft.activate_teleportation_beacon.title" diff --git a/src/main/resources/data/reliccraft/advancements/activate_teleportation_restrictor.json b/src/main/resources/data/reliccraft/advancements/activate_teleportation_restrictor.json index 6201b4f..494fa77 100644 --- a/src/main/resources/data/reliccraft/advancements/activate_teleportation_restrictor.json +++ b/src/main/resources/data/reliccraft/advancements/activate_teleportation_restrictor.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "reliccraft:teleportation_restrictor", - "nbt": "{CustomModelData: 1}" + "nbt": "{BlockEntityTag: {Items: [{Slot: 0b, id: \"minecraft:dragon_egg\", Count: 1b}], id: \"reliccraft:dragon_egg_holder\"}}" }, "title": { "translate": "advancements.reliccraft.activate_teleportation_restrictor.title" diff --git a/src/main/resources/data/reliccraft/advancements/use_targeted_ender_pearl.json b/src/main/resources/data/reliccraft/advancements/use_targeted_ender_pearl.json index db8efa9..f9ec551 100644 --- a/src/main/resources/data/reliccraft/advancements/use_targeted_ender_pearl.json +++ b/src/main/resources/data/reliccraft/advancements/use_targeted_ender_pearl.json @@ -3,7 +3,7 @@ "display": { "icon": { "item": "reliccraft:teleportation_beacon", - "nbt": "{CustomModelData: 1}" + "nbt": "{BlockEntityTag: {Items: [{Slot: 0b, id: \"minecraft:dragon_egg\", Count: 1b}], id: \"reliccraft:dragon_egg_holder\"}}" }, "title": { "translate": "advancements.reliccraft.use_targeted_ender_pearl.title"