From bc0f99cd3318c93984855d1b5014752b64162d75 Mon Sep 17 00:00:00 2001 From: fewizz Date: Wed, 25 May 2016 17:22:04 +0300 Subject: [PATCH] Solar panels and buildscript cleanup --- build.gradle | 21 - build.properties | 2 - gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 1 - .../java/emt/block/BlockBaseContainer.java | 116 ++++-- .../emt/block/BlockEssentiaGenerators.java | 31 +- src/main/java/emt/block/BlockMachines.java | 32 +- src/main/java/emt/block/BlockSolars.java | 289 ++++++++------ src/main/java/emt/block/BlockSolars2.java | 88 ----- src/main/java/emt/init/EMTBlocks.java | 8 +- src/main/java/emt/item/ItemMaterials.java | 2 +- .../ItemInfusedQuantumChestplate.java | 168 ++++---- .../emt/item/armor/wings/ItemFeatherWing.java | 4 +- .../emt/item/armor/wings/ItemNanoWing.java | 2 +- .../emt/item/armor/wings/ItemQuantumWing.java | 2 +- .../wings/ItemThaumiumReinforcedWing.java | 2 +- .../java/emt/item/block/ItemBlockSolars.java | 368 +++++++++++------- .../java/emt/item/block/ItemBlockSolars2.java | 92 ----- .../textures/items/materials/cardboard.png | Bin 1382 -> 445 bytes .../textures/items/materials/crushedamber.png | Bin 538 -> 529 bytes .../items/materials/crushedcinnabar.png | Bin 532 -> 522 bytes .../emt/textures/items/materials/ducttape.png | Bin 431 -> 346 bytes .../emt/textures/items/materials/glue.png | Bin 326 -> 318 bytes .../emt/textures/items/materials/glueball.png | Bin 326 -> 0 bytes .../items/materials/purifiedamber.png | Bin 663 -> 650 bytes .../items/materials/purifiedcinnabar.png | Bin 607 -> 584 bytes .../textures/items/materials/rubberball.png | Bin 1313 -> 303 bytes .../items/materials/taintedfeather.png | Bin 1430 -> 563 bytes .../items/materials/thaumiumplate.png | Bin 268 -> 266 bytes 29 files changed, 613 insertions(+), 617 deletions(-) delete mode 100644 settings.gradle delete mode 100644 src/main/java/emt/block/BlockSolars2.java delete mode 100644 src/main/java/emt/item/block/ItemBlockSolars2.java delete mode 100644 src/main/resources/assets/emt/textures/items/materials/glueball.png diff --git a/build.gradle b/build.gradle index 168978c..46b5696 100644 --- a/build.gradle +++ b/build.gradle @@ -2,16 +2,13 @@ buildscript { repositories { mavenCentral() maven { url = "http://files.minecraftforge.net/maven" } - maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" } } dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT' - classpath 'org.ajoberstar:gradle-git:0.10.1' } } apply plugin: 'forge' -apply plugin: 'maven-publish' ext.configFile = file "build.properties" configFile.withReader { @@ -64,22 +61,4 @@ tasks.build.dependsOn sourceJar, deobfJar tasks.withType(JavaCompile) { task -> task.options.encoding = 'UTF-8' -} - -publishing { - tasks.publish.dependsOn 'build' - publications { - mavenJava(MavenPublication) { - from components.java - artifact sourceJar - artifact deobfJar - } - } - repositories { - if (project.hasProperty('maven_repo')) { - maven { url maven_repo } - } else { - mavenLocal() - } - } } \ No newline at end of file diff --git a/build.properties b/build.properties index 5d23a0c..cf085c4 100644 --- a/build.properties +++ b/build.properties @@ -1,5 +1,3 @@ -# -#Wed Feb 24 14:31:53 PDT 2015 package_group=emt mc_version=1.7.10 forge_version=10.13.4.1614 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9eb806b..977446f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.12-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 247a2da..0000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -rootProject.name = 'ElectroMagicTools' \ No newline at end of file diff --git a/src/main/java/emt/block/BlockBaseContainer.java b/src/main/java/emt/block/BlockBaseContainer.java index c13a321..29cfad4 100644 --- a/src/main/java/emt/block/BlockBaseContainer.java +++ b/src/main/java/emt/block/BlockBaseContainer.java @@ -1,11 +1,13 @@ package emt.block; +import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import emt.EMT; import emt.tile.TileEntityEMT; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -16,22 +18,45 @@ import net.minecraft.world.World; public abstract class BlockBaseContainer extends BlockContainer { - public IIcon[] top = new IIcon[16]; - public IIcon[] bottom = new IIcon[16]; - public IIcon[] side = new IIcon[16]; - public IIcon[] frontOff = new IIcon[16]; - public IIcon[] frontOn = new IIcon[16]; + @SideOnly(Side.CLIENT) + IconSet[] iconSets; + + public int instance; + public int countOfMetas; public BlockBaseContainer(String unlocName, Material material, SoundType soundType, float hardness) { + this(unlocName, material, soundType, 1, hardness); + } + + public BlockBaseContainer(String unlocName, Material material, SoundType soundType, int countOfMetas, float hardness) { + this(unlocName, material, soundType, countOfMetas, 0, hardness); + } + + public BlockBaseContainer(String unlocName, Material material, SoundType soundType, int countOfMetas, int curInstance, float hardness) { super(material); - setBlockName(EMT.MOD_ID + "." + unlocName); - setCreativeTab(EMT.TAB); - setStepSound(soundType); - setHardness(hardness); + this.setBlockName(EMT.MOD_ID + "." + unlocName); + this.setCreativeTab(EMT.TAB); + this.setStepSound(soundType); + this.setHardness(hardness); + + this.countOfMetas = countOfMetas; + this.instance = curInstance; + + if (FMLCommonHandler.instance().getSide() == Side.CLIENT) { + iconSets = new IconSet[countOfMetas]; + + for (int meta = 0; meta < countOfMetas; meta++) { + iconSets[meta] = new IconSet(); + } + } + } + + public IconSet[] getIconSets() { + return iconSets; } @Override - public TileEntity createNewTileEntity(World var1, int var2) { + public TileEntity createNewTileEntity(World world, int meta) { return null; } @@ -39,37 +64,54 @@ public abstract class BlockBaseContainer extends BlockContainer { @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess access, int x, int y, int z, int side) { TileEntityEMT tile = (TileEntityEMT) access.getTileEntity(x, y, z); - int i = access.getBlockMetadata(x, y, z); + int meta = access.getBlockMetadata(x, y, z); + + IconSet set = iconSets[meta]; if (side == 0) { - return this.bottom[i]; + return set.bottom; } else if (side == 1) { - return this.top[i]; + return set.top; } else if (side != tile.facing) { - return this.side[i]; + return set.side; } else if (tile.isOn) { - return this.frontOn[i]; + if (set.frontOn != null) { + return set.frontOn; + } + + if (set.frontOff != null) { + return set.frontOff; + } + + return set.side; } else { - return this.frontOff[i]; + if (set.frontOff != null) { + return set.frontOff; + } + + return set.side; } } @Override public IIcon getIcon(int side, int meta) { + IconSet set = iconSets[meta]; + if (side < 1) { - return this.bottom[meta]; + return set.bottom; } if (side == 1) { - return this.top[meta]; + return set.top; } if (side == 3) { - return this.frontOff[meta]; + return set.frontOff; } - return this.side[meta]; + + return set.side; } @Override @@ -77,18 +119,36 @@ public abstract class BlockBaseContainer extends BlockContainer { int facing = MathHelper.floor_double(entity.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; TileEntityEMT tile = (TileEntityEMT) world.getTileEntity(x, y, z); - if (facing == 0) - tile.facing = 2; - else if (facing == 1) - tile.facing = 5; - else if (facing == 2) - tile.facing = 3; - else if (facing == 3) - tile.facing = 4; + switch (facing) { + case 0: + tile.facing = 2; + break; + + case 1: + tile.facing = 5; + break; + + case 2: + tile.facing = 3; + break; + + case 3: + tile.facing = 4; + break; + } } @Override public int damageDropped(int meta) { return meta; } + + @SideOnly(Side.CLIENT) + public static class IconSet { + public IIcon top; + public IIcon bottom; + public IIcon side; + public IIcon frontOff; + public IIcon frontOn; + } } diff --git a/src/main/java/emt/block/BlockEssentiaGenerators.java b/src/main/java/emt/block/BlockEssentiaGenerators.java index 96b98c4..05ceafa 100644 --- a/src/main/java/emt/block/BlockEssentiaGenerators.java +++ b/src/main/java/emt/block/BlockEssentiaGenerators.java @@ -22,31 +22,26 @@ import org.lwjgl.opengl.GL11; public class BlockEssentiaGenerators extends BlockBaseContainer { public BlockEssentiaGenerators(String name) { - super(name, Material.iron, soundTypeMetal, 4.0F); + super(name, Material.iron, soundTypeMetal, 5, 4.0F); } @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister ri) { - this.blockIcon = ri.registerIcon(EMT.TEXTURE_PATH + ":machines/top"); + public void registerBlockIcons(IIconRegister ir) { + super.registerBlockIcons(ir); + this.blockIcon = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/top"); - for (int i = 0; i <= 5; i++) { - this.top[i] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/top"); + for (int meta = 0; meta < 5; meta++) { + iconSets[meta].top = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/top"); + iconSets[meta].bottom = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/top"); + iconSets[meta].side = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/side"); } - for (int i = 0; i <= 5; i++) { - this.bottom[i] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/top"); - } - - for (int i = 0; i <= 5; i++) { - this.side[i] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/side"); - } - - this.frontOff[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/potentiafront"); - this.frontOff[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/ignisfront"); - this.frontOff[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/auramfront"); - this.frontOff[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/arborfront"); - this.frontOff[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/aerfront"); + iconSets[0].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/potentiafront"); + iconSets[1].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/ignisfront"); + iconSets[2].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/auramfront"); + iconSets[3].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/arborfront"); + iconSets[4].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":essentiagenerator/aerfront"); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/emt/block/BlockMachines.java b/src/main/java/emt/block/BlockMachines.java index 7d6c097..9a408f9 100644 --- a/src/main/java/emt/block/BlockMachines.java +++ b/src/main/java/emt/block/BlockMachines.java @@ -26,28 +26,30 @@ import emt.tile.TileEntityIndustrialWandRecharge; public class BlockMachines extends BlockBaseContainer { public BlockMachines(String name) { - super(name, Material.iron, soundTypeMetal, 4.0F); + super(name, Material.iron, soundTypeMetal, 2, 4.0F); } @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister ir) { + super.registerBlockIcons(ir); + this.blockIcon = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/top"); - this.top[0] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/top"); - this.top[1] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratortop"); + iconSets[0].top = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/top"); + iconSets[1].top = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratortop"); - this.bottom[0] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/side"); - this.bottom[1] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmacerator"); + iconSets[0].bottom = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/side"); + iconSets[1].bottom = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmacerator"); - this.side[0] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/side"); - this.side[1] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmacerator"); + iconSets[0].side = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/side"); + iconSets[1].side = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmacerator"); - this.frontOff[0] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/wandcharger"); - this.frontOff[1] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratorfront"); + iconSets[0].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/wandcharger"); + iconSets[1].frontOff = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratorfront"); - this.frontOn[0] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/wandcharger"); - this.frontOn[1] = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratorfrontactive"); + iconSets[0].frontOn = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/wandcharger"); + iconSets[1].frontOn = ir.registerIcon(EMT.TEXTURE_PATH + ":machines/etherealmaceratorfrontactive"); } @SideOnly(Side.CLIENT) @@ -84,15 +86,15 @@ public class BlockMachines extends BlockBaseContainer { } @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { dropItems(world, x, y, z); world.removeTileEntity(x, y, z); - super.breakBlock(world, x, y, z, par5, par6); + super.breakBlock(world, x, y, z, block, meta); } private void dropItems(World world, int x, int y, int z) { - Random rand = new Random(); - + Random rand = world.rand; + TileEntity tileEntity = world.getTileEntity(x, y, z); if (!(tileEntity instanceof IInventory)) { return; diff --git a/src/main/java/emt/block/BlockSolars.java b/src/main/java/emt/block/BlockSolars.java index 341a0cf..671be04 100644 --- a/src/main/java/emt/block/BlockSolars.java +++ b/src/main/java/emt/block/BlockSolars.java @@ -3,13 +3,20 @@ package emt.block; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import emt.EMT; +import emt.block.BlockBaseContainer.IconSet; +import emt.tile.TileEntityEMT; import emt.tile.solar.air.TileEntityAirSolar; +import emt.tile.solar.air.TileEntityDoubleAirSolar; +import emt.tile.solar.air.TileEntityTripleAirSolar; import emt.tile.solar.compressed.TileEntityCompressedSolar; import emt.tile.solar.compressed.TileEntityDoubleCompressedSolar; import emt.tile.solar.compressed.TileEntityTripleCompressedSolar; import emt.tile.solar.dark.TileEntityDarkSolar; import emt.tile.solar.dark.TileEntityDoubleDarkSolar; import emt.tile.solar.dark.TileEntityTripleDarkSolar; +import emt.tile.solar.earth.TileEntityDoubleEarthSolar; +import emt.tile.solar.earth.TileEntityEarthSolar; +import emt.tile.solar.earth.TileEntityTripleEarthSolar; import emt.tile.solar.fire.TileEntityDoubleFireSolar; import emt.tile.solar.fire.TileEntityFireSolar; import emt.tile.solar.fire.TileEntityTripleFireSolar; @@ -26,151 +33,197 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import java.util.List; public class BlockSolars extends BlockBaseContainer { - - public BlockSolars(String name) { - super(name, Material.iron, soundTypeMetal, 4.0F); + public BlockSolars(String name, int countOfMetas, int instance) { + super(name, Material.iron, soundTypeMetal, countOfMetas, instance, 4.0F); } @Override @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister ri) { - this.top[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - this.top[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[5] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - this.top[6] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[7] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[8] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - this.top[9] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[10] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[11] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - this.top[12] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[13] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[14] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - this.top[15] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); + public void registerBlockIcons(IIconRegister ir) { + IIcon solarTop = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); + IIcon doubleSolarTop = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); + IIcon tripleSolarTop = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); + IIcon bottom = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[5] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[6] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[7] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[8] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[9] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[10] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[11] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[12] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[13] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[14] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[15] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); + if(instance == 0) { + iconSets[0].top = solarTop; + iconSets[1].top = doubleSolarTop; + iconSets[2].top = tripleSolarTop; + iconSets[3].top = solarTop; + iconSets[4].top = doubleSolarTop; + iconSets[5].top = tripleSolarTop; + iconSets[6].top = solarTop; + iconSets[7].top = doubleSolarTop; + iconSets[8].top = tripleSolarTop; + iconSets[9].top = solarTop; + iconSets[10].top = doubleSolarTop; + iconSets[11].top = tripleSolarTop; + iconSets[12].top = solarTop; + iconSets[13].top = doubleSolarTop; + iconSets[14].top = tripleSolarTop; + iconSets[15].top = solarTop; + + iconSets[0].bottom = bottom; + iconSets[1].bottom = bottom; + iconSets[2].bottom = bottom; + iconSets[3].bottom = bottom; + iconSets[4].bottom = bottom; + iconSets[5].bottom = bottom; + iconSets[6].bottom = bottom; + iconSets[7].bottom = bottom; + iconSets[8].bottom = bottom; + iconSets[9].bottom = bottom; + iconSets[10].bottom = bottom; + iconSets[11].bottom = bottom; + iconSets[12].bottom = bottom; + iconSets[13].bottom = bottom; + iconSets[14].bottom = bottom; + iconSets[15].bottom = bottom; + + IIcon side = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); + IIcon waterSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); + IIcon darkSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); + IIcon orderSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); + IIcon fireSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); + IIcon airSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); + + iconSets[0].side = side; + iconSets[1].side = side; + iconSets[2].side = side; + iconSets[3].side = waterSide; + iconSets[4].side = waterSide; + iconSets[5].side = waterSide; + iconSets[6].side = darkSide; + iconSets[7].side = darkSide; + iconSets[8].side = darkSide; + iconSets[9].side = orderSide; + iconSets[10].side = orderSide; + iconSets[11].side = orderSide; + iconSets[12].side = fireSide; + iconSets[13].side = fireSide; + iconSets[14].side = fireSide; + iconSets[15].side = airSide; + } + if(instance == 1) { + iconSets[0].top = doubleSolarTop; + iconSets[1].top = tripleSolarTop; + iconSets[2].top = solarTop; + iconSets[3].top = doubleSolarTop; + iconSets[4].top = tripleSolarTop; - this.frontOff[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.frontOff[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.frontOff[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.frontOff[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.frontOff[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.frontOff[5] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.frontOff[6] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.frontOff[7] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.frontOff[8] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.frontOff[9] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.frontOff[10] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.frontOff[11] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.frontOff[12] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.frontOff[13] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.frontOff[14] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.frontOff[15] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); + iconSets[0].bottom = bottom; + iconSets[1].bottom = bottom; + iconSets[2].bottom = bottom; + iconSets[3].bottom = bottom; + iconSets[4].bottom = bottom; - this.side[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.side[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.side[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/side"); - this.side[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.side[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.side[5] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/water/waterside"); - this.side[6] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.side[7] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.side[8] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/dark/darkside"); - this.side[9] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.side[10] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.side[11] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/order/orderside"); - this.side[12] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.side[13] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.side[14] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/fire/fireside"); - this.side[15] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); + IIcon airSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); + IIcon earthSide = ir.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); + + iconSets[0].side = airSide; + iconSets[1].side = airSide; + iconSets[2].side = earthSide; + iconSets[3].side = earthSide; + iconSets[4].side = earthSide; + } } @SideOnly(Side.CLIENT) public void getSubBlocks(Item id, CreativeTabs tab, List list) { - for (int i = 0; i <= 15; i++) { - list.add(new ItemStack(id, 1, i)); + if (instance == 0) { + for (int meta = 0; meta < 16; meta++) { + list.add(new ItemStack(id, 1, meta)); + } } + + if (instance == 1) { + for (int meta = 0; meta < 5; meta++) { + list.add(new ItemStack(id, 1, meta)); + } + } + + } + + @Override + public IIcon getIcon(int side, int meta) { + if (side < 1) { + return iconSets[meta].bottom; + } + if (side == 1) { + return iconSets[meta].top; + } + + return iconSets[meta].side; } @Override public TileEntity createTileEntity(World world, int meta) { - if (meta == 0) { - return new TileEntityCompressedSolar(); + if (instance == 0) { + switch (meta) { + case 0: + return new TileEntityCompressedSolar(); + case 1: + return new TileEntityDoubleCompressedSolar(); + case 2: + return new TileEntityTripleCompressedSolar(); + case 3: + return new TileEntityWaterSolar(); + case 4: + return new TileEntityDoubleWaterSolar(); + case 5: + return new TileEntityTripleWaterSolar(); + case 6: + return new TileEntityDarkSolar(); + case 7: + return new TileEntityDoubleDarkSolar(); + case 8: + return new TileEntityTripleDarkSolar(); + case 9: + return new TileEntityOrderSolar(); + case 10: + return new TileEntityDoubleOrderSolar(); + case 11: + return new TileEntityTripleOrderSolar(); + case 12: + return new TileEntityFireSolar(); + case 13: + return new TileEntityDoubleFireSolar(); + case 14: + return new TileEntityTripleFireSolar(); + case 15: + return new TileEntityAirSolar(); + } } - if (meta == 1) { - return new TileEntityDoubleCompressedSolar(); - } - if (meta == 2) { - return new TileEntityTripleCompressedSolar(); - } - if (meta == 3) { - return new TileEntityWaterSolar(); - } - if (meta == 4) { - return new TileEntityDoubleWaterSolar(); - } - if (meta == 5) { - return new TileEntityTripleWaterSolar(); - } - if (meta == 6) { - return new TileEntityDarkSolar(); - } - if (meta == 7) { - return new TileEntityDoubleDarkSolar(); - } - if (meta == 8) { - return new TileEntityTripleDarkSolar(); - } - if (meta == 9) { - return new TileEntityOrderSolar(); - } - if (meta == 10) { - return new TileEntityDoubleOrderSolar(); - } - if (meta == 11) { - return new TileEntityTripleOrderSolar(); - } - if (meta == 12) { - return new TileEntityFireSolar(); - } - if (meta == 13) { - return new TileEntityDoubleFireSolar(); - } - if (meta == 14) { - return new TileEntityTripleFireSolar(); - } - if (meta == 15) { - return new TileEntityAirSolar(); + + if (instance == 1) { + + switch (meta) { + case 0: + return new TileEntityDoubleAirSolar(); + case 1: + return new TileEntityTripleAirSolar(); + case 2: + return new TileEntityEarthSolar(); + case 3: + return new TileEntityDoubleEarthSolar(); + case 4: + return new TileEntityTripleEarthSolar(); + } } + return super.createTileEntity(world, meta); } @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { world.removeTileEntity(x, y, z); - super.breakBlock(world, x, y, z, par5, par6); + super.breakBlock(world, x, y, z, block, meta); } } diff --git a/src/main/java/emt/block/BlockSolars2.java b/src/main/java/emt/block/BlockSolars2.java deleted file mode 100644 index a57417a..0000000 --- a/src/main/java/emt/block/BlockSolars2.java +++ /dev/null @@ -1,88 +0,0 @@ -package emt.block; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import emt.EMT; -import emt.tile.solar.air.TileEntityDoubleAirSolar; -import emt.tile.solar.air.TileEntityTripleAirSolar; -import emt.tile.solar.earth.TileEntityDoubleEarthSolar; -import emt.tile.solar.earth.TileEntityEarthSolar; -import emt.tile.solar.earth.TileEntityTripleEarthSolar; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; - -import java.util.List; - -public class BlockSolars2 extends BlockBaseContainer { - - public BlockSolars2(String name) { - super(name, Material.iron, soundTypeMetal, 4.0F); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister ri) { - this.top[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/solartop"); - this.top[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/doublesolartop"); - this.top[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/triplesolartop"); - - this.bottom[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - this.bottom[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/bottom"); - - this.frontOff[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); - this.frontOff[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); - this.frontOff[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - this.frontOff[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - this.frontOff[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - - this.side[0] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); - this.side[1] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/air/airside"); - this.side[2] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - this.side[3] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - this.side[4] = ri.registerIcon(EMT.TEXTURE_PATH + ":solars/earth/earthside"); - } - - @SideOnly(Side.CLIENT) - public void getSubBlocks(Item id, CreativeTabs tab, List list) { - for (int i = 0; i <= 4; i++) { - list.add(new ItemStack(id, 1, i)); - } - } - - @Override - public TileEntity createTileEntity(World world, int meta) { - if (meta == 0) { - return new TileEntityDoubleAirSolar(); - } - if (meta == 1) { - return new TileEntityTripleAirSolar(); - } - if (meta == 2) { - return new TileEntityEarthSolar(); - } - if (meta == 3) { - return new TileEntityDoubleEarthSolar(); - } - if (meta == 4) { - return new TileEntityTripleEarthSolar(); - } - return super.createTileEntity(world, meta); - } - - @Override - public void breakBlock(World world, int x, int y, int z, Block par5, int par6) { - world.removeTileEntity(x, y, z); - super.breakBlock(world, x, y, z, par5, par6); - } -} diff --git a/src/main/java/emt/init/EMTBlocks.java b/src/main/java/emt/init/EMTBlocks.java index 9277ac8..9d58c40 100644 --- a/src/main/java/emt/init/EMTBlocks.java +++ b/src/main/java/emt/init/EMTBlocks.java @@ -7,13 +7,11 @@ import emt.block.BlockMachines; import emt.block.BlockPortableNode; import emt.block.BlockShield; import emt.block.BlockSolars; -import emt.block.BlockSolars2; import emt.item.block.ItemBlockElectricCloud; import emt.item.block.ItemBlockEssentiaGenerator; import emt.item.block.ItemBlockEssentiaGenerators; import emt.item.block.ItemBlockMachines; import emt.item.block.ItemBlockSolars; -import emt.item.block.ItemBlockSolars2; import ic2.api.item.IC2Items; import net.minecraft.block.Block; import net.minecraft.block.Block.SoundType; @@ -35,11 +33,11 @@ public class EMTBlocks { shield = new BlockShield("shield"); GameRegistry.registerBlock(shield, "ShieldBlock"); - emtSolars = new BlockSolars("solar"); + emtSolars = new BlockSolars("solar", 16, 0); GameRegistry.registerBlock(emtSolars, ItemBlockSolars.class, "EMTSolars"); - emtSolars2 = new BlockSolars2("solar2"); - GameRegistry.registerBlock(emtSolars2, ItemBlockSolars2.class, "EMTSolars2"); + emtSolars2 = new BlockSolars("solar2", 5, 1); + GameRegistry.registerBlock(emtSolars2, ItemBlockSolars.class, "EMTSolars2"); emtMachines = new BlockMachines("machine"); GameRegistry.registerBlock(emtMachines, ItemBlockMachines.class, "EMTMachines"); diff --git a/src/main/java/emt/item/ItemMaterials.java b/src/main/java/emt/item/ItemMaterials.java index 289fc67..1c57a3e 100644 --- a/src/main/java/emt/item/ItemMaterials.java +++ b/src/main/java/emt/item/ItemMaterials.java @@ -31,7 +31,7 @@ import java.util.List; public class ItemMaterials extends Item { - public IIcon[] icon = new IIcon[25]; + public IIcon[] icon = new IIcon[16]; public ItemMaterials() { this.setCreativeTab(EMT.TAB); diff --git a/src/main/java/emt/item/armor/chestplate/ItemInfusedQuantumChestplate.java b/src/main/java/emt/item/armor/chestplate/ItemInfusedQuantumChestplate.java index c7065ca..d4e1f30 100644 --- a/src/main/java/emt/item/armor/chestplate/ItemInfusedQuantumChestplate.java +++ b/src/main/java/emt/item/armor/chestplate/ItemInfusedQuantumChestplate.java @@ -34,6 +34,7 @@ import ic2.core.util.Keyboard; import ic2.core.util.StackUtil; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -67,19 +68,18 @@ import net.minecraftforge.event.entity.living.LivingFallEvent; public class ItemInfusedQuantumChestplate extends ItemArmorElectric { - IIcon iconNONE; - IIcon iconJETPACK; - IIcon iconTHAUMIUM; - IIcon iconNANO; - IIcon iconQUANTUM; - Random rnd; - public final byte NONE = 0; public final byte JETPACK = 1; public final byte THAUMIUM = 2; public final byte NANO = 3; public final byte QUANTUM = 4; + private IIcon iconNONE; + private IIcon iconJETPACK; + private IIcon iconTHAUMIUM; + private IIcon iconNANO; + private IIcon iconQUANTUM; + protected static ArrayList potionRemovalCost = new ArrayList(); public static AudioSource audioSource; private static boolean lastJetpackUsed = false; @@ -88,7 +88,6 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { super(internalName, InternalName.quantum, armorType, 2000000, 12000.0D, 4); MinecraftForge.EVENT_BUS.register(this); this.setCreativeTab(EMT.TAB); - rnd = new Random(); } @SideOnly(Side.CLIENT) @@ -100,25 +99,26 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { iconNANO = iconRegister.registerIcon(EMT.TEXTURE_PATH + ":armor/armor_quantum_chest_wing_n"); iconQUANTUM = iconRegister.registerIcon(EMT.TEXTURE_PATH + ":armor/armor_quantum_chest_wing_q"); } - + @Override public String getUnlocalizedName(ItemStack itemstack) { return "item." + EMT.MOD_ID + ".chestplates.infusedQuantum"; } - - public String getItemStackDisplayName(ItemStack stack) - { - return (StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); - } + + public String getItemStackDisplayName(ItemStack stack) { + return (StatCollector.translateToLocal(this.getUnlocalizedNameInefficiently(stack) + ".name")).trim(); + } @SubscribeEvent public void onEntityLivingFallEvent(LivingFallEvent event) { if ((IC2.platform.isSimulating()) && ((event.entity instanceof EntityLivingBase))) { EntityLivingBase entity = (EntityLivingBase) event.entity; ItemStack armor = entity.getEquipmentInSlot(1); + if ((armor != null) && (armor.getItem() == this)) { int fallDamage = Math.max((int) event.distance - 10, 0); double energyCost = getEnergyPerDamage() * fallDamage; + if (energyCost <= ElectricItem.manager.getCharge(armor)) { ElectricItem.manager.discharge(armor, energyCost, Integer.MAX_VALUE, true, false, false); event.setCanceled(true); @@ -154,16 +154,16 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { byte wing = nbt.getByte("wing"); if (!world.isRemote) { - - for (Object effect : player.getActivePotionEffects()) { - if(potionRemovalCost.contains(new Integer(((PotionEffect)effect).getPotionID()))){ - IC2.platform.removePotion(player, ((PotionEffect)effect).getPotionID()); + + for (PotionEffect effect : (Collection) player.getActivePotionEffects()) { + if (potionRemovalCost.contains(effect.getPotionID())) { + IC2.platform.removePotion(player, effect.getPotionID()); } } - + ItemStack currentStack = player.inventory.getCurrentItem(); - Item currentItem = currentStack == null? null : player.inventory.getCurrentItem().getItem(); - + Item currentItem = currentStack == null ? null : player.inventory.getCurrentItem().getItem(); + if (nbt.hasKey("useother")) { String useother = nbt.getString("useother"); if (useother.equals("Jetpack")) { @@ -283,21 +283,20 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { player.inventory.setInventorySlotContents(player.inventory.currentItem, charged); } } - + nbt.setBoolean("unequip", false); } - if ((IC2.keyboard.isJumpKeyDown(player) && wing == JETPACK) || (hoverMode && player.motionY < -0.029999999329447746D)) { jetpackUsed = useJetpack(player, hoverMode, itemStack); } if (wing == THAUMIUM) - useWing(player, itemStack, world, 0.15f, 0.7f, 0.5f, 0, false); + useWings(player, itemStack, world, 0.15f, 0.7f, 0.5f, 0, false); if (wing == NANO) - useWing(player, itemStack, world, 0.25f, 0.6f, 0.3f, 5, true); + useWings(player, itemStack, world, 0.25f, 0.6f, 0.3f, 5, true); if (wing == QUANTUM) - useWing(player, itemStack, world, 0.33f, 0.5f, 0.2f, 7, true); + useWings(player, itemStack, world, 0.33f, 0.5f, 0.2f, 7, true); if ((IC2.platform.isSimulating()) && (toggleTimer > 0)) { toggleTimer = (byte) (toggleTimer - 1); @@ -340,16 +339,16 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { byte wing = stack.stackTagCompound.getByte("wing"); switch (wing) { - case JETPACK: - return iconJETPACK; - case THAUMIUM: - return iconTHAUMIUM; - case NANO: - return iconNANO; - case QUANTUM: - return iconQUANTUM; - default: - return iconNONE; + case JETPACK: + return iconJETPACK; + case THAUMIUM: + return iconTHAUMIUM; + case NANO: + return iconNANO; + case QUANTUM: + return iconQUANTUM; + default: + return iconNONE; } } catch (Exception e) { return iconNONE; @@ -362,16 +361,16 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { byte wing = stack.stackTagCompound.getByte("wing"); switch (wing) { - case JETPACK: - return iconJETPACK; - case THAUMIUM: - return iconTHAUMIUM; - case NANO: - return iconNANO; - case QUANTUM: - return iconQUANTUM; - default: - return iconNONE; + case JETPACK: + return iconJETPACK; + case THAUMIUM: + return iconTHAUMIUM; + case NANO: + return iconNANO; + case QUANTUM: + return iconQUANTUM; + default: + return iconNONE; } } catch (Exception e) { return iconNONE; @@ -392,16 +391,16 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { byte wing = stack.stackTagCompound.getByte("wing"); switch (wing) { - case JETPACK: - return EMT.TEXTURE_PATH + ":textures/models/quantum_jetpack.png"; - case THAUMIUM: - return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_t.png"; - case NANO: - return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_n.png"; - case QUANTUM: - return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_q.png"; - default: - return EMT.TEXTURE_PATH + ":textures/models/quantum.png"; + case JETPACK: + return EMT.TEXTURE_PATH + ":textures/models/quantum_jetpack.png"; + case THAUMIUM: + return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_t.png"; + case NANO: + return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_n.png"; + case QUANTUM: + return EMT.TEXTURE_PATH + ":textures/models/quantum_wings_q.png"; + default: + return EMT.TEXTURE_PATH + ":textures/models/quantum.png"; } } @@ -436,20 +435,26 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { public boolean useJetpack(EntityPlayer player, boolean hoverMode, ItemStack stack) { int jetpackMaxCharge = 30000; - ItemStack jetpack = stack; - if (ElectricItem.manager.getCharge(stack) <= 0) - return false; float power = 1.0F; float dropPercentage = 0.05F; + + if (ElectricItem.manager.getCharge(stack) <= 0) { + return false; + } + if (((float) ElectricItem.manager.getCharge(stack) / (float) jetpackMaxCharge) <= dropPercentage) { power = (float) (power * (ElectricItem.manager.getCharge(stack) / (float) jetpackMaxCharge) * dropPercentage); } + if (IC2.keyboard.isForwardKeyDown(player)) { float retruster = 3.5F; + if (hoverMode) { retruster = 0.5F; } + float forwardpower = power * retruster * 2.0F; + if (forwardpower > 0.0F) { player.moveFlying(0.0F, 0.4F * forwardpower, 0.02F); } @@ -458,14 +463,17 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { int worldHeight = IC2.getWorldHeight(player.worldObj); double y = player.posY; + if (y > worldHeight - 25) { if (y > worldHeight) { y = worldHeight; } power = (float) (power * ((worldHeight - y) / 25.0D)); } + double prevmotion = player.motionY; player.motionY = Math.min(player.motionY + power * 0.2F, 0.6000000238418579D); + if (hoverMode) { float maxHoverY = -0.025F; if (IC2.keyboard.isSneakKeyDown(player)) { @@ -492,34 +500,42 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { return true; } - void useWing(EntityPlayer player, ItemStack stack, World world, float motionY, float motionXZ, float f1, int amount, boolean isElectric) { - NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); + void useWings(EntityPlayer player, ItemStack stack, World world, float motionY, float motionXZ, float f1, int amount, boolean isElectric) { + NBTTagCompound nbt = StackUtil.getOrCreateNbtData(stack); boolean isJumping = IC2.keyboard.isJumpKeyDown(player); - nbtData.setBoolean("isJumping", isJumping); + nbt.setBoolean("isJumping", isJumping); if (isJumping) { - byte f = nbtData.getByte("f"); - nbtData.setBoolean("isHolding", true); - nbtData.setByte("f", (byte) (f + 1)); - if (f > 7) - nbtData.setByte("f", (byte) 7); + byte f = nbt.getByte("f"); + + nbt.setBoolean("isHolding", true); + nbt.setByte("f", (byte) (f + 1)); + + if (f > 7) { + nbt.setByte("f", (byte) 7); + } } - else if (nbtData.getBoolean("isHolding")) { - byte f = nbtData.getByte("f"); - nbtData.setBoolean("isHolding", false); + else if (nbt.getBoolean("isHolding")) { + byte f = nbt.getByte("f"); + nbt.setBoolean("isHolding", false); player.motionY = motionY * f; - if(isElectric) + + if (isElectric) { ElectricItem.manager.use(stack, ((motionY * f) * 10) * amount, player); + } + if (player.motionX < 0.5 && player.motionZ < 0.5 && player.motionX > -0.5 && player.motionZ > -0.5) { player.motionX /= motionXZ; player.motionZ /= motionXZ; } + world.playSoundEffect(player.posX, player.posY, player.posZ, "mob.ghast.fireball", 1, 1); + for (int i = 0; i < 4; i++) { - world.spawnParticle("cloud", player.posX - 1 + (rnd.nextInt(100) / 50d), player.posY - 1, player.posZ - 1 + (rnd.nextInt(100) / 50d), 0, -0.5, 0); + world.spawnParticle("cloud", player.posX - 1 + (world.rand.nextInt(100) / 50d), player.posY - 1, player.posZ - 1 + (world.rand.nextInt(100) / 50d), 0, -0.5, 0); } - nbtData.setByte("f", (byte) 0); + nbt.setByte("f", (byte) 0); } if (isJumping && !player.onGround && player.motionY < 0) { @@ -531,7 +547,11 @@ public class ItemInfusedQuantumChestplate extends ItemArmorElectric { } if (EMTConfigHandler.impactOfRain) { - if ((world.getBiomeGenForCoords((int) player.posX, (int) player.posZ)).canSpawnLightningBolt() && world.canBlockSeeTheSky((int) player.posX, (int) player.posY, (int) player.posZ) && world.isRaining() && !player.capabilities.isCreativeMode) { + int playerX = MathHelper.floor_double(player.posX); + int playerY = MathHelper.floor_double(player.posY); + int playerZ = MathHelper.floor_double(player.posZ); + + if ((world.getBiomeGenForCoords(playerX, playerZ)).canSpawnLightningBolt() && world.canBlockSeeTheSky(playerX, playerY, playerZ) && world.isRaining() && !player.capabilities.isCreativeMode) { player.motionY += -0.05; } } diff --git a/src/main/java/emt/item/armor/wings/ItemFeatherWing.java b/src/main/java/emt/item/armor/wings/ItemFeatherWing.java index 5140612..a4fdddc 100644 --- a/src/main/java/emt/item/armor/wings/ItemFeatherWing.java +++ b/src/main/java/emt/item/armor/wings/ItemFeatherWing.java @@ -65,10 +65,10 @@ public class ItemFeatherWing extends ItemArmor { @Override public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - useWing(player, stack, world, 0.09f, 0.9f, 0.9f, 0); + useWings(player, stack, world, 0.09f, 0.9f, 0.9f, 0); } - public void useWing(EntityPlayer player, ItemStack stack, World world, float motionY, float motionXZ, float f1, int amount) { + public void useWings(EntityPlayer player, ItemStack stack, World world, float motionY, float motionXZ, float f1, int amount) { NBTTagCompound nbtData = StackUtil.getOrCreateNbtData(stack); boolean isJmuping = nbtData.getBoolean("isJumping"); boolean isHolding = nbtData.getBoolean("isHolding"); diff --git a/src/main/java/emt/item/armor/wings/ItemNanoWing.java b/src/main/java/emt/item/armor/wings/ItemNanoWing.java index 45a8586..e0a43ed 100644 --- a/src/main/java/emt/item/armor/wings/ItemNanoWing.java +++ b/src/main/java/emt/item/armor/wings/ItemNanoWing.java @@ -65,7 +65,7 @@ public class ItemNanoWing extends ItemThaumiumReinforcedWing implements IElectri @Override public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - this.useWing(player, stack, world, 0.25f, 0.6f, 0.3f, 5); + this.useWings(player, stack, world, 0.25f, 0.6f, 0.3f, 5); } @Override diff --git a/src/main/java/emt/item/armor/wings/ItemQuantumWing.java b/src/main/java/emt/item/armor/wings/ItemQuantumWing.java index a8ebf9d..5bed83d 100644 --- a/src/main/java/emt/item/armor/wings/ItemQuantumWing.java +++ b/src/main/java/emt/item/armor/wings/ItemQuantumWing.java @@ -38,7 +38,7 @@ public class ItemQuantumWing extends ItemNanoWing { @Override public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - this.useWing(player, stack, world, 0.33f, 0.5f, 0.2f, 7); + this.useWings(player, stack, world, 0.33f, 0.5f, 0.2f, 7); } @Override diff --git a/src/main/java/emt/item/armor/wings/ItemThaumiumReinforcedWing.java b/src/main/java/emt/item/armor/wings/ItemThaumiumReinforcedWing.java index df9dd3a..56edd87 100644 --- a/src/main/java/emt/item/armor/wings/ItemThaumiumReinforcedWing.java +++ b/src/main/java/emt/item/armor/wings/ItemThaumiumReinforcedWing.java @@ -56,6 +56,6 @@ public class ItemThaumiumReinforcedWing extends ItemFeatherWing implements IVisD @Override public void onArmorTick(World world, EntityPlayer player, ItemStack stack) { - this.useWing(player, stack, world, 0.15f, 0.7f, 0.5f, 0); + this.useWings(player, stack, world, 0.15f, 0.7f, 0.5f, 0); } } diff --git a/src/main/java/emt/item/block/ItemBlockSolars.java b/src/main/java/emt/item/block/ItemBlockSolars.java index 1f9bc94..296d7e2 100644 --- a/src/main/java/emt/item/block/ItemBlockSolars.java +++ b/src/main/java/emt/item/block/ItemBlockSolars.java @@ -9,176 +9,248 @@ import static emt.util.EMTTextHelper.localize; import java.util.List; +import emt.block.BlockBaseContainer; +import emt.block.BlockSolars; import emt.util.EMTConfigHandler; import emt.util.EMTTextHelper; public class ItemBlockSolars extends ItemBlock { - public ItemBlockSolars(Block id) { - super(id); + int instance; + + public ItemBlockSolars(Block block) { + super(block); setHasSubtypes(true); + instance = ((BlockBaseContainer) block).instance; } @Override public String getUnlocalizedName(ItemStack itemstack) { String name = ""; - switch (itemstack.getItemDamage()) { - case 0: { - name = "compressed"; - break; + + if (instance == 0) { + switch (itemstack.getItemDamage()) { + case 0: { + name = "compressed"; + break; + } + case 1: { + name = "doublecompressed"; + break; + } + case 2: { + name = "triplecompressed"; + break; + } + case 3: { + name = "water"; + break; + } + case 4: { + name = "doublewater"; + break; + } + case 5: { + name = "triplewater"; + break; + } + case 6: { + name = "dark"; + break; + } + case 7: { + name = "doubledark"; + break; + } + case 8: { + name = "tripledark"; + break; + } + case 9: { + name = "order"; + break; + } + case 10: { + name = "doubleorder"; + break; + } + case 11: { + name = "tripleorder"; + break; + } + case 12: { + name = "fire"; + break; + } + case 13: { + name = "doublefire"; + break; + } + case 14: { + name = "triplefire"; + break; + } + case 15: { + name = "air"; + break; + } + default: + name = "nothing"; + break; } - case 1: { - name = "doublecompressed"; - break; - } - case 2: { - name = "triplecompressed"; - break; - } - case 3: { - name = "water"; - break; - } - case 4: { - name = "doublewater"; - break; - } - case 5: { - name = "triplewater"; - break; - } - case 6: { - name = "dark"; - break; - } - case 7: { - name = "doubledark"; - break; - } - case 8: { - name = "tripledark"; - break; - } - case 9: { - name = "order"; - break; - } - case 10: { - name = "doubleorder"; - break; - } - case 11: { - name = "tripleorder"; - break; - } - case 12: { - name = "fire"; - break; - } - case 13: { - name = "doublefire"; - break; - } - case 14: { - name = "triplefire"; - break; - } - case 15: { - name = "air"; - break; - } - default: - name = "nothing"; - break; } + + if (instance == 1) { + switch (itemstack.getItemDamage()) { + case 0: { + name = "doubleair"; + break; + } + case 1: { + name = "tripleair"; + break; + } + case 2: { + name = "earth"; + break; + } + case 3: { + name = "doubleearth"; + break; + } + case 4: { + name = "tripleearth"; + break; + } + default: + name = "nothing"; + break; + } + } + return getUnlocalizedName() + "." + name; } @Override - public int getMetadata(int par1) { - return par1; + public int getMetadata(int meta) { + return meta; } @Override - @SuppressWarnings({ "unchecked", "rawtypes" }) - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4) { - switch (itemstack.getItemDamage()) { - case 0: { - list.add(EMTConfigHandler.compressedSolarOutput + localize("tooltip.EMT.euPerTick")); - break; - } - case 1: { - list.add(EMTConfigHandler.doubleCompressedSolarOutput + localize("tooltip.EMT.euPerTick")); - break; - } - case 2: { - list.add(EMTConfigHandler.tripleCompressedSolarOutput + localize("tooltip.EMT.euPerTick")); - break; - } - case 3: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); - break; - } - case 4: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); - break; - } - case 5: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); - break; - } - case 6: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); - break; - } - case 7: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); - break; - } - case 8: { - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); - break; - } - case 9: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); - break; - } - case 10: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); - break; - } + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean advancedItemTooltips) { + if (instance == 0) { + switch (itemstack.getItemDamage()) { + case 0: { + list.add(EMTConfigHandler.compressedSolarOutput + localize("tooltip.EMT.euPerTick")); + break; + } + case 1: { + list.add(EMTConfigHandler.doubleCompressedSolarOutput + localize("tooltip.EMT.euPerTick")); + break; + } + case 2: { + list.add(EMTConfigHandler.tripleCompressedSolarOutput + localize("tooltip.EMT.euPerTick")); + break; + } + case 3: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); + break; + } + case 4: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); + break; + } + case 5: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.raining")); + break; + } + case 6: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); + break; + } + case 7: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); + break; + } + case 8: { + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick") + " " + localize("tooltip.EMT.night")); + break; + } + case 9: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); + break; + } + case 10: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); + break; + } - case 11: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); - break; + case 11: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.triple")); + break; + } + case 12: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); + break; + } + case 13: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); + break; + } + case 14: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.lava")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); + break; + } + case 15: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); + break; + } + default: { + list.add(localize("tooltip.EMT.forget")); + break; + } } - case 12: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); - break; - } - case 13: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); - break; - } - case 14: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.lava")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double") + " " + localize("tooltip.EMT.output.double.nether")); - break; - } - case 15: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); - break; - } - default: { - list.add(localize("tooltip.EMT.forget")); - break; + } + + if (instance == 1) { + switch (itemstack.getItemDamage()) { + case 0: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); + break; + } + case 1: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); + break; + } + case 2: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); + break; + } + case 3: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); + break; + } + case 4: { + list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); + list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); + break; + } + default: { + list.add(localize("tooltip.EMT.forget")); + break; + } } } } diff --git a/src/main/java/emt/item/block/ItemBlockSolars2.java b/src/main/java/emt/item/block/ItemBlockSolars2.java deleted file mode 100644 index 096e4c2..0000000 --- a/src/main/java/emt/item/block/ItemBlockSolars2.java +++ /dev/null @@ -1,92 +0,0 @@ -package emt.item.block; - -import net.minecraft.block.Block; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.ItemBlock; -import net.minecraft.item.ItemStack; - -import static emt.util.EMTTextHelper.localize; - -import java.util.List; - -import emt.util.EMTConfigHandler; -import emt.util.EMTTextHelper; - -public class ItemBlockSolars2 extends ItemBlock { - - public ItemBlockSolars2(Block id) { - super(id); - setHasSubtypes(true); - } - - @Override - public String getUnlocalizedName(ItemStack itemstack) { - String name = ""; - switch (itemstack.getItemDamage()) { - case 0: { - name = "doubleair"; - break; - } - case 1: { - name = "tripleair"; - break; - } - case 2: { - name = "earth"; - break; - } - case 3: { - name = "doubleearth"; - break; - } - case 4: { - name = "tripleearth"; - break; - } - default: - name = "nothing"; - break; - } - return getUnlocalizedName() + "." + name; - } - - @Override - public int getMetadata(int par1) { - return par1; - } - - @Override - public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean par4) { - switch (itemstack.getItemDamage()) { - case 0: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); - break; - } - case 1: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.height")); - break; - } - case 2: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.compressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); - break; - } - case 3: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.doubleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); - break; - } - case 4: { - list.add(EMTTextHelper.BRIGHT_BLUE + localize("tooltip.EMT.normalConditions") + ": " + EMTTextHelper.LIGHT_GRAY + EMTConfigHandler.tripleCompressedSolarOutput + " " + localize("tooltip.EMT.euPerTick")); - list.add(EMTTextHelper.BRIGHT_GREEN + localize("tooltip.EMT.specialEffect") + ": " + EMTTextHelper.LIGHT_GRAY + localize("tooltip.EMT.output.double.half") + " " + localize("tooltip.EMT.output.double.half.low")); - break; - } - default: { - list.add(localize("tooltip.EMT.forget")); - break; - } - } - } -} diff --git a/src/main/resources/assets/emt/textures/items/materials/cardboard.png b/src/main/resources/assets/emt/textures/items/materials/cardboard.png index 8cbdcd579749a33336fa4afc78b7152870b1692f..63720de37042bb954a89f2a03335a837b8a173bb 100644 GIT binary patch delta 419 zcmV;U0bKs(3cUl6B!2;OQb$4nuFf3k00004XF*Lt006O%3;baP00009a7bBm000id z000id0mpBsWB>pF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMIczh2P5=M_E=fc| zR5(wikR|lKUXmN!NVP~584jL%X*ouOJ znapkSlkhFB8v)u))0JcA?^+6i2?;ca_2Cku#VgWC794dSUU79$`UZc-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxR5#hc$WX!DQqR!T z#M01EN5ROz&{*HlK;Otx*U-?)#N5izOaTg%fVLH-q*(>IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD#PU%0_}#n6BP2AO_EVu8M)o`HUDF34YC)x{-2sR(CaRb3oXS&*t9 zlvo|%`DUtX*UiXn)HT~doO%TiO^it=+6z(H)4iN$)eBx8$2 z0|PVNMB^j_-DC@3AXu0hn&_sPB$`;Hq#C7|o2Dv3^{0>4VYQEU|{U_ba4!+xV2=`Uhl&JB1g}AUp~KNYeclnotV2Z zEaB$n;s^8oDYDA`Wxm70zS~26BcI--gRdSeSnyy$H%C!>3Jn;r`Z_vVtqm+n3HA9_#J|Gec`#X#w;nSfZ@=c z&Zj|~7d;wgN&4J&RC&^_VN$Jih$T>@t?jA8s=)Ktznq-7~c>OXK^bm3gz url~91&f(4!)3M|G`rqjXES@_zFftgwJ9*FZ&H1ySlF!rC&t;ucLK6T%FY3eq diff --git a/src/main/resources/assets/emt/textures/items/materials/crushedamber.png b/src/main/resources/assets/emt/textures/items/materials/crushedamber.png index d8d05b19d70c7bac613010315814a8420be74a3c..af2d375b8a4e9bf061f9b4a2560ba6598c6fd5c3 100644 GIT binary patch delta 479 zcmV<50U-XG1d#-gJbw@X01FTSts}j400007bV*G`2i*u45)&V6kGjtQ000;Xq+&SmWncIf4 zEJINgYr$R9G@;+`dnW$Fbq69Q5cJ|Y4sp7}Y|)QP{_p}+r(rtvAV83vNSb2-?wy?+qN~tg>wNuh|qvAI6kuF{Y`jHcZ}ZUVs5xV zgc@~1s~IS~==d<6g~0$>WYrUKR)4~Lt6e|51~dkY7>47Obn0B1V!s6iR_}+?gf9xX V)o5`}$vgl6002ovPDHLkV1kKg&PD(L delta 488 zcmVj>83 z55(4oun?5EBqGUXAzCcE$*!yra0`oIZ6h{$0Shfv1R;%eUVr48Z^Bt`6pPupbLX5h zXKv!MEOSYctOa*tTd03SqXKsY@)_KW97_ZIJX zdR19?Tp&V?IDc7A8wc0~^f_#Kb_JBCskvY>B4^#Do258dxiBCBkUSoZuxTXjAj#eP zVApE7Al4qO-EMpG{o#hg$w#thljJUrVMF32p)>Ob+5#o+Mb?A^xG%KJ6h^Ykj z$P(c^==Y7x&rFRlwGmZ7#J(ny<)SRc_DH1d0TZJbw`Y01FWTe`H^g00007bV*G`2i*u45)C(vdoAh!000QLOj9-G7PUj(() zYNZ&BM#}%;^cfQV2EgGRL38NoK+&pod3`<;7BMMaZ-nt(A3!b;$#ww#T3qQo6m?t( zcv44>&xqJ;HnHAr<0F0`M~4gJ91OZp14KrI>G`C;-*$qrzt8qvLM#pH9Sjr&dU~z| zdXH9lxm-$wy??0edv}CVPvTNfsv?kC zp>11W1X022Gb{jjm@Z_GwdnD1r_(7* zZ=xaesd)wcQ!-7Q_yLnEx#4}%8`*X5fM0Yt98@GMiYpwLU=q>0ZnIyjXA^HSjPQ z6@HPo$YBANVkIZYh65x*IRO&MCU}`WpL|e+Hxphlg-oO@+J8OMT~%GvPKLu_(r&je zg4%dIR0)0CItdwgceVO-JXZ zsN+JwlaAz2)%#EsMVKDr^=kt;9C5)o2ZJuu0Fe=4dfM&j{`j*A@6Qj(>hLYGIOyb{ zp(xN~S_riKSbr;LStb$Q4F)kX966vFLw3o4n1a~L=Q`kMG#Z8eU?4Gs&69mAQ^@l? zVAWGBxL7Rol(H<n?E%Ep?-C3+L@FYNi1B$nI_X2ntKwDg~6GW&HyWK895Uf7U0)TF> zFMB+T9*e80Dv3MM5c<^o1pQMoO`Ldv(Ush=pSUBtJ~`kQ&F6C!35((i2PT+AoLtw* YFB`xX&Vj$iJpcdz07*qoM6N<$fpj^nDTUIIdiq9md*L(s+rUDw$-jt=)Ky+b`VyP$1b8-~Fl zq{xYpd7eE}k4+NjRS6L=h)mPunR-dkG>yL!5F%g@;dC5w`KR+W-In07*qoM6N<$g3q0RPXGV_ delta 354 zcmV-o0iFKZ0ss2j70#~f!Az;(V+%pS%3Ca>^RP$_7FN&aUA~}K<6q=Q)!y!&sVryE|TZDs3b{r00=UW zBN02F&$@V;CZSeg5X3=(0U5cjD?t!gk%yl%ilS!#@2AsA!Z6grkB=*wJOf~U_6mCd zC-y4<^E>Q-w#`sq0dxo4V-N5=?^ggmt~aqLiVc8a{RChE^*<)^xCb=^k>vaSw*Y4L zSiaAH0mF#4zIMPo5CeOxz0I|Ny-X3>$F>sn0e@h07PoKu(*OVf07*qoM6N<$g2z9e Az5oCK diff --git a/src/main/resources/assets/emt/textures/items/materials/glue.png b/src/main/resources/assets/emt/textures/items/materials/glue.png index c6d7a2879d5097d804e315564c12328c59d1dbcf..b3270264dc4575f3aa8157cafb0148250efc1467 100644 GIT binary patch delta 270 zcmV+p0rCFE0=@!}B#|)~f5HF&4#EKyC`y0;000+ju6Cs+I zyh%%Q6Bnkm@Qb$4nuFf3kks%un!vFvd!vV){sAK>D02Yx-8h<y|s3%e0%Q)&;YPOTx&g?QrcsT17r#yD3ww=0N(=abP0gW-t`m% zz#bdxDgb8J7y$PE7M62<2380{GropH2={NGM`DUXGT}!6(^zT33Mq)`Ia6n@7x@3^ zQxLZQrCw8D07xtUIKK8(OTAWuWC5CrbwbJ3FXh}1U-;e1N7#eX00000NkvXXu0mjf DT7PPq diff --git a/src/main/resources/assets/emt/textures/items/materials/glueball.png b/src/main/resources/assets/emt/textures/items/materials/glueball.png deleted file mode 100644 index c6d7a2879d5097d804e315564c12328c59d1dbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL9r6oh?3y^w370~qEv>0#LT=By}Z;C1rt33 z>la@$fhu--x;Tbd_-~zXkhfJqz-8slDvO&;>{1V$Y>FDQ{`}8u%W26-dZZ#8cC(V( zVvEk{?0W8q>!s7ve^+n?WZd4icWc?2n(FuL7Z^4;#$?;h3A&Zs!<@pUpfNSbis3%f zn-b23GxxrVFdvYUeyzojc3pzu+dr{s#dT~PPR9G%oH@SdFK|!lax!}8&Tu&*^AMM2 z$4krL^mXDt{=Wzo*!F*ETyO$|hxUJqecwX8_l7m6FwW{Kbvk)X|LGn6_#byqx!-8M Q1oQ-hr>mdKI;Vst04vjZ!2kdN diff --git a/src/main/resources/assets/emt/textures/items/materials/purifiedamber.png b/src/main/resources/assets/emt/textures/items/materials/purifiedamber.png index b59d8bd18402ec6f5f7133beb94e0313af5a3cd9..cb215c4dc32a72b849f07cccb0abfdd4adee9ec2 100644 GIT binary patch delta 601 zcmV-f0;c_!1&RfbJbw`Y01FWTe`H^g00007bV*G`2i*u66B{t@nh=@*000B`0@)_RZV{kv|x^g^ai@>Z!X6=1;=| za0+@`SVV`2TV*U7+xXrti-<&E!*Dn>=f^u{9Tc(3tba2vi~OQC*eL;-3rd08Z-B7j7B5#o=K?$|Jx+H( zCviriP#TsnYuv?U$430t$s+6lt%5kZ65;FfTXMntaCb2C9oesgGL}6XN%j_V*Fw^@ z!1vMV@=_~&I=Ut<^etHA-9@{CdCSHk%gp+R_wS@ea3Fg`fD0RFhnMO`p%Dr8vQPhb n5}OJO`4PY00000NkvXXu0mjfJfs*h delta 614 zcmV-s0-61a1(yYoJbw}Z01FZU(%pXi00007bV*G`2i*u66B{t@nh=@*000_vMObuG zZ)S9NVRB^vP+@6qbS_RsR3LUUE;TMOF-P-4Hvj+v07*naR5(v{Qaz6nQ51cD#lphQ z!kDZ}l!buovP@~CwIQrAm?cqm`52fF3JMAfVy%spot2HrCVwV^1LGjOqsEV9|Htv2 zYwpNuEY6$z-o5wSb1s;Ezi(Qt)&=lwGMSiqy)Iwke|1?vY&H+X$A1(7Z6=P-va zK~dP_<2>kp<=4O|=iWAA-@&3=Le##A_no4Uhy@n7u77Jz4s&Mhm5|tl(JzzyejjYh z^i@#9!tNky-@^QO2ka3AJYL+nWYVyTxL*R}rB}nsD&Xc5f8YAA;N{)RChChFR z%HgA`QK&_NwXD-Wo>n{ A?EnA( diff --git a/src/main/resources/assets/emt/textures/items/materials/purifiedcinnabar.png b/src/main/resources/assets/emt/textures/items/materials/purifiedcinnabar.png index af149cc5aff67cef111608848013180abc7cd8ea..594f7079dacad869a1341b267a9b7fd3311dab21 100644 GIT binary patch delta 535 zcmV+y0_gqU1jq!CJbw`Y01FWTe`H^g00007bV*G`2i*u66EPbtO(pUG0001jEV>WK?VN~zy(Y=0GAllC_0K|eI+%5iHkQ~U4Q-R)vKlnQ51!8xx4~$ zwOY+kDwS;gk7u9dg1>;cyhqS$IJ1DHt7h?95d#UQ$rAvxiAO6ooA9|S?H+1wUS)~!5dwx z)oQ>2JRiv%K)#-On`# z=TPs$1W+U3=czZEc2S6trx1};3)>43&Uqg+uo3u7r_zz~guM8OpVL^&Fb|FWPUtcSM0#@>L5hkx3g?WwA+9)^(1-UHsbt7xGWPzDXOCsUUqD>`#?UqF*@B|G9#*!}HE4$G`0X$qN9(`t!Zi z9&V-fbSG}|7b^x%x){C6)z?_c<#K4eKgrqKqeStGz>7YIX6B&LiW}%96EUdC+WJN~ z(FAw%X&8J@rGGmeNnK6h`&p!J4efNP1iD+2*;x82%IEXpdj2V0t;6e1;xvUN@Xjrb zJ{%51TTS|!z)djh&pxD3Ch(27iHCM{z&@vi0^(*@QJcOtdz_ z`S{Jm2p8Q(k|c?lQnOUL-`DQ#-*k07bThz>1wYU3-o70aX4EaRnw;yqt#3@&=YG(@ zM&J?0aqt3juWxKxTxLa3sZ_#XFtCfnui#Cor5DNn4{SDdq*FcRhQ3L4tk?QTuQlfb w;9-y^h$o^bRI61h0yiZU>0ICpF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMIczh2P5=M^ph-kQ zR5(wil35PJAP_^@eh~M+4R@pQsE*7qY8&;#Qf%y}Y-z3amw&?WiNX-7wO*&`mOrPC z0K?wQS&Da7B!eZjJhsn*)&74j8;vU+9*0MF)& zEJxV^Kp2%vDMuCp%me_R>DV@#xvUQG**?8M+o-YN4T*++Y<(Y4D0A$89#t4VQ5gQN am0r(7EYezxrVZl&0000gaILZ4igNgU_WnZwE_G(G!;EQ3Gb`u-@k?3) zpkYPm0#P7Hz56eNMg%F{FULE~j>wCgs3{J?(sAUJG(;mvh|-=}2UaSTzcXf+-_%LYkl)B%vr)Tr1j!83q5kv97ie?@a?D z3Jfiyi?ANaZACE5-J=aziqIRbRhMB=gcPrd83m|jnD=4u#v#cPCo+tiNirht0!|Y5 zuuK9Myom%(15XloSWyx^WRYh*JRNLegMP0o=ykg(DoFeNeyWM_xM+$B1w&50hz+ZT zDX1bS+Lod10+x9smJ8@WFf~1{X{lltv~_EyW^`+5G!Q_yx67)eWsL@_LaPDuK$l+z zQb^YnbS1@{ypDNMa=KWSapQpYin!opSlkO-Gz?v!Sxe?kCa?lt`oF0opi_j^C;#c2 zq6jvlwOyM6cvzbwpu*wN;gp;_AFoG{l2DlU$8*2@5F0y}f1&17u(zS6qAVl|x9RQS z#oBKNCx$*j`l>2wH`%`X`s%H*@^9Mqe04dT?3#UV`ouJNt76z*xntkJhPgj&bs}M( zxbS@S!BTgmRH)4_EFGO?_kG-cw7&AAnGlz|wN{yI0D7`gG%-cRo<|-hHj{naRx4qX+rPzn332G!D0ZIA?pizT|td z^Rwy6`o$CI)Gg-P1L}H49ewhNI$Qbf-LIcL`}1-;3C{2XvD5SF=!`2mKXbD3z_0pa zZ}#_}kzYyuak{&8@bSM!#yj4~AL8ASnF~uBQg`UV;f2oFe9C=y?&7`X{t_g-dDGQP Sdjr-_5D5oc_;XF2`F{XpF7<5HgbW?9;ba!ELWdLwtX>N2bZe?^JG%heMIczh2P5=M_q)9|U zR5(wiQd=uTQ5ZdQZDw8+FN#PpW!y@+gc_#FD3_2KGcI{hB7eCyB$jRF?;ChLx6sY(D#r_)I$lSwhLXBdOoZ*)Im%yl43RRTECVzDSD_WUx;Y&I)q zXKp9fI&WpEN`F9f5{>+pWYp^`tj)U3!AA@`ws9SN!*bu5EL90$MW^$=4f%s`+Pd)i z^Z{Sh2)0J=Fzq>!rQZbb?ldp@t}ySuz;x3&YV-OLs6WMO#|`8Y$x@X7PG>+{X#n;t zFM1to@VoY~E cp99h-vlB-g6#$P2q5uE@07*qoM6N<$f@pu`k^lez literal 1430 zcmbVMe^3-<7~WD6NDUjvP>5x_kORO0=I{pQw|nd^-hrk} zqb3RsS(24A{ZTd%p=FLTb0I>a1`IPnHW8yVq9HoM7|m!V*dB1yAB=yrGrQlf_j#W8 zdw*=TBYXX#=w;Cm1TC^<5qvLG#KuSH7HY-$*ioS4D?xQ~|F~K|@gLx`2;nN`MTzK@rEBk+EPa0&}bx z$FrmgZ7_P<$6N=-c)+sb85W>@7_L%dUT^4LQ`VB~1pm4*r?up&@Bz#T zB%xenlzezrguzPe9xW6yRJ0(FQs|lMEen~j`zOn4x-ufe_V)#uzJ5L6`nJmoT6TA4eAA7n- zFD$S1fb7LvT7GZ&aBSkr_SQi|jr30I;iz4@kJ6;{7*f9=V-q*g0IaznTlaoOI}tzPqQpt*@_|$XoK@%=WAM zo_{)OD6UxUEGRLjoL&=nuWMd)OZ$l2KKw=+e4^(@&6W*)IdPHjs>Zq`%I``WLHGQ1 zotvMdkH2G~mUkNUWZT`-?&fB5d*7|ZB^{Qcf_;S%&))g;a@O~ag|syOs$W-#n26D diff --git a/src/main/resources/assets/emt/textures/items/materials/thaumiumplate.png b/src/main/resources/assets/emt/textures/items/materials/thaumiumplate.png index 420afcfda9101b5b2f40a2def47ba404d3946f9d..1b4e4fad23354256ea001ae9db74a9312e80f5d5 100644 GIT binary patch delta 214 zcmV;{04e{B0*V5VJbw=W01FQRlKBIr00007bV*G`2i*q|2pR@&tVitt000%LWBC!sLTe6$wl4P^W%{h=y>>9!#-J8wvX6VG16u^-s7!StK+C3N)TDJx1!h z|0uvQ^GJ`NP3~mI%#eV`uLAjipXDu`JLd2KB@v+jBQj5#66m0;RbQo)6Hu+#hNpOs Q*Z=?k07*qoM6N<$f)0I90{{R3 delta 216 zcmV;}04M*70*nHXJbw@X01FTSts}j400007bV*G`2i*q|2pR@&tVitt000_vMObuG zZ)S9NVRB^vP+@6qbS_RsR3LUUE;TMOF-P-4Hvj+tbxA})R5(w?jL`{zFbqVqlixak z;0WRlPU6OqNP}mSNJ<3{-bXLJN6g%XTee_|Y1mk)Zyu(Q;ZeFA7buH_ra(cBCrpo# zdE9>#;8=L1MNlSpGGn1jAmdkoe!$QA*3KPEOx<