refactor: Flattened the runestone blocks

This commit is contained in:
WinDanesz
2022-09-09 23:51:30 +02:00
parent b1e70c01f0
commit 5d337b93a6
54 changed files with 399 additions and 333 deletions
@@ -1,5 +1,6 @@
package electroblob.wizardry.block;
import electroblob.wizardry.api.IElemental;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.registry.WizardryTabs;
import net.minecraft.block.Block;
@@ -11,7 +12,7 @@ import net.minecraft.world.IBlockAccess;
import java.util.EnumMap;
public class BlockCrystal extends Block {
public class BlockCrystal extends Block implements IElemental {
private static final EnumMap<Element, MapColor> map_colours = new EnumMap<>(Element.class);
@@ -26,6 +27,9 @@ public class BlockCrystal extends Block {
map_colours.put(Element.HEALING, MapColor.YELLOW);
}
@Override
public Element getElement() { return element; }
private final Element element;
public BlockCrystal(Element element) {
@@ -5,24 +5,15 @@ import electroblob.wizardry.registry.WizardryTabs;
import net.minecraft.block.Block;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.ItemStack;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import java.util.Arrays;
import java.util.EnumMap;
public class BlockRunestone extends Block {
public static final PropertyEnum<Element> ELEMENT = PropertyEnum.create("element", Element.class,
Arrays.copyOfRange(Element.values(), 1, Element.values().length)); // Everything except MAGIC
private static final EnumMap<Element, MapColor> map_colours = new EnumMap<>(Element.class);
static {
@@ -34,54 +25,24 @@ public class BlockRunestone extends Block {
map_colours.put(Element.SORCERY, MapColor.GRAY);
map_colours.put(Element.HEALING, MapColor.YELLOW_STAINED_HARDENED_CLAY);
}
public BlockRunestone(Material material){
private final Element element;
public BlockRunestone(Material material, Element element) {
super(material);
this.setDefaultState(this.blockState.getBaseState().withProperty(ELEMENT, Element.FIRE));
this.setCreativeTab(WizardryTabs.WIZARDRY);
this.setCreativeTab(WizardryTabs.WIZARDRY);
this.setHardness(1.5F);
this.setResistance(10.0F);
}
@Override
public int damageDropped(IBlockState state){
return state.getValue(ELEMENT).ordinal();
}
@Override
public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos){
return map_colours.get(state.getProperties().get(ELEMENT));
}
@Override
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> items){
if(this.getCreativeTab() == tab){
for(Element element : Arrays.copyOfRange(Element.values(), 1, Element.values().length)){
items.add(new ItemStack(this, 1, element.ordinal()));
}
}
this.element = element;
}
public Element getElement() { return element; }
@Override
public BlockRenderLayer getRenderLayer(){
public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos) { return map_colours.get(element); }
@Override
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT; // Required to shade parts of the block faces differently to others
}
@Override
public IBlockState getStateFromMeta(int metadata){
Element element = Element.values()[metadata];
if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState();
return this.getDefaultState().withProperty(ELEMENT, element);
}
@Override
public int getMetaFromState(IBlockState state){
return state.getValue(ELEMENT).ordinal();
}
@Override
protected BlockStateContainer createBlockState(){
return new BlockStateContainer(this, ELEMENT);
}
}
@@ -1,5 +1,6 @@
package electroblob.wizardry.block;
import electroblob.wizardry.api.IElemental;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.registry.WizardryTabs;
import electroblob.wizardry.tileentity.TileEntityShrineCore;
@@ -8,28 +9,20 @@ import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.properties.PropertyEnum;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockRenderLayer;
import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import javax.annotation.Nullable;
import java.util.Arrays;
import java.util.EnumMap;
public class BlockPedestal extends Block implements ITileEntityProvider {
public static final PropertyEnum<Element> ELEMENT = PropertyEnum.create("element", Element.class,
Arrays.copyOfRange(Element.values(), 1, Element.values().length)); // Everything except MAGIC
public class BlockRunestonePedestal extends Block implements ITileEntityProvider, IElemental {
// A 'natural' pedestal is one that was generated as part of a structure, is unbreakable and has a tileentity
public static final PropertyBool NATURAL = PropertyBool.create("natural");
@@ -46,80 +39,66 @@ public class BlockPedestal extends Block implements ITileEntityProvider {
map_colours.put(Element.HEALING, MapColor.YELLOW_STAINED_HARDENED_CLAY);
}
public BlockPedestal(Material material){
private final Element element;
public BlockRunestonePedestal(Material material, Element element) {
super(material);
this.setDefaultState(this.blockState.getBaseState().withProperty(ELEMENT, Element.FIRE).withProperty(NATURAL, false));
this.setDefaultState(this.blockState.getBaseState().withProperty(NATURAL, false));
this.setCreativeTab(WizardryTabs.WIZARDRY);
this.setHardness(1.5F);
this.setResistance(10.0F);
this.element = element;
}
@Override
public int damageDropped(IBlockState state){
return state.getValue(ELEMENT).ordinal(); // Ignore the NATURAL state here, it's unobtainable
public Element getElement() {
return element;
}
@Override
public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos){
return map_colours.get(state.getProperties().get(ELEMENT));
public MapColor getMapColor(IBlockState state, IBlockAccess world, BlockPos pos) {
return map_colours.get(element);
}
@Override
public void getSubBlocks(CreativeTabs tab, NonNullList<ItemStack> items){
// Ignore the NATURAL state here, it's unobtainable
if(this.getCreativeTab() == tab){
for(Element element : Arrays.copyOfRange(Element.values(), 1, Element.values().length)){
items.add(new ItemStack(this, 1, element.ordinal()));
}
}
}
@Override
public BlockRenderLayer getRenderLayer(){
public BlockRenderLayer getRenderLayer() {
return BlockRenderLayer.CUTOUT; // Required to shade parts of the block faces differently to others
}
@Override
public float getBlockHardness(IBlockState state, World world, BlockPos pos){
public float getBlockHardness(IBlockState state, World world, BlockPos pos) {
return state.getValue(NATURAL) ? -1 : super.getBlockHardness(state, world, pos);
}
@Override
public float getExplosionResistance(World world, BlockPos pos, @Nullable Entity exploder, Explosion explosion){
public float getExplosionResistance(World world, BlockPos pos, @Nullable Entity exploder, Explosion explosion) {
return world.getBlockState(pos).getValue(NATURAL) ? 6000000.0F : super.getExplosionResistance(world, pos, exploder, explosion);
}
@Override
public boolean hasTileEntity(IBlockState state){
public boolean hasTileEntity(IBlockState state) {
return state.getValue(NATURAL); // Only naturally-generated pedestals have a (shrine core) tile entity
}
@Nullable
@Override
public TileEntity createNewTileEntity(World world, int meta){
public TileEntity createNewTileEntity(World world, int meta) {
return new TileEntityShrineCore();
}
@Override
public IBlockState getStateFromMeta(int metadata){
boolean natural = false;
if(metadata > ELEMENT.getAllowedValues().size()){
natural = true;
metadata -= ELEMENT.getAllowedValues().size();
}
Element element = Element.values()[metadata];
if(!ELEMENT.getAllowedValues().contains(element)) return this.getDefaultState().withProperty(NATURAL, natural);
return this.getDefaultState().withProperty(ELEMENT, element).withProperty(NATURAL, natural);
public IBlockState getStateFromMeta(int meta) {
return this.getDefaultState().withProperty(NATURAL, meta == 1);
}
@Override
public int getMetaFromState(IBlockState state){
return state.getValue(ELEMENT).ordinal() + (state.getValue(NATURAL) ? ELEMENT.getAllowedValues().size() : 0);
public int getMetaFromState(IBlockState state) {
return state.getValue(NATURAL) ? 1 : 0;
}
@Override
protected BlockStateContainer createBlockState(){
return new BlockStateContainer(this, ELEMENT, NATURAL);
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, NATURAL);
}
}
@@ -1,13 +1,9 @@
package electroblob.wizardry.client.model;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.block.BlockCrystal;
import electroblob.wizardry.block.BlockPedestal;
import electroblob.wizardry.block.BlockRunestone;
import electroblob.wizardry.block.BlockRunestonePedestal;
import electroblob.wizardry.item.IMultiTexturedItem;
import electroblob.wizardry.item.ItemBlockMultiTextured;
import electroblob.wizardry.item.ItemCrystal;
import electroblob.wizardry.item.ItemSpectralDust;
import electroblob.wizardry.registry.WizardryBlocks;
import electroblob.wizardry.registry.WizardryItems;
import net.minecraft.block.BlockPlanks;
@@ -50,17 +46,6 @@ public final class WizardryModels {
@SubscribeEvent
public static void register(ModelRegistryEvent event){
// ItemBlocks
ModelLoader.setCustomStateMapper(WizardryBlocks.runestone, new StateMap.Builder()
.withName(BlockRunestone.ELEMENT).withSuffix("_runestone").build());
ItemBlockMultiTextured runestoneItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.runestone);
registerMultiTexturedModel(runestoneItem);
ModelLoader.setCustomStateMapper(WizardryBlocks.runestone_pedestal, new StateMap.Builder()
.withName(BlockPedestal.ELEMENT).ignore(BlockPedestal.NATURAL).withSuffix("_runestone_pedestal").build()); // Don't care about NATURAL property
ItemBlockMultiTextured pedestalItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.runestone_pedestal);
registerMultiTexturedModel(pedestalItem);
ModelLoader.setCustomStateMapper(WizardryBlocks.gilded_wood, new StateMap.Builder()
.withName(BlockPlanks.VARIANT).withSuffix("_gilded_wood").build());
ItemBlockMultiTextured gildedWoodItem = (ItemBlockMultiTextured)Item.getItemFromBlock(WizardryBlocks.gilded_wood);
@@ -1,16 +1,21 @@
package electroblob.wizardry.item;
import electroblob.wizardry.api.IElemental;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.registry.WizardryTabs;
import net.minecraft.item.Item;
/** Note that in 1.13, <i>the flattening</i> will make this class redundant, much like ItemCoal, which is probably its
* closest analog in vanilla. */
public class ItemCrystal extends Item {
public class ItemCrystal extends Item implements IElemental {
public ItemCrystal(){
private final Element element;
public ItemCrystal(Element element) {
super();
this.setMaxDamage(0);
this.setCreativeTab(WizardryTabs.WIZARDRY);
}
this.setMaxDamage(0);
this.setCreativeTab(WizardryTabs.WIZARDRY);
this.element = element;
}
@Override
public Element getElement() { return element; }
}
@@ -68,7 +68,21 @@ public final class WizardryBlocks {
public static final Block permafrost = placeholder();
public static final Block runestone = placeholder();
public static final Block runestone_pedestal = placeholder();
public static final Block fire_runestone = placeholder();
public static final Block ice_runestone = placeholder();
public static final Block lightning_runestone = placeholder();
public static final Block necromancy_runestone = placeholder();
public static final Block earth_runestone = placeholder();
public static final Block sorcery_runestone = placeholder();
public static final Block healing_runestone = placeholder();
public static final Block fire_runestone_pedestal = placeholder();
public static final Block ice_runestone_pedestal = placeholder();
public static final Block lightning_runestone_pedestal = placeholder();
public static final Block necromancy_runestone_pedestal = placeholder();
public static final Block earth_runestone_pedestal = placeholder();
public static final Block healing_runestone_pedestal = placeholder();
public static final Block sorcery_runestone_pedestal = placeholder();
public static final Block gilded_wood = placeholder();
@@ -140,8 +154,21 @@ public final class WizardryBlocks {
registerBlock(registry, "crystal_flower_pot", new BlockCrystalFlowerPot());
registerBlock(registry, "permafrost", new BlockPermafrost());
registerBlock(registry, "runestone", new BlockRunestone(Material.ROCK));
registerBlock(registry, "runestone_pedestal", new BlockPedestal(Material.ROCK));
registerBlock(registry, "fire_runestone", new BlockRunestone(Material.ROCK, Element.FIRE));
registerBlock(registry, "ice_runestone", new BlockRunestone(Material.ROCK, Element.ICE));
registerBlock(registry, "lightning_runestone", new BlockRunestone(Material.ROCK, Element.LIGHTNING));
registerBlock(registry, "necromancy_runestone", new BlockRunestone(Material.ROCK, Element.NECROMANCY));
registerBlock(registry, "earth_runestone", new BlockRunestone(Material.ROCK, Element.EARTH));
registerBlock(registry, "sorcery_runestone", new BlockRunestone(Material.ROCK, Element.SORCERY));
registerBlock(registry, "healing_runestone", new BlockRunestone(Material.ROCK, Element.HEALING));
registerBlock(registry, "fire_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.FIRE));
registerBlock(registry, "ice_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.ICE));
registerBlock(registry, "lightning_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.LIGHTNING));
registerBlock(registry, "necromancy_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.NECROMANCY));
registerBlock(registry, "earth_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.EARTH));
registerBlock(registry, "healing_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.HEALING));
registerBlock(registry, "sorcery_runestone_pedestal", new BlockRunestonePedestal(Material.ROCK, Element.SORCERY));
registerBlock(registry, "gilded_wood", new BlockGildedWood());
@@ -569,8 +569,14 @@ public final class WizardryItems {
registerItemBlock(registry, WizardryBlocks.sorcery_crystal_block);
registerItemBlock(registry, WizardryBlocks.healing_crystal_block);
registerMultiTexturedItemBlock(registry, WizardryBlocks.runestone, false, elements);
registerMultiTexturedItemBlock(registry, WizardryBlocks.runestone_pedestal, false, elements);
registerItemBlock(registry, WizardryBlocks.fire_runestone);
registerItemBlock(registry, WizardryBlocks.ice_runestone);
registerItemBlock(registry, WizardryBlocks.lightning_runestone);
registerItemBlock(registry, WizardryBlocks.necromancy_runestone);
registerItemBlock(registry, WizardryBlocks.earth_runestone);
registerItemBlock(registry, WizardryBlocks.sorcery_runestone);
registerItemBlock(registry, WizardryBlocks.healing_runestone);
registerMultiTexturedItemBlock(registry, WizardryBlocks.gilded_wood, true, woodTypes);
registerItemBlock(registry, WizardryBlocks.oak_bookshelf);
@@ -592,14 +598,14 @@ public final class WizardryItems {
// Items
registerItem(registry, "magic_crystal", new ItemCrystal());
registerItem(registry, "earth_crystal", new ItemCrystal());
registerItem(registry, "fire_crystal", new ItemCrystal());
registerItem(registry, "healing_crystal", new ItemCrystal());
registerItem(registry, "ice_crystal", new ItemCrystal());
registerItem(registry, "lightning_crystal", new ItemCrystal());
registerItem(registry, "necromancy_crystal", new ItemCrystal());
registerItem(registry, "sorcery_crystal", new ItemCrystal());
registerItem(registry, "magic_crystal", new ItemCrystal(Element.MAGIC));
registerItem(registry, "earth_crystal", new ItemCrystal(Element.EARTH));
registerItem(registry, "fire_crystal", new ItemCrystal(Element.FIRE));
registerItem(registry, "healing_crystal", new ItemCrystal(Element.HEALING));
registerItem(registry, "ice_crystal", new ItemCrystal(Element.ICE));
registerItem(registry, "lightning_crystal", new ItemCrystal(Element.LIGHTNING));
registerItem(registry, "necromancy_crystal", new ItemCrystal(Element.NECROMANCY));
registerItem(registry, "sorcery_crystal", new ItemCrystal(Element.SORCERY));
registerItem(registry, "crystal_shard", new Item().setCreativeTab(WizardryTabs.WIZARDRY));
registerItem(registry, "grand_crystal", new Item().setCreativeTab(WizardryTabs.WIZARDRY));
@@ -1,7 +1,9 @@
package electroblob.wizardry.tileentity;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.block.BlockPedestal;
import electroblob.wizardry.api.IElemental;
import electroblob.wizardry.block.BlockRunestonePedestal;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.entity.living.EntityEvilWizard;
import electroblob.wizardry.entity.living.EntityWizard;
import electroblob.wizardry.packet.PacketConquerShrine;
@@ -101,7 +103,8 @@ public class TileEntityShrineCore extends TileEntity implements ITickable {
}
wizard.setLocationAndAngles(x1, y1 + 0.5, z1, 0, 0);
wizard.setElement(world.getBlockState(pos).getValue(BlockPedestal.ELEMENT));
wizard.setElement(world.getBlockState(pos).getBlock() instanceof IElemental
? ((IElemental) world.getBlockState(pos).getBlock()).getElement() : Element.MAGIC);
wizard.onInitialSpawn(world.getDifficultyForLocation(pos), null);
wizard.hasStructure = true;
@@ -144,9 +147,8 @@ public class TileEntityShrineCore extends TileEntity implements ITickable {
WizardryPacketHandler.net.sendToAllAround(new PacketConquerShrine.Message(this.pos),
new NetworkRegistry.TargetPoint(this.world.provider.getDimension(), x, y, z, 64));
if(world.getBlockState(pos).getBlock() == WizardryBlocks.runestone_pedestal){
world.setBlockState(pos, WizardryBlocks.runestone_pedestal.getDefaultState()
.withProperty(BlockPedestal.ELEMENT, world.getBlockState(pos).getValue(BlockPedestal.ELEMENT)));
if(world.getBlockState(pos).getBlock() instanceof BlockRunestonePedestal){
world.setBlockState(pos, world.getBlockState(pos).getBlock().getDefaultState());
}else{
Wizardry.logger.warn("What's going on?! A shrine core is being conquered but the block at its position is not a runestone pedestal!");
}
@@ -5,6 +5,7 @@ import electroblob.wizardry.block.BlockRunestone;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.entity.living.EntityRemnant;
import electroblob.wizardry.integration.antiqueatlas.WizardryAntiqueAtlasIntegration;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.MobSpawnerBaseLogic;
@@ -17,6 +18,7 @@ import net.minecraft.world.World;
import net.minecraft.world.gen.structure.template.ITemplateProcessor;
import net.minecraft.world.gen.structure.template.PlacementSettings;
import net.minecraft.world.gen.structure.template.Template;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Map;
@@ -58,9 +60,10 @@ public class WorldGenObelisk extends WorldGenSurfaceStructure {
public void spawnStructure(Random random, World world, BlockPos origin, Template template, PlacementSettings settings, ResourceLocation structureFile){
final Element element = Element.values()[1 + random.nextInt(Element.values().length-1)];
Block runeStone = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase() + "_runestone"));
ITemplateProcessor processor = (w, p, i) -> i.blockState.getBlock() instanceof BlockRunestone ? new Template.BlockInfo(
i.pos, i.blockState.withProperty(BlockRunestone.ELEMENT, element), i.tileentityData) : i;
i.pos, runeStone.getDefaultState(), i.tileentityData) : i;
template.addBlocksToWorld(world, origin, processor, settings, 2 | 16);
@@ -1,13 +1,14 @@
package electroblob.wizardry.worldgen;
import electroblob.wizardry.Wizardry;
import electroblob.wizardry.block.BlockPedestal;
import electroblob.wizardry.block.BlockRunestonePedestal;
import electroblob.wizardry.block.BlockRunestone;
import electroblob.wizardry.constants.Element;
import electroblob.wizardry.integration.antiqueatlas.WizardryAntiqueAtlasIntegration;
import electroblob.wizardry.registry.WizardryBlocks;
import electroblob.wizardry.spell.ArcaneLock;
import electroblob.wizardry.tileentity.TileEntityShrineCore;
import net.minecraft.block.Block;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
@@ -15,6 +16,7 @@ import net.minecraft.world.World;
import net.minecraft.world.gen.structure.template.ITemplateProcessor;
import net.minecraft.world.gen.structure.template.PlacementSettings;
import net.minecraft.world.gen.structure.template.Template;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import org.apache.commons.lang3.ArrayUtils;
import java.util.Map;
@@ -50,9 +52,10 @@ public class WorldGenShrine extends WorldGenSurfaceStructure {
public void spawnStructure(Random random, World world, BlockPos origin, Template template, PlacementSettings settings, ResourceLocation structureFile){
final Element element = Element.values()[1 + random.nextInt(Element.values().length-1)];
Block runeStone = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase() + "_runestone"));
ITemplateProcessor processor = (w, p, i) -> i.blockState.getBlock() instanceof BlockRunestone ? new Template.BlockInfo(
i.pos, i.blockState.withProperty(BlockRunestone.ELEMENT, element), i.tileentityData) : i;
i.pos, runeStone.getDefaultState(), i.tileentityData) : i;
template.addBlocksToWorld(world, origin, processor, settings, 2 | 16);
@@ -65,8 +68,8 @@ public class WorldGenShrine extends WorldGenSurfaceStructure {
if(entry.getValue().equals(CORE_DATA_BLOCK_TAG)){
// This bit could have been done with a template processor, but we also need to link the chest and lock it
world.setBlockState(entry.getKey(), WizardryBlocks.runestone_pedestal.getDefaultState()
.withProperty(BlockPedestal.ELEMENT, element).withProperty(BlockPedestal.NATURAL, true));
world.setBlockState(entry.getKey(), ForgeRegistries.BLOCKS.getValue(new ResourceLocation(Wizardry.MODID, element.getName().toLowerCase()
+ "_runestone_pedestal")).getDefaultState().withProperty(BlockRunestonePedestal.NATURAL, true));
TileEntity core = world.getTileEntity(entry.getKey());
TileEntity container = world.getTileEntity(entry.getKey().up());
@@ -7,8 +7,7 @@
"translate": "advancement.ebwizardry:visit_shrine.desc"
},
"icon": {
"item": "ebwizardry:runestone",
"data": 5
"item": "ebwizardry:ice_runestone"
}
},
"parent": "ebwizardry:defeat_evil_wizard",
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Position %s, %s, %s in der dimens
tile.ebwizardry\:transportation_stone.forget=Position %s, %s, %s in der dimension %s vergessen
tile.ebwizardry\:transportation_stone.invalid=Du musst zuerst einen Kreis mit 8 Teleportsteinen bilden!
tile.ebwizardry\:spectral_block.name=Spektralblock
tile.ebwizardry\:runestone.name=Runenstein
tile.ebwizardry\:runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:fire_runestone.name=Runenstein
tile.ebwizardry\:ice_runestone.name=Runenstein
tile.ebwizardry\:lightning_runestone.name=Runenstein
tile.ebwizardry\:necromancy_runestone.name=Runenstein
tile.ebwizardry\:earth_runestone.name=Runenstein
tile.ebwizardry\:healing_runestone.name=Runenstein
tile.ebwizardry\:sorcery_runestone.name=Runenstein
tile.ebwizardry\:fire_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:ice_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:lightning_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:necromancy_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:earth_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:healing_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:sorcery_runestone_pedestal.name=Runenstein Sockel
tile.ebwizardry\:thorns.name=Dornen
tile.ebwizardry\:obsidian_crust.name=Obsidian Kruste
tile.ebwizardry\:dry_frosted_ice.name=Gefrohrenes Trockeneis
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Remembered the location %s, %s, %
tile.ebwizardry\:transportation_stone.forget=Forgot the location %s, %s, %s in dimension %s
tile.ebwizardry\:transportation_stone.invalid=You must make a circle with 8 stones of transportation first!
tile.ebwizardry\:spectral_block.name=Spectral Block
tile.ebwizardry\:runestone.name=Runestone
tile.ebwizardry\:runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:fire_runestone.name=Runestone
tile.ebwizardry\:ice_runestone.name=Runestone
tile.ebwizardry\:lightning_runestone.name=Runestone
tile.ebwizardry\:necromancy_runestone.name=Runestone
tile.ebwizardry\:earth_runestone.name=Runestone
tile.ebwizardry\:healing_runestone.name=Runestone
tile.ebwizardry\:sorcery_runestone.name=Runestone
tile.ebwizardry\:fire_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:ice_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:lightning_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:necromancy_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:earth_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:healing_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:sorcery_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:thorns.name=Thorns
tile.ebwizardry\:obsidian_crust.name=Obsidian Crust
tile.ebwizardry\:dry_frosted_ice.name=Dry Frosted Ice
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Remembered the location %s, %s, %
tile.ebwizardry\:transportation_stone.forget=Forgot the location %s, %s, %s in dimension %s
tile.ebwizardry\:transportation_stone.invalid=You must make a circle with 8 stones of transportation first!
tile.ebwizardry\:spectral_block.name=Spectral Block
tile.ebwizardry\:runestone.name=Runestone
tile.ebwizardry\:runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:fire_runestone.name=Runestone
tile.ebwizardry\:ice_runestone.name=Runestone
tile.ebwizardry\:lightning_runestone.name=Runestone
tile.ebwizardry\:necromancy_runestone.name=Runestone
tile.ebwizardry\:earth_runestone.name=Runestone
tile.ebwizardry\:healing_runestone.name=Runestone
tile.ebwizardry\:sorcery_runestone.name=Runestone
tile.ebwizardry\:fire_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:ice_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:lightning_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:necromancy_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:earth_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:healing_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:sorcery_runestone_pedestal.name=Runestone Pedestal
tile.ebwizardry\:thorns.name=Thorns
tile.ebwizardry\:obsidian_crust.name=Obsidian Crust
tile.ebwizardry\:dry_frosted_ice.name=Dry Frosted Ice
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=La position %s, %s, %s a été ma
tile.ebwizardry\:transportation_stone.forget=La position %s, %s, %s a été effacée dans la dimension %s
tile.ebwizardry\:transportation_stone.invalid=Vous devez d'abord créer un cercle avec 8 pierres de téléportation!
tile.ebwizardry\:spectral_block.name=Bloc spectral
tile.ebwizardry\:runestone.name=Pierre runique
tile.ebwizardry\:runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:fire_runestone.name=Pierre runique
tile.ebwizardry\:ice_runestone.name=Pierre runique
tile.ebwizardry\:lightning_runestone.name=Pierre runique
tile.ebwizardry\:necromancy_runestone.name=Pierre runique
tile.ebwizardry\:earth_runestone.name=Pierre runique
tile.ebwizardry\:healing_runestone.name=Pierre runique
tile.ebwizardry\:sorcery_runestone.name=Pierre runique
tile.ebwizardry\:fire_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:ice_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:lightning_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:necromancy_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:earth_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:healing_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:sorcery_runestone_pedestal.name=Piédestal runique
tile.ebwizardry\:thorns.name=Épines
tile.ebwizardry\:obsidian_crust.name=Croûte d'obsidienne
tile.ebwizardry\:dry_frosted_ice.name=Glace dépolie
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=egjegyezve a hely: %s, %s, %s, %s
tile.ebwizardry\:transportation_stone.forget=Elfelejtve a hely: %s, %s, %s, %s dimenzióban
tile.ebwizardry\:transportation_stone.invalid=Előbb egy kört kell építened 8 Transzportáció Kövéből!
tile.ebwizardry\:spectral_block.name=Spektrálblokk
tile.ebwizardry\:runestone.name=Rúnakő
tile.ebwizardry\:runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:fire_runestone.name=Rúnakő
tile.ebwizardry\:ice_runestone.name=Rúnakő
tile.ebwizardry\:lightning_runestone.name=Rúnakő
tile.ebwizardry\:necromancy_runestone.name=Rúnakő
tile.ebwizardry\:earth_runestone.name=Rúnakő
tile.ebwizardry\:healing_runestone.name=Rúnakő
tile.ebwizardry\:sorcery_runestone.name=Rúnakő
tile.ebwizardry\:fire_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:ice_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:lightning_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:necromancy_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:earth_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:healing_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:sorcery_runestone_pedestal.name=Rúnakő Pedesztál
tile.ebwizardry\:thorns.name=Tövisek
tile.ebwizardry\:obsidian_crust.name=Obszidián Kéreg
tile.ebwizardry\:dry_frosted_ice.name=Száraz Fagyott Jég
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=%s, %s, %s의 %s의 위치를 지
tile.ebwizardry\:transportation_stone.forget=%s, %s, %s의 %s의 위치를 지웠습니다
tile.ebwizardry\:transportation_stone.invalid=먼저 전이의 돌 8개로 전이진을 만들어야 합니다!
tile.ebwizardry\:spectral_block.name=허상 블록
tile.ebwizardry\:runestone.name=룬스톤
tile.ebwizardry\:runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:fire_runestone.name=룬스톤
tile.ebwizardry\:ice_runestone.name=룬스톤
tile.ebwizardry\:lightning_runestone.name=룬스톤
tile.ebwizardry\:necromancy_runestone.name=룬스톤
tile.ebwizardry\:earth_runestone.name=룬스톤
tile.ebwizardry\:healing_runestone.name=룬스톤
tile.ebwizardry\:sorcery_runestone.name=룬스톤
tile.ebwizardry\:fire_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:ice_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:lightning_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:necromancy_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:earth_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:healing_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:sorcery_runestone_pedestal.name=룬스톤 초석
tile.ebwizardry\:thorns.name=가시
tile.ebwizardry\:obsidian_crust.name=흑요석 껍질
tile.ebwizardry\:dry_frosted_ice.name=마른 반투명 얼음
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Zapamiętano lokalizację %s, %s,
tile.ebwizardry\:transportation_stone.forget=Zapomniano lokalizację %s, %s, %s w wymiarze %s
tile.ebwizardry\:transportation_stone.invalid=Najpierw musisz zrobić krąg z 8 kamieniami transportu!
tile.ebwizardry\:spectral_block.name=Blok Spektralny
tile.ebwizardry\:runestone.name=Kamień Runiczny
tile.ebwizardry\:runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:fire_runestone.name=Kamień Runiczny
tile.ebwizardry\:ice_runestone.name=Kamień Runiczny
tile.ebwizardry\:lightning_runestone.name=Kamień Runiczny
tile.ebwizardry\:necromancy_runestone.name=Kamień Runiczny
tile.ebwizardry\:earth_runestone.name=Kamień Runiczny
tile.ebwizardry\:healing_runestone.name=Kamień Runiczny
tile.ebwizardry\:sorcery_runestone.name=Kamień Runiczny
tile.ebwizardry\:fire_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:ice_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:lightning_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:necromancy_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:earth_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:healing_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:sorcery_runestone_pedestal.name=Pilar Runicznego Kamienia
tile.ebwizardry\:thorns.name=Ciernie
tile.ebwizardry\:obsidian_crust.name=Obsydianowa Skorupa
tile.ebwizardry\:dry_frosted_ice.name=Zaschły Lód
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=Запомнил местопол
tile.ebwizardry\:transportation_stone.forget=Забыл местоположение %s, %s, %s в измерении %s
tile.ebwizardry\:transportation_stone.invalid=Первое, что Вы должны сделать, это круг с 8-ю камнями перемещения!
tile.ebwizardry\:spectral_block.name=Спектральный блок
tile.ebwizardry\:runestone.name=Рунный камень
tile.ebwizardry\:runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:fire_runestone.name=Рунный камень
tile.ebwizardry\:ice_runestone.name=Рунный камень
tile.ebwizardry\:lightning_runestone.name=Рунный камень
tile.ebwizardry\:necromancy_runestone.name=Рунный камень
tile.ebwizardry\:earth_runestone.name=Рунный камень
tile.ebwizardry\:healing_runestone.name=Рунный камень
tile.ebwizardry\:sorcery_runestone.name=Рунный камень
tile.ebwizardry\:fire_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:ice_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:lightning_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:necromancy_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:earth_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:healing_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:sorcery_runestone_pedestal.name=Пьедестал из рунного камня
tile.ebwizardry\:thorns.name=Шипы
tile.ebwizardry\:obsidian_crust.name=Обсидиановая кора
tile.ebwizardry\:dry_frosted_ice.name=Сухой матовый лёд
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=你记住了位于 %4$s 维度 %1
tile.ebwizardry\:transportation_stone.forget=你遗忘了位于 %4$s 维度 %1$s%2$s%3$s的传送坐标
tile.ebwizardry\:transportation_stone.invalid=你必须用8个传送石围成一个圈!
tile.ebwizardry\:spectral_block.name=幽冥方块
tile.ebwizardry\:runestone.name=符石
tile.ebwizardry\:runestone_pedestal.name=符石基座
tile.ebwizardry\:fire_runestone.name=符石
tile.ebwizardry\:ice_runestone.name=符石
tile.ebwizardry\:lightning_runestone.name=符石
tile.ebwizardry\:necromancy_runestone.name=符石
tile.ebwizardry\:earth_runestone.name=符石
tile.ebwizardry\:healing_runestone.name=符石
tile.ebwizardry\:sorcery_runestone.name=符石
tile.ebwizardry\:fire_runestone_pedestal.name=符石基座
tile.ebwizardry\:ice_runestone_pedestal.name=符石基座
tile.ebwizardry\:lightning_runestone_pedestal.name=符石基座
tile.ebwizardry\:necromancy_runestone_pedestal.name=符石基座
tile.ebwizardry\:earth_runestone_pedestal.name=符石基座
tile.ebwizardry\:healing_runestone_pedestal.name=符石基座
tile.ebwizardry\:sorcery_runestone_pedestal.name=符石基座
tile.ebwizardry\:thorns.name=荆棘
tile.ebwizardry\:obsidian_crust.name=黑曜石层
tile.ebwizardry\:dry_frosted_ice.name=干燥霜冰
@@ -11,8 +11,20 @@ tile.ebwizardry\:transportation_stone.remember=記憶座標位置 %s, %s, %s 於
tile.ebwizardry\:transportation_stone.forget=消除記憶座標位置 %s, %s, %s 於世界: %s
tile.ebwizardry\:transportation_stone.invalid=你必須先用8個傳送石圍成一圈!
tile.ebwizardry\:spectral_block.name=具現化方塊
tile.ebwizardry\:runestone.name=符文石
tile.ebwizardry\:runestone_pedestal.name=符文石
tile.ebwizardry\:fire_runestone.name=符文石
tile.ebwizardry\:ice_runestone.name=符文石
tile.ebwizardry\:lightning_runestone.name=符文石
tile.ebwizardry\:necromancy_runestone.name=符文石
tile.ebwizardry\:earth_runestone.name=符文石
tile.ebwizardry\:healing_runestone.name=符文石
tile.ebwizardry\:sorcery_runestone.name=符文石
tile.ebwizardry\:fire_runestone_pedestal.name=符文石座
tile.ebwizardry\:ice_runestone_pedestal.name=符文石座
tile.ebwizardry\:lightning_runestone_pedestal.name=符文石座
tile.ebwizardry\:necromancy_runestone_pedestal.name=符文石座
tile.ebwizardry\:earth_runestone_pedestal.name=符文石座
tile.ebwizardry\:healing_runestone_pedestal.name=符文石座
tile.ebwizardry\:sorcery_runestone_pedestal.name=符文石座
tile.ebwizardry\:thorns.name=荊棘
tile.ebwizardry\:obsidian_crust.name=黑曜石殼
tile.ebwizardry\:dry_frosted_ice.name=乾的結凍冰
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 2
"item": "ebwizardry:earth_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 2,
"item": "ebwizardry:earth_runestone",
"count": 8
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 5
"item": "ebwizardry:earth_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 5,
"item": "ebwizardry:earth_runestone_pedestal",
"count": 2
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 5
"item": "ebwizardry:fire_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 5,
"item": "ebwizardry:fire_runestone",
"count": 8
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 1
"item": "ebwizardry:fire_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 1,
"item": "ebwizardry:fire_runestone_pedestal",
"count": 2
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 1
"item": "ebwizardry:healing_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 1,
"item": "ebwizardry:healing_runestone",
"count": 8
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 7
"item": "ebwizardry:healing_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 7,
"item": "ebwizardry:healing_runestone_pedestal",
"count": 2
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 7
"item": "ebwizardry:ice_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 7,
"item": "ebwizardry:ice_runestone",
"count": 8
}
}
@@ -7,8 +7,7 @@
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 2
"item": "ebwizardry:ice_crystal"
},
"z": {
"type": "forge:ore_dict",
@@ -16,8 +15,7 @@
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 2,
"item": "ebwizardry:ice_runestone_pedestal",
"count": 2
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:lightning_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:lightning_runestone",
"count": 8
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:lightning_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:lightning_runestone_pedestal",
"count": 2
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:necromancy_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:necromancy_runestone",
"count": 8
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:necromancy_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:necromancy_runestone_pedestal",
"count": 2
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 3
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 3,
"count": 8
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 4
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 4,
"count": 8
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 3
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 3,
"count": 2
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 4
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 4,
"count": 2
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 6
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone_pedestal",
"data": 6,
"count": 2
}
}
@@ -1,23 +0,0 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:magic_crystal",
"data": 6
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:runestone",
"data": 6,
"count": 8
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"zyz",
"zzz"
],
"key": {
"y": {
"item": "ebwizardry:sorcery_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:sorcery_runestone",
"count": 8
}
}
@@ -0,0 +1,21 @@
{
"type": "minecraft:crafting_shaped",
"pattern": [
"zzz",
"yyy",
"zyz"
],
"key": {
"y": {
"item": "ebwizardry:sorcery_crystal"
},
"z": {
"type": "forge:ore_dict",
"ore": "stone"
}
},
"result": {
"item": "ebwizardry:sorcery_runestone_pedestal",
"count": 2
}
}