mirror of
https://github.com/Ellpeck/NaturesAura.git
synced 2024-11-26 05:08:34 +01:00
ring of last chance
This commit is contained in:
parent
d1de398db4
commit
5a44d3f8af
27 changed files with 193 additions and 27 deletions
|
@ -1,17 +1,32 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=north": {
|
"facing=north,waterlogged=false": {
|
||||||
"model": "naturesaura:block/blast_furnace_booster"
|
"model": "naturesaura:block/blast_furnace_booster"
|
||||||
},
|
},
|
||||||
"facing=south": {
|
"facing=south,waterlogged=false": {
|
||||||
"model": "naturesaura:block/blast_furnace_booster",
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west": {
|
"facing=west,waterlogged=false": {
|
||||||
"model": "naturesaura:block/blast_furnace_booster",
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east": {
|
"facing=east,waterlogged=false": {
|
||||||
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=north,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/blast_furnace_booster"
|
||||||
|
},
|
||||||
|
"facing=south,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,waterlogged=true": {
|
||||||
"model": "naturesaura:block/blast_furnace_booster",
|
"model": "naturesaura:block/blast_furnace_booster",
|
||||||
"y": 90
|
"y": 90
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,53 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=down": {
|
"facing=down,waterlogged=false": {
|
||||||
"model": "naturesaura:block/furnace_heater",
|
"model": "naturesaura:block/furnace_heater",
|
||||||
"x": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"facing=up": {
|
"facing=up,waterlogged=false": {
|
||||||
"model": "naturesaura:block/furnace_heater"
|
"model": "naturesaura:block/furnace_heater"
|
||||||
},
|
},
|
||||||
"facing=north": {
|
"facing=north,waterlogged=false": {
|
||||||
"model": "naturesaura:block/furnace_heater",
|
"model": "naturesaura:block/furnace_heater",
|
||||||
"x": 90
|
"x": 90
|
||||||
},
|
},
|
||||||
"facing=south": {
|
"facing=south,waterlogged=false": {
|
||||||
"model": "naturesaura:block/furnace_heater",
|
"model": "naturesaura:block/furnace_heater",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west": {
|
"facing=west,waterlogged=false": {
|
||||||
"model": "naturesaura:block/furnace_heater",
|
"model": "naturesaura:block/furnace_heater",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east": {
|
"facing=east,waterlogged=false": {
|
||||||
|
"model": "naturesaura:block/furnace_heater",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/furnace_heater",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/furnace_heater"
|
||||||
|
},
|
||||||
|
"facing=north,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/furnace_heater",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/furnace_heater",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,waterlogged=true": {
|
||||||
|
"model": "naturesaura:block/furnace_heater",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,waterlogged=true": {
|
||||||
"model": "naturesaura:block/furnace_heater",
|
"model": "naturesaura:block/furnace_heater",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "naturesaura:item/death_ring"
|
||||||
|
}
|
||||||
|
}
|
6
src/generated/resources/data/curios/tags/items/ring.json
Normal file
6
src/generated/resources/data/curios/tags/items/ring.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"naturesaura:death_ring"
|
||||||
|
]
|
||||||
|
}
|
|
@ -37,6 +37,7 @@ public class CuriosCompat implements ICompat {
|
||||||
.put(ModItems.AURA_CACHE, CurioTags.BELT)
|
.put(ModItems.AURA_CACHE, CurioTags.BELT)
|
||||||
.put(ModItems.AURA_TROVE, CurioTags.BELT)
|
.put(ModItems.AURA_TROVE, CurioTags.BELT)
|
||||||
.put(ModItems.SHOCKWAVE_CREATOR, CurioTags.NECKLACE)
|
.put(ModItems.SHOCKWAVE_CREATOR, CurioTags.NECKLACE)
|
||||||
|
.put(ModItems.DEATH_RING, CurioTags.RING)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -32,7 +32,7 @@ import static net.minecraft.dispenser.DefaultDispenseItemBehavior.doDispense;
|
||||||
public class ItemAuraBottle extends ItemImpl implements IColorProvidingItem, ICustomItemModel {
|
public class ItemAuraBottle extends ItemImpl implements IColorProvidingItem, ICustomItemModel {
|
||||||
|
|
||||||
public ItemAuraBottle(Item emptyBottle) {
|
public ItemAuraBottle(Item emptyBottle) {
|
||||||
super("aura_bottle", new Properties().group(NaturesAura.CREATIVE_TAB));
|
super("aura_bottle");
|
||||||
MinecraftForge.EVENT_BUS.register(new EventHandler());
|
MinecraftForge.EVENT_BUS.register(new EventHandler());
|
||||||
|
|
||||||
DispenserBlock.registerDispenseBehavior(emptyBottle, (source, stack) -> {
|
DispenserBlock.registerDispenseBehavior(emptyBottle, (source, stack) -> {
|
||||||
|
|
|
@ -38,7 +38,7 @@ public class ItemAuraCache extends ItemImpl implements ITrinketItem {
|
||||||
private final int capacity;
|
private final int capacity;
|
||||||
|
|
||||||
public ItemAuraCache(String name, int capacity) {
|
public ItemAuraCache(String name, int capacity) {
|
||||||
super(name, new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super(name, new Properties().maxStackSize(1));
|
||||||
this.capacity = capacity;
|
this.capacity = capacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ import net.minecraft.world.World;
|
||||||
|
|
||||||
public class ItemCaveFinder extends ItemImpl {
|
public class ItemCaveFinder extends ItemImpl {
|
||||||
public ItemCaveFinder() {
|
public ItemCaveFinder() {
|
||||||
super("cave_finder", new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super("cave_finder", new Properties().maxStackSize(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -23,7 +23,7 @@ import java.util.List;
|
||||||
public class ItemColorChanger extends ItemImpl implements IColorProvidingItem, ICustomItemModel {
|
public class ItemColorChanger extends ItemImpl implements IColorProvidingItem, ICustomItemModel {
|
||||||
|
|
||||||
public ItemColorChanger() {
|
public ItemColorChanger() {
|
||||||
super("color_changer", new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super("color_changer", new Properties().maxStackSize(1));
|
||||||
|
|
||||||
this.addPropertyOverride(new ResourceLocation(NaturesAura.MOD_ID, "fill_mode"),
|
this.addPropertyOverride(new ResourceLocation(NaturesAura.MOD_ID, "fill_mode"),
|
||||||
(stack, worldIn, entityIn) -> isFillMode(stack) ? 1F : 0F);
|
(stack, worldIn, entityIn) -> isFillMode(stack) ? 1F : 0F);
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
package de.ellpeck.naturesaura.items;
|
||||||
|
|
||||||
|
import de.ellpeck.naturesaura.Helper;
|
||||||
|
import de.ellpeck.naturesaura.packet.PacketClient;
|
||||||
|
import de.ellpeck.naturesaura.packet.PacketHandler;
|
||||||
|
import net.minecraft.entity.LivingEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.potion.EffectInstance;
|
||||||
|
import net.minecraft.potion.Effects;
|
||||||
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
|
import net.minecraftforge.event.entity.living.LivingDeathEvent;
|
||||||
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
|
|
||||||
|
public class ItemDeathRing extends ItemImpl {
|
||||||
|
public ItemDeathRing() {
|
||||||
|
super("death_ring", new Properties().maxStackSize(1));
|
||||||
|
MinecraftForge.EVENT_BUS.register(new Events());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Events {
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void onDeath(LivingDeathEvent event) {
|
||||||
|
LivingEntity entity = event.getEntityLiving();
|
||||||
|
if (!entity.world.isRemote && entity instanceof PlayerEntity) {
|
||||||
|
ItemStack equipped = Helper.getEquippedItem(s -> s.getItem() == ModItems.DEATH_RING, (PlayerEntity) entity);
|
||||||
|
if (!equipped.isEmpty()) {
|
||||||
|
entity.setHealth(entity.getMaxHealth() / 2);
|
||||||
|
entity.clearActivePotions();
|
||||||
|
entity.addPotionEffect(new EffectInstance(Effects.REGENERATION, 500, 1));
|
||||||
|
|
||||||
|
PacketHandler.sendToAllAround(entity.world, entity.getPosition(), 32,
|
||||||
|
new PacketClient(1, entity.getEntityId()));
|
||||||
|
|
||||||
|
equipped.shrink(1);
|
||||||
|
event.setCanceled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,7 +21,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
public class ItemEffectPowder extends ItemImpl implements IColorProvidingItem {
|
public class ItemEffectPowder extends ItemImpl implements IColorProvidingItem {
|
||||||
|
|
||||||
public ItemEffectPowder() {
|
public ItemEffectPowder() {
|
||||||
super("effect_powder", new Properties().group(NaturesAura.CREATIVE_TAB));
|
super("effect_powder");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static ResourceLocation getEffect(ItemStack stack) {
|
public static ResourceLocation getEffect(ItemStack stack) {
|
||||||
|
|
|
@ -31,7 +31,7 @@ import java.util.List;
|
||||||
|
|
||||||
public class ItemEnderAccess extends ItemImpl {
|
public class ItemEnderAccess extends ItemImpl {
|
||||||
public ItemEnderAccess() {
|
public ItemEnderAccess() {
|
||||||
super("ender_access", new Properties().group(NaturesAura.CREATIVE_TAB));
|
super("ender_access");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -17,7 +17,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
public class ItemEye extends ItemImpl implements ITrinketItem {
|
public class ItemEye extends ItemImpl implements ITrinketItem {
|
||||||
|
|
||||||
public ItemEye(String name) {
|
public ItemEye(String name) {
|
||||||
super(name, new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super(name, new Properties().maxStackSize(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,10 +5,9 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
|
||||||
// Name (Glowing) ambiguous?
|
|
||||||
public class ItemGlowing extends ItemImpl {
|
public class ItemGlowing extends ItemImpl {
|
||||||
public ItemGlowing(String baseName) {
|
public ItemGlowing(String baseName) {
|
||||||
super(baseName, new Properties().group(NaturesAura.CREATIVE_TAB));
|
super(baseName);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -11,7 +11,7 @@ import net.minecraft.util.ActionResultType;
|
||||||
public class ItemGoldFiber extends ItemImpl implements IColorProvidingItem {
|
public class ItemGoldFiber extends ItemImpl implements IColorProvidingItem {
|
||||||
|
|
||||||
public ItemGoldFiber() {
|
public ItemGoldFiber() {
|
||||||
super("gold_fiber", new Properties().group(NaturesAura.CREATIVE_TAB));
|
super("gold_fiber");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -10,11 +10,11 @@ public class ItemImpl extends Item implements IModItem {
|
||||||
private final String baseName;
|
private final String baseName;
|
||||||
|
|
||||||
public ItemImpl(String baseName) {
|
public ItemImpl(String baseName) {
|
||||||
this(baseName, new Properties().group(NaturesAura.CREATIVE_TAB));
|
this(baseName, new Properties());
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemImpl(String baseName, Item.Properties properties) {
|
public ItemImpl(String baseName, Item.Properties properties) {
|
||||||
super(properties);
|
super(properties.group(NaturesAura.CREATIVE_TAB));
|
||||||
this.baseName = baseName;
|
this.baseName = baseName;
|
||||||
ModRegistry.add(this);
|
ModRegistry.add(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ import javax.annotation.Nonnull;
|
||||||
public class ItemMoverMinecart extends ItemImpl {
|
public class ItemMoverMinecart extends ItemImpl {
|
||||||
|
|
||||||
public ItemMoverMinecart() {
|
public ItemMoverMinecart() {
|
||||||
super("mover_cart", new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super("mover_cart", new Properties().maxStackSize(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nonnull
|
@Nonnull
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class ItemMultiblockMaker extends ItemImpl {
|
||||||
private static List<IMultiblock> multiblocks;
|
private static List<IMultiblock> multiblocks;
|
||||||
|
|
||||||
public ItemMultiblockMaker() {
|
public ItemMultiblockMaker() {
|
||||||
super("multiblock_maker", new Properties().group(NaturesAura.CREATIVE_TAB));
|
super("multiblock_maker");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getMultiblock(ItemStack stack) {
|
private static int getMultiblock(ItemStack stack) {
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class ItemRangeVisualizer extends ItemImpl {
|
||||||
public static final ListMultimap<DimensionType, BlockPos> VISUALIZED_RAILS = ArrayListMultimap.create();
|
public static final ListMultimap<DimensionType, BlockPos> VISUALIZED_RAILS = ArrayListMultimap.create();
|
||||||
|
|
||||||
public ItemRangeVisualizer() {
|
public ItemRangeVisualizer() {
|
||||||
super("range_visualizer", new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super("range_visualizer", new Properties().maxStackSize(1));
|
||||||
MinecraftForge.EVENT_BUS.register(new EventHandler());
|
MinecraftForge.EVENT_BUS.register(new EventHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ import java.util.List;
|
||||||
public class ItemShockwaveCreator extends ItemImpl implements ITrinketItem {
|
public class ItemShockwaveCreator extends ItemImpl implements ITrinketItem {
|
||||||
|
|
||||||
public ItemShockwaveCreator() {
|
public ItemShockwaveCreator() {
|
||||||
super("shockwave_creator", new Properties().maxStackSize(1).group(NaturesAura.CREATIVE_TAB));
|
super("shockwave_creator", new Properties().maxStackSize(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -45,4 +45,5 @@ public final class ModItems {
|
||||||
public static Item ENDER_ACCESS;
|
public static Item ENDER_ACCESS;
|
||||||
public static Item CAVE_FINDER;
|
public static Item CAVE_FINDER;
|
||||||
public static Item CRIMSON_MEAL;
|
public static Item CRIMSON_MEAL;
|
||||||
|
public static Item DEATH_RING;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,13 @@
|
||||||
package de.ellpeck.naturesaura.packet;
|
package de.ellpeck.naturesaura.packet;
|
||||||
|
|
||||||
import de.ellpeck.naturesaura.items.ItemRangeVisualizer;
|
import de.ellpeck.naturesaura.items.ItemRangeVisualizer;
|
||||||
|
import de.ellpeck.naturesaura.items.ModItems;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.entity.Entity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.network.PacketBuffer;
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.particles.ParticleTypes;
|
||||||
|
import net.minecraft.util.SoundEvents;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.world.dimension.DimensionType;
|
import net.minecraft.world.dimension.DimensionType;
|
||||||
import net.minecraftforge.fml.network.NetworkEvent;
|
import net.minecraftforge.fml.network.NetworkEvent;
|
||||||
|
@ -52,6 +57,13 @@ public class PacketClient {
|
||||||
int goalDim = message.data[0];
|
int goalDim = message.data[0];
|
||||||
BlockPos goalPos = new BlockPos(message.data[1], message.data[2], message.data[3]);
|
BlockPos goalPos = new BlockPos(message.data[1], message.data[2], message.data[3]);
|
||||||
ItemRangeVisualizer.visualize(mc.player, ItemRangeVisualizer.VISUALIZED_RAILS, DimensionType.getById(goalDim), goalPos);
|
ItemRangeVisualizer.visualize(mc.player, ItemRangeVisualizer.VISUALIZED_RAILS, DimensionType.getById(goalDim), goalPos);
|
||||||
|
case 1:
|
||||||
|
Entity entity = mc.world.getEntityByID(message.data[0]);
|
||||||
|
mc.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30);
|
||||||
|
mc.world.playSound(entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ITEM_TOTEM_USE, entity.getSoundCategory(), 1.0F, 1.0F, false);
|
||||||
|
if (entity == mc.player) {
|
||||||
|
mc.gameRenderer.displayItemActivation(new ItemStack(ModItems.DEATH_RING));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,8 @@ public final class ModRegistry {
|
||||||
new ItemImpl("token_grief"),
|
new ItemImpl("token_grief"),
|
||||||
new ItemEnderAccess(),
|
new ItemEnderAccess(),
|
||||||
new ItemCaveFinder(),
|
new ItemCaveFinder(),
|
||||||
new ItemCrimsonMeal()
|
new ItemCrimsonMeal(),
|
||||||
|
new ItemDeathRing()
|
||||||
);
|
);
|
||||||
Helper.populateObjectHolders(ModItems.class, event.getRegistry());
|
Helper.populateObjectHolders(ModItems.class, event.getRegistry());
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,6 +105,7 @@
|
||||||
"item.naturesaura.cave_finder": "Staff of Shadows",
|
"item.naturesaura.cave_finder": "Staff of Shadows",
|
||||||
"item.naturesaura.aura_trove": "Aura Trove",
|
"item.naturesaura.aura_trove": "Aura Trove",
|
||||||
"item.naturesaura.crimson_meal": "Crimson Meal",
|
"item.naturesaura.crimson_meal": "Crimson Meal",
|
||||||
|
"item.naturesaura.death_ring": "Ring of Last Chance",
|
||||||
"container.naturesaura:tree_ritual.name": "Ritual of the Forest",
|
"container.naturesaura:tree_ritual.name": "Ritual of the Forest",
|
||||||
"container.naturesaura:altar.name": "Natural Altar Infusion",
|
"container.naturesaura:altar.name": "Natural Altar Infusion",
|
||||||
"container.naturesaura:offering.name": "Offering to the Gods",
|
"container.naturesaura:offering.name": "Offering to the Gods",
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 433 B |
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "Ring of Last Chance",
|
||||||
|
"icon": "naturesaura:death_ring",
|
||||||
|
"category": "items",
|
||||||
|
"advancement": "naturesaura:sky_ingot",
|
||||||
|
"pages": [
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"text": "When one is stuck, as one says, between a rock and a hard place, not much can be done - sometimes, $(thing)death$() just has to be accepted as an occurence.$(p)That's what magical botanists used to think before they realized that $(thing)death itself$() could be $()averted$() using something as simple as a ring: The $(item)Ring of Last Chance$(), when placed anywhere in the user's"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"text": "inventory, will prevent their death by healing them and $(thing)disappearing$() in the process, similary to the $(item)Totem of Undying$()."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "crafting",
|
||||||
|
"text": "Creating the $(item)Ring of Last Chance$()$(p)$(italic)This Ring Fits perfectly",
|
||||||
|
"recipe": "naturesaura:death_ring"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
35
src/main/resources/data/naturesaura/recipes/death_ring.json
Normal file
35
src/main/resources/data/naturesaura/recipes/death_ring.json
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"pattern": [
|
||||||
|
"TKE",
|
||||||
|
"GSG",
|
||||||
|
"NGN"
|
||||||
|
],
|
||||||
|
"key": {
|
||||||
|
"G": {
|
||||||
|
"item": "minecraft:gold_ingot"
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"item": "naturesaura:sky_ingot"
|
||||||
|
},
|
||||||
|
"T": {
|
||||||
|
"item": "naturesaura:token_terror"
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"item": "naturesaura:token_euphoria"
|
||||||
|
},
|
||||||
|
"N": {
|
||||||
|
"type": "forge:nbt",
|
||||||
|
"item": "naturesaura:aura_bottle",
|
||||||
|
"nbt": {
|
||||||
|
"stored_type": "naturesaura:end"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"K": {
|
||||||
|
"item": "minecraft:wither_skeleton_skull"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"result": {
|
||||||
|
"item": "naturesaura:death_ring"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue