Updating the finished tool paradigm
|
@ -743,6 +743,7 @@ public class AlchemicalWizardry
|
||||||
ItemStack costCoreStack = new ItemStack(ModItems.baseItems,1,23);
|
ItemStack costCoreStack = new ItemStack(ModItems.baseItems,1,23);
|
||||||
ItemStack potencyCoreStack = new ItemStack(ModItems.baseItems,1,24);
|
ItemStack potencyCoreStack = new ItemStack(ModItems.baseItems,1,24);
|
||||||
ItemStack obsidianBraceStack = new ItemStack(ModItems.baseItems,1,25);
|
ItemStack obsidianBraceStack = new ItemStack(ModItems.baseItems,1,25);
|
||||||
|
ItemStack toolCoreStack = new ItemStack(ModItems.baseItems,1,26);
|
||||||
|
|
||||||
ItemStack magicalesCraftedCableStack = new ItemStack(ModItems.baseItems,5,2);
|
ItemStack magicalesCraftedCableStack = new ItemStack(ModItems.baseItems,5,2);
|
||||||
ItemStack crackedRunicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,15);
|
ItemStack crackedRunicPlateStackCrafted = new ItemStack(ModItems.baseItems,2,15);
|
||||||
|
@ -758,6 +759,7 @@ public class AlchemicalWizardry
|
||||||
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(projectileCoreStack, "mbm","aca","mom",'c', emptyCoreStack,'b',weakBloodShardStack,'m', magicalesStack,'o', magicianBloodOrbStack,'a',new ItemStack(Items.arrow)));
|
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(projectileCoreStack, "mbm","aca","mom",'c', emptyCoreStack,'b',weakBloodShardStack,'m', magicalesStack,'o', magicianBloodOrbStack,'a',new ItemStack(Items.arrow)));
|
||||||
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(selfCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',sanctusStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',glowstoneDustStack));
|
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(selfCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',sanctusStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',glowstoneDustStack));
|
||||||
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(meleeCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',incendiumStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Items.fire_charge)));
|
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(meleeCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',incendiumStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Items.fire_charge)));
|
||||||
|
GameRegistry.addRecipe(new ShapedBloodOrbRecipe(meleeCoreStack,"sbs","ncn","sos",'c', emptyCoreStack, 's',incendiumStack,'b', weakBloodShardStack,'o', magicianBloodOrbStack,'n',new ItemStack(Blocks.obsidian)));
|
||||||
GameRegistry.addRecipe(paradigmBackPlateStack,"isi","rgr","isi",'i',ironIngotStack,'r',stoneStack,'g',goldIngotStack,'s',reinforcedSlateStack);
|
GameRegistry.addRecipe(paradigmBackPlateStack,"isi","rgr","isi",'i',ironIngotStack,'r',stoneStack,'g',goldIngotStack,'s',reinforcedSlateStack);
|
||||||
GameRegistry.addRecipe(outputCableStack, " si","s c"," si",'s',stoneStack,'i',ironIngotStack,'c',simpleCatalystStack);
|
GameRegistry.addRecipe(outputCableStack, " si","s c"," si",'s',stoneStack,'i',ironIngotStack,'c',simpleCatalystStack);
|
||||||
|
|
||||||
|
@ -787,6 +789,7 @@ public class AlchemicalWizardry
|
||||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,0),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', projectileCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,0),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', projectileCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
||||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,1),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', selfCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,1),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', selfCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
||||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,2),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', meleeCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,2),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', meleeCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
||||||
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellParadigm,1,3),"gb ","pcw","gb ",'p',paradigmBackPlateStack,'c', meleeCoreStack,'g',goldIngotStack,'b',stoneBraceStack,'w',outputCableStack);
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,0),"bgb","ico","bgb",'c',flameCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack);
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,0),"bgb","ico","bgb",'c',flameCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack);
|
||||||
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,1),"bgb","ico","bgb",'c',iceCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack);
|
GameRegistry.addRecipe(new ItemStack(ModBlocks.blockSpellEffect,1,1),"bgb","ico","bgb",'c',iceCoreStack,'b',stoneBraceStack,'g',goldIngotStack,'i',inputCableStack,'o',outputCableStack);
|
||||||
|
|
|
@ -14,9 +14,9 @@ import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
|
||||||
|
|
||||||
public class BlockSet
|
public class BlockSet
|
||||||
{
|
{
|
||||||
private String blockid;
|
protected String blockid;
|
||||||
private int[] metadata;
|
protected int[] metadata;
|
||||||
private List<Int3> positions;
|
protected List<Int3> positions;
|
||||||
|
|
||||||
public BlockSet()
|
public BlockSet()
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
package WayofTime.alchemicalWizardry.common.demonVillage;
|
||||||
|
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
|
||||||
|
public class TileBlockSet extends BlockSet
|
||||||
|
{
|
||||||
|
public NBTTagCompound tag;
|
||||||
|
}
|
|
@ -21,7 +21,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class ItemComponents extends Item
|
public class ItemComponents extends Item
|
||||||
{
|
{
|
||||||
private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore","MeleeCore","ParadigmBackPlate","OutputCable","FlameCore","IcyCore","GustCore","EarthenCore","InputCable","CrackedRunicPlate","RunicPlate","ScribedRunicPlate","DefaultCore","OffensiveCore","DefensiveCore","EnvironmentalCore","PowerCore","CostCore","PotencyCore","ObsidianBrace"};
|
private static final String[] ITEM_NAMES = new String[]{"QuartzRod", "EmptyCore", "MagicalesCable", "WoodBrace", "StoneBrace", "ProjectileCore", "SelfCore","MeleeCore","ParadigmBackPlate","OutputCable","FlameCore","IcyCore","GustCore","EarthenCore","InputCable","CrackedRunicPlate","RunicPlate","ScribedRunicPlate","DefaultCore","OffensiveCore","DefensiveCore","EnvironmentalCore","PowerCore","CostCore","PotencyCore","ObsidianBrace","ToolCore"};
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
private IIcon[] icons;
|
private IIcon[] icons;
|
||||||
|
|
|
@ -14,7 +14,6 @@ import net.minecraft.potion.PotionEffect;
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import WayofTime.alchemicalWizardry.ModBlocks;
|
|
||||||
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
import WayofTime.alchemicalWizardry.api.rituals.IMasterRitualStone;
|
||||||
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
import WayofTime.alchemicalWizardry.api.rituals.RitualComponent;
|
||||||
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
import WayofTime.alchemicalWizardry.api.rituals.RitualEffect;
|
||||||
|
@ -58,7 +57,11 @@ public class RitualEffectItemSuction extends RitualEffect
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentEssence < this.getCostPerRefresh()*100)
|
Block block = world.getBlock(x, y-1, z);
|
||||||
|
int range = this.getRange(block);
|
||||||
|
int refCost = this.getCostMod(block);
|
||||||
|
|
||||||
|
if (currentEssence < this.getCostPerRefresh()*100*refCost)
|
||||||
{
|
{
|
||||||
EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner);
|
EntityPlayer entityOwner = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(owner);
|
||||||
|
|
||||||
|
@ -132,7 +135,7 @@ public class RitualEffectItemSuction extends RitualEffect
|
||||||
|
|
||||||
if(count>0)
|
if(count>0)
|
||||||
{
|
{
|
||||||
data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100);
|
data.currentEssence = currentEssence - this.getCostPerRefresh()*Math.min(count, 100)*refCost;
|
||||||
data.markDirty();
|
data.markDirty();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -144,6 +147,48 @@ public class RitualEffectItemSuction extends RitualEffect
|
||||||
{
|
{
|
||||||
return 5;
|
return 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getRange(Block block)
|
||||||
|
{
|
||||||
|
if(block == null)
|
||||||
|
{
|
||||||
|
return 10;
|
||||||
|
}
|
||||||
|
if(block == Blocks.iron_block)
|
||||||
|
{
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
if(block == Blocks.gold_block)
|
||||||
|
{
|
||||||
|
return 25;
|
||||||
|
}
|
||||||
|
if(block == Blocks.diamond_block)
|
||||||
|
{
|
||||||
|
return 40;
|
||||||
|
}
|
||||||
|
return 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCostMod(Block block)
|
||||||
|
{
|
||||||
|
if(block == null)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if(block == Blocks.iron_block)
|
||||||
|
{
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
if(block == Blocks.gold_block)
|
||||||
|
{
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
if(block == Blocks.diamond_block)
|
||||||
|
{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RitualComponent> getRitualComponentList()
|
public List<RitualComponent> getRitualComponentList()
|
||||||
|
|
|
@ -48,6 +48,7 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
private HashMap<String,Float> digSpeed;
|
private HashMap<String,Float> digSpeed;
|
||||||
private HashMap<String,Float> maxDamageHash;
|
private HashMap<String,Float> maxDamageHash;
|
||||||
private HashMap<String,Float> critChanceHash;
|
private HashMap<String,Float> critChanceHash;
|
||||||
|
private HashMap<String,Integer> durationHash; //ticks
|
||||||
|
|
||||||
private HashMap<String, String> toolInfoString;
|
private HashMap<String, String> toolInfoString;
|
||||||
|
|
||||||
|
@ -66,6 +67,8 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
this.breakBlockEffectList = new LinkedList();
|
this.breakBlockEffectList = new LinkedList();
|
||||||
this.itemManipulatorEffectList = new LinkedList();
|
this.itemManipulatorEffectList = new LinkedList();
|
||||||
this.digAreaEffectList = new LinkedList();
|
this.digAreaEffectList = new LinkedList();
|
||||||
|
this.specialDamageEffectList = new LinkedList();
|
||||||
|
this.durationHash = new HashMap();
|
||||||
|
|
||||||
this.toolInfoString = new HashMap();
|
this.toolInfoString = new HashMap();
|
||||||
this.critChanceHash = new HashMap();
|
this.critChanceHash = new HashMap();
|
||||||
|
@ -73,12 +76,12 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
this.maxDamage = 5;
|
this.maxDamage = 5;
|
||||||
|
|
||||||
this.harvestLevel = new HashMap();
|
this.harvestLevel = new HashMap();
|
||||||
this.harvestLevel.put("pickaxe", 2);
|
this.harvestLevel.put("pickaxe", -1);
|
||||||
this.harvestLevel.put("shovel", -1);
|
this.harvestLevel.put("shovel", -1);
|
||||||
this.harvestLevel.put("axe", -1);
|
this.harvestLevel.put("axe", -1);
|
||||||
|
|
||||||
this.digSpeed = new HashMap();
|
this.digSpeed = new HashMap();
|
||||||
this.digSpeed.put("pickaxe", 6.0f);
|
this.digSpeed.put("pickaxe", 1.0f);
|
||||||
this.digSpeed.put("shovel", 1.0f);
|
this.digSpeed.put("shovel", 1.0f);
|
||||||
this.digSpeed.put("axe", 1.0f);
|
this.digSpeed.put("axe", 1.0f);
|
||||||
|
|
||||||
|
@ -88,7 +91,9 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
this.fortuneLevel = 0;
|
this.fortuneLevel = 0;
|
||||||
this.silkTouch = false;
|
this.silkTouch = false;
|
||||||
|
|
||||||
this.duration = 2400;
|
this.duration = 0;
|
||||||
|
|
||||||
|
this.durationHash.put("default", 2400);
|
||||||
|
|
||||||
//this.addRightClickEffect(new RightClickTunnel(0,0,0));
|
//this.addRightClickEffect(new RightClickTunnel(0,0,0));
|
||||||
|
|
||||||
|
@ -178,6 +183,11 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
|
|
||||||
itemTool.setToolListString(toolStack, toolStringList);
|
itemTool.setToolListString(toolStack, toolStringList);
|
||||||
|
|
||||||
|
for(Integer integ : this.durationHash.values())
|
||||||
|
{
|
||||||
|
this.duration += integ;
|
||||||
|
}
|
||||||
|
|
||||||
itemTool.setDuration(toolStack, world, this.duration);
|
itemTool.setDuration(toolStack, world, this.duration);
|
||||||
itemTool.loadParadigmIntoStack(toolStack, this.bufferedEffectList);
|
itemTool.loadParadigmIntoStack(toolStack, this.bufferedEffectList);
|
||||||
|
|
||||||
|
@ -453,6 +463,11 @@ public class SpellParadigmTool extends SpellParadigm
|
||||||
this.critChanceHash.put(key, chance);
|
this.critChanceHash.put(key, chance);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addDuration(String key, int dur)
|
||||||
|
{
|
||||||
|
this.durationHash.put(key, dur);
|
||||||
|
}
|
||||||
|
|
||||||
public float getCritChance()
|
public float getCritChance()
|
||||||
{
|
{
|
||||||
float chance = 0.0f;
|
float chance = 0.0f;
|
||||||
|
|
|
@ -17,6 +17,7 @@ import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fi
|
||||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfEnvironmentalFire;
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfEnvironmentalFire;
|
||||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfOffensiveFire;
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.SelfOffensiveFire;
|
||||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolDefaultFire;
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolDefaultFire;
|
||||||
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolEnvironmentalFire;
|
||||||
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolOffensiveFire;
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire.ToolOffensiveFire;
|
||||||
|
|
||||||
public class SpellEffectFire extends SpellEffect
|
public class SpellEffectFire extends SpellEffect
|
||||||
|
@ -181,15 +182,21 @@ public class SpellEffectFire extends SpellEffect
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void defensiveModificationTool(SpellParadigmTool parad) {
|
public void defensiveModificationTool(SpellParadigmTool parad)
|
||||||
// TODO Auto-generated method stub
|
{
|
||||||
|
parad.addCritChance("defFire", this.potencyEnhancement);
|
||||||
|
|
||||||
|
parad.addDuration("defFire", 1200 * this.powerEnhancement);
|
||||||
|
|
||||||
|
parad.addToolString("defFire", "Unbreaking" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void environmentalModificationTool(SpellParadigmTool parad) {
|
public void environmentalModificationTool(SpellParadigmTool parad)
|
||||||
// TODO Auto-generated method stub
|
{
|
||||||
|
parad.addBlockBreakEffect(new ToolEnvironmentalFire(this.powerEnhancement,this.potencyEnhancement,this.costEnhancement));
|
||||||
|
|
||||||
|
parad.addToolString("envFire", "Magma Plume" + " " + SpellHelper.getNumeralForInt(this.powerEnhancement + 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -201,18 +208,18 @@ public class SpellEffectFire extends SpellEffect
|
||||||
@Override
|
@Override
|
||||||
protected int getCostForOffenseTool()
|
protected int getCostForOffenseTool()
|
||||||
{
|
{
|
||||||
return (int)(0); //TODO
|
return (int)(1000 * (1 + this.powerEnhancement*0.3f) * (1 + this.potencyEnhancement*0.2f) * Math.pow(0.85, costEnhancement));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getCostForDefenseTool() {
|
protected int getCostForDefenseTool()
|
||||||
// TODO Auto-generated method stub
|
{
|
||||||
return 0;
|
return (int)(500 * (1 + this.powerEnhancement*0.5f) * (1 + this.potencyEnhancement) * Math.pow(0.85, costEnhancement));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getCostForEnvironmentTool() {
|
protected int getCostForEnvironmentTool()
|
||||||
// TODO Auto-generated method stub
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.fire;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
import WayofTime.alchemicalWizardry.common.spell.complex.effect.impactEffects.tool.OnBreakBlockEffect;
|
||||||
|
|
||||||
|
public class ToolEnvironmentalFire extends OnBreakBlockEffect
|
||||||
|
{
|
||||||
|
public ToolEnvironmentalFire(int power, int potency, int cost)
|
||||||
|
{
|
||||||
|
super(power, potency, cost);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int onBlockBroken(ItemStack container, World world, EntityPlayer player, Block block, int meta, int x, int y, int z, ForgeDirection sideBroken)
|
||||||
|
{
|
||||||
|
int amount = 0;
|
||||||
|
int cost = (int)(250 * (1 - 0.1f*powerUpgrades) * Math.pow(0.85, costUpgrades));
|
||||||
|
int radius = this.powerUpgrades;
|
||||||
|
float chance = 0.35f + 0.15f*this.potencyUpgrades;
|
||||||
|
|
||||||
|
for(int i=-radius; i<=radius; i++)
|
||||||
|
{
|
||||||
|
for(int j=-radius; j<=radius; j++)
|
||||||
|
{
|
||||||
|
for(int k=-radius; k<=radius; k++)
|
||||||
|
{
|
||||||
|
Block blockAffected = world.getBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ);
|
||||||
|
|
||||||
|
if((new Random().nextFloat() <= chance) && (blockAffected == Blocks.gravel || blockAffected == Blocks.stone || blockAffected == Blocks.cobblestone))
|
||||||
|
{
|
||||||
|
world.setBlock(x + i -sideBroken.offsetX, y + j, z + k - sideBroken.offsetZ, Blocks.lava);
|
||||||
|
amount += cost;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
}
|
|
@ -47,6 +47,11 @@ public class TEDemonPortal extends TileEntity
|
||||||
|
|
||||||
private boolean isInitialized;
|
private boolean isInitialized;
|
||||||
|
|
||||||
|
public int houseCooldown;
|
||||||
|
public int roadCooldown;
|
||||||
|
public int tier; //Tier of the demon portal - Should select buildings 2 below to this
|
||||||
|
public int totalPoints;
|
||||||
|
|
||||||
public TEDemonPortal()
|
public TEDemonPortal()
|
||||||
{
|
{
|
||||||
super();
|
super();
|
||||||
|
@ -71,6 +76,9 @@ public class TEDemonPortal extends TileEntity
|
||||||
isInitialized = false;
|
isInitialized = false;
|
||||||
|
|
||||||
this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord));
|
this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord));
|
||||||
|
|
||||||
|
this.houseCooldown = 0;
|
||||||
|
this.roadCooldown = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initialize()
|
public void initialize()
|
||||||
|
@ -87,6 +95,9 @@ public class TEDemonPortal extends TileEntity
|
||||||
if(Math.abs(xIndex) == 1 || Math.abs(zIndex) == 1)
|
if(Math.abs(xIndex) == 1 || Math.abs(zIndex) == 1)
|
||||||
{
|
{
|
||||||
this.setGridSpace(xIndex, zIndex, new GridSpace(GridSpace.ROAD,yCoord));
|
this.setGridSpace(xIndex, zIndex, new GridSpace(GridSpace.ROAD,yCoord));
|
||||||
|
}else if(xIndex == 0 && zIndex == 0)
|
||||||
|
{
|
||||||
|
this.setGridSpace(0, 0, new GridSpace(GridSpace.MAIN_PORTAL, yCoord));
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
this.setGridSpace(xIndex, zIndex, new GridSpace());
|
this.setGridSpace(xIndex, zIndex, new GridSpace());
|
||||||
|
@ -94,6 +105,9 @@ public class TEDemonPortal extends TileEntity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.houseCooldown = 1000;
|
||||||
|
this.roadCooldown = 100;
|
||||||
|
|
||||||
isInitialized = true;
|
isInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,6 +119,8 @@ public class TEDemonPortal extends TileEntity
|
||||||
this.negZRadius = par1NBTTagCompound.getInteger("negZRadius");
|
this.negZRadius = par1NBTTagCompound.getInteger("negZRadius");
|
||||||
this.posXRadius = par1NBTTagCompound.getInteger("posXRadius");
|
this.posXRadius = par1NBTTagCompound.getInteger("posXRadius");
|
||||||
this.posZRadius = par1NBTTagCompound.getInteger("posZRadius");
|
this.posZRadius = par1NBTTagCompound.getInteger("posZRadius");
|
||||||
|
this.houseCooldown = par1NBTTagCompound.getInteger("houseCooldown");
|
||||||
|
this.roadCooldown = par1NBTTagCompound.getInteger("roadCooldown");
|
||||||
|
|
||||||
area = new GridSpace[negXRadius + posXRadius + 1][negZRadius + posZRadius + 1];
|
area = new GridSpace[negXRadius + posXRadius + 1][negZRadius + posZRadius + 1];
|
||||||
|
|
||||||
|
@ -134,6 +150,8 @@ public class TEDemonPortal extends TileEntity
|
||||||
par1NBTTagCompound.setInteger("negZRadius", negZRadius);
|
par1NBTTagCompound.setInteger("negZRadius", negZRadius);
|
||||||
par1NBTTagCompound.setInteger("posXRadius", posXRadius);
|
par1NBTTagCompound.setInteger("posXRadius", posXRadius);
|
||||||
par1NBTTagCompound.setInteger("posZRadius", posZRadius);
|
par1NBTTagCompound.setInteger("posZRadius", posZRadius);
|
||||||
|
par1NBTTagCompound.setInteger("houseCooldown", houseCooldown);
|
||||||
|
par1NBTTagCompound.setInteger("roadCooldown", roadCooldown);
|
||||||
|
|
||||||
NBTTagList gridList = new NBTTagList();
|
NBTTagList gridList = new NBTTagList();
|
||||||
|
|
||||||
|
@ -163,7 +181,7 @@ public class TEDemonPortal extends TileEntity
|
||||||
par1NBTTagCompound.setBoolean("init", isInitialized);
|
par1NBTTagCompound.setBoolean("init", isInitialized);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void createRandomRoad()
|
public int createRandomRoad() //Return the number of road spaces
|
||||||
{
|
{
|
||||||
int next = rand.nextInt(4);
|
int next = rand.nextInt(4);
|
||||||
ForgeDirection dir;
|
ForgeDirection dir;
|
||||||
|
@ -200,7 +218,7 @@ public class TEDemonPortal extends TileEntity
|
||||||
|
|
||||||
if(directions.size() <= 0)
|
if(directions.size() <= 0)
|
||||||
{
|
{
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int maxDistance = 5;
|
int maxDistance = 5;
|
||||||
|
@ -223,12 +241,14 @@ public class TEDemonPortal extends TileEntity
|
||||||
|
|
||||||
if(dominantDirection == null)
|
if(dominantDirection == null)
|
||||||
{
|
{
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
System.out.println("I got here!");
|
System.out.println("I got here!");
|
||||||
System.out.println("Distance: " + distance + " Direction: " + dominantDirection.toString() + " yLevel: " + yLevel);
|
System.out.println("Distance: " + distance + " Direction: " + dominantDirection.toString() + " yLevel: " + yLevel);
|
||||||
|
|
||||||
this.createGriddedRoad(x, yLevel, z, dominantDirection, distance+1, true);
|
this.createGriddedRoad(x, yLevel, z, dominantDirection, distance+1, true);
|
||||||
|
|
||||||
|
return distance;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<ForgeDirection> findValidExtentionDirection(int x, int z)
|
public List<ForgeDirection> findValidExtentionDirection(int x, int z)
|
||||||
|
@ -732,6 +752,9 @@ public class TEDemonPortal extends TileEntity
|
||||||
if(ForgeDirection.getOrientation(side) == ForgeDirection.UP)
|
if(ForgeDirection.getOrientation(side) == ForgeDirection.UP)
|
||||||
{
|
{
|
||||||
this.createRandomBuilding(DemonBuilding.BUILDING_HOUSE, 0);
|
this.createRandomBuilding(DemonBuilding.BUILDING_HOUSE, 0);
|
||||||
|
}else if(ForgeDirection.getOrientation(side) == ForgeDirection.DOWN)
|
||||||
|
{
|
||||||
|
this.createRandomBuilding(DemonBuilding.BUILDING_PORTAL, 0);
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
this.createRandomRoad();
|
this.createRandomRoad();
|
||||||
|
@ -766,7 +789,7 @@ public class TEDemonPortal extends TileEntity
|
||||||
for(int i=2; i<6; i++)
|
for(int i=2; i<6; i++)
|
||||||
{
|
{
|
||||||
ForgeDirection testDir = ForgeDirection.getOrientation(i);
|
ForgeDirection testDir = ForgeDirection.getOrientation(i);
|
||||||
if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty())
|
//if(this.getGridSpace(x + testDir.offsetX, z + testDir.offsetZ).isEmpty())
|
||||||
{
|
{
|
||||||
directions.add(testDir);
|
directions.add(testDir);
|
||||||
}
|
}
|
||||||
|
@ -783,6 +806,10 @@ public class TEDemonPortal extends TileEntity
|
||||||
{
|
{
|
||||||
for(DemonBuilding build : TEDemonPortal.buildingList)
|
for(DemonBuilding build : TEDemonPortal.buildingList)
|
||||||
{
|
{
|
||||||
|
if(build.buildingType != DemonBuilding.BUILDING_PORTAL)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if(schemMap.containsKey(nextDir))
|
if(schemMap.containsKey(nextDir))
|
||||||
{
|
{
|
||||||
schemMap.get(nextDir).add(build);
|
schemMap.get(nextDir).add(build);
|
||||||
|
@ -813,6 +840,7 @@ public class TEDemonPortal extends TileEntity
|
||||||
if(block == ModBlocks.blockDemonPortal)
|
if(block == ModBlocks.blockDemonPortal)
|
||||||
{
|
{
|
||||||
BlockTeleposer.swapBlocks(worldObj, worldObj, xCoord, i, zCoord, xCoord, yLevel + yOffset, zCoord);
|
BlockTeleposer.swapBlocks(worldObj, worldObj, xCoord, i, zCoord, xCoord, yLevel + yOffset, zCoord);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ import com.google.gson.GsonBuilder;
|
||||||
|
|
||||||
public class TESchematicSaver extends TileEntity
|
public class TESchematicSaver extends TileEntity
|
||||||
{
|
{
|
||||||
public Block targetBlock = ModBlocks.largeBloodStoneBrick;
|
public Block targetBlock = ModBlocks.blockBuildingSchematicSaver;
|
||||||
|
|
||||||
public void rightClickBlock(EntityPlayer player, int side)
|
public void rightClickBlock(EntityPlayer player, int side)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,6 +25,7 @@ tile.blockConduit.name=Spell Conduit
|
||||||
tile.blockSpellParadigm.projectile.name=Particle Generator
|
tile.blockSpellParadigm.projectile.name=Particle Generator
|
||||||
tile.blockSpellParadigm.self.name=Self Augmentator
|
tile.blockSpellParadigm.self.name=Self Augmentator
|
||||||
tile.blockSpellParadigm.melee.name=Melee Aggregator
|
tile.blockSpellParadigm.melee.name=Melee Aggregator
|
||||||
|
tile.blockSpellParadigm.tool.name=Tool Forger
|
||||||
tile.blockSpellEnhancement.power1.name=Unstable Spell Empowerer
|
tile.blockSpellEnhancement.power1.name=Unstable Spell Empowerer
|
||||||
tile.blockSpellEnhancement.power2.name=Standard Spell Empowerer
|
tile.blockSpellEnhancement.power2.name=Standard Spell Empowerer
|
||||||
tile.blockSpellEnhancement.power3.name=Reinforced Spell Empowerer
|
tile.blockSpellEnhancement.power3.name=Reinforced Spell Empowerer
|
||||||
|
@ -138,6 +139,7 @@ item.bloodMagicBaseItem.StoneBrace.name=Stone Brace
|
||||||
item.bloodMagicBaseItem.ProjectileCore.name=Projectile Core
|
item.bloodMagicBaseItem.ProjectileCore.name=Projectile Core
|
||||||
item.bloodMagicBaseItem.SelfCore.name=Self Core
|
item.bloodMagicBaseItem.SelfCore.name=Self Core
|
||||||
item.bloodMagicBaseItem.MeleeCore.name=Melee Core
|
item.bloodMagicBaseItem.MeleeCore.name=Melee Core
|
||||||
|
item.bloodMagicBaseItem.ToolCore.name=Tool Core
|
||||||
item.bloodMagicBaseItem.ParadigmBackPlate.name=Paradigm Plate
|
item.bloodMagicBaseItem.ParadigmBackPlate.name=Paradigm Plate
|
||||||
item.bloodMagicBaseItem.OutputCable.name=Output Spell Cable
|
item.bloodMagicBaseItem.OutputCable.name=Output Spell Cable
|
||||||
item.bloodMagicBaseItem.InputCable.name=Input Spell Cable
|
item.bloodMagicBaseItem.InputCable.name=Input Spell Cable
|
||||||
|
@ -168,7 +170,7 @@ item.bloodMagicAlchemyItem.Potentia.name=Potentia
|
||||||
item.sanguineHelmet.name=Sanguine Helmet
|
item.sanguineHelmet.name=Sanguine Helmet
|
||||||
item.itemSeerSigil.name=Sigil of Sight
|
item.itemSeerSigil.name=Sigil of Sight
|
||||||
item.itemFluidSigil.name=
|
item.itemFluidSigil.name=
|
||||||
|
item.multiTool.name=Dynamic Mace
|
||||||
|
|
||||||
#Creative Tab
|
#Creative Tab
|
||||||
itemGroup.tabBloodMagic=Blood Magic
|
itemGroup.tabBloodMagic=Blood Magic
|
||||||
|
|
Before Width: | Height: | Size: 361 B |
Before Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 429 B |
After Width: | Height: | Size: 453 B |
Before Width: | Height: | Size: 594 B After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 453 B |