From 1115eaf9a7ed006f48334b053cd8fe5e7d44c4fa Mon Sep 17 00:00:00 2001 From: WayofTime Date: Sat, 29 Nov 2014 10:41:01 -0500 Subject: [PATCH] Improved compression handler, updated buildings.zip, added temporary portal configs --- .../BloodMagicConfiguration.java | 16 ++++++++++++++++ .../compress/AdvancedCompressionHandler.java | 6 +++--- .../common/demonVillage/DemonVillagePath.java | 6 +++--- .../demon/EntityMinorDemonGrunt.java | 18 ++++++++++++++---- .../demonHoard/demon/IHoardDemon.java | 1 + .../demonVillage/tileEntity/TEDemonChest.java | 9 ++++++++- .../tileEntity/TEDemonPortal.java | 17 +++++++++++------ .../schematics/building/buildings.zip | Bin 17128 -> 16998 bytes 8 files changed, 56 insertions(+), 17 deletions(-) diff --git a/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java b/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java index a11eba3a..575b7640 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java +++ b/src/main/java/WayofTime/alchemicalWizardry/BloodMagicConfiguration.java @@ -12,6 +12,8 @@ import net.minecraftforge.common.config.Configuration; import WayofTime.alchemicalWizardry.api.rituals.Rituals; import WayofTime.alchemicalWizardry.client.renderer.ColourThreshold; import WayofTime.alchemicalWizardry.client.renderer.RenderHelper; +import WayofTime.alchemicalWizardry.common.demonVillage.DemonVillagePath; +import WayofTime.alchemicalWizardry.common.demonVillage.tileEntity.TEDemonPortal; import WayofTime.alchemicalWizardry.common.items.BoundArmour; import WayofTime.alchemicalWizardry.common.summoning.meteor.MeteorParadigm; import cpw.mods.fml.common.FMLCommonHandler; @@ -133,6 +135,20 @@ public class BloodMagicConfiguration AlchemicalWizardry.ritualDisabledVeilOfEvil = config.get("Ritual Blacklist", "Veil of Evil", false).getBoolean(false); AlchemicalWizardry.ritualDisabledFullStomach = config.get("Ritual Blacklist", "Requiem of the Satiated Stomach", false).getBoolean(false); + String tempDemonConfigs = "Temp Demon Configs"; + TEDemonPortal.buildingGridDelay = config.get(tempDemonConfigs, "Building Grid Delay", 25).getInt(); + TEDemonPortal.roadGridDelay = config.get(tempDemonConfigs, "Road Grid Delay", 10).getInt(); + TEDemonPortal.demonHoardDelay = config.get(tempDemonConfigs, "Demon Hoard Delay", 40).getInt(); + TEDemonPortal.demonRoadChance = (float)(config.get(tempDemonConfigs, "Demon Road Chance", 0.6f).getDouble()); + TEDemonPortal.demonHouseChance = (float)(config.get(tempDemonConfigs, "Demon House Chance", 0.6f).getDouble()); + TEDemonPortal.demonPortalChance = (float)(config.get(tempDemonConfigs, "Demon Portal Chance", 0.5f).getDouble()); + TEDemonPortal.demonHoardChance = (float)(config.get(tempDemonConfigs, "Demon Hoard Chance", 1.0f).getDouble()); + TEDemonPortal.portalTickRate = (float)(config.get(tempDemonConfigs, "Portal Tick Rate", 0.1f).getDouble()); + + DemonVillagePath.canGoDown = config.get(tempDemonConfigs, "canRoadGoDown", true).getBoolean(); + DemonVillagePath.tunnelIfObstructed = config.get(tempDemonConfigs, "tunnelIfObstructed", false).getBoolean(); + DemonVillagePath.createBridgeInAirIfObstructed = config.get(tempDemonConfigs, "createBridgeInAirIfObstructed", false).getBoolean(); + BoundArmour.tryComplexRendering = config.get("WimpySettings", "UseFancyBoundArmour", true).getBoolean(true); Side side = FMLCommonHandler.instance().getSide(); diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/compress/AdvancedCompressionHandler.java b/src/main/java/WayofTime/alchemicalWizardry/common/compress/AdvancedCompressionHandler.java index ed823b8c..4ffd25c3 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/compress/AdvancedCompressionHandler.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/compress/AdvancedCompressionHandler.java @@ -26,14 +26,14 @@ public class AdvancedCompressionHandler extends CompressionHandler { continue; } - - int threshold = CompressionRegistry.getItemThreshold(invStack); - + for(int i=2; i<=3; i++) { ItemStack stacky = getRecipe(invStack, world, i); if(isResultStackReversible(stacky, i, world)) { + int threshold = CompressionRegistry.getItemThreshold(invStack); + int needed = i*i; int neededLeft = iterateThroughInventory(invStack, threshold, inv, needed, false); if(neededLeft <= 0) diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java index a8add995..96261219 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/DemonVillagePath.java @@ -16,9 +16,9 @@ public class DemonVillagePath public ForgeDirection dir; public int length; - public boolean canGoDown = true; - public boolean tunnelIfObstructed = true; - public boolean createBridgeInAirIfObstructed = false; + public static boolean canGoDown = true; + public static boolean tunnelIfObstructed = true; + public static boolean createBridgeInAirIfObstructed = false; public DemonVillagePath(int xi, int yi, int zi, ForgeDirection dir, int length) { diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java index 781264cc..2525d6c4 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/EntityMinorDemonGrunt.java @@ -23,6 +23,7 @@ import net.minecraft.pathfinding.PathEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.DamageSource; import net.minecraft.world.World; +import WayofTime.alchemicalWizardry.AlchemicalWizardry; import WayofTime.alchemicalWizardry.ModItems; import WayofTime.alchemicalWizardry.common.EntityAITargetAggro; import WayofTime.alchemicalWizardry.common.Int3; @@ -49,7 +50,7 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan public EntityMinorDemonGrunt(World par1World) { - super(par1World, "GruntString"); + super(par1World, AlchemicalWizardry.entityMinorDemonGruntID); this.setSize(0.7F, 1.8F); this.getNavigator().setAvoidsWater(true); this.tasks.addTask(1, new EntityAISwimming(this)); @@ -62,7 +63,7 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan this.targetTasks.addTask(2, new EntityAIOwnerHurtTarget(this)); this.targetTasks.addTask(3, new EntityDemonAIHurtByTarget(this, true)); this.targetTasks.addTask(4, new EntityAITargetAggro(this, EntityPlayer.class, 0, false)); - this.setAggro(false); + this.setAggro(true); this.setTamed(false); demonPortal = new Int3(0,0,0); @@ -417,7 +418,7 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan @Override public boolean attackEntityAsMob(Entity par1Entity) { - int i = this.isTamed() ? 6 : 7; + int i = this.isTamed() ? 20 : 20; return par1Entity.attackEntityFrom(DamageSource.causeMobDamage(this), (float) i); } @@ -430,7 +431,7 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan double xCoord; double yCoord; double zCoord; - HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 5, 600); + HolyProjectile hol = new HolyProjectile(worldObj, this, par1EntityLivingBase, 1.8f, 0f, 15, 600); this.worldObj.spawnEntityInWorld(hol); } @@ -457,4 +458,13 @@ public class EntityMinorDemonGrunt extends EntityDemon implements IOccasionalRan this.setPortalLocation(new Int3(teDemonPortal.xCoord, teDemonPortal.yCoord, teDemonPortal.zCoord)); return true; } + + @Override + public boolean isSamePortal(IHoardDemon demon) + { + Int3 position = demon.getPortalLocation(); + TileEntity portal = worldObj.getTileEntity(this.demonPortal.xCoord, this.demonPortal.yCoord, this.demonPortal.zCoord); + + return portal instanceof TEDemonPortal ? portal == worldObj.getTileEntity(position.xCoord, position.yCoord, position.zCoord) : false; + } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/IHoardDemon.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/IHoardDemon.java index 91400d19..10c0b2a9 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/IHoardDemon.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/demonHoard/demon/IHoardDemon.java @@ -8,4 +8,5 @@ public interface IHoardDemon public void setPortalLocation(Int3 position); public Int3 getPortalLocation(); public boolean thrallDemon(TEDemonPortal teDemonPortal); + public boolean isSamePortal(IHoardDemon demon); } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonChest.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonChest.java index 85ba5a27..03fbc173 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonChest.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonChest.java @@ -31,6 +31,13 @@ public class TEDemonChest extends TileEntityChest implements ITilePortalNode tag.setTag("portalLocation", portalTag); } + @Override + public void openInventory() + { + super.openInventory(); + this.notifyPortalOfInteraction(); + } + @Override public void checkForAdjacentChests() { @@ -64,6 +71,6 @@ public class TEDemonChest extends TileEntityChest implements ITilePortalNode return; } - portal.notifyDemons(xCoord, yCoord, zCoord, 25); + portal.notifyDemons(xCoord, yCoord, zCoord, 50); } } diff --git a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonPortal.java b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonPortal.java index 15b9a58c..635b38de 100644 --- a/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonPortal.java +++ b/src/main/java/WayofTime/alchemicalWizardry/common/demonVillage/tileEntity/TEDemonPortal.java @@ -48,6 +48,11 @@ public class TEDemonPortal extends TileEntity public static int buildingGridDelay = 25; public static int roadGridDelay = 10; public static int demonHoardDelay = 40; + public static float demonRoadChance = 0.6f; + public static float demonHouseChance = 0.6f; + public static float demonPortalChance = 0.5f; + public static float demonHoardChance = 1.0f; + public static float portalTickRate = 0.1f; public static int[] tierCostList = new int[]{1000, 5000, 10000}; @@ -121,7 +126,7 @@ public class TEDemonPortal extends TileEntity { return 0; } - return 0.6f; + return demonRoadChance; } public float getHouseChance() @@ -130,7 +135,7 @@ public class TEDemonPortal extends TileEntity { return 0; } - return 0.6f; + return demonHouseChance; } public float getDemonPortalChance() @@ -139,12 +144,12 @@ public class TEDemonPortal extends TileEntity { return 0; } - return 0.5f; + return demonPortalChance; } public float getDemonHoardChance() { - return 1.0f; + return demonHoardChance; } public boolean decreaseRandomCooldown(int amount) @@ -257,7 +262,7 @@ public class TEDemonPortal extends TileEntity if((xi-xf)*(xi-xf) + (yi-yf)*(yi-yf) + (zi-zf)*(zi-zf) <= radius*radius) { - ((EntityCreature) thrallDemon).getNavigator().tryMoveToXYZ(xf, yf, zf, 2); + ((EntityCreature) thrallDemon).getNavigator().tryMoveToXYZ(xf, yf, zf, 1); } } } @@ -397,7 +402,7 @@ public class TEDemonPortal extends TileEntity public void incrementPoints() { - this.pointPool += 1f; + this.pointPool += portalTickRate; } @Override diff --git a/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip b/src/main/resources/assets/alchemicalwizardry/schematics/building/buildings.zip index af7914fe9daea41a0d403cdc225ed0bfe599a4d7..f1e8687ecfc232e970bd24920ab1904f777e2a9b 100644 GIT binary patch literal 16998 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 R7;qM_Vlx!h#0CfV{{SP}jE?{S literal 17128 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