Merge branch 'experimental' from GTNH into mergeGTNH (based on BLOODASP)

# Conflicts:
# build.properties
# src/main/java/gregtech/GT_Mod.java
# src/main/java/gregtech/api/enums/ItemList.java
# src/main/java/gregtech/api/enums/Materials.java
# src/main/java/gregtech/api/enums/Textures.java
# src/main/java/gregtech/api/enums/Tier.java
# src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java
# src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Fluid.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicGenerator.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java
# src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java
# src/main/java/gregtech/api/util/GT_ModHandler.java
# src/main/java/gregtech/api/util/GT_Recipe.java
# src/main/java/gregtech/api/util/GT_RecipeRegistrator.java
# src/main/java/gregtech/api/util/GT_Utility.java
# src/main/java/gregtech/common/GT_Client.java
# src/main/java/gregtech/common/GT_Pollution.java
# src/main/java/gregtech/common/GT_Proxy.java
# src/main/java/gregtech/common/GT_RecipeAdder.java
# src/main/java/gregtech/common/GT_Worldgen_GT_Ore_Layer.java
# src/main/java/gregtech/common/GT_Worldgenerator.java
# src/main/java/gregtech/common/blocks/GT_Block_Casings3.java
# src/main/java/gregtech/common/blocks/GT_Block_Casings_Abstract.java
# src/main/java/gregtech/common/blocks/GT_Block_Machines.java
# src/main/java/gregtech/common/blocks/GT_Block_Stones_Abstract.java
# src/main/java/gregtech/common/blocks/GT_Item_Machines.java
# src/main/java/gregtech/common/blocks/GT_Item_Ores.java
# src/main/java/gregtech/common/blocks/GT_TileEntity_Ores.java
# src/main/java/gregtech/common/covers/GT_Cover_FluidRegulator.java
# src/main/java/gregtech/common/covers/GT_Cover_Fluidfilter.java
# src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java
# src/main/java/gregtech/common/gui/GT_Container_Regulator.java
# src/main/java/gregtech/common/items/GT_IntegratedCircuit_Item.java
# src/main/java/gregtech/common/items/GT_MetaGenerated_Item_01.java
# src/main/java/gregtech/common/items/GT_MetaGenerated_Item_02.java
# src/main/java/gregtech/common/items/GT_MetaGenerated_Item_03.java
# src/main/java/gregtech/common/items/GT_MetaGenerated_Tool_01.java
# src/main/java/gregtech/common/items/armor/ArmorData.java
# src/main/java/gregtech/common/items/armor/GuiElectricArmor1.java
# src/main/java/gregtech/common/items/armor/ModularArmor_Item.java
# src/main/java/gregtech/common/items/armor/Values.java
# src/main/java/gregtech/common/items/armor/gui/GuiModularArmor.java
# src/main/java/gregtech/common/items/armor/gui/InventoryArmor.java
# src/main/java/gregtech/common/items/behaviors/Behaviour_Plunger_Fluid.java
# src/main/java/gregtech/common/items/behaviors/Behaviour_Sense.java
# src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_Regulator.java
# src/main/java/gregtech/common/tileentities/automation/GT_MetaTileEntity_TypeFilter.java
# src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Bronze.java
# src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Lava.java
# src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java
# src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_DieselGenerator.java
# src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_FluidNaquadahReactor.java
# src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SolidNaquadahReactor.java
# src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_SteamTurbine.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_AdvSeismicProspector.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Disassembler.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Massfabricator.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Replicator.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Scanner.java
# src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AdvMiner2.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_AssemblyLine.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DieselEngine.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ElectricBlastFurnace.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ImplosionCompressor.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Gas.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Plasma.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_MultiFurnace.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilCracker.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java
# src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_VacuumFreezer.java
# src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Bronze.java
# src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Compressor_Steel.java
# src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Bronze.java
# src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Extractor_Steel.java
# src/main/java/gregtech/common/tileentities/machines/steam/GT_MetaTileEntity_Macerator_Steel.java
# src/main/java/gregtech/common/tools/GT_Tool_Scoop.java
# src/main/java/gregtech/loaders/load/GT_FuelLoader.java
# src/main/java/gregtech/loaders/misc/GT_Achievements.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingBlock.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingCircuit.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingDust.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingDustSmall.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingDustTiny.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingGemExquisite.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingGemFlawless.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingNugget.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingOre.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeLarge.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeMedium.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPipeSmall.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate1.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate2.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate3.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate4.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate5.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingStickLong.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadBuzzSaw.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadChainsaw.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadDrill.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadFile.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadHammer.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingToolHeadWrench.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire01.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire02.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire04.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire08.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire12.java
# src/main/java/gregtech/loaders/oreprocessing/ProcessingWire16.java
# src/main/java/gregtech/loaders/postload/GT_CraftingRecipeLoader.java
# src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java
# src/main/java/gregtech/loaders/postload/GT_Worldgenloader.java
# src/main/java/gregtech/loaders/preload/GT_Loader_ItemData.java
# src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java
# src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java
# src/main/java/gregtech/loaders/preload/GT_Loader_OreProcessing.java
# src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
# src/main/resources/assets/gregtech/textures/items/gt.Double_Naquadahcell.png
# src/main/resources/assets/gregtech/textures/items/gt.Double_NaquadahcellDep.png
# src/main/resources/assets/gregtech/textures/items/gt.Naquadahcell.png
# src/main/resources/assets/gregtech/textures/items/gt.NaquadahcellDep.png
# src/main/resources/assets/gregtech/textures/items/gt.Quad_Naquadahcell.png
# src/main/resources/assets/gregtech/textures/items/gt.Quad_NaquadahcellDep.png
This commit is contained in:
Technus 2017-04-27 17:06:22 +02:00
commit 929073a7ae
456 changed files with 23535 additions and 18571 deletions

2
.gitignore vendored
View file

@ -72,10 +72,10 @@ local.properties
.idea_modules/
/out/
gradle/wrapper/gradle-wrapper.properties
gradlew
gradlew.bat
# Linux
*~
*.bat

View file

@ -63,6 +63,10 @@ repositories {
maven { // AppleCore
url "http://www.ryanliptak.com/maven/"
}
maven { // GalacticGreg, YAMCore,..
name 'UsrvDE'
url "http://jenkins.usrv.de:8082/nexus/content/repositories/releases/"
}
ivy {
name "BuildCraft"
artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
@ -82,6 +86,7 @@ repositories {
ivy {
name 'IC2NuclearControl'
artifactPattern "http://addons-origin.cursecdn.com/files/${config.nc.cf}/[module]-[revision].[ext]"
}
ivy {
name 'ImmersiveEngineering'
@ -94,7 +99,8 @@ repositories {
}
dependencies {
provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") {
compile "eu.usrv:YAMCore:${config.minecraft.version}-${config.yamcore.version}:deobf"
provided ("appeng:appliedenergistics2:${config.ae2.version}:dev") {
exclude module: '*'
}
provided "codechicken:CodeChickenLib:${config.minecraft.version}-${config.codechickenlib.version}:dev"

View file

@ -1,7 +1,7 @@
minecraft.version=1.7.10
forge.version=10.13.4.1566-1.7.10
gt.version=5.09.29
gt.version=5.09.29-GTNH
ae2.version=rv2-beta-33
applecore.version=1.7.10-1.2.1+107.59407
@ -18,11 +18,12 @@ enderiocore.version=1.7.10-0.1.0.25_beta
forestry.version=4.2.10.58
ic2.version=2.2.790-experimental
nei.version=1.0.3.57
railcraft.cf=2219/321
railcraft.version=1.7.10-9.4.0.0
railcraft.cf=2299/713
railcraft.version=1.7.10-9.12.2.0
nc.cf=2275/987
nc.version=2.3.4a
immeng.cf=2299/20
immeng.version=0.7.7-deobf
magneticraft.cf=2276/268
magneticraft.version=0.6.1-final
yamcore.version=0.5.73

View file

@ -0,0 +1,660 @@
item.gregtech:modulararmor_helmet.name=Basic Modular Armor Helmet
item.gregtech:modulararmor_chestplate.name=Basic Modular Armor Chestplate
item.gregtech:modulararmor_leggings.name=Basic Modular Armor Leggings
item.gregtech:modulararmor_boots.name=Basic Modular Armor Boots
item.gregtech:modularelectric1_helmet.name=Modular Exoskeleton Helmet
item.gregtech:modularelectric1_chestplate.name=Modular Exoskeleton Chestplate
item.gregtech:modularelectric1_leggings.name=Modular Exoskeleton Leggings
item.gregtech:modularelectric1_boots.name=Modular Exoskeleton Boots
item.gregtech:modularelectric2_helmet.name=Modular Nanosuit Helmet
item.gregtech:modularelectric2_chestplate.name=Modular Nanosuit Chestplate
item.gregtech:modularelectric2_leggings.name=Modular Nanosuit Leggings
item.gregtech:modularelectric2_boots.name=Modular Nanosuit Boots
achievement.Naquadah=Find Naquadah Ore
achievement.Naquadah.desc=Height: 10-90, Chance: 10, Asteroids/Venus/Titan/Oberon/Pluto/KuiperBelt/VegaB/BarnardE/BarnardF//
achievement.NaquadahEnriched=Find NaquadahEnriched Ore
achievement.NaquadahEnriched.desc=Height: 10-90, Chance: 10, Asteroids/Venus/Titan/Oberon/Pluto/KuiperBelt/VegaB/BarnardE/BarnardF//
achievement.Lignite=Find Lignite Ore
achievement.Lignite.desc=Height: 30-210, Chance: 160, Overworld//
achievement.Coal=Find Coal Ore
achievement.Coal.desc=Height: 30-210, Chance: 160, Overworld/Twilight-Forrest//
achievement.Magnetite=Find Magnetite Ore
achievement.Magnetite.desc=Height: 30-180, Chance: 160, Overworld/Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Asteorids/IO/Triton/Pluto/Makamake/VegaB/BarnardE/BarnardF/Tceti//
achievement.Iron=Find Iron Ore
achievement.Iron.desc=Height: 5-180, Chance: 120, Overworld/Nether/Twilight-Forrest/End/End-Asteroids/Moon/Deimos/Ceres/IO/Callisto/Enceladus/Proteus/Makemake/BarnardE/BarnardF/Tceti//
achievement.VanadiumMagnetite=Find VanadiumMagnetite Ore
achievement.VanadiumMagnetite.desc=Height: 60-180, Chance: 160, Overworld/Twilight-Forrest/Deimos/IO/Makemake/BarnardE/Tceti/
achievement.Gold=Find Gold Ore
achievement.Gold.desc=Height: 30-60, Chance: 160, Overworld/Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Asteroids/Callisto/Triton/Pluto/VegaB/BarnardF/Tceti/
achievement.BrownLimonite=Find BrownLimonite Ore
achievement.BrownLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto//
achievement.YellowLimonite=Find YellowLimonite Ore
achievement.YellowLimonite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto//
achievement.BandedIron=Find BandedIron Ore
achievement.BandedIron.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto//
achievement.Malachite=Find Malachite Ore
achievement.Malachite.desc=Height: 10-40, Chance: 120, Overworld/Nether/Mars/Ganymed/Callisto/Mecury/Oberon/Pluto//
achievement.Tin=Find Tin Ore
achievement.Tin.desc=Height: 60-220, Chance: 50, Overworld/Twilight-Forrest/End/End-Asteroids/Moon/IO/Venus/Miranda/Tceti//
achievement.Cassiterite=Find Cassiterite Ore
achievement.Cassiterite.desc=Height: 60-220, Chance: 50, Overworld/Twilight-Forrest/End/End-Asteroids/Moon/IO/Venus/Miranda/Tceti//
achievement.Tetrahedrite=Find Tetrahedrite Ore
achievement.Tetrahedrite.desc=Height: 80-120, Chance: 70, Nether/End/End-Asteroids/Mars/Deimos/Asteroids/Ganymed/Venus/Miranda/KuiperBelt/VegaB//
achievement.Copper=Find Copper Ore
achievement.Copper.desc=Height: 5-120, Chance: 80, Overworld/Nether/End/End-Asteroids/Moon/Mars/Deimos/Asteroids/Ceres/Ganymed/Callisto/Venus/Enceladus/Miranda/Proteus/KuiperBelt/VegaB/BarnardE/BarnardF//
achievement.Stibnite=Find Stibnite Ore
achievement.Stibnite.desc=Height: 80-120, Chance: 70, Nether/End/End-Asteroids/Mars/Deimos/Asteroids/Ganymed/Venus/Miranda/KuiperBelt/VegaB//
achievement.NetherQuartz=Find NetherQuartz Ore
achievement.NetherQuartz.desc=Height: 40-80, Chance: 80, /Nether//
achievement.Sulfur=Find Sulfur Ore
achievement.Sulfur.desc=Height: 5-20, Chance: 100, /Nether/Mars/Phobos/Deimos/IO/Venus//
achievement.Pyrite=Find Pyrite Ore
achievement.Pyrite.desc=Height: 5-60, Chance: 100, Overworld/Nether/End/End-Asteroids/Moon/Mars/Phobos/Deimos/Ceres/IO/Callisto/Venus/Enceladus/Proteus/BarnardE/BarnardF//
achievement.Sphalerite=Find Sphalerite Ore
achievement.Sphalerite.desc=Height: 5-20, Chance: 100, /Nether/Mars/Phobos/Deimos/IO/Venus//
achievement.Chalcopyrite=Find Chalcopyrite Ore
achievement.Chalcopyrite.desc=Height: 5-60, Chance: 80, Overworld/Nether/End/End-Asteroids/Moon/Ceres/Callisto/Enceladus/Proteus/BarnardE/BarnardF//
achievement.Bauxite=Find Bauxite Ore
achievement.Bauxite.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto/KuiperBelt/Makemake/Haumea/Tceti//
achievement.Aluminium=Find Aluminium Ore
achievement.Aluminium.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto/KuiperBelt/Makemake/Haumea/Tceti//
achievement.Ilmenite=Find Ilmenite Ore
achievement.Ilmenite.desc=Height: 10-80, Chance: 80, Moon/Phobos/Asteroids/Ganymed/Mercury/Titan/Proteus/Pluto/KuiperBelt/Makemake/Haumea/Tceti//
achievement.RockSalt=Find RockSalt Ore
achievement.RockSalt.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars/Tceti//
achievement.Salt=Find Salt Ore
achievement.Salt.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars/Tceti//
achievement.Lepidolite=Find Lepidolite Ore
achievement.Lepidolite.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars/Tceti//
achievement.Spodumene=Find Spodumene Ore
achievement.Spodumene.desc=Height: 50-70, Chance: 50, Overworld/Twilight-Forrest/Mars/Tceti//
achievement.Redstone=Find Redstone Ore
achievement.Redstone.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury/Miranda/VegaB/BarnardF//
achievement.Ruby=Find Ruby Ore
achievement.Ruby.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury/Miranda/VegaB/BarnardF//
achievement.Cinnabar=Find Cinnabar Ore
achievement.Cinnabar.desc=Height: 5-40, Chance: 60, Overworld/Nether/Mars/Ganymed/Venus/Mercury/Miranda/VegaB/BarnardF//
achievement.Soapstone=Find Soapstone Ore
achievement.Soapstone.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest//
achievement.Talc=Find Talc Ore
achievement.Talc.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest//
achievement.Glauconite=Find Glauconite Ore
achievement.Glauconite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest//
achievement.Pentlandite=Find Pentlandite Ore
achievement.Pentlandite.desc=Height: 10-50, Chance: 40, Overworld/Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton/KuiperBelt//
achievement.Garnierite=Find Garnierite Ore
achievement.Garnierite.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton/KuiperBelt//
achievement.Nickel=Find Nickel Ore
achievement.Nickel.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton/KuiperBelt//
achievement.Cobaltite=Find Cobaltite Ore
achievement.Cobaltite.desc=Height: 10-40, Chance: 40, Twilight-Forrest/End/End-Asteroids/Mars/Phobos/Deimos/Venus/Titan/Triton/KuiperBelt//
achievement.Cooperite=Find Cooperite Ore
achievement.Cooperite.desc=Height: 40-50, Chance: 5, //
achievement.Palladium=Find Palladium Ore
achievement.Palladium.desc=Height: 5-30, Chance: 10, /Ceres/IO/Ganymed/Callisto/Mercury/Oberon/Pluto/KuiperBelt/Tceti//
achievement.Platinum=Find Platinum Ore
achievement.Platinum.desc=Height: 5-30, Chance: 10, /Ceres/IO/Ganymed/Callisto/Mercury/Oberon/Pluto/KuiperBelt/Tceti//
achievement.Iridium=Find Iridium Ore
achievement.Iridium.desc=Height: 5-40, Chance: 10, IO/Venus/Mercury/Enceladus/Titan/Oberon/Miranda/Proteus/Triton/Pluto/KuiperBelt/Tceti//
achievement.Pitchblende=Find Pitchblende Ore
achievement.Pitchblende.desc=Height: 30-60, Chance: 40, Mars/Phobos/IO/Venus/Oberon/KuiperBelt/Makemake/Haumea/VegaB/BarnardF//
achievement.Uranium=Find Uranium Ore
achievement.Uranium.desc=Height: 30-60, Chance: 40, Mars/Phobos/Deimos/Ceres/IO/Gannymed/Venus/Enceladus/Oberon/Proteus//
achievement.Uraninite=Find Uraninite Ore
achievement.Uraninite.desc=Height: 5-60, Chance: 40, Mars/Phobos/Deimos/Ceres/IO/Gannymed/Venus/Enceladus/Oberon/Proteus/KuiperBelt/Makemake/Haumea/VegaB/BarnardE/BarnardF//
achievement.Plutonium=Find Plutonium Ore
achievement.Plutonium.desc=Height: can only processed//
achievement.Bastnasite=Find Bastnasite Ore
achievement.Bastnasite.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton/Makemake/Haumea/BarnardF//
achievement.Monazite=Find Monazite Ore
achievement.Monazite.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton/Makemake/Haumea/BarnardF//
achievement.Neodymium=Find Neodymium Ore
achievement.Neodymium.desc=Height: 20-40, Chance: 30, Moon/Deimos/IO/Callisto/Venus/Enceladus/Titan/Triton/Makemake/Haumea/BarnardF//
achievement.Wulfenite=Find Wulfenite Ore
achievement.Wulfenite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto/BarnardE//
achievement.Molybdenite=Find Molybdenite Ore
achievement.Molybdenite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto/BarnardE//
achievement.Molybdenum=Find Molybdenum Ore
achievement.Molybdenum.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto/BarnardE//
achievement.Powellite=Find Powellite Ore
achievement.Powellite.desc=Height: 20-50, Chance: 5, Nether/Twilight-Forrest/Moon/Phobos/Ceres/Mercury/Titan/Proteus/Pluto/BarnardE//
achievement.Scheelite=Find Scheelite Ore
achievement.Scheelite.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Triton/Pluto/Makemake/Haumea/VegaB//
achievement.Tungstate=Find Tungstate Ore
achievement.Tungstate.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Triton/Pluto/Makemake/Haumea/VegaB//
achievement.Lithium=Find Lithium Ore
achievement.Lithium.desc=Height: 20-60, Chance: 10, Mars/Deimos/Asteroids/Ganymed/Callisto/Enceladus/Oberon/Triton/Pluto/Makemake/Haumea/VegaB//
achievement.Almandine=Find Almandine Ore
achievement.Almandine.desc=Height: 10-40, Chance: 60, Twilight-Forrest//
achievement.Pyrope=Find Pyrope Ore
achievement.Pyrope.desc=Height: 10-40, Chance: 60, Twilight-Forrest//
achievement.Sapphire=Find Sapphire Ore
achievement.Sapphire.desc=Height: 10-40, Chance: 60, Twilight-Forrest//
achievement.GreenSapphire=Find GreenSapphire Ore
achievement.GreenSapphire.desc=Height: 10-40, Chance: 60, Twilight-Forrest//
achievement.Grossular=Find Grossular Ore
achievement.Grossular.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton/BarnardE/BarnardF//
achievement.Spessartine=Find Spessartine Ore
achievement.Spessartine.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton/BarnardE/BarnardF//
achievement.Pyrolusite=Find Pyrolusite Ore
achievement.Pyrolusite.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton/BarnardE/BarnardF//
achievement.Tantalite=Find Tantalite Ore
achievement.Tantalite.desc=Height: 20-30, Chance: 20, Overworld/Nether/Ceres/IO/Titan/Oberon/Triton/BarnardE/BarnardF//
achievement.Quartzite=Find Quartzite Ore
achievement.Quartzite.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus/Tceti//
achievement.Barite=Find Barite Ore
achievement.Barite.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus/Tceti//
achievement.CertusQuartz=Find CertusQuartz Ore
achievement.CertusQuartz.desc=Height: 40-80, Chance: 60, Nether/Moon/Mars/Phobos/IO/Venus/Proteus/Tceti//
achievement.Graphite=Find Graphite Ore
achievement.Graphite.desc=Height: 5-20, Chance: 40, Overworld/Twilight-Forrest/Phobos/Ganymed/Mercury/Titan/Miranda/Proteus/Pluto/KuiperBelt/BarnardF//
achievement.Diamond=Find Diamond Ore
achievement.Diamond.desc=Height: 5-20, Chance: 40, Overworld/Twilight-Forrest/Phobos/Ganymed/Mercury/Titan/Miranda/Proteus/Pluto/KuiperBelt/BarnardF//
achievement.Bentonite=Find Bentonite Ore
achievement.Bentonite.desc=Height: 10-40, Chance: 60, Twilight-Forrest/Makemake/Haumea/BarnardE//
achievement.Magnesite=Find Magnesite Ore
achievement.Magnesite.desc=Height: 10-40, Chance: 60, Twilight-Forrest/Makemake/Haumea/BarnardE//
achievement.Olivine=Find Olivine Ore
achievement.Olivine.desc=Height: 10-40, Chance: 60, Twilight-Forrest/Makemake/Haumea/BarnardE//
achievement.Apatite=Find Apatite Ore
achievement.Apatite.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest/Tceti//
achievement.Phosphorus=Find Phosphorus Ore
achievement.Phosphorus.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest/Tceti//
achievement.Phosphate=Find Phosphate Ore
achievement.Phosphate.desc=Height: 40-60, Chance: 60, Overworld/Twilight-Forrest/Tceti//
achievement.Galena=Find Galena Ore
achievement.Galena.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton/VegaB//
achievement.Silver=Find Silver Ore
achievement.Silver.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton/VegaB//
achievement.Lead=Find Lead Ore
achievement.Lead.desc=Height: 5-45, Chance: 40, Twilight-Forrest/Moon/Mars/Ganymed/Venus/Oberon/Triton/VegaB//
achievement.Lazurite=Find Lazurite Ore
achievement.Lazurite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus/VegaB//
achievement.Sodalite=Find Sodalite Ore
achievement.Sodalite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus/VegaB//
achievement.Lapis=Find Lapis Ore
achievement.Lapis.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus/VegaB//
achievement.Calcite=Find Calcite Ore
achievement.Calcite.desc=Height: 20-50, Chance: 40, Overworld/Twilight-Forrest/Deimos/Ceres/Enceladus/VegaB//
achievement.Beryllium=Find Beryllium Ore
achievement.Beryllium.desc=Height: 5-30, Chance: 30, Nether/End/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto/Makemake/Haumea/BarnardF//
achievement.Emerald=Find Emerald Ore
achievement.Emerald.desc=Height: 5-30, Chance: 30, Nether/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto/Makemake/Haumea/BarnardF//
achievement.Thorium=Find Thorium Ore
achievement.Thorium.desc=Height: 5-30, Chance: 30, Nether/End-Asteroids/Mars/Ceres/Venus/Titan/Pluto/Makemake/Haumea/BarnardF//
achievement.Oilsands=Find Oilsands Ore
achievement.Oilsands.desc=Height: 50-80, Chance: 80, Overworld/Tceti//
achievement.InfusedAir=Find Air Infused Ore
achievement.InfusedAir.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.InfusedFire=Find Fire Infused Ore
achievement.InfusedFire.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.InfusedEarth=Find Earth Infused Ore
achievement.InfusedEarth.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.InfusedWater=Find Water Infused Ore
achievement.InfusedWater.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.InfusedEntropy=Find Entropy Infused Ore
achievement.InfusedEntropy.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.InfusedOrder=Find Order Infused Ore
achievement.InfusedOrder.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.Amber=Find Amber Ore
achievement.Amber.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.Cinnabar=Find Cinnabar Ore
achievement.Cinnabar.desc=Height: 5-35, Chance: 16, Twilight-Forrest//
achievement.Uvarovite=Find Uvarovite Ore
achievement.Uvarovite.desc=Height: 10-200, Chance: 16, Moon/Ganymed/Asteroids/Callisto/Mercury/Titan/Miranda/Proteus/Pluto/Tceti//
achievement.Chromite=Find Chromite Ore
achievement.Chromite.desc=Height: 10-200, Chance: 16, Moon/Ganymed/Asteroids/Callisto/Mercury/Titan/Miranda/Proteus/Pluto/Tceti//
achievement.Titanium=Find Titanium Ore
achievement.Titanium.desc=Height: 10-200, Chance: 16, Moon/Ganymed/Asteroids/Callisto/Mercury/Titan/Miranda/Proteus/Pluto/Tceti//
achievement.Perlite=Find Perlite Ore
achievement.Perlite.desc=Height: 10-200, Chance: 16, Moon/Ganymed/Asteroids/Callisto/Mercury/Titan/Miranda/Proteus/Pluto/Tceti//
achievement.Vermiculite=Find Vermiculite Ore
achievement.Vermiculite.desc=Height: 180-250, Chance: 80, Overworld//
achievement.Alunite=Find Alunite Ore
achievement.Alunite.desc=Height: 5-250, Chance: 80, Overworld//
achievement.GraniticMineralSand=Find Granitic Mineral Sand Ore
achievement.GraniticMineralSand.desc=Height: 50-60, Chance: 80, Overworld//
achievement.BasalticMineralSand=Find Basaltic Mineral Sand Ore
achievement.BasalticMineralSand.desc=Height: 50-60, Chance: 80, Overworld//
achievement.FullersEarth=Find Fullers Earth Ore
achievement.FullersEarth.desc=Height: 50-60, Chance: 80, Overworld//
achievement.Gypsum=Find Gypsum Ore
achievement.Gypsum.desc=Height: 50-60, Chance: 80, Overworld//
achievement.Kaolinite=Find Kaolinite Ore
achievement.Kaolinite.desc=Height: 50-70, Chance: 60, Overworld//
achievement.Zeolite=Find Zeolite Ore
achievement.Zeolite.desc=Height: 50-70, Chance: 60, Overworld//
achievement.GlauconiteSand=Find Glauconite Sand Ore
achievement.GlauconiteSand.desc=Height: 50-70, Chance: 60, Overworld//
achievement.Kyanite=Find Kyanite Ore
achievement.Kyanite.desc=Height: 20-40, Chance: 20, Overworld//
achievement.Mica=Find Mica Ore
achievement.Mica.desc=Height: 20-40, Chance: 20, Overworld//
achievement.CassiteriteSand=Find Cassiterite Sand Ore
achievement.CassiteriteSand.desc=Height: 20-60, Chance: 20, Overworld//
achievement.Pollucite=Find Pollucite Ore
achievement.Pollucite.desc=Height: 20-40, Chance: 20, Overworld//
achievement.Dolomite=Find Dolomite Ore
achievement.Dolomite.desc=Height: 150-250, Chance: 40, Overworld//
achievement.Wollastonite=Find Wollastonite Ore
achievement.Wollastonite.desc=Height: 150-250, Chance: 40, Overworld//
achievement.Trona=Find Trona Ore
achievement.Trona.desc=Height: 150-250, Chance: 40, Overworld//
achievement.Andradite=Find Andradite Ore
achievement.Andradite.desc=Height: 150-250, Chance: 40, Overworld//
achievement.GarnetSand=Find Garnet Sand Ore
achievement.GarnetSand.desc=Height: 20-60, Chance: 80, Overworld/Haumea/VegaB/BarnardsE/Tceti//
achievement.Asbestos=Find Asbestos Ore
achievement.Asbestos.desc=Height: 50-60, Chance: 80, Overworld//
achievement.Diatomite=Find Diatomite Ore
achievement.Diatomite.desc=Height: 5-60, Chance: 80, Overworld/Nether//
achievement.Saltpeter=Find Saltpeter Ore
achievement.Saltpeter.desc=Height: 5-45, Chance: 40, Nether//
achievement.Nikolite=Find Nikolite Ore
achievement.Nikolite.desc=Height: 5-45, Chance: 40, Nether/Phobos/Deimos/IO/Mercury/Miranda//
achievement.Desh=Find Desh Ore
achievement.Desh.desc=Height: 5-40, Chance: 30, Mars/Miranda//
achievement.Draconium=Find Draconium Ore
achievement.Draconium.desc=Height: 20-40, Chance: 40, End/Phobos/DeimosIO/Mercury/Miranda//
achievement.Jade=Find Jade Ore
achievement.Jade.desc=Height: 20-40, Chance: 40, Phobos/DeimosIO/Mercury/Miranda//
achievement.Vinteum=Find Vinteum Ore
achievement.Vinteum.desc=Height: 20-40, Chance: 40, Phobos/DeimosIO/Mercury/Miranda//
achievement.Quantium=Find Quantium Ore
achievement.Quantium.desc=Height: 5-25, Chance: 30, Venus//
achievement.Amethyst=Find Amethyst Ore
achievement.Amethyst.desc=Height: 5-25, Chance: 30, Venus//
achievement.Ardite=Find Ardite Ore
achievement.Ardite.desc=Height: 5-25, Chance: 30, Venus//
achievement.Rutile=Find Rutile Ore
achievement.Rutile.desc=Height: 5-25, Chance: 30, Venus//
achievement.CallistoIce=Find Callisto Ice Ore
achievement.CallistoIce.desc=Height: 40-60, Chance: 40, Callisto//
achievement.Topaz=Find Topaz Ore
achievement.Topaz.desc=Height: 40-60, Chance: 40, Callisto//
achievement.BlueTopaz=Find Blue Topaz Ore
achievement.BlueTopaz.desc=Height: 40-60, Chance: 40, Callisto//
achievement.Alduorite=Find Alduorite Ore
achievement.Alduorite.desc=Height: 40-60, Chance: 40, Callisto//
achievement.Mytryl=Find Mytryl Ore
achievement.Mytryl.desc=Height: 10-30, Chance: 40, IO//
achievement.Jasper=Find Jasper Ore
achievement.Jasper.desc=Height: 10-30, Chance: 40, IO//
achievement.Ceruclase=Find Ceruclase Ore
achievement.Ceruclase.desc=Height: 10-30, Chance: 40, IO//
achievement.Vulcanite=Find Vulcanite Ore
achievement.Vulcanite.desc=Height: 10-30, Chance: 40, IO//
achievement.Ledox=Find Vulcanite Ore
achievement.Ledox.desc=Height: 40-60, Chance: 40, Encheladus//
achievement.Opal=Find Opal Ore
achievement.Opal.desc=Height: 40-60, Chance: 40, Encheladus//
achievement.Orichalcum=Find Orichalcum Ore
achievement.Orichalcum.desc=Height: 40-60, Chance: 40, Encheladus//
achievement.Rubracium=Find Rubracium Ore
achievement.Rubracium.desc=Height: 40-60, Chance: 40, Encheladus//
achievement.Oriharukon=Find Oriharukon Ore
achievement.Oriharukon.desc=Height: 30-60, Chance: 40, Phobos/Deimos//
achievement.Tanzanite=Find Tanzanite Ore
achievement.Tanzanite.desc=Height: 30-60, Chance: 40, Phobos/Deimos//
achievement.Vyroxeres=Find Vyroxeres Ore
achievement.Vyroxeres.desc=Height: 30-60, Chance: 40, Phobos/Deimos//
achievement.Mirabilite=Find Mirabilite Ore
achievement.Mirabilite.desc=Height: 30-60, Chance: 40, Phobos/Deimos//
achievement.BlackPlutonium=Find Black Plutonium Ore
achievement.BlackPlutonium.desc=Height: 5-25, Chance: 40, Pluto/Makemake/Tceti//
achievement.GarnetRed=Find Red Garnet Ore
achievement.GarnetRed.desc=Height: 5-60, Chance: 40, Pluto/Makemake/Humea/VegaB/BarnardF/Tceti//
achievement.GarnetYellow=Find Yellow Garnet Ore
achievement.GarnetYellow.desc=Height: 5-60, Chance: 40, Pluto/Makemake/Haumea/VegaB/BarnardF/Tceti//
achievement.Borax=Find Borax Ore
achievement.Borax.desc=Height: 5-25, Chance: 40, Pluto/Makemake/Tceti//
achievement.InfusedGold=Find Infused Gold Ore
achievement.InfusedGold.desc=Height: 15-40, Chance: 30, IO/Titan/Proteus/Haumea/VegaB/BarnardsE//
achievement.Niobium=Find Niobium Ore
achievement.Niobium.desc=Height: 5-30, Chance: 60, /Triton/Makemake/VegaB/BarnardsF//
achievement.Yttrium=Find Yttrium Ore
achievement.Yttrium.desc=Height: 5-30, Chance: 60, /Triton/Makemake/VegaB/BarnardsF//
achievement.Gallium=Find Gallium Ore
achievement.Gallium.desc=Height: 5-30, Chance: 60, /Triton/Makemake/VegaB/BarnardsF//
achievement.ShadowIron=Find Shadow Iron Ore
achievement.ShadowIron.desc=Height: 5-25, Chance: 30, /Oberon/Proteus/Pluto/BarnardsE/BarnardsF//
achievement.DeepIron=Find Deep Iron Ore
achievement.DeepIron.desc=Height: 5-25, Chance: 30, /Oberon/Proteus/Pluto/BarnardsE/BarnardsF//
achievement.Silicon=Find Silicon Ore
achievement.Silicon.desc=Height: 5-25, Chance: 30, /Oberon/Proteus/Pluto/BarnardsE/BarnardsF//
achievement.Tungsten=Find Tungsten Ore
achievement.Tungsten.desc=Height: 5-25, Chance: 30, /Oberon/Proteus/Pluto/BarnardsE/BarnardsF//
achievement.Europium=Find Europium Ore
achievement.Europium.desc=Height: 10-30, Chance: 60, /Triton/Pluto/Haumea/VegaB/BarnardsE/BarnardsF//
achievement.Uranium235=Find Uranium235 Ore
achievement.Uranium235.desc=Height: 10-30, Chance: 60, /Triton/Pluto/Haumea/VegaB/BarnardsE/BarnardsF//
achievement.Plutonium241=Find Plutonium241 Ore
achievement.Plutonium241.desc=Height: 10-30, Chance: 60, /Triton/Pluto/Haumea/VegaB/BarnardsE/BarnardsF//
achievement.NetherStar=Find Nether Star Ore
achievement.NetherStar.desc=Height: 20-60, Chance: 60, /Haumea/VegaB/BarnardsE/Tceti//
achievement.Realgar=Find Realgar Ore
achievement.Realgar.desc=Height: 10-30, Chance: 40, /Makemake/VegaB/BarnardsF//
achievement.Chrysotile=Find Chrysotile Ore
achievement.Chrysotile.desc=Height: 10-30, Chance: 40, /Makemake/VegaB/BarnardsF//
achievement.Cerium=Find Cerium Ore
achievement.Cerium.desc=Height: 30-60, Chance: 40, /VegaB/BarnardsE/BarnardsF//
achievement.Caesium=Find Caesium Ore
achievement.Caesium.desc=Height: 30-60, Chance: 40, /VegaB/BarnardsE/BarnardsF//
achievement.Cadmium=Find Cadmium Ore
achievement.Cadmium.desc=Height: 30-60, Chance: 40, /VegaB/BarnardsE/BarnardsF//
achievement.Lanthanum=Find Lanthanum Ore
achievement.Lanthanum.desc=Height: 30-60, Chance: 40, /VegaB/BarnardsE/BarnardsF//
achievement.Vanadium=Find Vanadium Ore
achievement.Vanadium.desc=Height: 10-50, Chance: 60, /Encheladus/Proteus/Makemake/VegaB/BarnardF//
achievement.Osmium=Find Osmium Ore
achievement.Osmium.desc=Height: 5-30, Chance: 60, /Encheladus/Titan/Oberon/Miranda/Proteus/Pluto/KuiperBelt/Tceti//
achievement.Mithril=Find Mithril Ore
achievement.Mithril.desc=Height: 15-40, Chance: 10, /IO/Venus/Mercury/Encheladus/Titan/Miranda/Triton/KuiperBelt/Tceti//
achievement.Chrome=Find Chrome Ore
achievement.Chrome.desc=Height: 5-50, Chance: 60, Ceres/Ganymed/IO/Callisto/Mercury/Oberon/Encheladus/Proteus/Pluto/KuiperBelt/Makemake/VegaB/BarnardF/Tceti//
achievement.Neutronium=Find Neutronium Ore
achievement.Neutronium.desc=Height: 5-30, Chance: 10, /IO/Venus/Mercury/Encheladus/Titan/Miranda/Triton/KuiperBelt/Tceti//
achievement.Adamantium=Find Adamantium Ore
achievement.Adamantium.desc=Height: 5-30, Chance: 10, Proteus/Triton/Pluto/KuiperBelt/Makemake/Haumea/VegaB/BarnardE/BarnardF/Tceti//
achievement.flintpick=First Tools
achievement.flintpick.desc=Craft a flint pick
achievement.crops=Farming
achievement.crops.desc=Craft Crops
achievement.havestlead=Harvest Lead
achievement.havestlead.desc=Get Plumbilia Leafs
achievement.havestcopper=Harvest Copper
achievement.havestcopper.desc=Get Coppon Fiber
achievement.havesttin=Harvest Tin
achievement.havesttin.desc=Get Tine Twig
achievement.havestoil=Harvest Oil
achievement.havestoil.desc=Get Oilberrys
achievement.havestiron=Harvest Iron
achievement.havestiron.desc=Get Ferru Leafs
achievement.havestgold=Harvest Gold
achievement.havestgold.desc=Get Aurelia Leafs
achievement.havestsilver=Harvest Silver
achievement.havestsilver.desc=Get Argentia Leafs
achievement.havestemeralds=Harvest Emeralds
achievement.havestemeralds.desc=Get Bobs yer uncle Berries
achievement.tools=More Tools
achievement.tools.desc=Craft a Hammer
achievement.driltime=Drilltime!
achievement.driltime.desc=Craft a Drill(LV)
achievement.brrrr=Brrrr...
achievement.brrrr.desc=Craft a Chainsaw(LV)
achievement.highpowerdrill=High Power Drill
achievement.highpowerdrill.desc=Craft a Drill(HV)
achievement.hammertime=Hammertime
achievement.hammertime.desc=Craft a Jackhammer
achievement.repair=Repairs
achievement.repair.desc=Craft a Disassembler
achievement.unitool=Universal Tool
achievement.unitool.desc=Craft a Universal Spade
achievement.recycling=Recycling
achievement.recycling.desc=Craft an Arc Furnace
achievement.crushed=Crushed
achievement.crushed.desc=Crush Ores with a Hammer
achievement.cleandust=Clean
achievement.cleandust.desc=Clean a dust in a cauldron
achievement.washing=Washing
achievement.washing.desc=Get purified crushed ores
achievement.spinit=Spin it
achievement.spinit.desc=Get centrifuged ore
achievement.newfuel=New Fuel
achievement.newfuel.desc=Craft a Thorium Fuel Cell
achievement.newmetal=New Metal
achievement.newmetal.desc=Make Lutetium from Thorium Fuel Cells
achievement.reflect=Reflect
achievement.reflect.desc=Craft an Iridium Neutron Reflector
achievement.bronze=Bronze
achievement.bronze.desc=Craft bronze dust
achievement.simplyeco=Simply Eco
achievement.simplyeco.desc=Craft a Solar Boiler
achievement.firststeam=First Steam
achievement.firststeam.desc=Craft a Bronze Boiler
achievement.alloysmelter=Alloysmelter
achievement.alloysmelter.desc=Craft a Steam Alloysmelter
achievement.macerator=Macerator
achievement.macerator.desc=Craft a Steam Macerator
achievement.extract=Extract
achievement.extract.desc=Craft a Steam Extractor
achievement.smallparts=Small Parts
achievement.smallparts.desc=Craft NAND Chips
achievement.bettercircuits=Better Circuits
achievement.bettercircuits.desc=Get Good Circuits
achievement.stepforward=Step forward
achievement.stepforward.desc=Craft Advanced Circuits
achievement.energyflow=Energyflow
achievement.energyflow.desc=Get Energyflow Circuits
achievement.orbs=Orbs
achievement.orbs.desc=Get a Lapotronic Energy Orb
achievement.thatspower=That is Power
achievement.thatspower.desc=Get a Lapotronic Energy Orb Cluster
achievement.datasaving=Datasaving
achievement.datasaving.desc=Get a Dataorb
achievement.superbuffer=Superbuffer
achievement.superbuffer.desc=Craft a LV Superbuffer
achievement.newstorage=New Storage
achievement.newstorage.desc=Craft a Quantum Chest
achievement.whereistheocean=Where is the Ocean?
achievement.whereistheocean.desc=Build a Quantum Tank
achievement.luck=Real Luck
achievement.luck.desc=Find a Zero Point Module in a Jungle Temple
achievement.steel=Steel
achievement.steel.desc=Produce Steel in a Bronze Blast Furnace
achievement.highpressure=High Pressure
achievement.highpressure.desc=Craft a High Pressure Boiler
achievement.extremepressure=Extreme Pressure
achievement.extremepressure.desc=Start up a Large Boiler
achievement.cheapermac=Cheaper than a Macerator
achievement.cheapermac.desc=Craft a LV Forge Hammer
achievement.complexalloys=Complex Alloys
achievement.complexalloys.desc=Produce a Blue Steel Ingot
achievement.magneticiron=Magnetic Iron
achievement.magneticiron.desc=Craft a Magnetic Iron Rod with 4 Redstone
achievement.lvmotor=Low Voltage Motor
achievement.lvmotor.desc=Craft a Low Voltage Motor
achievement.pumpcover=Pump
achievement.pumpcover.desc=Craft a LV Pump
achievement.closeit=Close it!
achievement.closeit.desc=Get a Shutter Cover
achievement.slurp=Slurp
achievement.slurp.desc=Craft an Advanced Pump II
achievement.transport=Transport
achievement.transport.desc=Craft a LV Conveyor
achievement.manipulation=Manipulation
achievement.manipulation.desc=Get a Machine Controller
achievement.buffer=Buffer
achievement.buffer.desc=Craft a LV Chest Buffer
achievement.complexmachines=Complex Machines
achievement.complexmachines.desc=Craft a LV Robot Arm
achievement.avengers=Avengers Assemble
achievement.avengers.desc=Craft a LV Assembler
achievement.filterregulate=Filter and Regulate
achievement.filterregulate.desc=Get an Item Filter
achievement.steampower=Steampower
achievement.steampower.desc=Craft a Basic Steam Turbine
achievement.batterys=Batterys
achievement.batterys.desc=Craft a Battery Buffer
achievement.badweather=Bad Weather
achievement.badweather.desc=Forget to build a Roof above your Machines
achievement.electricproblems=Electric Problems
achievement.electricproblems.desc=Lose a Machine due to Overvoltage
achievement.ebf=Electric Blast Furnace
achievement.ebf.desc=Craft an Electric Blast Furnace
achievement.energyhatch=You need 2 of them (3 if you did not fully fixed it)
achievement.energyhatch.desc=Craft a LV Energy Hatch
achievement.gtaluminium=Aluminium
achievement.gtaluminium.desc=Produce an Aluminium Ingot
achievement.highpowersmelt=High Power Smelter
achievement.highpowersmelt.desc=Craft a Multi Furnace
achievement.oilplant=Oil Plant
achievement.oilplant.desc=Start up a Distillation Tower
achievement.factory=Factory
achievement.factory.desc=Craft a Processing Array
achievement.upgradeebf=Upgrade your EBF
achievement.upgradeebf.desc=Craft a MV Energy Hatch
achievement.maintainance=Maintenance
achievement.maintainance.desc=Fix all Maintenance Problems in a Machine
achievement.upgrade=Upgrade your Coils (level I)
achievement.upgrade.desc=Craft a Kanthal Heating Coil
achievement.titan=Titanium
achievement.titan.desc=Produce a Titanium Ingot
achievement.magic=Magic?
achievement.magic.desc=Craft a LV Magic Energy Converter
achievement.highmage=High Mage
achievement.highmage.desc=Craft a HV Magic Energy Absorber
achievement.artificaldia=Artificial Diamond
achievement.artificaldia.desc=Produce an Industrial Diamond in an Implosion Compressor
achievement.muchsteam=So much Steam
achievement.muchsteam.desc=Start up a Large Turbine
achievement.efficientsteam=Efficient Steam
achievement.efficientsteam.desc=Use Superheated Steam in a Large Turbine
achievement.upgrade2=Upgrade your Coils (level II)
achievement.upgrade2.desc=Craft a Nichrome Heating Coil
achievement.tungsten=Tungsten
achievement.tungsten.desc=Cool down a Hot Tungsten Ingot
achievement.osmium=Osmium
achievement.osmium.desc=Cool down a Hot Osmium Ingot
achievement.hightech=Hightech
achievement.hightech.desc=Craft a Field Generator Tier 1
achievement.amplifier=Amplifier
achievement.amplifier.desc=Craft an Amp Fab
achievement.scanning=Scanning
achievement.scanning.desc=Complete an Element Scan
achievement.alienpower=Alien Power
achievement.alienpower.desc=Craft a Naquadah Generator Mark I
achievement.universal=Universal
achievement.universal.desc=Craft a Mass Fab
achievement.replication=Replication
achievement.replication.desc=Craft a Replicator
achievement.tungstensteel=Tungstensteel
achievement.tungstensteel.desc=Cool down a Hot Tungstensteel Ingot
achievement.upgrade3=Upgrade your Coils (level III)
achievement.upgrade3.desc=Craft a Tungstensteel Heating Coil
achievement.hssg=HSS-G
achievement.hssg.desc=Cool down a Hot HSS-G Ingot
achievement.upgrade4=Upgrade your Coils (level IV)
achievement.upgrade4.desc=Craft a HSS-G Heating Coil
achievement.stargatematerial=Stargate material
achievement.stargatematerial.desc=Cool down a Hot Naquadah Ingot
achievement.conducting=Conducting
achievement.conducting.desc=Craft a Superconducting Coil
achievement.fusion=Fusion
achievement.fusion.desc=Produce Helium Plasma
achievement.higherefficency=Higher efficiency
achievement.higherefficency.desc=Produce Nitrogen Plasma
achievement.advancing=Advancing
achievement.advancing.desc=Produce Europium
achievement.stargateliquid=Liquid Stargate material
achievement.stargateliquid.desc=Produce Naquadah
achievement.tothelimit=Going for the Limit
achievement.tothelimit.desc=Produce Americium
achievement.fullefficiency=Full Efficiency
achievement.fullefficiency.desc=Craft a Plasma Generator III
achievement.upgrade5=Upgrade your Coils (level V)
achievement.upgrade5.desc=Craft a Naquadah Heating Coil
achievement.alienmetallurgy=Alien Metallurgy
achievement.alienmetallurgy.desc=Cool down a Hot Naquadah Alloy Ingot
achievement.over9000=Over 9000!
achievement.over9000.desc=Craft a Naquadah Alloy Heating Coil
achievement.finalpreparations=Final Preparations
achievement.finalpreparations.desc=Cool down a Hot Naquadria Ingot
achievement.denseaspossible=As Dense As Possible
achievement.denseaspossible.desc=Produce Neutronium
achievement.whatnow=What now?
achievement.whatnow.desc=Craft a Ultimate Battery
achievement.gt.metaitem.01.32606=Electric Motor LuV tier
achievement.gt.metaitem.01.32606.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32607=Electric Motor ZPM tier
achievement.gt.metaitem.01.32607.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32608=Electric Motor UV tier
achievement.gt.metaitem.01.32608.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32615=Electric Pump LuV tier
achievement.gt.metaitem.01.32615.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32616=Electric Pump ZPM tier
achievement.gt.metaitem.01.32616.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32617=Electric Pump UV tier
achievement.gt.metaitem.01.32617.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32635=Conveyor Module LuV tier
achievement.gt.metaitem.01.32635.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32636=Conveyor Module ZPM tier
achievement.gt.metaitem.01.32636.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32637=Conveyor Module UV tier
achievement.gt.metaitem.01.32637.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32645=Electric Piston LuV tier
achievement.gt.metaitem.01.32645.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32646=Electric Piston ZPM tier
achievement.gt.metaitem.01.32646.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32647=Electric Piston UV tier
achievement.gt.metaitem.01.32647.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32655=Robot Arm LuV tier
achievement.gt.metaitem.01.32655.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32656=Robot Arm ZPM tier
achievement.gt.metaitem.01.32656.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32657=Robot Arm UV tier
achievement.gt.metaitem.01.32657.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32675=Field Generator tier VI
achievement.gt.metaitem.01.32675.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32676=Field Generator tier VII
achievement.gt.metaitem.01.32676.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32677=Field Generator tier VIII
achievement.gt.metaitem.01.32677.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32685=Emitter LuV tier
achievement.gt.metaitem.01.32685.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32686=Emitter ZPM tier
achievement.gt.metaitem.01.32686.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32687=Emitter UV tier
achievement.gt.metaitem.01.32687.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32695=Sensor LuV tier
achievement.gt.metaitem.01.32695.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32696=Sensor ZPM tier
achievement.gt.metaitem.01.32696.desc=Pickup this item to see the recipe in NEI
achievement.gt.metaitem.01.32697=Sensor UV tier
achievement.gt.metaitem.01.32697.desc=Pickup this item to see the recipe in NEI
for.bees.species.clay=Clay
for.bees.species.slimeball=Slimeball
for.bees.species.peat=Peat
for.bees.species.stickyresin=Stickyresin
for.bees.species.coal=Coal
for.bees.species.oil=Oil
for.bees.species.redstone=Redstone
for.bees.species.lapis=Lapis
for.bees.species.certus=Certus
for.bees.species.ruby=Ruby
for.bees.species.sapphire=Sapphire
for.bees.species.diamond=Diamond
for.bees.species.olivine=Olivine
for.bees.species.emerald=Emerald
for.bees.species.copper=Copper
for.bees.species.tin=Tin
for.bees.species.lead=Lead
for.bees.species.iron=Iron
for.bees.species.steel=Steel
for.bees.species.nickel=Nickel
for.bees.species.zinc=Zinc
for.bees.species.silver=Silver
for.bees.species.gold=Gold
for.bees.species.aluminium=Aluminium
for.bees.species.titanium=Titanium
for.bees.species.chrome=Chrome
for.bees.species.manganese=Manganese
for.bees.species.tungsten=Tungsten
for.bees.species.platinum=Platinum
for.bees.species.iridium=Iridium
for.bees.species.uranium=Uranium
for.bees.species.plutonium=Plutonium
for.bees.species.naquadah=Naquadah
itemGroup.GTtools=Prebuild Tools

BIN
gradle/wrapper/gradle-wrapper.jar vendored Normal file

Binary file not shown.

View file

@ -0,0 +1,6 @@
#Wed Jul 02 15:54:47 CDT 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip

164
gradlew vendored Normal file
View file

@ -0,0 +1,164 @@
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# For Cygwin, ensure paths are in UNIX format before anything is touched.
if $cygwin ; then
[ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
fi
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >&-
APP_HOME="`pwd -P`"
cd "$SAVED" >&-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,9 +0,0 @@
package bloodasp.galacticgreg;
import gregtech.common.GT_Worldgenerator;
public class GT_Worldgenerator_Space extends GT_Worldgenerator {
public GT_Worldgenerator_Space() {
super();
}
}

View file

@ -3,6 +3,8 @@ package gregtech;
import cpw.mods.fml.common.*;
import cpw.mods.fml.common.event.*;
import cpw.mods.fml.common.registry.EntityRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.recipes.ICentrifugeRecipe;
import forestry.api.recipes.ISqueezerRecipe;
import forestry.api.recipes.RecipeManagers;
@ -21,6 +23,7 @@ import gregtech.common.GT_Proxy;
import gregtech.common.GT_RecipeAdder;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import gregtech.common.items.armor.components.LoadArmorComponents;
import gregtech.common.items.behaviors.Behaviour_DataOrb;
import gregtech.common.tileentities.machines.basic.GT_MetaTileEntity_Massfabricator;
@ -31,13 +34,16 @@ import gregtech.loaders.load.GT_SonictronLoader;
import gregtech.loaders.misc.GT_Achievements;
import gregtech.loaders.misc.GT_Bees;
import gregtech.loaders.misc.GT_CoverLoader;
import gregtech.loaders.misc.OreProcessingConfiguration;
import gregtech.loaders.postload.*;
import gregtech.loaders.preload.*;
import ic2.api.recipe.IRecipeInput;
import ic2.api.recipe.RecipeOutput;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.item.crafting.FurnaceRecipes;
@ -53,8 +59,11 @@ import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.StringUtils;
import java.io.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.*;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -264,8 +273,16 @@ public class GT_Mod implements IGT_Mod {
GregTech_API.mRFtoEU = GregTech_API.sOPStuff.get(ConfigCategories.general, "100RFtoEU", 20);
GregTech_API.mRFExplosions = GregTech_API.sOPStuff.get(ConfigCategories.general, "RFExplosions", false);
GregTech_API.meIOLoaded = Loader.isModLoaded("EnderIO");
GregTech_API.mUseOnlyGoodSolderingMaterials = GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.harderrecipes, "useonlygoodsolderingmaterials", GregTech_API.mUseOnlyGoodSolderingMaterials);
gregtechproxy.mChangeHarvestLevels = GregTech_API.sMaterialProperties.get("havestLevel", "activateHarvestLevelChange", false);
if(gregtechproxy.mChangeHarvestLevels){
gregtechproxy.mGraniteHavestLevel = (int) GregTech_API.sMaterialProperties.get("havestLevel", "graniteHarvestLevel", 3);
gregtechproxy.mMaxHarvestLevel=(int) Math.min(15, GregTech_API.sMaterialProperties.get("havestLevel", "maxLevel",7));
for(Materials tMaterial : Materials.values()){
if(tMaterial!=null&&tMaterial.mToolQuality>0&&tMaterial.mMetaItemSubID<gregtechproxy.mHarvestLevel.length&&tMaterial.mMetaItemSubID>=0){
gregtechproxy.mHarvestLevel[tMaterial.mMetaItemSubID] = GregTech_API.sMaterialProperties.get("materialHavestLevel", tMaterial.mDefaultLocalName,tMaterial.mToolQuality);
}
}}
if (tMainConfig.get("general", "hardermobspawners", true).getBoolean(true)) {
Blocks.mob_spawner.setHardness(500.0F).setResistance(6000000.0F);
@ -417,6 +434,8 @@ public class GT_Mod implements IGT_Mod {
new Enchantment_EnderDamage();
new Enchantment_Radioactivity();
new OreProcessingConfiguration(aEvent.getModConfigurationDirectory()).run();
new GT_Loader_OreProcessing().run();
new GT_Loader_OreDictionary().run();
new GT_Loader_ItemData().run();
@ -429,9 +448,9 @@ public class GT_Mod implements IGT_Mod {
new GT_SpawnEventHandler();
if (GregTech_API.sRecipeFile.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel", true)) {
GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC", 'C', OrePrefixes.circuit.get(Materials.Basic), 'G', new ItemStack(Blocks.glass_pane, 1), 'P', OrePrefixes.plateAlloy.get(Materials.Carbon), 'S', ItemList.Circuit_Silicon_Wafer});
GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC","R R", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'G', new ItemStack(Blocks.glass_pane, 1), 'P', OrePrefixes.wireGt04.get(Materials.Graphene), 'S', ItemList.Circuit_Silicon_Wafer2,'R', OrePrefixes.plate.get(Materials.GalliumArsenide)});
GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC","R R", 'C', OrePrefixes.circuit.get(Materials.Master), 'G', GT_ModHandler.getIC2Item("reinforcedGlass", 1L), 'P', OrePrefixes.wireGt16.get(Materials.Graphene), 'S', ItemList.Circuit_Silicon_Wafer3,'R', OrePrefixes.plate.get(Materials.IndiumGalliumPhosphide)});
}
//GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC","R R", 'C', OrePrefixes.circuit.get(Materials.Advanced), 'G', new ItemStack(Blocks.glass_pane, 1), 'P', OrePrefixes.wireGt04.get(Materials.Graphene), 'S', ItemList.Circuit_Silicon_Wafer2,'R', OrePrefixes.plate.get(Materials.GalliumArsenide)});
//GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_LV.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SGS", "CPC","R R", 'C', OrePrefixes.circuit.get(Materials.Master), 'G', GT_ModHandler.getIC2Item("reinforcedGlass", 1L), 'P', OrePrefixes.wireGt16.get(Materials.Graphene), 'S', ItemList.Circuit_Silicon_Wafer3,'R', OrePrefixes.plate.get(Materials.IndiumGalliumPhosphide)});
}
if (GregTech_API.sOPStuff.get(ConfigCategories.Recipes.gregtechrecipes, "SolarPanel8V", false)) {
GT_ModHandler.addCraftingRecipe(ItemList.Cover_SolarPanel_8V.get(1L, new Object[0]), GT_ModHandler.RecipeBits.NOT_REMOVABLE | GT_ModHandler.RecipeBits.REVERSIBLE, new Object[]{"SSS", "STS", "SSS", 'S', ItemList.Cover_SolarPanel, 'T', OrePrefixes.circuit.get(Materials.Advanced)});
}
@ -803,6 +822,16 @@ public class GT_Mod implements IGT_Mod {
GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Side", new Object[0])}, new ItemStack[]{new ItemStack(Blocks.cobblestone, 1)}, null, null, null, 16, 32, 0);
GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{ItemList.Display_ITS_FREE.getWithName(0L, "Place Lava on Top", new Object[0])}, new ItemStack[]{new ItemStack(Blocks.stone, 1)}, null, null, null, 16, 32, 0);
GT_Recipe.GT_Recipe_Map.sRockBreakerFakeRecipes.addFakeRecipe(false, new ItemStack[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Redstone, 1L)}, new ItemStack[]{new ItemStack(Blocks.obsidian, 1)}, null, null, null, 128, 32, 0);
for (Iterator i$ = GT_ModHandler.getMaceratorRecipeList().entrySet().iterator(); i$.hasNext(); ) {
Entry tRecipe = (Map.Entry) i$.next();
if (((RecipeOutput) tRecipe.getValue()).items.size() > 0) {
for (ItemStack tStack : ((IRecipeInput) tRecipe.getKey()).getInputs()) {
if (GT_Utility.isStackValid(tStack)) {
GT_Recipe.GT_Recipe_Map.sMaceratorRecipes.addFakeRecipe(true, new ItemStack[]{GT_Utility.copyAmount(((IRecipeInput) tRecipe.getKey()).getAmount(), new Object[]{tStack})}, new ItemStack[]{(ItemStack) ((RecipeOutput) tRecipe.getValue()).items.get(0)}, null, null, null, null, 400, 2, 0);
}
}
}
}
if(GregTech_API.mOutputRF||GregTech_API.mInputRF){
GT_Utility.checkAvailabilities();
@ -822,6 +851,39 @@ public class GT_Mod implements IGT_Mod {
GregTech_API.sAfterGTLoad = null;
GregTech_API.sBeforeGTPostload = null;
GregTech_API.sAfterGTPostload = null;
CreativeTabs mainTab = new CreativeTabs("GTtools") {
@SideOnly(Side.CLIENT)
@Override
public ItemStack getIconItemStack() {
return ItemList.Tool_Cheat.get(1, new ItemStack(Blocks.iron_block, 1));
}
@SideOnly(Side.CLIENT)
@Override
public Item getTabIconItem() {
return ItemList.Circuit_Integrated.getItem();
}
@Override
public void displayAllReleventItems(List aList) {
for (int i = 0; i < 32766; i += 2) {
if (GT_MetaGenerated_Tool_01.INSTANCE.getToolStats(new ItemStack(GT_MetaGenerated_Tool_01.INSTANCE, 1, i)) != null) {
ItemStack tStack = new ItemStack(GT_MetaGenerated_Tool_01.INSTANCE, 1, i);
GT_MetaGenerated_Tool_01.INSTANCE.isItemStackUsable(tStack);
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1,Materials.Lead,Materials.Lead,null));
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1,Materials.Nickel,Materials.Nickel,null));
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1,Materials.Cobalt,Materials.Cobalt,null));
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1,Materials.Osmium,Materials.Osmium,null));
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1,Materials.Adamantium,Materials.Adamantium,null));
aList.add(GT_MetaGenerated_Tool_01.INSTANCE.getToolWithStats(i,1, Materials.Neutronium,Materials.Neutronium,null));
}
}
super.displayAllReleventItems(aList);
}
};
}
@Mod.EventHandler

View file

@ -84,9 +84,8 @@ public class GregTech_API {
* 9728 - 10239 are reserved for 28Smiles.
* 10240 - 10751 are reserved for VirMan.
* 10752 - 11263 are reserved for Briareos81.
* 11264 - 12000 are reserved for Quantum64.
* 12001 - 12200 are reserved for the next one who asks me.
* 12001 - 32766 are currently free.
* 11264 - 12000 are reserved for the next one who asks me.
* 9728 - 32766 are currently free.
* <p/>
* Contact me if you need a free ID-Range, which doesn't conflict with other Addons.
* You could make an ID-Config, but we all know, what "stupid" customers think about conflicting ID's
@ -179,9 +178,9 @@ public class GregTech_API {
*/
public static Block sBlockMachines;
public static Block sBlockOres1, sBlockOresUb1, sBlockOresUb2, sBlockOresUb3, sBlockOresGC, sBlockGem, sBlockMetal1, sBlockMetal2, sBlockMetal3, sBlockMetal4, sBlockMetal5, sBlockMetal6, sBlockMetal7, sBlockMetal8, sBlockGem1, sBlockGem2, sBlockGem3, sBlockReinforced;
public static Block sBlockOres1, sBlockOresUb1, sBlockOresUb2, sBlockOresUb3, /*sBlockGem,*/ sBlockMetal1, sBlockMetal2, sBlockMetal3, sBlockMetal4, sBlockMetal5, sBlockMetal6, sBlockMetal7, sBlockMetal8, sBlockGem1, sBlockGem2, sBlockGem3, sBlockReinforced;
public static Block sBlockGranites, sBlockConcretes, sBlockStones;
public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4, sBlockCasings5;
public static Block sBlockCasings1, sBlockCasings2, sBlockCasings3, sBlockCasings4, sBlockCasings5, sBlockCasings6;
/**
* Getting assigned by the Config
*/
@ -214,9 +213,8 @@ public class GregTech_API {
sItemStackMappings.add(sCovers);
sItemStackMappings.add(sCoverBehaviors);
sDimensionalList.add(-1);
sDimensionalList.add(0);
sDimensionalList.add(1);
//sDimensionalList.add(56);
//sDimensionalList.add(55);
sSoundList.put(0, "random.break");
sSoundList.put(1, "random.anvil_use");
@ -294,7 +292,7 @@ public class GregTech_API {
* You should call @causeMachineUpdate in @Block.breakBlock and in @Block.onBlockAdded of your registered Block.
* You don't need to register TileEntities which implement @IMachineBlockUpdateable
*
* @param aID the ID of your Block
* @param aBlock the Block
* @param aMeta the Metadata of the Blocks as Bitmask! -1 or ~0 for all Metavalues
*/
public static boolean registerMachineBlock(Block aBlock, int aMeta) {
@ -313,7 +311,7 @@ public class GregTech_API {
if (GregTech_API.sThaumcraftCompat != null)
GregTech_API.sThaumcraftCompat.registerPortholeBlacklistedBlock(aBlock);
int rMeta = 0;
for (byte i = 0; i < 16 && i < aMeta.length; i++) if (aMeta[i]) rMeta |= B[i];
for (byte i = 0; i < aMeta.length && i < 16; i++) if (aMeta[i]) rMeta |= B[i];
sMachineIDs.put(aBlock, rMeta);
return true;
}

View file

@ -16,7 +16,7 @@ public enum Dyes implements IColorModulationContainer {
dyeRed(1, 255, 0, 0, "Red"),
dyeGreen(2, 0, 255, 0, "Green"),
dyeBrown(3, 96, 64, 0, "Brown"),
dyeBlue(4, 0, 0, 255, "Blue"),
dyeBlue(4, 0, 32, 255, "Blue"),
dyePurple(5, 128, 0, 128, "Purple"),
dyeCyan(6, 0, 255, 255, "Cyan"),
dyeLightGray(7, 192, 192, 192, "Light Gray"),
@ -24,7 +24,7 @@ public enum Dyes implements IColorModulationContainer {
dyePink(9, 255, 192, 192, "Pink"),
dyeLime(10, 128, 255, 128, "Lime"),
dyeYellow(11, 255, 255, 0, "Yellow"),
dyeLightBlue(12, 128, 128, 255, "Light Blue"),
dyeLightBlue(12, 96, 128, 255, "Light Blue"),
dyeMagenta(13, 255, 0, 255, "Magenta"),
dyeOrange(14, 255, 128, 0, "Orange"),
dyeWhite(15, 255, 255, 255, "White"),
@ -37,7 +37,7 @@ public enum Dyes implements IColorModulationContainer {
*/
CABLE_INSULATION(-1, 64, 64, 64, "Cable Insulation"),
CONSTRUCTION_FOAM(-1, 64, 64, 64, "Construction Foam"),
MACHINE_METAL(-1, 220, 220, 255, "Machine Metal");
MACHINE_METAL(-1, 210, 220, 255, "Machine Metal");
public static final Dyes VALUES[] = {dyeBlack, dyeRed, dyeGreen, dyeBrown, dyeBlue, dyePurple, dyeCyan, dyeLightGray, dyeGray, dyePink, dyeLime, dyeYellow, dyeLightBlue, dyeMagenta, dyeOrange, dyeWhite};

View file

@ -63,17 +63,30 @@ public class GT_Values {
/**
* The Voltage Tiers. Use this Array instead of the old named Voltage Variables
*/
public static final long[] V = new long[]{8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE};
public static final long[] V = new long[]{8L, 32L, 128L, 512L, 2048L, 8192L, 32768L, 131072L, 524288L, 2097152L, 8388608L, 33554432L, 134217728L, 536870912L, 1073741824L, Integer.MAX_VALUE-7};
//TODO:Adding that in coremod!!!
//TODO:tier 14,15 wires and transformers only (not even cables !!!)
//TODO:tier 12,13 the above + batteries, battery buffers, (maybe cables,12 also works for machines)
//TODO:tier 10,11 the above + chargers and other machines, (cables would be nice)
//TODO:tier 9 machines and batteries
//TODO:AND ALL THE MATERIALS... for that
//TODO:LIST OF MACHINES WITH POINTLESS TIERS (unless you implement some other tiering mechanism like reducing eu cost if time=1tick)
//Macerator/Compressor/Furnace... and for cheap recipes any
/**
* keeping Voltage*Amps < Integer.MAX_VALUE-7 for machines (and tier logic 4x EUt 2/ time)
* AMV[4]= max amps at tier 4
*/
public static final long[] AatV = new long[]{268435455,67108863,16777215,4194303,1048575,262143,65535,16383,4095,1023,255,63,15,3,1,1};
/**
* The short Names for the Voltages
*/
public static final String[] VN = new String[]{"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX"};
public static final String[] VN = new String[]{"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "UHV", "UEV", "UIV", "UMV", "UXV", "OpV", "MAX"};
/**
* The long Names for the Voltages
*/
public static final String[] VOLTAGE_NAMES = new String[]{"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage"};
public static final String[] VOLTAGE_NAMES = new String[]{"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage", "Ultimate High Voltage", "Ultimate Extreme Voltage", "Ultimate Insane Voltage", "Ultimate Mega Voltage", "Ultimate Extended Mega Voltage", "Overpowered Voltage", "Maximum Voltage"};
/**
* This way it is possible to have a Call Hierarchy of NullPointers in ItemStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for
*/

View file

@ -194,6 +194,13 @@ public enum ItemList implements IItemContainer {
Cell_Air,
Large_Fluid_Cell_Steel,
Large_Fluid_Cell_TungstenSteel,
Large_Fluid_Cell_Aluminium,
Large_Fluid_Cell_StainlessSteel,
Large_Fluid_Cell_Titanium,
Large_Fluid_Cell_Chrome,
Large_Fluid_Cell_Iridium,
Large_Fluid_Cell_Osmium,
Large_Fluid_Cell_Neutronium,
ThermosCan_Empty,
ThermosCan_Dark_Coffee,
ThermosCan_Dark_Cafe_au_lait,
@ -508,7 +515,9 @@ public enum ItemList implements IItemContainer {
Generator_Steam_Turbine_HV,
Generator_Naquadah_Mark_I,
Generator_Naquadah_Mark_II,
Generator_Naquadah_Fluid,
Generator_Naquadah_Mark_III,
Generator_Naquadah_Mark_IV,
Generator_Naquadah_Mark_V,
Machine_Bronze_Boiler,
Machine_Bronze_Boiler_Solar,
@ -562,58 +571,58 @@ public enum ItemList implements IItemContainer {
Locker_ULV, Locker_LV, Locker_MV, Locker_HV, Locker_EV, Locker_IV, Locker_LuV, Locker_ZPM, Locker_UV, Locker_MAX,
Machine_Multi_LargeBoiler_Bronze, Machine_Multi_LargeBoiler_Steel, Machine_Multi_LargeBoiler_Titanium, Machine_Multi_LargeBoiler_TungstenSteel, Machine_Multi_BlastFurnace, Machine_Multi_ImplosionCompressor, Machine_Multi_VacuumFreezer, Machine_Multi_Furnace,
Machine_LV_AlloySmelter, Machine_MV_AlloySmelter, Machine_HV_AlloySmelter, Machine_EV_AlloySmelter, Machine_IV_AlloySmelter, Machine_LuV_AlloySmelter, Machine_ZPM_AlloySmelter, Machine_UV_AlloySmelter,
Machine_LV_Assembler, Machine_MV_Assembler, Machine_HV_Assembler, Machine_EV_Assembler, Machine_IV_Assembler, Machine_LuV_Assembler, Machine_ZPM_Assembler, Machine_UV_Assembler,
Machine_LV_Bender, Machine_MV_Bender, Machine_HV_Bender, Machine_EV_Bender, Machine_IV_Bender, Machine_LuV_Bender, Machine_ZPM_Bender, Machine_UV_Bender,
Machine_LV_Canner, Machine_MV_Canner, Machine_HV_Canner, Machine_EV_Canner, Machine_IV_Canner, Machine_LuV_Canner, Machine_ZPM_Canner, Machine_UV_Canner,
Machine_LV_Compressor, Machine_MV_Compressor, Machine_HV_Compressor, Machine_EV_Compressor, Machine_IV_Compressor, Machine_LuV_Compressor, Machine_ZPM_Compressor, Machine_UV_Compressor,
Machine_LV_Cutter, Machine_MV_Cutter, Machine_HV_Cutter, Machine_EV_Cutter, Machine_IV_Cutter, Machine_LuV_Cutter, Machine_ZPM_Cutter, Machine_UV_Cutter,
Machine_LV_Slicer, Machine_MV_Slicer, Machine_HV_Slicer, Machine_EV_Slicer, Machine_IV_Slicer, Machine_LuV_Slicer, Machine_ZPM_Slicer, Machine_UV_Slicer,
Machine_LV_Sifter, Machine_MV_Sifter, Machine_HV_Sifter, Machine_EV_Sifter, Machine_IV_Sifter, Machine_LuV_Sifter, Machine_ZPM_Sifter, Machine_UV_Sifter,
Machine_LV_ArcFurnace, Machine_MV_ArcFurnace, Machine_HV_ArcFurnace, Machine_EV_ArcFurnace, Machine_IV_ArcFurnace, Machine_LuV_ArcFurnace, Machine_ZPM_ArcFurnace, Machine_UV_ArcFurnace,
Machine_LV_PlasmaArcFurnace, Machine_MV_PlasmaArcFurnace, Machine_HV_PlasmaArcFurnace, Machine_EV_PlasmaArcFurnace, Machine_IV_PlasmaArcFurnace, Machine_LuV_PlasmaArcFurnace, Machine_ZPM_PlasmaArcFurnace, Machine_UV_PlasmaArcFurnace,
Machine_LV_Oven, Machine_MV_Oven, Machine_HV_Oven, Machine_EV_Oven, Machine_IV_Oven, Machine_LuV_Oven, Machine_ZPM_Oven, Machine_UV_Oven,
Machine_LV_E_Furnace, Machine_MV_E_Furnace, Machine_HV_E_Furnace, Machine_EV_E_Furnace, Machine_IV_E_Furnace, Machine_LuV_E_Furnace, Machine_ZPM_E_Furnace, Machine_UV_E_Furnace,
Machine_LV_Extractor, Machine_MV_Extractor, Machine_HV_Extractor, Machine_EV_Extractor, Machine_IV_Extractor, Machine_LuV_Extractor, Machine_ZPM_Extractor, Machine_UV_Extractor,
Machine_LV_Extruder, Machine_MV_Extruder, Machine_HV_Extruder, Machine_EV_Extruder, Machine_IV_Extruder, Machine_LuV_Extruder, Machine_ZPM_Extruder, Machine_UV_Extruder,
Machine_LV_Lathe, Machine_MV_Lathe, Machine_HV_Lathe, Machine_EV_Lathe, Machine_IV_Lathe, Machine_LuV_Lathe, Machine_ZPM_Lathe, Machine_UV_Lathe,
Machine_LV_Macerator, Machine_MV_Macerator, Machine_HV_Macerator, Machine_EV_Macerator, Machine_IV_Macerator, Machine_LuV_Macerator, Machine_ZPM_Macerator, Machine_UV_Macerator,
Machine_LV_Microwave, Machine_MV_Microwave, Machine_HV_Microwave, Machine_EV_Microwave, Machine_IV_Microwave, Machine_LuV_Microwave, Machine_ZPM_Microwave, Machine_UV_Microwave,
Machine_LV_Printer, Machine_MV_Printer, Machine_HV_Printer, Machine_EV_Printer, Machine_IV_Printer, Machine_LuV_Printer, Machine_ZPM_Printer, Machine_UV_Printer,
Machine_LV_Recycler, Machine_MV_Recycler, Machine_HV_Recycler, Machine_EV_Recycler, Machine_IV_Recycler, Machine_LuV_Recycler, Machine_ZPM_Recycler, Machine_UV_Recycler,
Machine_LV_Scanner, Machine_MV_Scanner, Machine_HV_Scanner, Machine_EV_Scanner, Machine_IV_Scanner, Machine_LuV_Scanner, Machine_ZPM_Scanner, Machine_UV_Scanner,
Machine_LV_Wiremill, Machine_MV_Wiremill, Machine_HV_Wiremill, Machine_EV_Wiremill, Machine_IV_Wiremill, Machine_LuV_Wiremill, Machine_ZPM_Wiremill, Machine_UV_Wiremill,
Machine_LV_Electrolyzer, Machine_MV_Electrolyzer, Machine_HV_Electrolyzer, Machine_EV_Electrolyzer, Machine_IV_Electrolyzer, Machine_LuV_Electrolyzer, Machine_ZPM_Electrolyzer, Machine_UV_Electrolyzer,
Machine_LV_Centrifuge, Machine_MV_Centrifuge, Machine_HV_Centrifuge, Machine_EV_Centrifuge, Machine_IV_Centrifuge, Machine_LuV_Centrifuge, Machine_ZPM_Centrifuge, Machine_UV_Centrifuge,
Machine_LV_ThermalCentrifuge, Machine_MV_ThermalCentrifuge, Machine_HV_ThermalCentrifuge, Machine_EV_ThermalCentrifuge, Machine_IV_ThermalCentrifuge, Machine_LuV_ThermalCentrifuge, Machine_ZPM_ThermalCentrifuge, Machine_UV_ThermalCentrifuge,
Machine_LV_OreWasher, Machine_MV_OreWasher, Machine_HV_OreWasher, Machine_EV_OreWasher, Machine_IV_OreWasher, Machine_LuV_OreWasher, Machine_ZPM_OreWasher, Machine_UV_OreWasher,
Machine_LV_RockBreaker, Machine_MV_RockBreaker, Machine_HV_RockBreaker, Machine_EV_RockBreaker, Machine_IV_RockBreaker, Machine_LuV_RockBreaker, Machine_ZPM_RockBreaker, Machine_UV_RockBreaker,
Machine_LV_Boxinator, Machine_MV_Boxinator, Machine_HV_Boxinator, Machine_EV_Boxinator, Machine_IV_Boxinator, Machine_LuV_Boxinator, Machine_ZPM_Boxinator, Machine_UV_Boxinator,
Machine_LV_Unboxinator, Machine_MV_Unboxinator, Machine_HV_Unboxinator, Machine_EV_Unboxinator, Machine_IV_Unboxinator, Machine_LuV_Unboxinator, Machine_ZPM_Unboxinator, Machine_UV_Unboxinator,
Machine_LV_ChemicalReactor, Machine_MV_ChemicalReactor, Machine_HV_ChemicalReactor, Machine_EV_ChemicalReactor, Machine_IV_ChemicalReactor, Machine_LuV_ChemicalReactor, Machine_ZPM_ChemicalReactor, Machine_UV_ChemicalReactor,
Machine_LV_FluidCanner, Machine_MV_FluidCanner, Machine_HV_FluidCanner, Machine_EV_FluidCanner, Machine_IV_FluidCanner, Machine_LuV_FluidCanner, Machine_ZPM_FluidCanner, Machine_UV_FluidCanner,
Machine_LV_Disassembler, Machine_MV_Disassembler, Machine_HV_Disassembler, Machine_EV_Disassembler, Machine_IV_Disassembler, Machine_LuV_Disassembler, Machine_ZPM_Disassembler, Machine_UV_Disassembler,
Machine_LV_Bundler, Machine_MV_Bundler, Machine_HV_Bundler, Machine_EV_Bundler, Machine_IV_Bundler, Machine_LuV_Bundler, Machine_ZPM_Bundler, Machine_UV_Bundler,
Machine_LV_Massfab, Machine_MV_Massfab, Machine_HV_Massfab, Machine_EV_Massfab, Machine_IV_Massfab, Machine_LuV_Massfab, Machine_ZPM_Massfab, Machine_UV_Massfab,
Machine_LV_Amplifab, Machine_MV_Amplifab, Machine_HV_Amplifab, Machine_EV_Amplifab, Machine_IV_Amplifab, Machine_LuV_Amplifab, Machine_ZPM_Amplifab, Machine_UV_Amplifab,
Machine_LV_Replicator, Machine_MV_Replicator, Machine_HV_Replicator, Machine_EV_Replicator, Machine_IV_Replicator, Machine_LuV_Replicator, Machine_ZPM_Replicator, Machine_UV_Replicator,
Machine_LV_Brewery, Machine_MV_Brewery, Machine_HV_Brewery, Machine_EV_Brewery, Machine_IV_Brewery, Machine_LuV_Brewery, Machine_ZPM_Brewery, Machine_UV_Brewery,
Machine_LV_Fermenter, Machine_MV_Fermenter, Machine_HV_Fermenter, Machine_EV_Fermenter, Machine_IV_Fermenter, Machine_LuV_Fermenter, Machine_ZPM_Fermenter, Machine_UV_Fermenter,
Machine_LV_FluidExtractor, Machine_MV_FluidExtractor, Machine_HV_FluidExtractor, Machine_EV_FluidExtractor, Machine_IV_FluidExtractor, Machine_LuV_FluidExtractor, Machine_ZPM_FluidExtractor, Machine_UV_FluidExtractor,
Machine_LV_FluidSolidifier, Machine_MV_FluidSolidifier, Machine_HV_FluidSolidifier, Machine_EV_FluidSolidifier, Machine_IV_FluidSolidifier, Machine_LuV_FluidSolidifier, Machine_ZPM_FluidSolidifier, Machine_UV_FluidSolidifier,
Machine_LV_Distillery, Machine_MV_Distillery, Machine_HV_Distillery, Machine_EV_Distillery, Machine_IV_Distillery, Machine_LuV_Distillery, Machine_ZPM_Distillery, Machine_UV_Distillery,
Machine_LV_ChemicalBath, Machine_MV_ChemicalBath, Machine_HV_ChemicalBath, Machine_EV_ChemicalBath, Machine_IV_ChemicalBath, Machine_LuV_ChemicalBath, Machine_ZPM_ChemicalBath, Machine_UV_ChemicalBath,
Machine_LV_Polarizer, Machine_MV_Polarizer, Machine_HV_Polarizer, Machine_EV_Polarizer, Machine_IV_Polarizer, Machine_LuV_Polarizer, Machine_ZPM_Polarizer, Machine_UV_Polarizer,
Machine_LV_ElectromagneticSeparator, Machine_MV_ElectromagneticSeparator, Machine_HV_ElectromagneticSeparator, Machine_EV_ElectromagneticSeparator, Machine_IV_ElectromagneticSeparator, Machine_LuV_ElectromagneticSeparator, Machine_ZPM_ElectromagneticSeparator, Machine_UV_ElectromagneticSeparator,
Machine_LV_Autoclave, Machine_MV_Autoclave, Machine_HV_Autoclave, Machine_EV_Autoclave, Machine_IV_Autoclave, Machine_LuV_Autoclave, Machine_ZPM_Autoclave, Machine_UV_Autoclave,
Machine_LV_Mixer, Machine_MV_Mixer, Machine_HV_Mixer, Machine_EV_Mixer, Machine_IV_Mixer, Machine_LuV_Mixer, Machine_ZPM_Mixer, Machine_UV_Mixer,
Machine_LV_LaserEngraver, Machine_MV_LaserEngraver, Machine_HV_LaserEngraver, Machine_EV_LaserEngraver, Machine_IV_LaserEngraver, Machine_LuV_LaserEngraver, Machine_ZPM_LaserEngraver, Machine_UV_LaserEngraver,
Machine_LV_Press, Machine_MV_Press, Machine_HV_Press, Machine_EV_Press, Machine_IV_Press, Machine_LuV_Press, Machine_ZPM_Press, Machine_UV_Press,
Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer, Machine_LuV_Hammer, Machine_ZPM_Hammer, Machine_UV_Hammer,
Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater, Machine_LuV_FluidHeater, Machine_ZPM_FluidHeater, Machine_UV_FluidHeater,
Machine_LV_AlloySmelter, Machine_MV_AlloySmelter, Machine_HV_AlloySmelter, Machine_EV_AlloySmelter, Machine_IV_AlloySmelter,
Machine_LV_Assembler, Machine_MV_Assembler, Machine_HV_Assembler, Machine_EV_Assembler, Machine_IV_Assembler,
Machine_LV_Bender, Machine_MV_Bender, Machine_HV_Bender, Machine_EV_Bender, Machine_IV_Bender,
Machine_LV_Canner, Machine_MV_Canner, Machine_HV_Canner, Machine_EV_Canner, Machine_IV_Canner,
Machine_LV_Compressor, Machine_MV_Compressor, Machine_HV_Compressor, Machine_EV_Compressor, Machine_IV_Compressor,
Machine_LV_Cutter, Machine_MV_Cutter, Machine_HV_Cutter, Machine_EV_Cutter, Machine_IV_Cutter,
Machine_LV_Slicer, Machine_MV_Slicer, Machine_HV_Slicer, Machine_EV_Slicer, Machine_IV_Slicer,
Machine_LV_Sifter, Machine_MV_Sifter, Machine_HV_Sifter, Machine_EV_Sifter, Machine_IV_Sifter,
Machine_LV_ArcFurnace, Machine_MV_ArcFurnace, Machine_HV_ArcFurnace, Machine_EV_ArcFurnace, Machine_IV_ArcFurnace,
Machine_LV_PlasmaArcFurnace, Machine_MV_PlasmaArcFurnace, Machine_HV_PlasmaArcFurnace, Machine_EV_PlasmaArcFurnace, Machine_IV_PlasmaArcFurnace,
Machine_LV_Oven, Machine_MV_Oven, Machine_HV_Oven, Machine_EV_Oven, Machine_IV_Oven,
Machine_LV_E_Furnace, Machine_MV_E_Furnace, Machine_HV_E_Furnace, Machine_EV_E_Furnace, Machine_IV_E_Furnace,
Machine_LV_Extractor, Machine_MV_Extractor, Machine_HV_Extractor, Machine_EV_Extractor, Machine_IV_Extractor,
Machine_LV_Extruder, Machine_MV_Extruder, Machine_HV_Extruder, Machine_EV_Extruder, Machine_IV_Extruder,
Machine_LV_Lathe, Machine_MV_Lathe, Machine_HV_Lathe, Machine_EV_Lathe, Machine_IV_Lathe,
Machine_LV_Macerator, Machine_MV_Macerator, Machine_HV_Macerator, Machine_EV_Macerator, Machine_IV_Macerator,
Machine_LV_Microwave, Machine_MV_Microwave, Machine_HV_Microwave, Machine_EV_Microwave, Machine_IV_Microwave,
Machine_LV_Printer, Machine_MV_Printer, Machine_HV_Printer, Machine_EV_Printer, Machine_IV_Printer,
Machine_LV_Recycler, Machine_MV_Recycler, Machine_HV_Recycler, Machine_EV_Recycler, Machine_IV_Recycler,
Machine_LV_Scanner, Machine_MV_Scanner, Machine_HV_Scanner, Machine_EV_Scanner, Machine_IV_Scanner,
Machine_LV_Wiremill, Machine_MV_Wiremill, Machine_HV_Wiremill, Machine_EV_Wiremill, Machine_IV_Wiremill,
Machine_LV_Electrolyzer, Machine_MV_Electrolyzer, Machine_HV_Electrolyzer, Machine_EV_Electrolyzer, Machine_IV_Electrolyzer,
Machine_LV_Centrifuge, Machine_MV_Centrifuge, Machine_HV_Centrifuge, Machine_EV_Centrifuge, Machine_IV_Centrifuge,
Machine_LV_ThermalCentrifuge, Machine_MV_ThermalCentrifuge, Machine_HV_ThermalCentrifuge, Machine_EV_ThermalCentrifuge, Machine_IV_ThermalCentrifuge,
Machine_LV_OreWasher, Machine_MV_OreWasher, Machine_HV_OreWasher, Machine_EV_OreWasher, Machine_IV_OreWasher,
Machine_LV_RockBreaker, Machine_MV_RockBreaker, Machine_HV_RockBreaker, Machine_EV_RockBreaker, Machine_IV_RockBreaker,
Machine_LV_Boxinator, Machine_MV_Boxinator, Machine_HV_Boxinator, Machine_EV_Boxinator, Machine_IV_Boxinator,
Machine_LV_Unboxinator, Machine_MV_Unboxinator, Machine_HV_Unboxinator, Machine_EV_Unboxinator, Machine_IV_Unboxinator,
Machine_LV_ChemicalReactor, Machine_MV_ChemicalReactor, Machine_HV_ChemicalReactor, Machine_EV_ChemicalReactor, Machine_IV_ChemicalReactor,
Machine_LV_FluidCanner, Machine_MV_FluidCanner, Machine_HV_FluidCanner, Machine_EV_FluidCanner, Machine_IV_FluidCanner,
Machine_LV_Disassembler, Machine_MV_Disassembler, Machine_HV_Disassembler, Machine_EV_Disassembler, Machine_IV_Disassembler,
Machine_LV_Bundler, Machine_MV_Bundler, Machine_HV_Bundler, Machine_EV_Bundler, Machine_IV_Bundler,
Machine_LV_Massfab, Machine_MV_Massfab, Machine_HV_Massfab, Machine_EV_Massfab, Machine_IV_Massfab,
Machine_LV_Amplifab, Machine_MV_Amplifab, Machine_HV_Amplifab, Machine_EV_Amplifab, Machine_IV_Amplifab,
Machine_LV_Replicator, Machine_MV_Replicator, Machine_HV_Replicator, Machine_EV_Replicator, Machine_IV_Replicator,
Machine_LV_Brewery, Machine_MV_Brewery, Machine_HV_Brewery, Machine_EV_Brewery, Machine_IV_Brewery,
Machine_LV_Fermenter, Machine_MV_Fermenter, Machine_HV_Fermenter, Machine_EV_Fermenter, Machine_IV_Fermenter,
Machine_LV_FluidExtractor, Machine_MV_FluidExtractor, Machine_HV_FluidExtractor, Machine_EV_FluidExtractor, Machine_IV_FluidExtractor,
Machine_LV_FluidSolidifier, Machine_MV_FluidSolidifier, Machine_HV_FluidSolidifier, Machine_EV_FluidSolidifier, Machine_IV_FluidSolidifier,
Machine_LV_Distillery, Machine_MV_Distillery, Machine_HV_Distillery, Machine_EV_Distillery, Machine_IV_Distillery,
Machine_LV_ChemicalBath, Machine_MV_ChemicalBath, Machine_HV_ChemicalBath, Machine_EV_ChemicalBath, Machine_IV_ChemicalBath,
Machine_LV_Polarizer, Machine_MV_Polarizer, Machine_HV_Polarizer, Machine_EV_Polarizer, Machine_IV_Polarizer,
Machine_LV_ElectromagneticSeparator, Machine_MV_ElectromagneticSeparator, Machine_HV_ElectromagneticSeparator, Machine_EV_ElectromagneticSeparator, Machine_IV_ElectromagneticSeparator,
Machine_LV_Autoclave, Machine_MV_Autoclave, Machine_HV_Autoclave, Machine_EV_Autoclave, Machine_IV_Autoclave,
Machine_LV_Mixer, Machine_MV_Mixer, Machine_HV_Mixer, Machine_EV_Mixer, Machine_IV_Mixer,
Machine_LV_LaserEngraver, Machine_MV_LaserEngraver, Machine_HV_LaserEngraver, Machine_EV_LaserEngraver, Machine_IV_LaserEngraver,
Machine_LV_Press, Machine_MV_Press, Machine_HV_Press, Machine_EV_Press, Machine_IV_Press,
Machine_LV_Hammer, Machine_MV_Hammer, Machine_HV_Hammer, Machine_EV_Hammer, Machine_IV_Hammer,
Machine_LV_FluidHeater, Machine_MV_FluidHeater, Machine_HV_FluidHeater, Machine_EV_FluidHeater, Machine_IV_FluidHeater,
Neutron_Reflector,
Reactor_Coolant_He_1, Reactor_Coolant_He_3, Reactor_Coolant_He_6, Reactor_Coolant_NaK_1, Reactor_Coolant_NaK_3, Reactor_Coolant_NaK_6,
Reactor_Coolant_He_1, Reactor_Coolant_He_3, Reactor_Coolant_He_6, Reactor_Coolant_NaK_1, Reactor_Coolant_NaK_3, Reactor_Coolant_NaK_6,neutroniumHeatCapacitor,
ThoriumCell_1, ThoriumCell_2, ThoriumCell_4,
FusionComputer_LuV, FusionComputer_ZPMV, FusionComputer_UV,
Casing_Fusion_Coil, Casing_Fusion, Casing_Fusion2,
@ -622,7 +631,9 @@ public enum ItemList implements IItemContainer {
MagicEnergyAbsorber_LV, MagicEnergyAbsorber_MV, MagicEnergyAbsorber_HV, MagicEnergyAbsorber_EV,
Depleted_Thorium_1, Depleted_Thorium_2, Depleted_Thorium_4,
Processing_Array, Distillation_Tower, Energy_LapotronicOrb2,
ZPM2, Quantum_Tank_LV, Quantum_Tank_MV, Quantum_Tank_HV, Quantum_Tank_EV, Quantum_Tank_IV, Quantum_Chest_LV, Quantum_Chest_MV, Quantum_Chest_HV, Quantum_Chest_EV, Quantum_Chest_IV,
ZPM3,ZPM2,
Quantum_Tank_LV, Quantum_Tank_MV, Quantum_Tank_HV, Quantum_Tank_EV, Quantum_Tank_IV, Quantum_Chest_LV, Quantum_Chest_MV, Quantum_Chest_HV, Quantum_Chest_EV, Quantum_Chest_IV,
Super_Tank_LV, Super_Tank_MV, Super_Tank_HV, Super_Tank_EV, Super_Tank_IV, Super_Chest_LV, Super_Chest_MV, Super_Chest_HV, Super_Chest_EV, Super_Chest_IV,
NULL, Cover_RedstoneTransmitterExternal, Cover_RedstoneTransmitterInternal, Cover_RedstoneReceiverExternal, Cover_RedstoneReceiverInternal,
LargeSteamTurbine, LargeGasTurbine, LargeHPSteamTurbine, LargePlasmaTurbine,
@ -630,6 +641,7 @@ public enum ItemList implements IItemContainer {
Pump_LV, Pump_MV, Pump_HV, Pump_EV, Pump_IV, Pump_LuV, Pump_ZPM, Pump_UV,
Teleporter, Cover_NeedsMaintainance, Casing_Turbine, Casing_Turbine1, Casing_Turbine2, Casing_Turbine3, Casing_EngineIntake,
Casing_Coil_Cupronickel, Casing_Coil_Kanthal, Casing_Coil_Nichrome, Casing_Coil_TungstenSteel, Casing_Coil_HSSG, Casing_Coil_Naquadah, Casing_Coil_NaquadahAlloy,
Casing_Tank_1, Casing_Tank_2, Casing_Tank_3, Casing_Tank_4, Casing_Tank_5, Casing_Tank_6, Casing_Tank_7, Casing_Tank_8, Casing_Tank_9, Casing_Tank_10, Casing_Tank_11, Casing_Tank_12, Casing_Tank_13, Casing_Tank_14, Casing_Tank_15, Casing_Tank_0,
MobRep_LV, MobRep_MV, MobRep_HV, MobRep_EV, MobRep_IV, MobRep_LuV, MobRep_ZPM, MobRep_UV, Cover_PlayerDetector, Machine_Multi_HeatExchanger,
Block_BronzePlate, Block_IridiumTungstensteel, Block_Plascrete, Block_TungstenSteelReinforced,
Honeycomb, Charcoal_Pile, Block_BrittleCharcoal, Seismic_Prospector, Seismic_Prospector_Adv, OilDrill, AdvancedMiner2, PyrolyseOven, OilCracker, Crop_Drop_UUMBerry, Crop_Drop_UUABerry, Empty_Board_Basic, Empty_Board_Elite,
@ -648,8 +660,10 @@ public enum ItemList implements IItemContainer {
Circuit_Chip_CrystalCPU, Circuit_Chip_CrystalSoC, Circuit_Chip_NeuroCPU, Circuit_Chip_Stemcell,
Circuit_Processor, Circuit_Computer, Circuit_Nanoprocessor, Circuit_Nanocomputer, Circuit_Elitenanocomputer, Circuit_Quantumprocessor, Circuit_Quantumcomputer, Circuit_Masterquantumcomputer,
Circuit_Quantummainframe, Circuit_Crystalprocessor, Circuit_Crystalcomputer, Circuit_Crystalmainframe, Circuit_Neuroprocessor, Circuit_Wetwarecomputer, Circuit_Wetwaresupercomputer, Circuit_Wetwaremainframe, Circuit_Parts_RawCrystalChip,
Machine_LV_CircuitAssembler, Machine_MV_CircuitAssembler, Machine_HV_CircuitAssembler, Machine_EV_CircuitAssembler, Machine_IV_CircuitAssembler, Machine_LuV_CircuitAssembler, Machine_ZPM_CircuitAssembler, Machine_UV_CircuitAssembler, Circuit_Integrated_Good, Machine_IV_LightningRod, Machine_HV_LightningRod, Machine_EV_LightningRod;
Machine_LV_CircuitAssembler, Machine_MV_CircuitAssembler, Machine_HV_CircuitAssembler, Machine_EV_CircuitAssembler, Machine_IV_CircuitAssembler, Machine_LuV_CircuitAssembler, Machine_ZPM_CircuitAssembler, Machine_UV_CircuitAssembler, Circuit_Integrated_Good, Machine_IV_LightningRod, Machine_HV_LightningRod, Machine_EV_LightningRod,
Depleted_MNq_1, Depleted_MNq_2, Depleted_MNq_4,
MNqCell_1, MNqCell_2, MNqCell_4,;
public static final ItemList[]
DYE_ONLY_ITEMS = {Color_00, Color_01, Color_02, Color_03, Color_04, Color_05, Color_06, Color_07, Color_08, Color_09, Color_10, Color_11, Color_12, Color_13, Color_14, Color_15}, SPRAY_CAN_DYES = {Spray_Color_00, Spray_Color_01, Spray_Color_02, Spray_Color_03, Spray_Color_04, Spray_Color_05, Spray_Color_06, Spray_Color_07, Spray_Color_08, Spray_Color_09, Spray_Color_10, Spray_Color_11, Spray_Color_12, Spray_Color_13, Spray_Color_14, Spray_Color_15}, SPRAY_CAN_DYES_USED = {Spray_Color_Used_00, Spray_Color_Used_01, Spray_Color_Used_02, Spray_Color_Used_03, Spray_Color_Used_04, Spray_Color_Used_05, Spray_Color_Used_06, Spray_Color_Used_07, Spray_Color_Used_08, Spray_Color_Used_09, Spray_Color_Used_10, Spray_Color_Used_11, Spray_Color_Used_12, Spray_Color_Used_13, Spray_Color_Used_14, Spray_Color_Used_15}, TRANSFORMERS = {Transformer_LV_ULV, Transformer_MV_LV, Transformer_HV_MV, Transformer_EV_HV, Transformer_IV_EV, Transformer_LuV_IV, Transformer_ZPM_LuV, Transformer_UV_ZPM, Transformer_MAX_UV}, MACHINE_HULLS = {Hull_ULV, Hull_LV, Hull_MV, Hull_HV, Hull_EV, Hull_IV, Hull_LuV, Hull_ZPM, Hull_UV, Hull_MAX}, HATCHES_DYNAMO = {Hatch_Dynamo_ULV, Hatch_Dynamo_LV, Hatch_Dynamo_MV, Hatch_Dynamo_HV, Hatch_Dynamo_EV, Hatch_Dynamo_IV, Hatch_Dynamo_LuV, Hatch_Dynamo_ZPM, Hatch_Dynamo_UV, Hatch_Dynamo_MAX}, HATCHES_ENERGY = {Hatch_Energy_ULV, Hatch_Energy_LV, Hatch_Energy_MV, Hatch_Energy_HV, Hatch_Energy_EV, Hatch_Energy_IV, Hatch_Energy_LuV, Hatch_Energy_ZPM, Hatch_Energy_UV, Hatch_Energy_MAX}, HATCHES_INPUT = {Hatch_Input_ULV, Hatch_Input_LV, Hatch_Input_MV, Hatch_Input_HV, Hatch_Input_EV, Hatch_Input_IV, Hatch_Input_LuV, Hatch_Input_ZPM, Hatch_Input_UV, Hatch_Input_MAX}, HATCHES_INPUT_BUS = {Hatch_Input_Bus_ULV, Hatch_Input_Bus_LV, Hatch_Input_Bus_MV, Hatch_Input_Bus_HV, Hatch_Input_Bus_EV, Hatch_Input_Bus_IV, Hatch_Input_Bus_LuV, Hatch_Input_Bus_ZPM, Hatch_Input_Bus_UV, Hatch_Input_Bus_MAX}, HATCHES_OUTPUT = {Hatch_Output_ULV, Hatch_Output_LV, Hatch_Output_MV, Hatch_Output_HV, Hatch_Output_EV, Hatch_Output_IV, Hatch_Output_LuV, Hatch_Output_ZPM, Hatch_Output_UV, Hatch_Output_MAX}, HATCHES_OUTPUT_BUS = {Hatch_Output_Bus_ULV, Hatch_Output_Bus_LV, Hatch_Output_Bus_MV, Hatch_Output_Bus_HV, Hatch_Output_Bus_EV, Hatch_Output_Bus_IV, Hatch_Output_Bus_LuV, Hatch_Output_Bus_ZPM, Hatch_Output_Bus_UV, Hatch_Output_Bus_MAX}, HATCHES_MUFFLER = {Hatch_Muffler_LV, Hatch_Muffler_LV, Hatch_Muffler_MV, Hatch_Muffler_HV, Hatch_Muffler_EV, Hatch_Muffler_IV, Hatch_Muffler_LuV, Hatch_Muffler_ZPM, Hatch_Muffler_UV, Hatch_Muffler_MAX};
public static Fluid sOilExtraHeavy, sEpichlorhydrin, sDrillingFluid, sNitricAcid, sBlueVitriol, sNickelSulfate, sToluene, sNitrationMixture, sRocketFuel, sHydricSulfur, sIndiumConcentrate, sLeadZincSolution;

File diff suppressed because it is too large Load diff

View file

@ -137,7 +137,7 @@ public enum OrePrefixes {
compressedDirt("9^X Compressed Dirt", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
compressedGravel("9^X Compressed Gravel", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
compressedSand("9^X Compressed Sand", "", "", false, false, false, false, false, false, false, false, false, false, 0, -1, 64, -1),
compressed("Compressed Materials", "Compressed ", "", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft
compressed("Compressed Materials", "Compressed ", "", true, true, false, false, false, false, true, false, false, false, 0, M * 3, 64, -1), // Compressed Material, worth 1 Unit. Introduced by Galacticraft
glass("Glasses", "", "", false, false, true, false, true, false, false, false, false, false, 0, -1, 64, -1),
paneGlass("Glass Panes", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
blockGlass("Glass Blocks", "", "", false, false, true, false, false, true, false, false, false, false, 0, -1, 64, -1),
@ -200,6 +200,7 @@ public enum OrePrefixes {
wireGt04("4x Wires", "4x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1),
wireGt02("2x Wires", "2x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M * 1, 64, -1),
wireGt01("1x Wires", "1x ", " Wire", true, true, false, false, false, false, true, false, false, false, 0, M / 2, 64, -1),
cableGt16("16x Cables", "16x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 8, 64, -1),
cableGt12("12x Cables", "12x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 6, 64, -1),
cableGt08("8x Cables", "8x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 4, 64, -1),
cableGt04("4x Cables", "4x ", " Cable", true, true, false, false, false, false, true, false, false, false, 0, M * 2, 64, -1),
@ -374,6 +375,9 @@ public enum OrePrefixes {
dust.mNotGeneratedItems.add(Materials.Gunpowder);
dust.mNotGeneratedItems.add(Materials.Sugar);
dust.mNotGeneratedItems.add(Materials.Blaze);
//dust.mNotGeneratedItems.add(Materials.Ichorium);
//dustSmall.mNotGeneratedItems.add(Materials.Ichorium);
//dustTiny.mNotGeneratedItems.add(Materials.Ichorium);
stick.mNotGeneratedItems.add(Materials.Wood);
stick.mNotGeneratedItems.add(Materials.Bone);
stick.mNotGeneratedItems.add(Materials.Blaze);
@ -383,6 +387,7 @@ public enum OrePrefixes {
ingot.mNotGeneratedItems.add(Materials.BrickNether);
ingot.mNotGeneratedItems.add(Materials.WoodSealed);
ingot.mNotGeneratedItems.add(Materials.Wood);
//ingot.mNotGeneratedItems.add(Materials.Ichorium);
nugget.mNotGeneratedItems.add(Materials.Gold);
plate.mNotGeneratedItems.add(Materials.Paper);
cell.mNotGeneratedItems.add(Materials.Empty);
@ -426,7 +431,7 @@ public enum OrePrefixes {
plate.mGeneratedItems.add(Materials.GraniteRed);
plate.mGeneratedItems.add(Materials.GraniteBlack);
plate.mGeneratedItems.add(Materials.Glowstone);
plate.mGeneratedItems.add(Materials.Nikolite);
plate.mGeneratedItems.add(Materials.Electrotine);
plate.mGeneratedItems.add(Materials.Obsidian);
plate.mGeneratedItems.add(Materials.Paper);
@ -496,11 +501,11 @@ public enum OrePrefixes {
pipeRestrictiveMedium.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 3);
pipeRestrictiveLarge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 4);
pipeRestrictiveHuge.mSecondaryMaterial = new MaterialStack(Materials.Steel, ring.mMaterialAmount * 5);
cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 4);
cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 3);
cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount * 2);
cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount);
cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Ash, dustSmall.mMaterialAmount);
cableGt12.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 4);
cableGt08.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 3);
cableGt04.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount * 2);
cableGt02.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount);
cableGt01.mSecondaryMaterial = new MaterialStack(Materials.Rubber, plate.mMaterialAmount);
bucket.mSecondaryMaterial = new MaterialStack(Materials.Iron, ingot.mMaterialAmount * 3);
cell.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2);
cellPlasma.mSecondaryMaterial = new MaterialStack(Materials.Tin, plate.mMaterialAmount * 2);
@ -794,6 +799,8 @@ public enum OrePrefixes {
for (OrePrefixes tPrefix : values())
if (aOre.startsWith(tPrefix.toString())) {
if (tPrefix == oreNether && aOre.equals("oreNetherQuartz")) return ore;
if (tPrefix == oreNether && aOre.equals("oreNetherStar")) return ore;
if (tPrefix == oreBasalt && aOre.equals("oreBasalticMineralSand")) return ore;
return tPrefix;
}
return null;
@ -1038,4 +1045,4 @@ public enum OrePrefixes {
// Use Standard Localization
return mLocalizedMaterialPre + aMaterial.mDefaultLocalName + mLocalizedMaterialPost;
}
}
}

View file

@ -12,8 +12,25 @@ import net.minecraft.util.ResourceLocation;
import static gregtech.api.enums.GT_Values.RES_PATH_BLOCK;
import static gregtech.api.enums.GT_Values.RES_PATH_ITEM;
public class Textures {
public enum BlockIcons implements IIconContainer, Runnable {
//ADDED
MACHINE_UEV_SIDE, MACHINE_UIV_SIDE,
MACHINE_UMV_SIDE, MACHINE_UXV_SIDE,
MACHINE_OPV_SIDE, MACHINE_MAXV_SIDE,
MACHINE_UEV_TOP, MACHINE_UIV_TOP,
MACHINE_UMV_TOP, MACHINE_UXV_TOP,
MACHINE_OPV_TOP, MACHINE_MAXV_TOP,
MACHINE_UEV_BOTTOM, MACHINE_UIV_BOTTOM,
MACHINE_UMV_BOTTOM, MACHINE_UXV_BOTTOM,
MACHINE_OPV_BOTTOM, MACHINE_MAXV_BOTTOM,
OVERLAY_SCHEST, OVERLAY_STANK,
MACHINE_CASING_TANK_1, MACHINE_CASING_TANK_2, MACHINE_CASING_TANK_3, MACHINE_CASING_TANK_4,
MACHINE_CASING_TANK_5, MACHINE_CASING_TANK_6, MACHINE_CASING_TANK_7, MACHINE_CASING_TANK_8,
MACHINE_CASING_TANK_9, MACHINE_CASING_TANK_10,MACHINE_CASING_TANK_11,MACHINE_CASING_TANK_12,
MACHINE_CASING_TANK_13,MACHINE_CASING_TANK_14,MACHINE_CASING_TANK_15,MACHINE_CASING_TANK_0;
//
VOID // The Empty Texture
, RENDERING_ERROR, PIPE_RESTRICTOR, INSULATION_FULL, INSULATION_TINY, INSULATION_SMALL, INSULATION_MEDIUM, INSULATION_LARGE, INSULATION_HUGE, CFOAM_FRESH,
CFOAM_HARDENED, SOLARPANEL, SOLARPANEL_8V, SOLARPANEL_LV, SOLARPANEL_MV, SOLARPANEL_HV, SOLARPANEL_EV, SOLARPANEL_IV, SOLARPANEL_LuV, SOLARPANEL_ZPM,
@ -147,12 +164,12 @@ public class Textures {
MACHINE_ZPM_SIDE,
MACHINE_UV_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_MAX_SIDE,
MACHINE_UEV_SIDE,
MACHINE_UIV_SIDE,
MACHINE_UMV_SIDE,
MACHINE_UXV_SIDE,
MACHINE_OPV_SIDE,
MACHINE_MAXV_SIDE,
},
MACHINECASINGS_TOP = new IIconContainer[]{
MACHINE_8V_TOP,
@ -165,12 +182,12 @@ public class Textures {
MACHINE_ZPM_TOP,
MACHINE_UV_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_MAX_TOP,
MACHINE_UEV_TOP,
MACHINE_UIV_TOP,
MACHINE_UMV_TOP,
MACHINE_UXV_TOP,
MACHINE_OPV_TOP,
MACHINE_MAXV_TOP,
},
MACHINECASINGS_BOTTOM = new IIconContainer[]{
MACHINE_8V_BOTTOM,
@ -183,12 +200,12 @@ public class Textures {
MACHINE_ZPM_BOTTOM,
MACHINE_UV_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_MAX_BOTTOM,
MACHINE_UEV_BOTTOM,
MACHINE_UIV_BOTTOM,
MACHINE_UMV_BOTTOM,
MACHINE_UXV_BOTTOM,
MACHINE_OPV_BOTTOM,
MACHINE_MAXV_BOTTOM,
},
GRANITES = new IIconContainer[]{
GRANITE_BLACK_STONE,
@ -423,7 +440,7 @@ public class Textures {
BLOCK_MANGANESE,
BLOCK_METEORICIRON,
BLOCK_METEORICSTEEL,
BLOCK_MIDASIUM,
BLOCK_TRINIUM,
BLOCK_MITHRIL,
BLOCK_MOLYBDENUM,
BLOCK_NAQUADAH,
@ -497,7 +514,9 @@ public class Textures {
BLOCK_VANADIUMSTEEL,
BLOCK_HSSG,
BLOCK_HSSE,
BLOCK_HSSS
BLOCK_HSSS,
BLOCK_STEELEAF,
BLOCK_ICHORIUM
},
STORAGE_BLOCKS9 = new IIconContainer[]{
BLOCK_AERCRYSTAL,
@ -547,52 +566,112 @@ public class Textures {
new GT_RenderedTexture(RENDERING_ERROR)
},
OVERLAYS_ENERGY_IN = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{40, 40, 245, 0}),
},
OVERLAYS_ENERGY_OUT = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{40, 40, 245, 0}),
},
OVERLAYS_ENERGY_IN_MULTI = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{40, 40, 245, 0}),
},
OVERLAYS_ENERGY_OUT_MULTI = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{40, 40, 245, 0}),
},
OVERLAYS_ENERGY_IN_POWER = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{40, 40, 245, 0}),
},
OVERLAYS_ENERGY_OUT_POWER = new ITexture[]{
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{180, 180, 180, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{220, 220, 220, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{255, 100, 0, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{255, 255, 30, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{128, 128, 128, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{240, 240, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{220, 220, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{200, 200, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{180, 180, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{160, 160, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{140, 140, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{120, 120, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{100, 100, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{80, 80, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{60, 60, 245, 0}),
new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{40, 40, 245, 0}),
},
LOCKERS = new ITexture[]{
new GT_RenderedTexture(OVERLAY_LOCKER_000),
@ -608,10 +687,10 @@ public class Textures {
new GT_RenderedTexture(OVERLAY_LOCKER_010),
new GT_RenderedTexture(OVERLAY_LOCKER_011),
new GT_RenderedTexture(OVERLAY_LOCKER_012),
new GT_RenderedTexture(OVERLAY_LOCKER_013),
new GT_RenderedTexture(OVERLAY_LOCKER_013)
},
CASING_BLOCKS = new ITexture[128],
MACHINE_CASINGS[] = new ITexture[10][17];
MACHINE_CASINGS[] = new ITexture[16][17];
static {
for (byte i = 0; i < MACHINE_CASINGS.length; i++)

View file

@ -9,13 +9,21 @@ public class Tier {
new Tier(SubTag.ENERGY_ELECTRICITY, 0, 8, 1, 1, 1, Materials.WroughtIron, ItemList.Hull_ULV, OrePrefixes.cableGt01.get(Materials.Lead), OrePrefixes.cableGt04.get(Materials.Lead), OrePrefixes.circuit.get(Materials.Primitive), OrePrefixes.circuit.get(Materials.Basic)),
new Tier(SubTag.ENERGY_ELECTRICITY, 1, 32, 1, 1, 1, Materials.Steel, ItemList.Hull_LV, OrePrefixes.cableGt01.get(Materials.Tin), OrePrefixes.cableGt04.get(Materials.Tin), OrePrefixes.circuit.get(Materials.Basic), OrePrefixes.circuit.get(Materials.Good)),
new Tier(SubTag.ENERGY_ELECTRICITY, 2, 128, 1, 1, 1, Materials.Aluminium, ItemList.Hull_MV, OrePrefixes.cableGt01.get(Materials.AnyCopper), OrePrefixes.cableGt04.get(Materials.AnyCopper), OrePrefixes.circuit.get(Materials.Good), OrePrefixes.circuit.get(Materials.Advanced)),
new Tier(SubTag.ENERGY_ELECTRICITY, 3, 512, 1, 1, 1, Materials.StainlessSteel, ItemList.Hull_HV, OrePrefixes.cableGt01.get(Materials.Gold), OrePrefixes.cableGt04.get(Materials.Gold), OrePrefixes.circuit.get(Materials.Advanced), OrePrefixes.circuit.get(Materials.Data)),
new Tier(SubTag.ENERGY_ELECTRICITY, 4, 2048, 1, 1, 1, Materials.Titanium, ItemList.Hull_EV, OrePrefixes.cableGt01.get(Materials.Aluminium), OrePrefixes.cableGt04.get(Materials.Aluminium), OrePrefixes.circuit.get(Materials.Data), OrePrefixes.circuit.get(Materials.Elite)),
new Tier(SubTag.ENERGY_ELECTRICITY, 5, 8192, 1, 1, 1, Materials.TungstenSteel, ItemList.Hull_IV, OrePrefixes.cableGt01.get(Materials.Platinum), OrePrefixes.cableGt04.get(Materials.Platinum), OrePrefixes.circuit.get(Materials.Elite), OrePrefixes.circuit.get(Materials.Master)),
new Tier(SubTag.ENERGY_ELECTRICITY, 6, 32768, 1, 1, 1, Materials.Chrome, ItemList.Hull_LuV, OrePrefixes.cableGt01.get(Materials.NiobiumTitanium), OrePrefixes.cableGt04.get(Materials.NiobiumTitanium), OrePrefixes.circuit.get(Materials.Master), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY, 7, 131072, 1, 1, 1, Materials.Iridium, ItemList.Hull_ZPM, OrePrefixes.cableGt01.get(Materials.Naquadah), OrePrefixes.cableGt04.get(Materials.Naquadah), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Superconductor)),
new Tier(SubTag.ENERGY_ELECTRICITY, 8, 524288, 1, 1, 1, Materials.Osmium, ItemList.Hull_UV, OrePrefixes.wireGt04.get(Materials.NaquadahAlloy), OrePrefixes.cableGt01.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Infinite)),
new Tier(SubTag.ENERGY_ELECTRICITY, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Infinite), OrePrefixes.circuit.get(Materials.Infinite)),
new Tier(SubTag.ENERGY_ELECTRICITY, 3, 512, 1, 1, 1, Materials.StainlessSteel, ItemList.Hull_HV, OrePrefixes.cableGt01.get(Materials.Gold), OrePrefixes.cableGt04.get(Materials.Gold), OrePrefixes.circuit.get(Materials.Advanced), OrePrefixes.circuit.get(Materials.Elite)),
new Tier(SubTag.ENERGY_ELECTRICITY, 4, 2048, 1, 1, 1, Materials.Titanium, ItemList.Hull_EV, OrePrefixes.cableGt01.get(Materials.Aluminium), OrePrefixes.cableGt04.get(Materials.Aluminium), OrePrefixes.circuit.get(Materials.Elite), OrePrefixes.circuit.get(Materials.Master)),
new Tier(SubTag.ENERGY_ELECTRICITY, 5, 8192, 1, 1, 1, Materials.TungstenSteel, ItemList.Hull_IV, OrePrefixes.cableGt01.get(Materials.Platinum), OrePrefixes.cableGt04.get(Materials.Platinum), OrePrefixes.circuit.get(Materials.Master), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY, 6, 32768, 1, 1, 1, Materials.Chrome, ItemList.Hull_LuV, OrePrefixes.cableGt01.get(Materials.NiobiumTitanium), OrePrefixes.cableGt04.get(Materials.NiobiumTitanium), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY, 7, 131072, 1, 1, 1, Materials.Iridium, ItemList.Hull_ZPM, OrePrefixes.cableGt01.get(Materials.Naquadah), OrePrefixes.cableGt04.get(Materials.Naquadah), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY, 8, 524288, 1, 1, 1, Materials.Osmium, ItemList.Hull_UV, OrePrefixes.cableGt04.get(Materials.NaquadahAlloy), OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY, 9, 2097152, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,10, 8388608, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,11, 33554432, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,12, 134217728, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,13, 536870912, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,14, 1073741824, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
new Tier(SubTag.ENERGY_ELECTRICITY,15, Integer.MAX_VALUE-7, 1, 1, 1, Materials.Neutronium, ItemList.Hull_MAX, OrePrefixes.wireGt01.get(Materials.Superconductor), OrePrefixes.wireGt04.get(Materials.Superconductor), OrePrefixes.circuit.get(Materials.Ultimate), OrePrefixes.circuit.get(Materials.Ultimate)),
//READ GT_VALUES CLASS BEFORE YOU START ADDING STUFF TO TIERS 8+ - and probably dont do it in GT but in GTNH core mod - that way we shouldnt need to set the tier class
//TODO:test if that above actually works as intended (tier class should be ignored) when adding stuff with coremod
}, ROTATIONAL = new Tier[]{
new Tier(SubTag.ENERGY_ROTATIONAL, 1, 32, 1, 1, 1, Materials.Wood, OrePrefixes.frameGt.get(Materials.Wood), OrePrefixes.stick.get(Materials.Wood), OrePrefixes.ingot.get(Materials.Wood), OrePrefixes.gearGt.get(Materials.Wood), OrePrefixes.gearGt.get(Materials.Stone)),
new Tier(SubTag.ENERGY_ROTATIONAL, 1, 32, 1, 2, 2, Materials.WoodSealed, OrePrefixes.frameGt.get(Materials.WoodSealed), OrePrefixes.stick.get(Materials.WoodSealed), OrePrefixes.ingot.get(Materials.WoodSealed), OrePrefixes.gearGt.get(Materials.WoodSealed), OrePrefixes.gearGt.get(Materials.Stone)),
@ -27,14 +35,14 @@ public class Tier {
new Tier(SubTag.ENERGY_ROTATIONAL, 4, 2048, 1, 2, 2, Materials.Titanium, OrePrefixes.frameGt.get(Materials.Titanium), OrePrefixes.stick.get(Materials.Titanium), OrePrefixes.ingot.get(Materials.Titanium), OrePrefixes.gearGt.get(Materials.Titanium), OrePrefixes.gearGt.get(Materials.TungstenSteel)),
new Tier(SubTag.ENERGY_ROTATIONAL, 5, 8192, 1, 1, 1, Materials.TungstenSteel, OrePrefixes.frameGt.get(Materials.TungstenSteel), OrePrefixes.stick.get(Materials.TungstenSteel), OrePrefixes.ingot.get(Materials.TungstenSteel), OrePrefixes.gearGt.get(Materials.TungstenSteel), OrePrefixes.gearGt.get(Materials.Iridium)),
new Tier(SubTag.ENERGY_ROTATIONAL, 6, 32768, 1, 1, 1, Materials.Iridium, OrePrefixes.frameGt.get(Materials.Iridium), OrePrefixes.stick.get(Materials.Iridium), OrePrefixes.ingot.get(Materials.Iridium), OrePrefixes.gearGt.get(Materials.Iridium), OrePrefixes.gearGt.get(Materials.Neutronium)),
new Tier(SubTag.ENERGY_ROTATIONAL, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.stick.get(Materials.Neutronium), OrePrefixes.ingot.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium)),
new Tier(SubTag.ENERGY_ROTATIONAL, 9, Integer.MAX_VALUE-7, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.stick.get(Materials.Neutronium), OrePrefixes.ingot.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium), OrePrefixes.gearGt.get(Materials.Neutronium)),
}, STEAM = new Tier[]{
new Tier(SubTag.ENERGY_STEAM, 1, 32, 1, 1, 1, Materials.Bronze, OrePrefixes.frameGt.get(Materials.Bronze), OrePrefixes.pipeMedium.get(Materials.Bronze), OrePrefixes.pipeHuge.get(Materials.Bronze), OrePrefixes.pipeMedium.get(Materials.Bronze), OrePrefixes.pipeLarge.get(Materials.Bronze)),
new Tier(SubTag.ENERGY_STEAM, 2, 128, 1, 1, 1, Materials.Steel, OrePrefixes.frameGt.get(Materials.Steel), OrePrefixes.pipeMedium.get(Materials.Steel), OrePrefixes.pipeHuge.get(Materials.Steel), OrePrefixes.pipeMedium.get(Materials.Steel), OrePrefixes.pipeLarge.get(Materials.Steel)),
new Tier(SubTag.ENERGY_STEAM, 3, 512, 1, 1, 1, Materials.Titanium, OrePrefixes.frameGt.get(Materials.Titanium), OrePrefixes.pipeMedium.get(Materials.Titanium), OrePrefixes.pipeHuge.get(Materials.Titanium), OrePrefixes.pipeMedium.get(Materials.Titanium), OrePrefixes.pipeLarge.get(Materials.Titanium)),
new Tier(SubTag.ENERGY_STEAM, 4, 2048, 1, 1, 1, Materials.TungstenSteel, OrePrefixes.frameGt.get(Materials.TungstenSteel), OrePrefixes.pipeMedium.get(Materials.TungstenSteel), OrePrefixes.pipeHuge.get(Materials.TungstenSteel), OrePrefixes.pipeMedium.get(Materials.TungstenSteel), OrePrefixes.pipeLarge.get(Materials.TungstenSteel)),
new Tier(SubTag.ENERGY_STEAM, 5, 8192, 1, 1, 1, Materials.Iridium, OrePrefixes.frameGt.get(Materials.Iridium), OrePrefixes.pipeMedium.get(Materials.Iridium), OrePrefixes.pipeHuge.get(Materials.Iridium), OrePrefixes.pipeMedium.get(Materials.Iridium), OrePrefixes.pipeLarge.get(Materials.Iridium)),
new Tier(SubTag.ENERGY_STEAM, 9, Integer.MAX_VALUE, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeHuge.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeLarge.get(Materials.Neutronium)),
new Tier(SubTag.ENERGY_STEAM, 9, Integer.MAX_VALUE-7, 1, 1, 1, Materials.Neutronium, OrePrefixes.frameGt.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeHuge.get(Materials.Neutronium), OrePrefixes.pipeMedium.get(Materials.Neutronium), OrePrefixes.pipeLarge.get(Materials.Neutronium)),
};
/**
* Used for Crafting Recipes

View file

@ -267,7 +267,8 @@ public class GT_Container extends Container {
mTileEntity.markDirty();
if (getSlotCount() > 0 && !(slotObject instanceof GT_Slot_Holo) && slotObject.getHasStack()) {
//null checks and checks if the item can be stacked (maxStackSize > 1)
if (getSlotCount() > 0 && slotObject != null && slotObject.getHasStack() && !(slotObject instanceof GT_Slot_Holo)) {
ItemStack stackInSlot = slotObject.getStack();
stack = GT_Utility.copy(stackInSlot);

View file

@ -1,9 +1,9 @@
package gregtech.api.gui;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Dyes;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemDye;
import org.lwjgl.opengl.GL11;
/**
@ -28,11 +28,11 @@ public class GT_GUIContainerMetaTile_Machine extends GT_GUIContainer {
protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
super.drawGuiContainerBackgroundLayer(par1, par2, par3);
if (GregTech_API.sColoredGUI && mContainer != null && mContainer.mTileEntity != null) {
int tColor = mContainer.mTileEntity.getColorization() & 15;
if (tColor < ItemDye.field_150922_c.length) {
tColor = ItemDye.field_150922_c[tColor];
GL11.glColor4f(((tColor >> 16) & 255) / 255.0F, ((tColor >> 8) & 255) / 255.0F, (tColor & 255) / 255.0F, 1.0F);
} else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
} else GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
byte colorByte=mContainer.mTileEntity.getColorization();
Dyes color;
if(colorByte != -1) color= Dyes.get(colorByte);
else color=Dyes.MACHINE_METAL;
GL11.glColor3ub((byte)color.mRGBa[0], (byte)color.mRGBa[1], (byte)color.mRGBa[2]);
} else GL11.glColor3ub((byte)255,(byte)255,(byte)255);
}
}

View file

@ -29,7 +29,7 @@ public class GT_GUIContainer_MultiMachine extends GT_GUIContainerMetaTile_Machin
protected void drawGuiContainerForegroundLayer(int par1, int par2) {
fontRendererObj.drawString(mName, 10, 8, 16448255);
if (mContainer != null) {
if (mContainer != null) {//(mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64));
if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 1) != 0)
fontRendererObj.drawString("Pipe is loose.", 10, 16, 16448255);
if ((((GT_Container_MultiMachine) mContainer).mDisplayErrorCode & 2) != 0)
@ -47,7 +47,7 @@ public class GT_GUIContainer_MultiMachine extends GT_GUIContainerMetaTile_Machin
if (((GT_Container_MultiMachine) mContainer).mDisplayErrorCode == 0) {
if (((GT_Container_MultiMachine) mContainer).mActive == 0) {
fontRendererObj.drawString("Hit with Soft Hammer", 10, 16, 16448255);
fontRendererObj.drawString("Hit with Soft Mallet", 10, 16, 16448255);
fontRendererObj.drawString("to (re-)start the Machine", 10, 24, 16448255);
fontRendererObj.drawString("if it doesn't start.", 10, 32, 16448255);
} else {

View file

@ -17,7 +17,7 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 = first Input (not null, and respects StackSize)
* @param aInput2 = second Input (not null, and respects StackSize)
* @param aOutput = Output of the Fusion (can be null, and respects StackSize)
* @param aOutput1 = Output of the Fusion (can be null, and respects StackSize)
* @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0)
* @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!)
* @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0)
@ -38,6 +38,8 @@ public interface IGT_RecipeAdder {
*/
public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration);
public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt);
/**
* Adds a Centrifuge Recipe
*
@ -92,31 +94,24 @@ public interface IGT_RecipeAdder {
*
* @param aInput1 must be != null
* @param aInput2 must be != null
* @param aOutput1 must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
*/
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration);
/**
* Adds a Chemical Recipe
*
* @param aInput1 must be != null
* @param aInput2 must be != null
* @param aOutput1 must be != null
* @param aDuration must be > 0
*/
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration);
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration, int aEUt);
/**
* Adds a Chemical Recipe
*
* @param aInput1 must be != null
* @param aInput2 must be != null
* @param aOutput1 must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUtick must be > 0
*/
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUtick);
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration);
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt);
/**
@ -239,8 +234,8 @@ public interface IGT_RecipeAdder {
/**
* Adds a Wiremill Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aInput must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@ -249,8 +244,8 @@ public interface IGT_RecipeAdder {
/**
* Adds a Polariser Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aInput must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@ -259,8 +254,8 @@ public interface IGT_RecipeAdder {
/**
* Adds a Plate Bending Machine Recipe
*
* @param aInput1 must be != null
* @param aOutput1 must be != null
* @param aInput must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@ -269,9 +264,9 @@ public interface IGT_RecipeAdder {
/**
* Adds a Extruder Machine Recipe
*
* @param aInput1 must be != null
* @param aInput must be != null
* @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item.
* @param aOutput1 must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@ -280,9 +275,9 @@ public interface IGT_RecipeAdder {
/**
* Adds a Slicer Machine Recipe
*
* @param aInput1 must be != null
* @param aInput must be != null
* @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item.
* @param aOutput1 must be != null
* @param aOutput must be != null
* @param aDuration must be > 0
* @param aEUt should be > 0
*/
@ -324,7 +319,7 @@ public interface IGT_RecipeAdder {
/**
* Adds a Distillation Tower Recipe
*
* @param aInput1 must be != null
* @param aInput must be != null
* @param aOutputs must be != null 1-5 Fluids
* @param aOutput2 can be null
*/
@ -387,6 +382,8 @@ public interface IGT_RecipeAdder {
*/
public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration);
public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt);
/**
* Adds a Fuel for My Generators
*
@ -407,11 +404,15 @@ public interface IGT_RecipeAdder {
*/
public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden);
public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, int aDuration, int aEUt, boolean aHidden);
/**
* Adds a Recipe for the Fermenter
*/
public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden);
public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, int aEUT, boolean aHidden);
/**
* Adds a Recipe for the Fluid Heater
*/
@ -447,6 +448,7 @@ public interface IGT_RecipeAdder {
*/
public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput);
public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aDuration,int aEUt);
/**
* Adds a Recipe for the Chemical Bath
*/
@ -526,7 +528,7 @@ public interface IGT_RecipeAdder {
* Adds a Distillation Tower Recipe
* Every Fluid also gets seperate distillation recipes
*
* @param aInput1 must be != null
* @param aInput must be != null
* @param aOutputs must be != null 1-5 Fluids
* @param aOutput2 can be null
*/

View file

@ -1,11 +1,14 @@
package gregtech.api.interfaces.tileentity;
import cofh.api.energy.IEnergyReceiver;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import ic2.api.energy.tile.IEnergySink;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -71,20 +74,41 @@ public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAnd
}
} else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver) {
ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite();
int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100);
int rfOut = GT_Utility.safeInt(aVoltage * GregTech_API.mEUtoRF / 100);
if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) {
((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, false);
rUsedAmperes++;
}
if (GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver) tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600) {
if (rfOut > 32 * GregTech_API.mEUtoRF / 100) {
if (GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver) tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600L) {
if (rfOut > 32L * GregTech_API.mEUtoRF / 100L) {
int aExplosionPower = rfOut;
float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F;
float tStrength =
aExplosionPower < V[0] ? 1.0F :
aExplosionPower < V[1] ? 2.0F :
aExplosionPower < V[2] ? 3.0F :
aExplosionPower < V[3] ? 4.0F :
aExplosionPower < V[4] ? 5.0F :
aExplosionPower < V[4] * 2 ? 6.0F :
aExplosionPower < V[5] ? 7.0F :
aExplosionPower < V[6] ? 8.0F :
aExplosionPower < V[7] ? 9.0F :
aExplosionPower < V[8] ? 10.0F :
aExplosionPower < V[8] * 2 ? 11.0F :
aExplosionPower < V[9] ? 12.0F :
aExplosionPower < V[10] ? 13.0F :
aExplosionPower < V[11] ? 14.0F :
aExplosionPower < V[12] ? 15.0F :
aExplosionPower < V[12] * 2 ? 16.0F :
aExplosionPower < V[13] ? 17.0F :
aExplosionPower < V[14] ? 18.0F :
aExplosionPower < V[15] ? 19.0F : 20.0F;
int tX = tTileEntity.xCoord, tY = tTileEntity.yCoord, tZ = tTileEntity.zCoord;
World tWorld = tTileEntity.getWorldObj();
GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ);
tWorld.setBlock(tX, tY, tZ, Blocks.air);
if (GregTech_API.sMachineExplosions)
if(GT_Mod.gregtechproxy.mPollution)
GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000);
tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true);
}
}

View file

@ -39,6 +39,7 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci
* Creates the Item using these Parameters.
*
* @param aUnlocalized The Unlocalized Name of this Item.
* @param aGeneratedPrefixList The OreDict Prefixes you want to have generated.
*/
public GT_MetaBase_Item(String aUnlocalized) {
super(aUnlocalized, "Generated Item", null, false);
@ -254,7 +255,9 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci
Long[] tStats = getElectricStats(aStack);
if (tStats == null || tStats[2] > aTier || !(tStats[3] == -1 || tStats[3] == -3 || (tStats[3] < 0 && aCharge == Integer.MAX_VALUE)) || aStack.stackSize != 1)
return 0;
long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
//REALLY?? THIS IS THE CULPRIT THAT CHARGES ITEMS AT INSTANT!!!
//long tChargeBefore = getRealCharge(aStack), tNewCharge = aCharge == Integer.MAX_VALUE ? Long.MAX_VALUE : Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
long tChargeBefore = getRealCharge(aStack), tNewCharge = Math.min(Math.abs(tStats[0]), tChargeBefore + (aIgnoreTransferLimit ? (long) aCharge : Math.min(tStats[1], (long) aCharge)));
if (!aSimulate) setCharge(aStack, tNewCharge);
return tNewCharge - tChargeBefore;
}
@ -607,4 +610,4 @@ public abstract class GT_MetaBase_Item extends GT_Generic_Item implements ISpeci
public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {
return false;
}
}
}

View file

@ -30,7 +30,10 @@ import net.minecraft.world.World;
import squeek.applecore.api.food.FoodValues;
import squeek.applecore.api.food.IEdible;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.BitSet;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import static gregtech.api.enums.GT_Values.*;

View file

@ -309,12 +309,20 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements
@Override
@SideOnly(Side.CLIENT)
public final void getSubItems(Item var1, CreativeTabs aCreativeTab, List aList) {
for (int i = 0; i < 32766; i += 2)
for (int i = 0; i < 32766; i += 2) {
if (getToolStats(new ItemStack(this, 1, i)) != null) {
ItemStack tStack = new ItemStack(this, 1, i);
isItemStackUsable(tStack);
aList.add(tStack);
//aList.add(getToolWithStats(i,1,Materials.Lead,Materials.Lead,null));
//aList.add(getToolWithStats(i,1,Materials.Nickel,Materials.Nickel,null));
//aList.add(getToolWithStats(i,1,Materials.Cobalt,Materials.Cobalt,null));
//aList.add(getToolWithStats(i,1,Materials.Osmium,Materials.Osmium,null));
//aList.add(getToolWithStats(i,1,Materials.Adamantium,Materials.Adamantium,null));
aList.add(getToolWithStats(i,1,Materials.Neutronium,Materials.Neutronium,null));
}
}
}
@Override
@ -337,12 +345,13 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements
if (tStats != null) {
String name = aStack.getUnlocalizedName();
if (name.equals("gt.metatool.01.170") || name.equals("gt.metatool.01.172") || name.equals("gt.metatool.01.174") || name.equals("gt.metatool.01.176")) {
int aOptFlow=GT_Utility.safeInt((long)Math.max(Float.MIN_NORMAL, ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() * ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed * 50));
aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
aList.add(tOffset + 1, EnumChatFormatting.WHITE + tMaterial.mDefaultLocalName + EnumChatFormatting.YELLOW + " lvl " + getHarvestLevel(aStack, "") + EnumChatFormatting.GRAY);
aList.add(tOffset + 2, EnumChatFormatting.WHITE + "Turbine Efficency: " + EnumChatFormatting.BLUE + (50.0F + (10.0F * getToolCombatDamage(aStack))) + EnumChatFormatting.GRAY);
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 1000) + EnumChatFormatting.GRAY + "L/sec");
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow(EU burnvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 50) + EnumChatFormatting.GRAY + "EU/t");
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow(Plasma energyvalue per tick): " + EnumChatFormatting.LIGHT_PURPLE + Math.max(Float.MIN_NORMAL, tStats.getSpeedMultiplier() * getPrimaryMaterial(aStack).mToolSpeed * 2000) + EnumChatFormatting.GRAY + "EU/t");
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Steam flow: " + EnumChatFormatting.GOLD + aOptFlow + EnumChatFormatting.GRAY + " L/t");
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Gas flow (Burn energy per tick): " + EnumChatFormatting.GOLD + aOptFlow + EnumChatFormatting.GRAY + " EU/t");
aList.add(tOffset + 3, EnumChatFormatting.WHITE + "Optimal Plasma flow (Plasma energy per tick): " + EnumChatFormatting.GOLD + aOptFlow*40 + EnumChatFormatting.GRAY + " EU/s");
} else {
aList.add(tOffset + 0, EnumChatFormatting.WHITE + "Durability: " + EnumChatFormatting.GREEN + (tMaxDamage - getToolDamage(aStack)) + " / " + tMaxDamage + EnumChatFormatting.GRAY);
@ -684,4 +693,4 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item implements
public boolean getIsRepairable(ItemStack aStack, ItemStack aMaterial) {
return false;
}
}
}

View file

@ -20,6 +20,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
@ -57,7 +58,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
super.writeToNBT(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
try {
@ -70,7 +71,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
aNBT.setByte("mStrongRedstone", mStrongRedstone);
aNBT.setBoolean("mWorks", !mWorks);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
try {
@ -90,12 +91,12 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.saveNBTData(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -142,7 +143,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.loadNBTData(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -204,77 +205,77 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
issueTextureUpdate();
}
if (mNeedsUpdate) {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
//worldObj.func_147479_m(xCoord, yCoord, zCoord);
mNeedsUpdate = false;
if (mNeedsUpdate) {
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
//worldObj.func_147479_m(xCoord, yCoord, zCoord);
mNeedsUpdate = false;
}
}
}
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
if (isServerSide() && mTickTimer > 10) {
for (byte i = (byte) (tCode - 2); i < 6; i++)
if (getCoverIDAtSide(i) != 0) {
tCode++;
GT_CoverBehavior tCover = getCoverBehaviorAtSide(i);
int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this);
if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) {
mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
if (isServerSide() && mTickTimer > 10) {
for (byte i = (byte) (tCode - 2); i < 6; i++)
if (getCoverIDAtSide(i) != 0) {
tCode++;
GT_CoverBehavior tCover = getCoverBehaviorAtSide(i);
int tCoverTickRate = tCover.getTickRate(i, getCoverIDAtSide(i), mCoverData[i], this);
if (tCoverTickRate > 0 && mTickTimer % tCoverTickRate == 0) {
mCoverData[i] = tCover.doCoverThings(i, getInputRedstoneSignal(i), getCoverIDAtSide(i), mCoverData[i], this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
}
}
mConnections = (byte) (mMetaTileEntity.mConnections | (mConnections & ~63));
if ((mConnections & -64) == 64 && getRandomNumber(1000) == 0) {
mConnections = (byte) ((mConnections & ~64) | -128);
}
}
case 8:
tCode = 9;
mMetaTileEntity.onPreTick(this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
case 9:
tCode++;
if (isServerSide()) {
if (mTickTimer == 10) {
for (byte i = 0; i < 6; i++)
mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]);
issueBlockUpdate();
}
if (xCoord != oX || yCoord != oY || zCoord != oZ) {
oX = xCoord;
oY = yCoord;
oZ = zCoord;
issueClientUpdate();
clearTileEntityBuffer();
}
}
case 10:
tCode++;
mMetaTileEntity.onPostTick(this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
case 11:
tCode++;
if (isServerSide()) {
if (mTickTimer % 10 == 0) {
if (mSendClientData) {
NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short) yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)), oColor = mColor), xCoord, zCoord);
mSendClientData = false;
}
}
mConnections = (byte) (mMetaTileEntity.mConnections | (mConnections & ~63));
if ((mConnections & -64) == 64 && getRandomNumber(1000) == 0) {
mConnections = (byte) ((mConnections & ~64) | -128);
}
}
case 8:
tCode = 9;
mMetaTileEntity.onPreTick(this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
case 9:
tCode++;
if (isServerSide()) {
if (mTickTimer == 10) {
for (byte i = 0; i < 6; i++)
mCoverBehaviors[i] = GregTech_API.getCoverBehavior(mCoverSides[i]);
issueBlockUpdate();
}
if (xCoord != oX || yCoord != oY || zCoord != oZ) {
oX = xCoord;
oY = yCoord;
oZ = zCoord;
issueClientUpdate();
clearTileEntityBuffer();
}
}
case 10:
tCode++;
mMetaTileEntity.onPostTick(this, mTickTimer);
if (!hasValidMetaTileEntity()) return;
case 11:
tCode++;
if (isServerSide()) {
if (mTickTimer % 10 == 0) {
if (mSendClientData) {
NW.sendPacketToAllPlayersInRange(worldObj, new GT_Packet_TileEntity(xCoord, (short) yCoord, zCoord, mID, mCoverSides[0], mCoverSides[1], mCoverSides[2], mCoverSides[3], mCoverSides[4], mCoverSides[5], oTextureData = mConnections, oUpdateData = hasValidMetaTileEntity() ? mMetaTileEntity.getUpdateData() : 0, oRedstoneData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0)), oColor = mColor), xCoord, zCoord);
mSendClientData = false;
if (mTickTimer > 10) {
if (mConnections != oTextureData) sendBlockEvent((byte) 0, oTextureData = mConnections);
byte tData = mMetaTileEntity.getUpdateData();
if (tData != oUpdateData) sendBlockEvent((byte) 1, oUpdateData = tData);
if (mColor != oColor) sendBlockEvent((byte) 2, oColor = mColor);
tData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0));
if (tData != oRedstoneData) sendBlockEvent((byte) 3, oRedstoneData = tData);
}
}
if (mTickTimer > 10) {
if (mConnections != oTextureData) sendBlockEvent((byte) 0, oTextureData = mConnections);
byte tData = mMetaTileEntity.getUpdateData();
if (tData != oUpdateData) sendBlockEvent((byte) 1, oUpdateData = tData);
if (mColor != oColor) sendBlockEvent((byte) 2, oColor = mColor);
tData = (byte) (((mSidedRedstone[0] > 0) ? 1 : 0) | ((mSidedRedstone[1] > 0) ? 2 : 0) | ((mSidedRedstone[2] > 0) ? 4 : 0) | ((mSidedRedstone[3] > 0) ? 8 : 0) | ((mSidedRedstone[4] > 0) ? 16 : 0) | ((mSidedRedstone[5] > 0) ? 32 : 0));
if (tData != oRedstoneData) sendBlockEvent((byte) 3, oRedstoneData = tData);
}
if (mNeedsBlockUpdate) {
worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockOffset(0, 0, 0));
@ -338,7 +339,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.receiveClientEvent((byte) aEventID, (byte) aValue);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -384,18 +385,18 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
public ArrayList<String> getDebugInfo(EntityPlayer aPlayer, int aLogLevel) {
ArrayList<String> tList = new ArrayList<String>();
if (aLogLevel > 2) {
tList.add("Meta-ID: " + mID + (hasValidMetaTileEntity() ? " valid" : " invalid") + (mMetaTileEntity == null ? " MetaTileEntity == null!" : " "));
tList.add("Meta-ID: " + EnumChatFormatting.BLUE+ mID +EnumChatFormatting.RESET + (hasValidMetaTileEntity() ? EnumChatFormatting.GREEN+" valid"+EnumChatFormatting.RESET : EnumChatFormatting.RED+" invalid"+EnumChatFormatting.RESET) + (mMetaTileEntity == null ? EnumChatFormatting.RED+" MetaTileEntity == null!"+EnumChatFormatting.RESET : " "));
}
if (aLogLevel > 1) {
if (mTimeStatistics.length > 0) {
double tAverageTime = 0;
for (int tTime : mTimeStatistics) tAverageTime += tTime;
tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks.");
tList.add("Average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms since " + mTimeStatistics.length + " ticks.");
}
if (mLagWarningCount > 0) {
tList.add("This TileEntity has also caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server.");
tList.add("Caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server.");
}
tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : " not ") + "accessible for you");
tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : EnumChatFormatting.RED+" not "+EnumChatFormatting.RESET) + "accessible for you");
}
return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList);
}
@ -855,7 +856,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
@ -867,7 +868,7 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
try {
if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -1312,4 +1313,4 @@ public class BaseMetaPipeEntity extends BaseTileEntity implements IGregTechTileE
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) {
mMetaTileEntity.onEntityCollidedWithBlock(aWorld, aX, aY, aZ, collider);
}
}
}

View file

@ -26,6 +26,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.EnumSkyBlock;
import net.minecraft.world.World;
@ -94,7 +95,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
super.writeToNBT(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
try {
@ -121,7 +122,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
aNBT.setBoolean("mOutputDisabled", mOutputDisabled);
aNBT.setTag("GT.CraftingComponents", mRecipeStuff);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
try {
@ -141,12 +142,12 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.saveNBTData(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
} catch (Throwable e) {
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered CRITICAL ERROR while saving MetaTileEntity, the Chunk whould've been corrupted by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -211,7 +212,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.loadNBTData(aNBT);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while loading MetaTileEntity, the Server should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -599,7 +600,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
mMetaTileEntity.receiveClientEvent((byte) aEventID, (byte) aValue);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while receiving Data from the Server, the Client should've been crashed by now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}
@ -651,25 +652,25 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
public ArrayList<String> getDebugInfo(EntityPlayer aPlayer, int aLogLevel) {
ArrayList<String> tList = new ArrayList<String>();
if (aLogLevel > 2) {
tList.add("Meta-ID: " + mID + (canAccessData() ? " valid" : " invalid") + (mMetaTileEntity == null ? " MetaTileEntity == null!" : " "));
tList.add("Meta-ID: " +EnumChatFormatting.BLUE+ mID +EnumChatFormatting.RESET + (canAccessData() ? EnumChatFormatting.GREEN+" valid"+EnumChatFormatting.RESET : EnumChatFormatting.RED+" invalid"+EnumChatFormatting.RESET) + (mMetaTileEntity == null ? EnumChatFormatting.RED+" MetaTileEntity == null!"+EnumChatFormatting.RESET : " "));
}
if (aLogLevel > 1) {
if (mTimeStatistics.length > 0) {
double tAverageTime = 0;
for (int tTime : mTimeStatistics) tAverageTime += tTime;
tList.add("This particular TileEntity has caused an average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms over the last " + mTimeStatistics.length + " ticks.");
tList.add("Average CPU-load of ~" + (tAverageTime / mTimeStatistics.length) + "ms since " + mTimeStatistics.length + " ticks.");
}
if (mLagWarningCount > 0) {
tList.add("This TileEntity has also caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server.");
tList.add("Caused " + (mLagWarningCount >= 10 ? "more than 10" : mLagWarningCount) + " Lag Spike Warnings (anything taking longer than " + GregTech_API.MILLISECOND_THRESHOLD_UNTIL_LAG_WARNING + "ms) on the Server.");
}
tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : " not ") + "accessible for you");
tList.add("Is" + (mMetaTileEntity.isAccessAllowed(aPlayer) ? " " : EnumChatFormatting.RED+" not "+EnumChatFormatting.RESET) + "accessible for you");
}
if (aLogLevel > 0) {
if (getSteamCapacity() > 0 && hasSteamEngineUpgrade())
tList.add(getStoredSteam() + " of " + getSteamCapacity() + " Steam");
tList.add("Machine is " + (mActive ? "active" : "inactive"));
tList.add("Machine is " + (mActive ? EnumChatFormatting.GREEN+"active"+EnumChatFormatting.RESET : EnumChatFormatting.RED+"inactive"+EnumChatFormatting.RESET));
if (!mHasEnoughEnergy)
tList.add("ATTENTION: This Device consumes Energy at a higher Rate than you input. You could insert more to speed up the process.");
tList.add(EnumChatFormatting.RED+"ATTENTION: This Device needs more power."+EnumChatFormatting.RESET);
}
return mMetaTileEntity.getSpecialDebugInfo(this, aPlayer, aLogLevel, tList);
}
@ -1321,7 +1322,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
if (hasValidMetaTileEntity()) return mMetaTileEntity.onRightclick(this, aPlayer, aSide, aX, aY, aZ);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while rightclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
@ -1333,7 +1334,7 @@ public class BaseMetaTileEntity extends BaseTileEntity implements IGregTechTileE
try {
if (aPlayer != null && hasValidMetaTileEntity()) mMetaTileEntity.onLeftclick(this, aPlayer);
} catch (Throwable e) {
GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immidietly to GregTech Intergalactical!!!");
GT_Log.err.println("Encountered Exception while leftclicking TileEntity, the Game should've crashed now, but I prevented that. Please report immediately to GregTech Intergalactical!!!");
e.printStackTrace(GT_Log.err);
}
}

View file

@ -2,6 +2,7 @@ package gregtech.api.metatileentity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@ -9,6 +10,7 @@ import gregtech.api.objects.GT_ItemStack;
import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.texture.IIconRegister;
@ -20,6 +22,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -167,7 +170,7 @@ public abstract class MetaPipeEntity implements IMetaTileEntity {
tCovered = true;
}
//System.out.println("Cover: "+mBaseMetaTileEntity.getCoverIDAtSide(aSide));
//toDo: filter cover ids that actually protect against temperature (rubber/plastic maybe?)
//toDo: filter cover ids that actually protect against temperature (rubber/plastic maybe?, more like asbestos)
return tCovered;
}
@ -640,11 +643,32 @@ public abstract class MetaPipeEntity implements IMetaTileEntity {
@Override
public void doExplosion(long aExplosionPower) {
float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F;
float tStrength =
aExplosionPower < V[0] ? 1.0F :
aExplosionPower < V[1] ? 2.0F :
aExplosionPower < V[2] ? 3.0F :
aExplosionPower < V[3] ? 4.0F :
aExplosionPower < V[4] ? 5.0F :
aExplosionPower < V[4] * 2 ? 6.0F :
aExplosionPower < V[5] ? 7.0F :
aExplosionPower < V[6] ? 8.0F :
aExplosionPower < V[7] ? 9.0F :
aExplosionPower < V[8] ? 10.0F :
aExplosionPower < V[8] * 2 ? 11.0F :
aExplosionPower < V[9] ? 12.0F :
aExplosionPower < V[10] ? 13.0F :
aExplosionPower < V[11] ? 14.0F :
aExplosionPower < V[12] ? 15.0F :
aExplosionPower < V[12] * 2 ? 16.0F :
aExplosionPower < V[13] ? 17.0F :
aExplosionPower < V[14] ? 18.0F :
aExplosionPower < V[15] ? 19.0F : 20.0F;
int tX = getBaseMetaTileEntity().getXCoord(), tY = getBaseMetaTileEntity().getYCoord(), tZ = getBaseMetaTileEntity().getZCoord();
World tWorld = getBaseMetaTileEntity().getWorld();
tWorld.setBlock(tX, tY, tZ, Blocks.air);
if (GregTech_API.sMachineExplosions)
if(GT_Mod.gregtechproxy.mPollution)
GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000);
tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true);
}

View file

@ -2,6 +2,7 @@ package gregtech.api.metatileentity;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@ -10,6 +11,7 @@ import gregtech.api.util.GT_Config;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.texture.IIconRegister;
@ -20,6 +22,7 @@ import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@ -829,12 +832,33 @@ public abstract class MetaTileEntity implements IMetaTileEntity {
@Override
public void doExplosion(long aExplosionPower) {
float tStrength = aExplosionPower < V[0] ? 1.0F : aExplosionPower < V[1] ? 2.0F : aExplosionPower < V[2] ? 3.0F : aExplosionPower < V[3] ? 4.0F : aExplosionPower < V[4] ? 5.0F : aExplosionPower < V[4] * 2 ? 6.0F : aExplosionPower < V[5] ? 7.0F : aExplosionPower < V[6] ? 8.0F : aExplosionPower < V[7] ? 9.0F : 10.0F;
float tStrength =
aExplosionPower < V[0] ? 1.0F :
aExplosionPower < V[1] ? 2.0F :
aExplosionPower < V[2] ? 3.0F :
aExplosionPower < V[3] ? 4.0F :
aExplosionPower < V[4] ? 5.0F :
aExplosionPower < V[4] * 2 ? 6.0F :
aExplosionPower < V[5] ? 7.0F :
aExplosionPower < V[6] ? 8.0F :
aExplosionPower < V[7] ? 9.0F :
aExplosionPower < V[8] ? 10.0F :
aExplosionPower < V[8] * 2 ? 11.0F :
aExplosionPower < V[9] ? 12.0F :
aExplosionPower < V[10] ? 13.0F :
aExplosionPower < V[11] ? 14.0F :
aExplosionPower < V[12] ? 15.0F :
aExplosionPower < V[12] * 2 ? 16.0F :
aExplosionPower < V[13] ? 17.0F :
aExplosionPower < V[14] ? 18.0F :
aExplosionPower < V[15] ? 19.0F : 20.0F;
int tX = getBaseMetaTileEntity().getXCoord(), tY = getBaseMetaTileEntity().getYCoord(), tZ = getBaseMetaTileEntity().getZCoord();
World tWorld = getBaseMetaTileEntity().getWorld();
GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ);
tWorld.setBlock(tX, tY, tZ, Blocks.air);
if (GregTech_API.sMachineExplosions)
if(GT_Mod.gregtechproxy.mPollution)
GT_Pollution.addPollution(new ChunkPosition(tX, tY, tZ), 100000);
tWorld.createExplosion(null, tX + 0.5, tY + 0.5, tZ + 0.5, tStrength, true);
}

View file

@ -31,11 +31,11 @@ public class GT_MetaTileEntity_E_Furnace extends GT_MetaTileEntity_BasicMachine
@Override
public int checkRecipe() {
if (null != (mOutputItems[0] = GT_ModHandler.getSmeltingOutput(getInputAt(0), true, getOutputAt(0)))) {
mEUt = 4 * (1 << (mTier - 1)) * (1 << (mTier - 1));
mMaxProgresstime = 128 / (1 << (mTier - 1));
return 2;
calculateOverclockedNess(4,128);
if(mMaxProgresstime==Integer.MAX_VALUE-1 && mEUt==Integer.MAX_VALUE-1) return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
return FOUND_AND_SUCCESSFULLY_USED_RECIPE;
}
return 0;
return DID_NOT_FIND_RECIPE;
}
@Override

View file

@ -17,6 +17,7 @@ import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
import ic2.api.energy.tile.IEnergySink;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
@ -38,9 +39,11 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
public final Materials mMaterial;
public final long mCableLossPerMeter, mAmperage, mVoltage;
public final boolean mInsulated, mCanShock;
public long mTransferredAmperage = 0, mTransferredAmperageLast20 = 0, mTransferredVoltageLast20 = 0;
public int mTransferredAmperage = 0, mTransferredAmperageLast20 = 0,mTransferredAmperageLast20OK=0,mTransferredAmperageOK=0;
public long mTransferredVoltageLast20 = 0, mTransferredVoltage = 0,mTransferredVoltageLast20OK=0,mTransferredVoltageOK=0;
public long mRestRF;
public short mOverheat;
public static short mMaxOverheat=(short) (GT_Mod.gregtechproxy.mWireHeatingTicks * 100);
public GT_MetaPipeEntity_Cable(int aID, String aName, String aNameRegional, float aThickNess, Materials aMaterial, long aCableLossPerMeter, long aAmperage, long aVoltage, boolean aInsulated, boolean aCanShock) {
super(aID, aName, aNameRegional, 0);
@ -80,13 +83,17 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], Dyes.getModulation(aColorIndex, mMaterial.mRGBa) )};
if (aConnected) {
float tThickNess = getThickNess();
if (tThickNess < 0.37F)
if (tThickNess < 0.124F)
return new ITexture[]{new GT_RenderedTexture(Textures.BlockIcons.INSULATION_FULL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
if (tThickNess < 0.374F)//0.375 x1
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_TINY, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
if (tThickNess < 0.49F)
if (tThickNess < 0.499F)//0.500 x2
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_SMALL, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
if (tThickNess < 0.74F)
if (tThickNess < 0.624F)//0.625 x4
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_MEDIUM, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
if (tThickNess < 0.99F)
if (tThickNess < 0.749F)//0.750 x8
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_MEDIUM_PLUS, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
if (tThickNess < 0.874F)//0.825 x12
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_LARGE, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[TextureSet.INDEX_wire], mMaterial.mRGBa), new GT_RenderedTexture(Textures.BlockIcons.INSULATION_HUGE, Dyes.getModulation(aColorIndex, Dyes.CABLE_INSULATION.mRGBa))};
}
@ -101,8 +108,8 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
if (!mCanShock) return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
return AxisAlignedBB.getBoundingBox(aX + 0.125D, aY + 0.125D, aZ + 0.125D, aX + 0.875D, aY + 0.875D, aZ + 0.875D);
//if (!mCanShock) return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
return AxisAlignedBB.getBoundingBox(aX + 0.0625D, aY + 0.0625D, aZ + 0.0625D, aX + 0.9375D, aY + 0.9375D, aZ + 0.9375D);
}
@Override
@ -175,7 +182,8 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
}
} else if (GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver) {
ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite();
int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100);
long rfOUT = aVoltage * GregTech_API.mEUtoRF / 100;
int rfOut = rfOUT>Integer.MAX_VALUE ? Integer.MAX_VALUE : (int)rfOUT;
if (((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, true) == rfOut) {
((IEnergyReceiver) tTileEntity).receiveEnergy(tDirection, rfOut, false);
rUsedAmperes++;
@ -195,24 +203,33 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
}
}
}
mTransferredVoltage=(Math.max(mTransferredVoltage,aVoltage));
mTransferredAmperage += rUsedAmperes;
mTransferredVoltageLast20 = Math.max(mTransferredVoltageLast20, aVoltage);
mTransferredVoltageLast20 = (Math.max(mTransferredVoltageLast20, aVoltage));
mTransferredAmperageLast20 = Math.max(mTransferredAmperageLast20, mTransferredAmperage);
if (aVoltage > mVoltage || mTransferredAmperage > mAmperage) {
if(mOverheat>GT_Mod.gregtechproxy.mWireHeatingTicks * 100){
getBaseMetaTileEntity().setToFire();}else{mOverheat +=100;}
if(mOverheat>mMaxOverheat)
getBaseMetaTileEntity().setToFire();
else
mOverheat +=100;
return aAmperage;
}
return rUsedAmperes;
//Always return amount of used amperes, used all on overheat
}
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide()) {
mTransferredVoltageOK=mTransferredVoltage;
mTransferredVoltage=0;
mTransferredAmperageOK=mTransferredAmperage;
mTransferredAmperage = 0;
if(mOverheat>0)mOverheat--;
if (aTick % 20 == 0) {
mTransferredVoltageLast20OK=mTransferredVoltageLast20;
mTransferredVoltageLast20 = 0;
mTransferredAmperageLast20OK=mTransferredAmperageLast20;
mTransferredAmperageLast20 = 0;
mConnections = 0;
for (byte i = 0, j = 0; i < 6; i++) {
@ -251,7 +268,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
}
}
}
}
}else if(aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected==4) aBaseMetaTileEntity.issueTextureUpdate();
}
@Override
@ -275,6 +292,7 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
@Override
public float getThickNess() {
if(GT_Client.hideValue==1) return 0.0625F;
return mThickNess;
}
@ -287,4 +305,28 @@ public class GT_MetaPipeEntity_Cable extends MetaPipeEntity implements IMetaTile
public void loadNBTData(NBTTagCompound aNBT) {
//
}
@Override
public boolean isGivingInformation() {
return true;
}
@Override
public String[] getInfoData() {
return new String[]{
//EnumChatFormatting.BLUE + mName + EnumChatFormatting.RESET,
"Heat: "+
EnumChatFormatting.RED+ mOverheat +EnumChatFormatting.RESET+" / "+EnumChatFormatting.YELLOW+ mMaxOverheat + EnumChatFormatting.RESET,
"Max Load (1t):",
EnumChatFormatting.GREEN + Integer.toString(mTransferredAmperageOK) + EnumChatFormatting.RESET +" A / "+
EnumChatFormatting.YELLOW + Long.toString(mAmperage) + EnumChatFormatting.RESET +" A",
"Max EU/p (1t):",
EnumChatFormatting.GREEN + Long.toString(mTransferredVoltageOK) + EnumChatFormatting.RESET +" EU / "+
EnumChatFormatting.YELLOW + Long.toString(mVoltage) + EnumChatFormatting.RESET +" EU",
"Max Load (20t): "+
EnumChatFormatting.GREEN + Integer.toString(mTransferredAmperageLast20OK) + EnumChatFormatting.RESET +" A",
"Max EU/p (20t): "+
EnumChatFormatting.GREEN + Long.toString(mTransferredVoltageLast20OK) + EnumChatFormatting.RESET +" EU"
};
}
}

View file

@ -1,11 +1,7 @@
package gregtech.api.metatileentity.implementations;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Dyes;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.enums.SubTag;
import gregtech.api.enums.*;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.interfaces.tileentity.ICoverable;
@ -16,6 +12,7 @@ import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.XSTR;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
@ -74,13 +71,15 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) {
if (aConnected) {
float tThickNess = getThickNess();
if (tThickNess < 0.37F)
if (tThickNess < 0.124F)
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.374F)//0.375
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.49F)
if (tThickNess < 0.499F)//0.500
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.74F)
if (tThickNess < 0.749F)//0.750
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.99F)
if (tThickNess < 0.874F)//0.825
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
}
@ -143,7 +142,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
return AxisAlignedBB.getBoundingBox(aX + 0.125D, aY + 0.125D, aZ + 0.125D, aX + 0.875D, aY + 0.875D, aZ + 0.875D);
return AxisAlignedBB.getBoundingBox(aX + 0.0625D, aY + 0.0625D, aZ + 0.0625D, aX + 0.9375D, aY + 0.9375D, aZ + 0.9375D);
}
@Override
@ -269,7 +268,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
}
oLastReceivedFrom = mLastReceivedFrom;
}
}else if(aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected==4) aBaseMetaTileEntity.issueTextureUpdate();
}
@Override
@ -386,6 +385,7 @@ public class GT_MetaPipeEntity_Fluid extends MetaPipeEntity {
@Override
public float getThickNess() {
if(GT_Client.hideValue==1) return 0.0625F;
return mThickNess;
}
}
}

View file

@ -10,6 +10,7 @@ import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.metatileentity.MetaPipeEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
@ -17,6 +18,8 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityDispenser;
import net.minecraft.tileentity.TileEntityHopper;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World;
import java.util.ArrayList;
import java.util.concurrent.ConcurrentHashMap;
@ -67,18 +70,25 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
return new GT_MetaPipeEntity_Item(mName, mThickNess, mMaterial, mInventory.length, mStepSize, mIsRestrictive);
}
@Override
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
return AxisAlignedBB.getBoundingBox(aX + 0.0625D, aY + 0.0625D, aZ + 0.0625D, aX + 0.9375D, aY + 0.9375D, aZ + 0.9375D);
}
@Override
public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aConnections, byte aColorIndex, boolean aConnected, boolean aRedstone) {
if (mIsRestrictive) {
if (aConnected) {
float tThickNess = getThickNess();
if (tThickNess < 0.37F)
if (tThickNess < 0.124F)
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
if (tThickNess < 0.374F)//0.375
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
if (tThickNess < 0.49F)
if (tThickNess < 0.499F)//0.500
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
if (tThickNess < 0.74F)
if (tThickNess < 0.749F)//0.750
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
if (tThickNess < 0.99F)
if (tThickNess < 0.874F)//0.825
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa)), new GT_RenderedTexture(Textures.BlockIcons.PIPE_RESTRICTOR)};
}
@ -86,13 +96,15 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
}
if (aConnected) {
float tThickNess = getThickNess();
if (tThickNess < 0.37F)
if (tThickNess < 0.124F)
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipe.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.374F)//0.375
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeTiny.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.49F)
if (tThickNess < 0.499F)//0.500
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeSmall.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.74F)
if (tThickNess < 0.749F)//0.750
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeMedium.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
if (tThickNess < 0.99F)
if (tThickNess < 0.874F)//0.825
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeLarge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
return new ITexture[]{new GT_RenderedTexture(mMaterial.mIconSet.mTextures[OrePrefixes.pipeHuge.mTextureIndex], Dyes.getModulation(aColorIndex, mMaterial.mRGBa))};
}
@ -217,7 +229,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
if (isInventoryEmpty()) mLastReceivedFrom = 6;
oLastReceivedFrom = mLastReceivedFrom;
}
}else if(aBaseMetaTileEntity.isClientSide() && GT_Client.changeDetected==4) aBaseMetaTileEntity.issueTextureUpdate();
}
@Override
@ -306,6 +318,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE
@Override
public float getThickNess() {
if(GT_Client.hideValue==1) return 0.0625F;
return mThickNess;
}
}

View file

@ -13,6 +13,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import static gregtech.api.enums.GT_Values.V;
@ -47,7 +48,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
ITexture[][][] rTextures = new ITexture[2][17][];
for (byte i = -1; i < 16; i++) {
rTextures[0][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1]};
rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], mInventory.length > 4 ? Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier] : Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]};
rTextures[1][i + 1] = new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][i + 1], mInventory.length==16 ? Textures.BlockIcons.OVERLAYS_ENERGY_OUT_POWER[mTier] : mInventory.length > 4 ? Textures.BlockIcons.OVERLAYS_ENERGY_OUT_MULTI[mTier] : Textures.BlockIcons.OVERLAYS_ENERGY_OUT[mTier]};
}
return rTextures;
}
@ -109,12 +110,12 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
@Override
public long getMinimumStoredEU() {
return V[mTier] * 16 * mInventory.length;
return V[mTier] * 16L * mInventory.length;
}
@Override
public long maxEUStore() {
return V[mTier] * 64 * mInventory.length;
return V[mTier] * 64L * mInventory.length;
}
@Override
@ -129,7 +130,7 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
@Override
public long maxAmperesIn() {
return mChargeableCount * 2;
return mChargeableCount * 2L;
}
@Override
@ -309,14 +310,15 @@ public class GT_MetaTileEntity_BasicBatteryBuffer extends GT_MetaTileEntity_Tier
}
return new String[]{
getLocalName(),
EnumChatFormatting.BLUE+getLocalName()+EnumChatFormatting.RESET,
"Stored Items:",
GT_Utility.formatNumbers(mStored) + " EU /",
GT_Utility.formatNumbers(mMax) + " EU"};
EnumChatFormatting.GREEN+GT_Utility.formatNumbers(mStored) +EnumChatFormatting.RESET+ " EU / "+
EnumChatFormatting.YELLOW+GT_Utility.formatNumbers(mMax) +EnumChatFormatting.RESET+ " EU"
};
}
@Override
public boolean isGivingInformation() {
return true;
}
}
}

View file

@ -5,6 +5,7 @@ import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.EntityPlayer;
@ -133,17 +134,18 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
@Override
public long maxEUOutput() {
return getBaseMetaTileEntity().isAllowedToWork() ? V[mTier] : 0;
return getBaseMetaTileEntity().isAllowedToWork() ? V[mTier] : 0L;
}
@Override
public long maxEUStore() {
return Math.max(getEUVar(), V[mTier] * 40 + getMinimumStoredEU());
return Math.max(getEUVar(), V[mTier] * 40L + getMinimumStoredEU());
}
@Override
public boolean doesFillContainers() {
return getBaseMetaTileEntity().isAllowedToWork();
//return getBaseMetaTileEntity().isAllowedToWork();
return false;
}
@Override
@ -176,6 +178,12 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
return getFuelValue(aFluid) > 0;
}
@Override
public boolean isLiquidOutput(byte aSide) {
//return super.isLiquidOutput(aSide);
return false;
}
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
if (aBaseMetaTileEntity.isServerSide() && aBaseMetaTileEntity.isAllowedToWork() && aTick % 10 == 0) {
@ -191,7 +199,8 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
} else {
int tFuelValue = getFuelValue(mFluid), tConsumed = consumedFluidPerOperation(mFluid);
if (tFuelValue > 0 && tConsumed > 0 && mFluid.amount > tConsumed) {
long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUStore() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);
//long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUStore() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);//TODO CHECK?
long tFluidAmountToUse = Math.min(mFluid.amount / tConsumed, (maxEUOutput() * 20 + getMinimumStoredEU() - aBaseMetaTileEntity.getUniversalEnergyStored()) / tFuelValue);
if (tFluidAmountToUse > 0 && aBaseMetaTileEntity.increaseStoredEnergyUnits(tFluidAmountToUse * tFuelValue, true)) {
tProducedEU = tFluidAmountToUse * tFuelValue;
mFluid.amount -= tFluidAmountToUse * tConsumed;
@ -211,7 +220,7 @@ public abstract class GT_MetaTileEntity_BasicGenerator extends GT_MetaTileEntity
}
if(tProducedEU>0&&getPollution()>0){
GT_Pollution.addPollution(this.getBaseMetaTileEntity().getWorld(), new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()),
(int) ((tProducedEU * getPollution()/(500*mTier))+1));
(int) ((tProducedEU * getPollution()/(250*(mTier+1)))));
}
}

View file

@ -21,6 +21,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.DimensionManager;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidHandler;
@ -199,12 +200,12 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
@Override
public long getMinimumStoredEU() {
return V[mTier] * 16;
return V[mTier] * 16L;
}
@Override
public long maxEUStore() {
return V[mTier] * 64;
return V[mTier] * 64L;
}
@Override
@ -219,7 +220,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
@Override
public long maxAmperesIn() {
return (mEUt * 2) / V[mTier] + 1;
return ((long)mEUt * 2L) / V[mTier] + 1L;
}
@Override
@ -426,8 +427,8 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
endProcess();
}
if (mProgresstime > 5) mStuttering = false;
XSTR aXSTR = new XSTR();
if(GT_Mod.gregtechproxy.mAprilFool && aXSTR.nextInt(5000)==0)GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(5), 10.0F, -1.0F, aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord());
//XSTR aXSTR = new XSTR();
//if(GT_Mod.gregtechproxy.mAprilFool && aXSTR.nextInt(5000)==0)GT_Utility.sendSoundToPlayers(aBaseMetaTileEntity.getWorld(), GregTech_API.sSoundList.get(5), 10.0F, -1.0F, aBaseMetaTileEntity.getXCoord(), aBaseMetaTileEntity.getYCoord(),aBaseMetaTileEntity.getZCoord());
} else {
if (!mStuttering) {
stutterProcess();
@ -467,7 +468,7 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if (allowToCheckRecipe()) {
if (mMaxProgresstime <= 0 && aBaseMetaTileEntity.isAllowedToWork() && (tRemovedOutputFluid || tSucceeded || aBaseMetaTileEntity.hasInventoryBeenModified() || aTick % 600 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled()) && hasEnoughEnergyToCheckRecipe()) {
if (checkRecipe() == 2) {
if (checkRecipe() == FOUND_AND_SUCCESSFULLY_USED_RECIPE) {
if (mInventory[3] != null && mInventory[3].stackSize <= 0) mInventory[3] = null;
for (int i = getInputSlot(), j = i + mInputSlotCount; i < j; i++)
if (mInventory[i] != null && mInventory[i].stackSize <= 0) mInventory[i] = null;
@ -530,16 +531,46 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
calculateOverclockedNess(aRecipe.mEUt, aRecipe.mDuration);
}
/**
* Calcualtes overclocked ness using long integers
* @param aEUt - recipe EUt
* @param aDuration - recipe Duration
*/
protected void calculateOverclockedNess(int aEUt, int aDuration) {
if (aEUt <= 16) {
mEUt = aEUt * (1 << (mTier - 1)) * (1 << (mTier - 1));
mMaxProgresstime = aDuration / (1 << (mTier - 1));
} else {
mEUt = aEUt;
if(mTier==0){
//Long time calculation
long xMaxProgresstime = ((long)aDuration)<<1;
if(xMaxProgresstime>Integer.MAX_VALUE-1){
//make impossible if too long
mEUt=Integer.MAX_VALUE-1;
mMaxProgresstime=Integer.MAX_VALUE-1;
}else{
mEUt=aEUt>>2;
mMaxProgresstime=(int)xMaxProgresstime;
}
}else{
//Long EUt calculation
long xEUt=aEUt;
//Isnt too low EUt check?
long tempEUt = xEUt<V[1] ? V[1] : xEUt;
mMaxProgresstime = aDuration;
while (mEUt <= V[mTier - 1] * mAmperage) {
mEUt *= 4;
mMaxProgresstime /= 2;
while (tempEUt <= V[mTier -1] * (long)mAmperage) {
tempEUt<<=2;//this actually controls overclocking
//xEUt *= 4;//this is effect of everclocking
mMaxProgresstime>>=1;//this is effect of overclocking
xEUt = mMaxProgresstime==0 ? xEUt>>1 : xEUt<<2;//U know, if the time is less than 1 tick make the machine use 2x less power
}
if(xEUt>Integer.MAX_VALUE-1){
mEUt = Integer.MAX_VALUE-1;
mMaxProgresstime = Integer.MAX_VALUE-1;
}else{
mEUt = (int)xEUt;
if(mEUt==0)
mEUt = 1;
if(mMaxProgresstime==0)
mMaxProgresstime = 1;//set time to 1 tick
}
}
}
@ -675,12 +706,17 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
@Override
public String[] getInfoData() {
return new String[]{
mNEIName,
"Progress:", (mProgresstime / 20) + " secs",
(mMaxProgresstime / 20) + " secs",
EnumChatFormatting.BLUE + mNEIName + EnumChatFormatting.RESET,
"Progress:",
EnumChatFormatting.GREEN + Integer.toString(mProgresstime/20) + EnumChatFormatting.RESET +" s / "+
EnumChatFormatting.YELLOW + Integer.toString(mMaxProgresstime/20) + EnumChatFormatting.RESET +" s",
"Stored Energy:",
getBaseMetaTileEntity().getStoredEU() + "EU",
getBaseMetaTileEntity().getEUCapacity() + "EU"};
EnumChatFormatting.GREEN + Long.toString(getBaseMetaTileEntity().getStoredEU()) + EnumChatFormatting.RESET +" EU / "+
EnumChatFormatting.YELLOW + Long.toString(getBaseMetaTileEntity().getEUCapacity()) + EnumChatFormatting.RESET +" EU",
"Probably uses: " +
EnumChatFormatting.RED + Integer.toString(mEUt) + EnumChatFormatting.RESET + " EU/t at " +
EnumChatFormatting.RED + Integer.toString(mEUt==0?0:mAmperage) + EnumChatFormatting.RESET +" A"
};
}
@Override
@ -732,6 +768,15 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
* @return see constants above
*/
public int checkRecipe() {
return checkRecipe(false);
}
/**
*
* @param skipOC disables OverclockedNess calculation and check - if you do you must implement your own method...
* @return
*/
public int checkRecipe(boolean skipOC){
GT_Recipe_Map tMap = getRecipeList();
if (tMap == null) return DID_NOT_FIND_RECIPE;
GT_Recipe tRecipe = tMap.findRecipe(getBaseMetaTileEntity(), mLastRecipe, false, V[mTier], new FluidStack[]{getFillableStack()}, getSpecialSlot(), getAllInputs());
@ -754,7 +799,12 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
if (mOutputItems[i] != null && getBaseMetaTileEntity().getRandomNumber(10000) > mCleanroom.mEfficiency)
mOutputItems[i] = null;
mOutputFluid = tRecipe.getFluidOutput(0);
calculateOverclockedNess(tRecipe);
if(!skipOC){
calculateOverclockedNess(tRecipe);
//In case recipe is too OP for that machine
if (mMaxProgresstime == Integer.MAX_VALUE - 1 && mEUt == Integer.MAX_VALUE - 1)
return FOUND_RECIPE_BUT_DID_NOT_MEET_REQUIREMENTS;
}
return FOUND_AND_SUCCESSFULLY_USED_RECIPE;
}
@ -813,4 +863,4 @@ public abstract class GT_MetaTileEntity_BasicMachine extends GT_MetaTileEntity_B
public ITexture[] getSideFacingPipeInactive(byte aColor) {
return new ITexture[]{Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_PIPE_OUT)};
}
}
}

View file

@ -46,6 +46,8 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
mGUIParameterA = (byte) aGUIParameterA;
mGUIParameterB = (byte) aGUIParameterB;
//TODO: CHECK
if (aRecipe != null) {
for (int i = 3; i < aRecipe.length; i++) {
if (aRecipe[i] == X.CIRCUIT) {
@ -74,6 +76,13 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
case 13:
case 14:
case 15:
aRecipe[i] = Ic2Items.reinforcedGlass;
break;
default:
@ -111,7 +120,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
aRecipe[i] = OrePrefixes.plate.get(Materials.Neutronium);
break;
default:
aRecipe[i] = OrePrefixes.plate.get(Materials.TungstenSteel);
aRecipe[i] = OrePrefixes.plate.get(Materials.Neutronium);
break;
}
continue;
@ -145,7 +154,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
aRecipe[i] = OrePrefixes.pipeLarge.get(Materials.Ultimate);
break;
default:
aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.TungstenSteel);
aRecipe[i] = OrePrefixes.pipeMedium.get(Materials.Ultimate);
break;
}
continue;
@ -179,7 +188,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
aRecipe[i] = OrePrefixes.wireGt02.get(Materials.NaquadahAlloy);
break;
default:
aRecipe[i] = OrePrefixes.wireGt08.get(Materials.Nichrome);
aRecipe[i] = OrePrefixes.wireGt08.get(Materials.NaquadahAlloy);
break;
}
continue;
@ -213,7 +222,7 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
aRecipe[i] = OrePrefixes.wireGt04.get(Materials.NaquadahAlloy);
break;
default:
aRecipe[i] = OrePrefixes.wireGt16.get(Materials.Nichrome);
aRecipe[i] = OrePrefixes.wireGt16.get(Materials.NaquadahAlloy);
break;
}
continue;
@ -244,10 +253,10 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
break;
case 6:
case 7:
aRecipe[i] = OrePrefixes.stickLong.get(Materials.NeodymiumMagnetic);
aRecipe[i] = OrePrefixes.stickLong.get(Materials.Samarium);
break;
default:
aRecipe[i] = OrePrefixes.block.get(Materials.NeodymiumMagnetic);
aRecipe[i] = OrePrefixes.block.get(Materials.Samarium);
break;
}
continue;
@ -687,5 +696,5 @@ public class GT_MetaTileEntity_BasicMachine_GT_Recipe extends GT_MetaTileEntity_
return !mSharedTank;
}
public static enum X {PUMP, WIRE, WIRE4, HULL, PIPE, GLASS, PLATE, MOTOR, ROTOR, SENSOR, PISTON, CIRCUIT, EMITTER, CONVEYOR, ROBOT_ARM, COIL_HEATING, COIL_ELECTRIC, STICK_MAGNETIC, STICK_DISTILLATION, BETTER_CIRCUIT, FIELD_GENERATOR, COIL_HEATING_DOUBLE, STICK_ELECTROMAGNETIC;}
public static enum X {PUMP, WIRE, WIRE4, HULL, PIPE, GLASS, PLATE, MOTOR, ROTOR, SENSOR, PISTON, CIRCUIT, EMITTER, CONVEYOR, ROBOT_ARM, COIL_HEATING, COIL_ELECTRIC, STICK_MAGNETIC, STICK_DISTILLATION, BETTER_CIRCUIT, FIELD_GENERATOR, COIL_HEATING_DOUBLE, STICK_ELECTROMAGNETIC}
}

View file

@ -137,12 +137,12 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM
@Override
public long getMinimumStoredEU() {
return 512;
return 512L;
}
@Override
public long maxEUStore() {
return 512 + V[mTier] * 50;
return 512L + V[mTier] * 50L;
}
@Override
@ -152,7 +152,7 @@ public abstract class GT_MetaTileEntity_Buffer extends GT_MetaTileEntity_TieredM
@Override
public long maxEUOutput() {
return bOutput ? V[mTier] : 0;
return bOutput ? V[mTier] : 0L;
}
@Override

View file

@ -70,7 +70,7 @@ public class GT_MetaTileEntity_Hatch_Dynamo extends GT_MetaTileEntity_Hatch {
@Override
public long maxEUStore() {
return 512 + V[mTier + 1] * 2;
return 512L + V[mTier + 1] * 2L;
}
@Override

View file

@ -70,7 +70,7 @@ public class GT_MetaTileEntity_Hatch_Energy extends GT_MetaTileEntity_Hatch {
@Override
public long maxEUStore() {
return 512 + V[mTier] * 8;
return 512L + V[mTier] * 8L;
}
@Override

View file

@ -15,7 +15,7 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch {
public GT_Recipe_Map mRecipeMap = null;
public GT_MetaTileEntity_Hatch_Input(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 3, "Fluid Input for Multiblocks (" + 8000 * (aTier + 1) + "L)");
super(aID, aName, aNameRegional, aTier, 3, "Fluid Input for Multiblocks (" + (8000+8000*(aTier*(aTier+1)>>1)) + "L)");
}
public GT_MetaTileEntity_Hatch_Input(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
@ -61,7 +61,8 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch {
@Override
public boolean doesFillContainers() {
return true;
//return true;
return false;
}
@Override
@ -111,7 +112,7 @@ public class GT_MetaTileEntity_Hatch_Input extends GT_MetaTileEntity_Hatch {
@Override
public int getCapacity() {
return 8000 * (mTier + 1);
return 8000+8000*(mTier*(mTier+1)>>1);
}
@Override

View file

@ -48,17 +48,19 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
@Override
public String[] getDescription() {
if(mAuto)return new String[]{mDescription,"4 Ducttape, 2 Lubricant Cells","4 Steel Screws, 2 Adv Circuits","For each autorepair"};
if(mAuto)return new String[]{mDescription, "4 Duct tape, 2 Lubricant Cells","4 Steel Screws, 2 Adv. Circuits","For each auto-repair"};
return new String[]{mDescription, "Cannot be shared between Multiblocks!"};
}
@Override
public ITexture[] getTexturesActive(ITexture aBaseTexture) {
if(mAuto)return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_IDLE)};
return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE)};
}
@Override
public ITexture[] getTexturesInactive(ITexture aBaseTexture) {
if(mAuto)return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE)};
return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DUCTTAPE)};
}
@ -111,56 +113,66 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch
if(mAuto) return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, getLocalName());
return new GT_GUIContainer_MaintenanceHatch(aPlayerInventory, aBaseMetaTileEntity);
}
public boolean autoMaintainance() {
boolean tSuccess = true;
ItemStack[] mInputs = new ItemStack[]{ItemList.Duct_Tape.get(4, new Object[]{}),GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2),GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)};
List<ItemStack> aInputs = Arrays.asList(mInventory);
if (mInputs.length > 0 && aInputs == null) tSuccess = false;
int amt = 0;
for (ItemStack tStack : mInputs) {
if (tStack != null) {
amt = tStack.stackSize;
boolean temp = true;
for (ItemStack aStack : aInputs) {
if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true))) {
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPostTick(aBaseMetaTileEntity, aTick);
if(aBaseMetaTileEntity.isServerSide() && mAuto && aTick % 100L ==0L){
aBaseMetaTileEntity.setActive(!isRecipeInputEqual(false));
}
}
public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess) {
ItemStack[] mInputs=new ItemStack[]{ItemList.Duct_Tape.get(4, new Object[]{}),
GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2),
GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4),
GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)};
int amt;
for (ItemStack tStack : mInputs) {
if (tStack != null) {
amt = tStack.stackSize;
boolean temp = true;
for (ItemStack aStack : mInventory) {
if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true))) {
amt -= aStack.stackSize;
if (amt < 1) {
temp = false;
break;
}
}
}
if (temp) return false;
}
}
if (aDecreaseStacksizeBySuccess) {
for (ItemStack tStack : mInputs) {
if (tStack != null) {
amt = tStack.stackSize;
for (ItemStack aStack : mInventory) {
if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true))) {
if (aStack.stackSize < amt){
amt -= aStack.stackSize;
if (amt < 1) {
temp = false;
break;
}
}
}
if (temp) tSuccess = false;
}
}
if(tSuccess){
for (ItemStack tStack : mInputs) {
if (tStack != null) {
amt = tStack.stackSize;
for (ItemStack aStack : aInputs) {
if ((GT_Utility.areUnificationsEqual(aStack, tStack, true) || GT_Utility.areUnificationsEqual(GT_OreDictUnificator.get(false, aStack), tStack, true))) {
if (aStack.stackSize < amt){
amt -= aStack.stackSize;
aStack.stackSize = 0;
}else{
aStack.stackSize -= amt;
amt = 0;
break;
}
aStack.stackSize = 0;
}else{
aStack.stackSize -= amt;
amt = 0;
break;
}
}
}
}
this.mCrowbar = true;
this.mHardHammer = true;
this.mScrewdriver = true;
this.mSoftHammer = true;
this.mSolderingTool = true;
this.mWrench = true;
return true;
}
return false;
}
this.mCrowbar = true;
this.mHardHammer = true;
this.mScrewdriver = true;
this.mSoftHammer = true;
this.mSolderingTool = true;
this.mWrench = true;
}
return true;
}
public void onToolClick(ItemStack aStack, EntityLivingBase aPlayer) {

View file

@ -1,18 +1,22 @@
package gregtech.api.metatileentity.implementations;
import gregtech.GT_Mod;
import gregtech.api.enums.Textures;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.objects.GT_RenderedTexture;
import gregtech.api.objects.XSTR;
import gregtech.common.GT_Pollution;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch {
public GT_MetaTileEntity_Hatch_Muffler(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 0, "Outputs the Pollution (Might cause acidic rains and poisoning)");
super(aID, aName, aNameRegional, aTier, 0, "Outputs the Pollution (Might cause ... things)");
}
public GT_MetaTileEntity_Hatch_Muffler(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
@ -68,7 +72,7 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch {
}
public int calculatePollutionReduction(int aPollution){
return (int) (aPollution *(Math.pow(0.7, mTier-1)));
return (int) (aPollution *(Math.pow(0.85F, mTier-1)));
}
@Override
@ -80,4 +84,57 @@ public class GT_MetaTileEntity_Hatch_Muffler extends GT_MetaTileEntity_Hatch {
public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
return false;
}
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
super.onPostTick(aBaseMetaTileEntity, aTick);
if(aBaseMetaTileEntity.isClientSide() && this.getBaseMetaTileEntity().isActive())
pollutionParticles(this.getBaseMetaTileEntity().getWorld(),"largesmoke");
}
private static XSTR floatGen=new XSTR();
public void pollutionParticles(World aWorld,String name){
boolean chk1,chk2,chk3;
float ran1=floatGen.nextFloat(),ran2=0,ran3=0;
chk1=ran1*100<calculatePollutionReduction(100);
if(GT_Pollution.getPollutionAtCoords(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getZCoord())>= GT_Mod.gregtechproxy.mPollutionSmogLimit){
ran2=floatGen.nextFloat();
ran3=floatGen.nextFloat();
chk2=ran2*100<calculatePollutionReduction(100);
chk3=ran3*100<calculatePollutionReduction(100);
if(!(chk1||chk2||chk3))return;
}else{
if(!chk1)return;
chk2=chk3=false;
}
IGregTechTileEntity aMuffler=this.getBaseMetaTileEntity();
ForgeDirection aDir=ForgeDirection.getOrientation(aMuffler.getFrontFacing());
float xPos=aDir.offsetX*0.76F+aMuffler.getXCoord()+0.25F;
float yPos=aDir.offsetY*0.76F+aMuffler.getYCoord()+0.25F;
float zPos=aDir.offsetZ*0.76F+aMuffler.getZCoord()+0.25F;
float ySpd=aDir.offsetY*0.1F+0.2F+0.1F*floatGen.nextFloat();
float xSpd;
float zSpd;
if(aDir.offsetY==-1){
float temp=floatGen.nextFloat()*2*(float)Math.PI;
xSpd=(float)Math.sin(temp)*0.1F;
zSpd=(float)Math.cos(temp)*0.1F;
}else{
xSpd=aDir.offsetX*(0.1F+0.2F*floatGen.nextFloat());
zSpd=aDir.offsetZ*(0.1F+0.2F*floatGen.nextFloat());
}
if(chk1)
aWorld.spawnParticle(name, xPos + ran1*0.5F, yPos + floatGen.nextFloat()*0.5F, zPos + floatGen.nextFloat()*0.5F, xSpd, ySpd, zSpd);
if(chk2)
aWorld.spawnParticle(name, xPos + ran2*0.5F, yPos + floatGen.nextFloat()*0.5F, zPos + floatGen.nextFloat()*0.5F, xSpd, ySpd, zSpd);
if(chk3)
aWorld.spawnParticle(name, xPos + ran3*0.5F, yPos + floatGen.nextFloat()*0.5F, zPos + floatGen.nextFloat()*0.5F, xSpd, ySpd, zSpd);
}
}

View file

@ -17,7 +17,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch {
public byte mMode = 0;
public GT_MetaTileEntity_Hatch_Output(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 3, "Fluid Output for Multiblocks (" + 8000 * (aTier + 1) + "L) (Screwdriver for output type)");
super(aID, aName, aNameRegional, aTier, 3, "Fluid Output for Multiblocks (" + (8000+8000*(aTier*(aTier+1)>>1)) + "L) (Screwdriver for output type)");
}
public GT_MetaTileEntity_Hatch_Output(String aName, int aTier, String aDescription, ITexture[][][] aTextures) {
@ -106,7 +106,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch {
@Override
public boolean doesEmptyContainers() {
return true;
return false;
}
@Override
@ -141,7 +141,7 @@ public class GT_MetaTileEntity_Hatch_Output extends GT_MetaTileEntity_Hatch {
@Override
public int getCapacity() {
return 8000 * (mTier + 1);
return 8000+8000*(mTier*(mTier+1)>>1);
}
@Override

View file

@ -84,8 +84,6 @@ public class GT_MetaTileEntity_Hatch_OutputBus extends GT_MetaTileEntity_Hatch {
return new GT_GUIContainer_2by2(aPlayerInventory, aBaseMetaTileEntity, "Output Bus");
case 2:
return new GT_GUIContainer_3by3(aPlayerInventory, aBaseMetaTileEntity, "Output Bus");
case 3:
return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus");
default:
return new GT_GUIContainer_4by4(aPlayerInventory, aBaseMetaTileEntity, "Output Bus");
}

View file

@ -16,11 +16,14 @@ import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Pollution;
import gregtech.common.items.GT_MetaGenerated_Tool_01;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.ChunkPosition;
import net.minecraftforge.fluids.FluidStack;
import java.util.ArrayList;
@ -221,29 +224,29 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
if (mMachine) {
for (GT_MetaTileEntity_Hatch_Maintenance tHatch : mMaintenanceHatches) {
if (isValidMetaTileEntity(tHatch)) {
if (!this.disableMaintenance) {
if(tHatch.mAuto && (!mWrench||!mScrewdriver||!mSoftHammer||!mHardHammer||!mSolderingTool||!mCrowbar))tHatch.autoMaintainance();
if (tHatch.mWrench) mWrench = true;
if (tHatch.mScrewdriver) mScrewdriver = true;
if (tHatch.mSoftHammer) mSoftHammer = true;
if (tHatch.mHardHammer) mHardHammer = true;
if (tHatch.mSolderingTool) mSolderingTool = true;
if (tHatch.mCrowbar) mCrowbar = true;
} else {
if (disableMaintenance){
mWrench = true;
mScrewdriver = true;
mSoftHammer = true;
mHardHammer = true;
mSolderingTool = true;
mCrowbar = true;
}
} else {
if (tHatch.mAuto && !(mWrench&&mScrewdriver&&mSoftHammer&&mHardHammer&&mSolderingTool&&mCrowbar))tHatch.isRecipeInputEqual(true);
if (tHatch.mWrench) mWrench = true;
if (tHatch.mScrewdriver) mScrewdriver = true;
if (tHatch.mSoftHammer) mSoftHammer = true;
if (tHatch.mHardHammer) mHardHammer = true;
if (tHatch.mSolderingTool) mSolderingTool = true;
if (tHatch.mCrowbar) mCrowbar = true;
tHatch.mWrench = false;
tHatch.mScrewdriver = false;
tHatch.mSoftHammer = false;
tHatch.mHardHammer = false;
tHatch.mSolderingTool = false;
tHatch.mCrowbar = false;
tHatch.mWrench = false;
tHatch.mScrewdriver = false;
tHatch.mSoftHammer = false;
tHatch.mHardHammer = false;
tHatch.mSolderingTool = false;
tHatch.mCrowbar = false;
}
}
}
if (getRepairStatus() > 0) {
@ -300,6 +303,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
aBaseMetaTileEntity.setErrorDisplayID((aBaseMetaTileEntity.getErrorDisplayID() & ~127) | (mWrench ? 0 : 1) | (mScrewdriver ? 0 : 2) | (mSoftHammer ? 0 : 4) | (mHardHammer ? 0 : 8) | (mSolderingTool ? 0 : 16) | (mCrowbar ? 0 : 32) | (mMachine ? 0 : 64));
aBaseMetaTileEntity.setActive(mMaxProgresstime > 0);
boolean active=aBaseMetaTileEntity.isActive() && mPollution>0;
for(GT_MetaTileEntity_Hatch_Muffler aMuffler:mMufflerHatches)
aMuffler.getBaseMetaTileEntity().setActive(active);
}
}
@ -366,6 +372,13 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
*/
public abstract int getDamageToComponent(ItemStack aStack);
/**
* Gets the Amount of possibly outputted Items for loading the Output Stack Array from NBT.
* This should be the largest Amount that can ever happen legitimately.
*/
@Override
public int getAmountOfOutputs(){return -1;}
/**
* If it explodes when the Component has to be replaced.
*/
@ -477,7 +490,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
}
((GT_MetaGenerated_Tool) mInventory[1].getItem()).doDamage(mInventory[1], (long) Math.min(mEUt / this.damageFactorLow, Math.pow(mEUt, this.damageFactorHigh)));
((GT_MetaGenerated_Tool) mInventory[1].getItem()).doDamage(mInventory[1], (long)getDamageToComponent(mInventory[1]) * (long) Math.min(mEUt / this.damageFactorLow, Math.pow(mEUt, this.damageFactorHigh)));
if (mInventory[1].stackSize == 0) mInventory[1] = null;
}
}
@ -486,6 +499,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
}
public void explodeMultiblock() {
GT_Pollution.addPollution(new ChunkPosition(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord()), 300000);
mInventory[1] = null;
for (MetaTileEntity tTileEntity : mInputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]);
for (MetaTileEntity tTileEntity : mOutputBusses) tTileEntity.getBaseMetaTileEntity().doExplosion(V[8]);
@ -517,6 +531,52 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
return rVoltage;
}
/**
* Calcualtes overclocked ness using long integers
* @param aEUt - recipe EUt
* @param aDuration - recipe Duration
* @param mAmperage - should be 1 ?
*/
protected void calculateOverclockedNessMulti(int aEUt, int aDuration, int mAmperage, long maxInputVoltage) {
byte mTier=(byte)Math.max(0,GT_Utility.getTier(maxInputVoltage));
if(mTier==0){
//Long time calculation
long xMaxProgresstime = ((long)aDuration)<<1;
if(xMaxProgresstime>Integer.MAX_VALUE-1){
//make impossible if too long
mEUt=Integer.MAX_VALUE-1;
mMaxProgresstime=Integer.MAX_VALUE-1;
}else{
mEUt=aEUt>>2;
mMaxProgresstime=(int)xMaxProgresstime;
}
}else{
//Long EUt calculation
long xEUt=aEUt;
//Isnt too low EUt check?
long tempEUt = xEUt<V[1] ? V[1] : xEUt;
mMaxProgresstime = aDuration;
while (tempEUt <= V[mTier -1] * mAmperage) {
tempEUt<<=2;//this actually controls overclocking
//xEUt *= 4;//this is effect of everclocking
mMaxProgresstime>>=1;//this is effect of overclocking
xEUt = mMaxProgresstime==0 ? xEUt>>1 : xEUt<<2;//U know, if the time is less than 1 tick make the machine use less power
}
if(xEUt>Integer.MAX_VALUE-1){
mEUt = Integer.MAX_VALUE-1;
mMaxProgresstime = Integer.MAX_VALUE-1;
}else{
mEUt = (int)xEUt;
if(mEUt==0)
mEUt = 1;
if(mMaxProgresstime==0)
mMaxProgresstime = 1;//set time to 1 tick
}
}
}
public boolean drainEnergyInput(long aEU) {
if (aEU <= 0) return true;
for (GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches)
@ -637,11 +697,11 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
public ArrayList<ItemStack> getStoredOutputs() {
ArrayList<ItemStack> rList = new ArrayList<ItemStack>();
for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) {
if (isValidMetaTileEntity(tHatch)) {
rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(1));
}
}
//for (GT_MetaTileEntity_Hatch_Output tHatch : mOutputHatches) {
// if (isValidMetaTileEntity(tHatch)) {
// rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(1));
// }
//}
for (GT_MetaTileEntity_Hatch_OutputBus tHatch : mOutputBusses) {
if (isValidMetaTileEntity(tHatch)) {
for (int i = tHatch.getBaseMetaTileEntity().getSizeInventory() - 1; i >= 0; i--) {
@ -665,12 +725,12 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
public ArrayList<ItemStack> getStoredInputs() {
ArrayList<ItemStack> rList = new ArrayList<ItemStack>();
for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
tHatch.mRecipeMap = getRecipeMap();
if (isValidMetaTileEntity(tHatch) && tHatch.getBaseMetaTileEntity().getStackInSlot(0) != null) {
rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(0));
}
}
//for (GT_MetaTileEntity_Hatch_Input tHatch : mInputHatches) {
// tHatch.mRecipeMap = getRecipeMap();
// if (isValidMetaTileEntity(tHatch) && tHatch.getBaseMetaTileEntity().getStackInSlot(0) != null) {
// rList.add(tHatch.getBaseMetaTileEntity().getStackInSlot(0));
// }
//}
for (GT_MetaTileEntity_Hatch_InputBus tHatch : mInputBusses) {
tHatch.mRecipeMap = getRecipeMap();
if (isValidMetaTileEntity(tHatch)) {
@ -799,7 +859,39 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity {
@Override
public String[] getInfoData() {
return new String[]{"Progress:", (mProgresstime / 20) + "secs", (mMaxProgresstime / 20) + "secs", "Efficiency:", (mEfficiency / 100.0F) + "%", "Problems:", String.valueOf((getIdealStatus() - getRepairStatus()))};
int mPollutionReduction=0;
for (GT_MetaTileEntity_Hatch_Muffler tHatch : mMufflerHatches) {
if (isValidMetaTileEntity(tHatch)) {
mPollutionReduction=Math.max(tHatch.calculatePollutionReduction(100),mPollutionReduction);
}
}
long storedEnergy=0;
long maxEnergy=0;
for(GT_MetaTileEntity_Hatch_Energy tHatch : mEnergyHatches) {
if (isValidMetaTileEntity(tHatch)) {
storedEnergy+=tHatch.getBaseMetaTileEntity().getStoredEU();
maxEnergy+=tHatch.getBaseMetaTileEntity().getEUCapacity();
}
}
return new String[]{
"Progress:",
EnumChatFormatting.GREEN + Integer.toString(mProgresstime/20) + EnumChatFormatting.RESET +" s / "+
EnumChatFormatting.YELLOW + Integer.toString(mMaxProgresstime/20) + EnumChatFormatting.RESET +" s",
"Stored Energy:",
EnumChatFormatting.GREEN + Long.toString(storedEnergy) + EnumChatFormatting.RESET +" EU / "+
EnumChatFormatting.YELLOW + Long.toString(maxEnergy) + EnumChatFormatting.RESET +" EU",
"Probably uses: "+
EnumChatFormatting.RED + Integer.toString(-mEUt) + EnumChatFormatting.RESET + " EU/t",
"Maximum total power (to all Energy Hatches, not single ones): ",
EnumChatFormatting.YELLOW+Long.toString(getMaxInputVoltage())+EnumChatFormatting.RESET+ " EU/t * 2A",
"Problems: "+
EnumChatFormatting.RED+ (getIdealStatus() - getRepairStatus())+EnumChatFormatting.RESET+
" Efficiency: "+
EnumChatFormatting.YELLOW+Float.toString(mEfficiency / 100.0F)+EnumChatFormatting.RESET + " %",
"Pollution reduced to: "+ EnumChatFormatting.GREEN + mPollutionReduction+ EnumChatFormatting.RESET+" %"
};
}
@Override

View file

@ -8,6 +8,7 @@ import static gregtech.api.enums.GT_Values.GT;
public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntity {
/**
* Value between [0 - 9] to describe the Tier of this Machine.
* PLZ [0-15] works - READ! GT_Values class.
*/
public final byte mTier;
@ -23,7 +24,7 @@ public abstract class GT_MetaTileEntity_TieredMachineBlock extends MetaTileEntit
public GT_MetaTileEntity_TieredMachineBlock(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) {
super(aID, aName, aNameRegional, aInvSlotCount);
mTier = (byte) Math.max(0, Math.min(aTier, 9));
mTier = (byte) Math.max(0, Math.min(aTier, 15));
mDescription = aDescription;
// must always be the last call!

View file

@ -113,27 +113,27 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi
@Override
public long maxEUStore() {
return 512 + V[mTier + 1] * 2;
return 512L + V[mTier + 1] * 2L;
}
@Override
public long maxEUInput() {
return V[getBaseMetaTileEntity().isAllowedToWork() ? mTier + 1 : mTier];
return V[getBaseMetaTileEntity().isActive() ? mTier + 1 : mTier];
}
@Override
public long maxEUOutput() {
return V[getBaseMetaTileEntity().isAllowedToWork() ? mTier : mTier + 1];
return V[getBaseMetaTileEntity().isActive() ? mTier : mTier + 1];
}
@Override
public long maxAmperesOut() {
return getBaseMetaTileEntity().isAllowedToWork() ? V[mTier + 1] / V[mTier] : 1;
return getBaseMetaTileEntity().isActive() ? (V[mTier + 1] / V[mTier] < 4 ? 4 : V[mTier + 1] / V[mTier]) : 1;
}
@Override
public long maxAmperesIn() {
return getBaseMetaTileEntity().isAllowedToWork() ? 1 : V[mTier + 1] / V[mTier];
return getBaseMetaTileEntity().isActive() ? 1 : (V[mTier + 1] / V[mTier] < 4 ? 4 : V[mTier + 1] / V[mTier]);
}
@Override
@ -151,22 +151,22 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi
((IEnergySource) tTileEntity).drawEnergy(tEU);
aBaseMetaTileEntity.injectEnergyUnits((byte) 6, tEU, 1);
} else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyProvider && ((IEnergyProvider) tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), 1, true) == 1) {
long tEU = (long) ((IEnergyProvider) tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), (int) maxEUInput() * 100 / GregTech_API.mRFtoEU, false);
long tEU = (long) ((IEnergyProvider) tTileEntity).extractEnergy(ForgeDirection.getOrientation(GT_Utility.getOppositeSide(i)), GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), false);
tEU = tEU * GregTech_API.mRFtoEU / 100;
aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1);
} else if (GregTech_API.mInputRF && tTileEntity instanceof IEnergyStorage && ((IEnergyStorage) tTileEntity).extractEnergy(1, true) == 1) {
long tEU = (long) ((IEnergyStorage) tTileEntity).extractEnergy((int) maxEUInput() * 100 / GregTech_API.mRFtoEU, false);
long tEU = (long) ((IEnergyStorage) tTileEntity).extractEnergy(GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU), false);
tEU = tEU * GregTech_API.mRFtoEU / 100;
aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1);
} else if (GregTech_API.mInputRF && GregTech_API.meIOLoaded && tTileEntity instanceof IPowerContainer && ((IPowerContainer) tTileEntity).getEnergyStored() > 0) {
int storedRF = ((IPowerContainer) tTileEntity).getEnergyStored();
int extractRF = (int) maxEUInput() * 100 / GregTech_API.mRFtoEU;
int extractRF = GT_Utility.safeInt(maxEUInput() * 100L / GregTech_API.mRFtoEU);
long tEU = 0;
if (tTileEntity instanceof TileCapBank) {
ICapBankNetwork network = ((TileCapBank) tTileEntity).getNetwork();
if (network != null && network.getEnergyStoredL() > 0) {
tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF - extractRF), network.getMaxOutput())) * GregTech_API.mRFtoEU / 100, maxEUInput());
network.addEnergy((int) -(tEU * 100 / GregTech_API.mRFtoEU));
tEU = Math.min((Math.min(Math.min(network.getEnergyStoredL(), storedRF - extractRF), network.getMaxOutput())) * (long)GregTech_API.mRFtoEU / 100L, maxEUInput());
network.addEnergy(GT_Utility.safeInt(-(tEU * 100 / GregTech_API.mRFtoEU)));
}
} else {
if (storedRF > extractRF) {
@ -174,7 +174,7 @@ public class GT_MetaTileEntity_Transformer extends GT_MetaTileEntity_TieredMachi
tEU = maxEUInput();
} else {
((IPowerContainer) tTileEntity).setEnergyStored(0);
tEU = storedRF * GregTech_API.mRFtoEU / 100;
tEU = storedRF * (long)GregTech_API.mRFtoEU / 100L;
}
}
aBaseMetaTileEntity.injectEnergyUnits((byte) 6, Math.min(tEU, maxEUInput()), 1);

View file

@ -24,7 +24,7 @@ public class ElementStack implements Cloneable {
public boolean equals(Object aObject) {
if (aObject == this) return true;
if (aObject == null) return false;
if (aObject instanceof Element) {return aObject == mElement;}
if (aObject instanceof Element) return aObject == mElement;
if (aObject instanceof ElementStack)
return ((ElementStack) aObject).mElement == mElement && (mAmount < 0 || ((ElementStack) aObject).mAmount < 0 || ((ElementStack) aObject).mAmount == mAmount);
return false;

View file

@ -45,7 +45,6 @@ public class GT_FluidStack extends FluidStack {
}
}
@Deprecated
public final void fixFluidIDForFucksSake() {
if (ForgeVersion.getBuildVersion() < 1355 && ForgeVersion.getRevisionVersion() < 4) {
int fluidID;

View file

@ -16,7 +16,7 @@ public class GT_UO_Fluid {
public int Chance = 0;
public int DecreasePerOperationAmount = 5;
public GT_UO_Fluid(ConfigCategory aConfigCategory) {
public GT_UO_Fluid(ConfigCategory aConfigCategory) {//TODO CONFIGURE
if (aConfigCategory.containsKey("Registry"))
{
aConfigCategory.get("Registry").comment = "Fluid registry";

View file

@ -1,7 +1,6 @@
package gregtech.api.util;
import cpw.mods.fml.common.Loader;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.Materials;
@ -21,7 +20,6 @@ import speiger.src.crops.api.ICropCardInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import static gregtech.api.enums.GT_Values.E;

View file

@ -2000,4 +2000,4 @@ public class GT_ModHandler {
FMLInterModComms.sendMessage("ThermalExpansion", "Coolant", toSend);
}
}
}
}

View file

@ -261,6 +261,18 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
}
}
public GT_Recipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt, int VACUUM) {
this(true, new ItemStack[]{aInput1}, new ItemStack[]{aOutput1}, null, null, null, null, Math.max(aDuration, 1), aEUt, 0);
if (mInputs.length > 0 && mOutputs[0] != null) {
GT_Recipe_Map.sVacuumRecipes.addRecipe(this);
}
}
//Dummy GT_Recipe maker...
public GT_Recipe(ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecialItems, int[] aChances, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue){
this(true, aInputs, aOutputs, aSpecialItems, aChances, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue);
}
public static void reInit() {
GT_Log.out.println("GT_Mod: Re-Unificating Recipes.");
for (GT_Recipe_Map tMapEntry : GT_Recipe_Map.sMappings) tMapEntry.reInit();
@ -489,7 +501,7 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public static final GT_Recipe_Map sByProductList = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.byproductlist", "Ore Byproduct List", null, RES_PATH_GUI + "basicmachines/Default", 1, 6, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sReplicatorFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.replicator", "Replicator", null, RES_PATH_GUI + "basicmachines/Replicator", 0, 1, 0, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.scanner", "Scanner", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAssemblylineFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(30), "gt.recipe.fakeAssemblylineProcess", "Assemblyline Process", null, RES_PATH_GUI + "FakeAssemblyline", 1, 1, 1, 0, 1, E, 1, E, true, false);
public static final GT_Recipe_Map sPlasmaArcFurnaceRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10000), "gt.recipe.plasmaarcfurnace", "Plasma Arc Furnace", null, RES_PATH_GUI + "basicmachines/PlasmaArcFurnace", 1, 4, 1, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sArcFurnaceRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10000), "gt.recipe.arcfurnace", "Arc Furnace", null, RES_PATH_GUI + "basicmachines/ArcFurnace", 1, 4, 1, 1, 3, E, 1, E, true, true);
public static final GT_Recipe_Map sPrinterRecipes = new GT_Recipe_Map_Printer(new HashSet<GT_Recipe>(100), "gt.recipe.printer", "Printer", null, RES_PATH_GUI + "basicmachines/Printer", 1, 1, 1, 1, 1, E, 1, E, true, true);
@ -522,30 +534,32 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public static final GT_Recipe_Map sCrakingRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.craker", "Oil Cracker", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sPyrolyseRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.pyro", "Pyrolyse Oven", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sWiremillRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(50), "gt.recipe.wiremill", "Wiremill", null, RES_PATH_GUI + "basicmachines/Wiremill", 1, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(400), "gt.recipe.metalbender", "Metal Bender", null, RES_PATH_GUI + "basicmachines/Bender", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sBenderRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(400), "gt.recipe.metalbender", "Bending Machine", null, RES_PATH_GUI + "basicmachines/Bender", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAlloySmelterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(3000), "gt.recipe.alloysmelter", "Alloy Smelter", null, RES_PATH_GUI + "basicmachines/AlloySmelter", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet<GT_Recipe>(300), "gt.recipe.assembler", "Assembler", null, RES_PATH_GUI + "basicmachines/Assembler", 2, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet<GT_Recipe>(300), "gt.recipe.assembler", "Assembling Machine", null, RES_PATH_GUI + "basicmachines/Assembler", 2, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sCircuitAssemblerRecipes = new GT_Recipe_Map_Assembler(new HashSet<GT_Recipe>(300), "gt.recipe.circuitassembler", "Circuit Assembler", null, RES_PATH_GUI + "basicmachines/CircuitAssembler", 6, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sCannerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(300), "gt.recipe.canner", "Canning Machine", null, RES_PATH_GUI + "basicmachines/Canner", 2, 2, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sCNCRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(100), "gt.recipe.cncmachine", "CNC Machine", null, RES_PATH_GUI + "basicmachines/Default", 2, 1, 2, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sLatheRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(400), "gt.recipe.lathe", "Lathe", null, RES_PATH_GUI + "basicmachines/Lathe", 1, 2, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.cuttingsaw", "Cutting Saw", null, RES_PATH_GUI + "basicmachines/Cutter", 1, 2, 1, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.slicer", "Slicer", null, RES_PATH_GUI + "basicmachines/Slicer", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sCutterRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.cuttingsaw", "CCutting Machine", null, RES_PATH_GUI + "basicmachines/Cutter", 1, 2, 1, 1, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sSlicerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.slicer", "Slicing Machine", null, RES_PATH_GUI + "basicmachines/Slicer", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sExtruderRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(1000), "gt.recipe.extruder", "Extruder", null, RES_PATH_GUI + "basicmachines/Extruder", 2, 1, 2, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.hammer", "Hammer", null, RES_PATH_GUI + "basicmachines/Hammer", 1, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.uuamplifier", "UU Amplifier", null, RES_PATH_GUI + "basicmachines/Amplifabricator", 1, 0, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sHammerRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(200), "gt.recipe.hammer", "Forge Hammer", null, RES_PATH_GUI + "basicmachines/Hammer", 1, 1, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sAmplifiers = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.uuamplifier", "Amplifabricator", null, RES_PATH_GUI + "basicmachines/Amplifabricator", 1, 0, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map sMassFabFakeRecipes = new GT_Recipe_Map(new HashSet<GT_Recipe>(10), "gt.recipe.massfab", "Mass Fabrication", null, RES_PATH_GUI + "basicmachines/Massfabricator", 1, 0, 1, 0, 1, E, 1, E, true, true);
public static final GT_Recipe_Map_Fuel sDieselFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.dieselgeneratorfuel", "Diesel Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sTurbineFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.gasturbinefuel", "Gas Turbine Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sHotFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.thermalgeneratorfuel", "Thermal Generator Fuel", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, false);
public static final GT_Recipe_Map_Fuel sDenseLiquidFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.semifluidboilerfuels", "Semifluid Boiler Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.plasmageneratorfuels", "Plasma generator Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.magicfuels", "Magic Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.smallnaquadahreactor", "Small Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.largenaquadahreactor", "Large Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.fluidnaquadahreactor", "Fluid Naquadah Reactor", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sPlasmaFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.plasmageneratorfuels", "Plasma Generator Fuels", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sMagicFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.magicfuels", "Magic Energy Absorber", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sSmallNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.smallnaquadahreactor", "Naquadah Reactor MkI", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sLargeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.largenaquadahreactor", "Naquadah Reactor MkII", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sFluidNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.fluidnaquadahreactor", "Naquadah Reactor MkIII", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.hugenaquadahreactor", "Naquadah Reactor MkIV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Fuel sExtraHugeNaquadahReactorFuels = new GT_Recipe_Map_Fuel(new HashSet<GT_Recipe>(10), "gt.recipe.extrahugenaquadahreactor", "Naquadah Reactor MkV", null, RES_PATH_GUI + "basicmachines/Default", 1, 1, 0, 0, 1, "Fuel Value: ", 1000, " EU", true, true);
public static final GT_Recipe_Map_Large_Boiler_Fake_Fuels sLargeBoilerFakeFuels = new GT_Recipe_Map_Large_Boiler_Fake_Fuels();
/**
* HashMap of Recipes based on their Items
*/
@ -647,6 +661,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue) {
return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue));
}
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue,boolean hidden) {
return addFakeRecipe(aCheckForCollisions, new GT_Recipe(false, aInputs, aOutputs, aSpecial, null, aFluidInputs, aFluidOutputs, aDuration, aEUt, aSpecialValue),hidden);
}
/**
* Only used for fake Recipe Handlers to show something in NEI, do not use this for adding actual Recipes! findRecipe wont find fake Recipes, containsInput WILL find fake Recipes
@ -654,6 +671,9 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) {
return addRecipe(aRecipe, aCheckForCollisions, true, false);
}
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe,boolean hidden) {
return addRecipe(aRecipe, aCheckForCollisions, true, hidden);
}
public GT_Recipe add(GT_Recipe aRecipe) {
mRecipeList.add(aRecipe);
@ -838,6 +858,11 @@ public class GT_Recipe implements Comparable<GT_Recipe> {
return null;
}
@Override
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, ItemStack[] aInputs, ItemStack[] aOutputs, Object aSpecial, FluidStack[] aFluidInputs, FluidStack[] aFluidOutputs, int aDuration, int aEUt, int aSpecialValue,boolean hidden) {
return null;
}
@Override
public GT_Recipe addFakeRecipe(boolean aCheckForCollisions, GT_Recipe aRecipe) {
return null;

View file

@ -151,6 +151,10 @@ public class GT_RecipeRegistrator {
ItemData tData = GT_OreDictUnificator.getItemData(aStack);
boolean tHide = aStack.getUnlocalizedName().startsWith("gt.blockmachines")&&(GT_Mod.gregtechproxy.mHideRecyclingRecipes);
if(GT_Mod.gregtechproxy.mHideRecyclingRecipes&&tData!=null&&tData.hasValidPrefixData()&&!(tData.mPrefix==OrePrefixes.dust||tData.mPrefix==OrePrefixes.ingot||tData.mPrefix==OrePrefixes.block|tData.mPrefix==OrePrefixes.plate)){tHide=true;}
// boolean tHide = (aMaterial != Materials.Iron && aMaterial!= Materials.Redstone)&&(GT_Mod.gregtechproxy.mHideRecyclingRecipes);
// if(tHide && tData!=null&&tData.hasValidPrefixData()&&tData.mPrefix==OrePrefixes.ingot){
// tHide=false;
// }
RA.addFluidSmelterRecipe(GT_Utility.copyAmount(1, aStack), aByproduct == null ? null : aByproduct.mMaterial.contains(SubTag.NO_SMELTING) || !aByproduct.mMaterial.contains(SubTag.METAL) ? aByproduct.mMaterial.contains(SubTag.FLAMMABLE) ? GT_OreDictUnificator.getDust(Materials.Ash, aByproduct.mAmount / 2) : aByproduct.mMaterial.contains(SubTag.UNBURNABLE) ? GT_OreDictUnificator.getDustOrIngot(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount) : null : GT_OreDictUnificator.getIngotOrDust(aByproduct.mMaterial.mSmeltInto, aByproduct.mAmount), aMaterial.mSmeltInto.getMolten((L * aMaterialAmount) / (M * aStack.stackSize)), 10000, (int) Math.max(1, (24 * aMaterialAmount) / M), Math.max(8, (int) Math.sqrt(2 * aMaterial.mSmeltInto.mStandardMoltenFluid.getTemperature())), tHide);
}
@ -346,4 +350,4 @@ public class GT_RecipeRegistrator {
}
}
}
}
}

View file

@ -2,7 +2,6 @@ package gregtech.api.util;
import cofh.api.transport.IItemDuct;
import cpw.mods.fml.common.FMLCommonHandler;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.damagesources.GT_DamageSources;
import gregtech.api.enchants.Enchantment_Radioactivity;
@ -18,8 +17,8 @@ import gregtech.api.items.GT_EnergyArmor_Item;
import gregtech.api.items.GT_Generic_Item;
import gregtech.api.net.GT_Packet_Sound;
import gregtech.api.objects.GT_ItemStack;
import gregtech.api.objects.GT_UO_Fluid;
import gregtech.api.objects.ItemData;
import gregtech.api.objects.XSTR;
import gregtech.api.threads.GT_Runnable_Sound;
import gregtech.common.GT_Proxy;
import ic2.api.recipe.IRecipeInput;
@ -46,13 +45,14 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.nbt.NBTTagString;
import net.minecraft.network.play.server.S07PacketRespawn;
import net.minecraft.network.play.server.S1DPacketEntityEffect;
import net.minecraft.network.play.server.S1FPacketSetExperience;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.server.MinecraftServer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraft.world.ChunkPosition;
import net.minecraft.world.World;
@ -96,6 +96,14 @@ public class GT_Utility {
GregTech_API.sItemStackMappings.add(sEmptyContainerToFluidToData);
}
public static int safeInt(long number, int margin){
return number>Integer.MAX_VALUE-margin ? Integer.MAX_VALUE-margin :(int)number;
}
public static int safeInt(long number){
return number>GT_Values.V[GT_Values.V.length-1] ? safeInt(GT_Values.V[GT_Values.V.length-1],1) : number<Integer.MIN_VALUE ? Integer.MIN_VALUE : (int)number;
}
public static Field getPublicField(Object aObject, String aField) {
Field rField = null;
try {
@ -1449,80 +1457,118 @@ public class GT_Utility {
/**
* This checks if the Dimension is really a Dimension and not another Planet or something.
* Used for my Teleporter.
* Used for my Teleporter. //I have a different opinion... Planets are fine :P
*/
public static boolean isRealDimension(int aDimensionID) {
try {
if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft"))
return true;
} catch (Throwable e) {/*Do nothing*/}
try {
if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true;
} catch (Throwable e) {/*Do nothing*/}
try {
if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("galacticraft")) return true;
} catch (Throwable e) {/*Do nothing*/}
return GregTech_API.sDimensionalList.contains(aDimensionID);
if(aDimensionID<=1 && aDimensionID>=-1 && !GregTech_API.sDimensionalList.contains(aDimensionID)) return true;
return !GregTech_API.sDimensionalList.contains(aDimensionID) && DimensionManager.isDimensionRegistered(aDimensionID);
}
//public static boolean isRealDimension(int aDimensionID) {
// try {
// if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("com.xcompwiz.mystcraft"))
// return true;
// } catch (Throwable e) {/*Do nothing*/}
// try {
// if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("TwilightForest")) return true;
// } catch (Throwable e) {/*Do nothing*/}
// try {
// if (DimensionManager.getProvider(aDimensionID).getClass().getName().contains("galacticraft")) return true;
// } catch (Throwable e) {/*Do nothing*/}
// return GregTech_API.sDimensionalList.contains(aDimensionID);
//}
public static boolean moveEntityToDimensionAtCoords(Entity entity, int aDimension, double aX, double aY, double aZ) {
//Credit goes to BrandonCore Author :!:
public static boolean moveEntityToDimensionAtCoords(Entity aEntity, int aDimension, double aX, double aY, double aZ) {
WorldServer tTargetWorld = DimensionManager.getWorld(aDimension), tOriginalWorld = DimensionManager.getWorld(aEntity.worldObj.provider.dimensionId);
if (tTargetWorld != null && tOriginalWorld != null && tTargetWorld != tOriginalWorld) {
if (aEntity.ridingEntity != null) aEntity.mountEntity(null);
if (aEntity.riddenByEntity != null) aEntity.riddenByEntity.mountEntity(null);
if (aEntity instanceof EntityPlayerMP) {
EntityPlayerMP aPlayer = (EntityPlayerMP) aEntity;
// aPlayer.dimension = aDimension;
// aPlayer.playerNetServerHandler.sendPacket(new S07PacketRespawn(aPlayer.dimension, aPlayer.worldObj.difficultySetting, aPlayer.worldObj.getWorldInfo().getTerrainType(), aPlayer.theItemInWorldManager.getGameType()));
// tOriginalWorld.removePlayerEntityDangerously(aPlayer);
// aPlayer.isDead = false;
// aPlayer.setWorld(tTargetWorld);
// MinecraftServer.getServer().getConfigurationManager().func_72375_a(aPlayer, tOriginalWorld);
// aPlayer.playerNetServerHandler.setPlayerLocation(aX + 0.5, aY + 0.5, aZ + 0.5, aPlayer.rotationYaw, aPlayer.rotationPitch);
// aPlayer.theItemInWorldManager.setWorld(tTargetWorld);
// MinecraftServer.getServer().getConfigurationManager().updateTimeAndWeatherForPlayer(aPlayer, tTargetWorld);
// MinecraftServer.getServer().getConfigurationManager().syncPlayerInventory(aPlayer);
// Iterator tIterator = aPlayer.getActivePotionEffects().iterator();
// while (tIterator.hasNext()) {
// PotionEffect potioneffect = (PotionEffect) tIterator.next();
// aPlayer.playerNetServerHandler.sendPacket(new S1DPacketEntityEffect(aPlayer.getEntityId(), potioneffect));
// }
// FMLCommonHandler.instance().firePlayerChangedDimensionEvent(aPlayer, tOriginalWorld.provider.dimensionId, aDimension);
aPlayer.travelToDimension(aDimension);
aPlayer.playerNetServerHandler.setPlayerLocation(aX + 0.5, aY + 0.5, aZ + 0.5, aPlayer.rotationYaw, aPlayer.rotationPitch);
} else {
aEntity.setPosition(aX + 0.5, aY + 0.5, aZ + 0.5);
aEntity.worldObj.removeEntity(aEntity);
aEntity.dimension = aDimension;
aEntity.isDead = false;
Entity tNewEntity = EntityList.createEntityByName(EntityList.getEntityString(aEntity), tTargetWorld);
if (tNewEntity != null) {
tNewEntity.copyDataFrom(aEntity, true);
aEntity.setDead();
tNewEntity.isDead = false;
boolean temp = tNewEntity.forceSpawn;
tNewEntity.forceSpawn = true;
tTargetWorld.spawnEntityInWorld(tNewEntity);
tNewEntity.forceSpawn = temp;
tNewEntity.isDead = false;
aEntity = tNewEntity;
}
if (entity == null || entity.worldObj.isRemote) return false;
if (entity.ridingEntity != null) entity.mountEntity(null);
if (entity.riddenByEntity != null) entity.riddenByEntity.mountEntity(null);
World startWorld = entity.worldObj;
World destinationWorld = FMLCommonHandler.instance().getMinecraftServerInstance().worldServerForDimension(aDimension);
if (destinationWorld == null) {return false;}
boolean interDimensional = startWorld.provider.dimensionId != destinationWorld.provider.dimensionId;
if(!interDimensional)return false;
startWorld.updateEntityWithOptionalForce(entity, false);//added
if ((entity instanceof EntityPlayerMP) && interDimensional) {
EntityPlayerMP player = (EntityPlayerMP) entity;
player.closeScreen();//added
player.dimension = aDimension;
player.playerNetServerHandler.sendPacket(new S07PacketRespawn(player.dimension, player.worldObj.difficultySetting, destinationWorld.getWorldInfo().getTerrainType(), player.theItemInWorldManager.getGameType()));
((WorldServer) startWorld).getPlayerManager().removePlayer(player);
startWorld.playerEntities.remove(player);
startWorld.updateAllPlayersSleepingFlag();
int i = entity.chunkCoordX;
int j = entity.chunkCoordZ;
if ((entity.addedToChunk) && (startWorld.getChunkProvider().chunkExists(i, j))) {
startWorld.getChunkFromChunkCoords(i, j).removeEntity(entity);
startWorld.getChunkFromChunkCoords(i, j).isModified = true;
}
if (aEntity instanceof EntityLivingBase) {
((EntityLivingBase) aEntity).setPositionAndUpdate(aX, aY, aZ);
} else {
aEntity.setPosition(aX, aY, aZ);
}
tOriginalWorld.resetUpdateEntityTick();
tTargetWorld.resetUpdateEntityTick();
return true;
startWorld.loadedEntityList.remove(entity);
startWorld.onEntityRemoved(entity);
}
return false;
}
entity.setLocationAndAngles(aX, aY, aY, entity.rotationYaw, entity.rotationPitch);
((WorldServer) destinationWorld).theChunkProviderServer.loadChunk((int) aX >> 4, (int) aZ >> 4);
destinationWorld.theProfiler.startSection("placing");
if (interDimensional) {
if (!(entity instanceof EntityPlayer)) {
NBTTagCompound entityNBT = new NBTTagCompound();
entity.isDead = false;
entityNBT.setString("id", EntityList.getEntityString(entity));
entity.writeToNBT(entityNBT);
entity.isDead = true;
entity = EntityList.createEntityFromNBT(entityNBT, destinationWorld);
if (entity == null) {
return false;
}
entity.dimension = destinationWorld.provider.dimensionId;
}
destinationWorld.spawnEntityInWorld(entity);
entity.setWorld(destinationWorld);
}
entity.setLocationAndAngles(aX, aY, aY, entity.rotationYaw, entity.rotationPitch);
destinationWorld.updateEntityWithOptionalForce(entity, false);
entity.setLocationAndAngles(aX, aY, aY, entity.rotationYaw, entity.rotationPitch);
if ((entity instanceof EntityPlayerMP)) {
EntityPlayerMP player = (EntityPlayerMP) entity;
if (interDimensional) {
player.mcServer.getConfigurationManager().func_72375_a(player, (WorldServer) destinationWorld);
}
player.playerNetServerHandler.setPlayerLocation(aX, aY, aY, player.rotationYaw, player.rotationPitch);
}
destinationWorld.updateEntityWithOptionalForce(entity, false);
if (((entity instanceof EntityPlayerMP)) && interDimensional) {
EntityPlayerMP player = (EntityPlayerMP) entity;
player.theItemInWorldManager.setWorld((WorldServer) destinationWorld);
player.mcServer.getConfigurationManager().updateTimeAndWeatherForPlayer(player, (WorldServer) destinationWorld);
player.mcServer.getConfigurationManager().syncPlayerInventory(player);
for (PotionEffect potionEffect : (Iterable<PotionEffect>) player.getActivePotionEffects()) {
player.playerNetServerHandler.sendPacket(new S1DPacketEntityEffect(player.getEntityId(), potionEffect));
}
player.playerNetServerHandler.sendPacket(new S1FPacketSetExperience(player.experience, player.experienceTotal, player.experienceLevel));
FMLCommonHandler.instance().firePlayerChangedDimensionEvent(player, startWorld.provider.dimensionId, destinationWorld.provider.dimensionId);
}
entity.setLocationAndAngles(aX, aY, aY, entity.rotationYaw, entity.rotationPitch);
destinationWorld.theProfiler.endSection();
entity.fallDistance = 0;
return true;
}
public static int getScaleCoordinates(double aValue, int aScale) {
return (int)Math.floor(aValue / aScale);
}
@ -1531,12 +1577,12 @@ public class GT_Utility {
return getUndergroundOil(aWorld, aX, aZ, false);
}
public static FluidStack getUndergroundOil(World aWorld, int aX, int aZ, boolean needConsumeOil) {
public static FluidStack getUndergroundOil(World aWorld, int aX, int aZ, boolean needConsumeOil) {//TODO RETROGEN!, CHECK FLUIDS AVAILABLE, REWORK
if (GT_Mod.gregtechproxy.mUndergroundOil.CheckBlackList(aWorld.provider.dimensionId))
return null;
Random tRandom = new Random((aWorld.getSeed() + aWorld.provider.dimensionId * 2 + (getScaleCoordinates(aX,96)) + (7 * (getScaleCoordinates(aZ,96)))));
XSTR tRandom = new XSTR((aWorld.getSeed() + aWorld.provider.dimensionId * 2 + (getScaleCoordinates(aX,96)) + (7 * (getScaleCoordinates(aZ,96)))));
int tAmount = 0;
int tFluidId = 0;
int tDecreasePerOperationAmount = 5;
@ -1590,6 +1636,50 @@ public class GT_Utility {
return new FluidStack(tFluid, tAmount);
return null;
}
//private static FluidStack getUndergroundOilFromInfo(int type,int amnt){
// switch (type) {//0 is old system
// case 1:
// return new FluidStack(Materials.OilLight .mFluid,amnt);
// case 2:
// return new FluidStack(Materials.OilMedium.mFluid,amnt);
// case 3:
// return new FluidStack(Materials.OilHeavy .mFluid,amnt);
// case 4:
// return new FluidStack(Materials.Oil .mFluid,amnt);
// }
// return new FluidStack(Materials.NatruralGas.mGas,amnt);//5
//}
//
//private static FluidStack setUndergroundOil(World aWorld, int aX, int aZ,ChunkPosition tPos,int[] tInts) {
// XSTR tRandom = new XSTR(aWorld.getSeed() ^ ((long)(aX / 6) + (long)(7000 * (aZ / 6))));
// int type=tRandom.nextInt(5);//type slowly changes
// int amnt = (int)(Math.ceil(Math.pow(2D+(double)(tRandom.nextInt(48))+(new XSTR()).nextDouble(),8D)/200000D));
// //roughly uses 28 bits
// FluidStack tFluidStack;
// switch (type) {//0 is old system
// case 1:
// tFluidStack=new FluidStack(Materials.OilLight .mFluid,amnt);
// break;
// case 2:
// tFluidStack=new FluidStack(Materials.OilMedium.mFluid,amnt);
// break;
// case 3:
// tFluidStack=new FluidStack(Materials.OilHeavy .mFluid,amnt);
// break;
// case 4:
// tFluidStack=new FluidStack(Materials.Oil .mFluid,amnt);
// break;
// default://case 0; -> 5
// type=5;//important, 0 is invalid !
// tFluidStack=new FluidStack(Materials.NatruralGas.mGas,amnt);//5
// }
//
// tInts[0]=(type<<28)+amnt;//here since the switch changes type
// //tInts[2]|=0x01;
// GT_Proxy.chunkData.put(tPos, tInts);
// return tFluidStack;
//}
public static int getCoordinateScan(ArrayList<String> aList, EntityPlayer aPlayer, World aWorld, int aScanLevel, int aX, int aY, int aZ, int aSide, float aClickX, float aClickY, float aClickZ) {
if (aList == null) return 0;
@ -1601,15 +1691,15 @@ public class GT_Utility {
Block tBlock = aWorld.getBlock(aX, aY, aZ);
tList.add("----- X: " + aX + " Y: " + aY + " Z: " + aZ + " -----");
tList.add("----- X: " +EnumChatFormatting.AQUA+ aX +EnumChatFormatting.RESET + " Y: " +EnumChatFormatting.AQUA+ aY +EnumChatFormatting.RESET+ " Z: " +EnumChatFormatting.AQUA+ aZ +EnumChatFormatting.RESET+ " -----");
try {
if (tTileEntity instanceof IInventory)
tList.add("Name: " + ((IInventory) tTileEntity).getInventoryName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ));
if (tTileEntity != null && tTileEntity instanceof IInventory)
tList.add("Name: " + EnumChatFormatting.BLUE+ ((IInventory) tTileEntity).getInventoryName()+EnumChatFormatting.RESET + " MetaData: " +EnumChatFormatting.AQUA+ aWorld.getBlockMetadata(aX, aY, aZ)+EnumChatFormatting.RESET);
else
tList.add("Name: " + tBlock.getUnlocalizedName() + " MetaData: " + aWorld.getBlockMetadata(aX, aY, aZ));
tList.add("Name: " +EnumChatFormatting.BLUE+ tBlock.getUnlocalizedName() +EnumChatFormatting.RESET+ " MetaData: " +EnumChatFormatting.AQUA+ aWorld.getBlockMetadata(aX, aY, aZ)+EnumChatFormatting.RESET);
tList.add("Hardness: " + tBlock.getBlockHardness(aWorld, aX, aY, aZ) + " Blast Resistance: " + tBlock.getExplosionResistance(aPlayer, aWorld, aX, aY, aZ, aPlayer.posX, aPlayer.posY, aPlayer.posZ));
if (tBlock.isBeaconBase(aWorld, aX, aY, aZ, aX, aY + 1, aZ)) tList.add("Is valid Beacon Pyramid Material");
tList.add("Hardness: " +EnumChatFormatting.YELLOW+ tBlock.getBlockHardness(aWorld, aX, aY, aZ) +EnumChatFormatting.RESET+ " Blast Resistance: " +EnumChatFormatting.YELLOW+ tBlock.getExplosionResistance(aPlayer, aWorld, aX, aY, aZ, aPlayer.posX, aPlayer.posY, aPlayer.posZ)+EnumChatFormatting.RESET);
if (tBlock.isBeaconBase(aWorld, aX, aY, aZ, aX, aY + 1, aZ)) tList.add(EnumChatFormatting.GOLD+"Is valid Beacon Pyramid Material"+EnumChatFormatting.RESET );
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
}
@ -1619,7 +1709,7 @@ public class GT_Utility {
rEUAmount += 500;
FluidTankInfo[] tTanks = ((IFluidHandler) tTileEntity).getTankInfo(ForgeDirection.getOrientation(aSide));
if (tTanks != null) for (byte i = 0; i < tTanks.length; i++) {
tList.add("Tank " + i + ": " + GT_Utility.formatNumbers((tTanks[i].fluid == null ? 0 : tTanks[i].fluid.amount)) + " / " + GT_Utility.formatNumbers(tTanks[i].capacity) + " " + getFluidName(tTanks[i].fluid, true));
tList.add("Tank " + i + ": " +EnumChatFormatting.GREEN+ GT_Utility.formatNumbers((tTanks[i].fluid == null ? 0 : tTanks[i].fluid.amount)) +EnumChatFormatting.RESET+ " L / " +EnumChatFormatting.YELLOW+ GT_Utility.formatNumbers(tTanks[i].capacity) +EnumChatFormatting.RESET+ " L of " +EnumChatFormatting.GOLD+ getFluidName(tTanks[i].fluid, true)+EnumChatFormatting.RESET);
}
}
} catch (Throwable e) {
@ -1636,8 +1726,8 @@ public class GT_Utility {
try {
if (tTileEntity instanceof ic2.api.reactor.IReactor) {
rEUAmount += 500;
tList.add("Heat: " + ((ic2.api.reactor.IReactor) tTileEntity).getHeat() + "/" + ((ic2.api.reactor.IReactor) tTileEntity).getMaxHeat()
+ " HEM: " + ((ic2.api.reactor.IReactor) tTileEntity).getHeatEffectModifier() + " Base EU Output: "/* + ((ic2.api.reactor.IReactor)tTileEntity).getOutput()*/);
tList.add("Heat: " +EnumChatFormatting.GREEN+ ((ic2.api.reactor.IReactor) tTileEntity).getHeat() +EnumChatFormatting.RESET+ " / " +EnumChatFormatting.YELLOW+ ((ic2.api.reactor.IReactor) tTileEntity).getMaxHeat()+EnumChatFormatting.RESET);
tList.add("HEM: " +EnumChatFormatting.YELLOW+((ic2.api.reactor.IReactor) tTileEntity).getHeatEffectModifier() +EnumChatFormatting.RESET/*+ " Base EU Output: " + ((ic2.api.reactor.IReactor)tTileEntity).getOutput()*/);//TODO WHAT?
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1645,8 +1735,8 @@ public class GT_Utility {
try {
if (tTileEntity instanceof ic2.api.tile.IWrenchable) {
rEUAmount += 100;
tList.add("Facing: " + ((ic2.api.tile.IWrenchable) tTileEntity).getFacing() + " / Chance: " + (((ic2.api.tile.IWrenchable) tTileEntity).getWrenchDropRate() * 100) + "%");
tList.add(((ic2.api.tile.IWrenchable) tTileEntity).wrenchCanRemove(aPlayer) ? "You can remove this with a Wrench" : "You can NOT remove this with a Wrench");
tList.add("Facing: " +EnumChatFormatting.GREEN+ ((ic2.api.tile.IWrenchable) tTileEntity).getFacing() +EnumChatFormatting.RESET+ " / Chance: " +EnumChatFormatting.YELLOW+ (((ic2.api.tile.IWrenchable) tTileEntity).getWrenchDropRate() * 100) +EnumChatFormatting.RESET+ "%");
tList.add(((ic2.api.tile.IWrenchable) tTileEntity).wrenchCanRemove(aPlayer) ? EnumChatFormatting.GREEN+"You can remove this with a Wrench"+EnumChatFormatting.RESET : EnumChatFormatting.RED+"You can NOT remove this with a Wrench"+EnumChatFormatting.RESET);
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1680,7 +1770,7 @@ public class GT_Utility {
try {
if (tTileEntity instanceof ic2.api.energy.tile.IEnergyConductor) {
rEUAmount += 200;
tList.add("Conduction Loss: " + ((ic2.api.energy.tile.IEnergyConductor) tTileEntity).getConductionLoss());
tList.add("Conduction Loss: " +EnumChatFormatting.YELLOW+ ((ic2.api.energy.tile.IEnergyConductor) tTileEntity).getConductionLoss()+EnumChatFormatting.RESET);
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1688,7 +1778,7 @@ public class GT_Utility {
try {
if (tTileEntity instanceof ic2.api.tile.IEnergyStorage) {
rEUAmount += 200;
tList.add("Contained Energy: " + ((ic2.api.tile.IEnergyStorage) tTileEntity).getStored() + " of " + ((ic2.api.tile.IEnergyStorage) tTileEntity).getCapacity());
tList.add("Contained Energy: " +EnumChatFormatting.YELLOW+ ((ic2.api.tile.IEnergyStorage) tTileEntity).getStored() +EnumChatFormatting.RESET+ " EU / " +EnumChatFormatting.YELLOW+ ((ic2.api.tile.IEnergyStorage) tTileEntity).getCapacity()+EnumChatFormatting.RESET+" EU");
//aList.add(((ic2.api.tile.IEnergyStorage)tTileEntity).isTeleporterCompatible(ic2.api.Direction.YP)?"Teleporter Compatible":"Not Teleporter Compatible");
}
} catch (Throwable e) {
@ -1697,7 +1787,7 @@ public class GT_Utility {
try {
if (tTileEntity instanceof IUpgradableMachine) {
rEUAmount += 500;
if (((IUpgradableMachine) tTileEntity).hasMufflerUpgrade()) tList.add("Has Muffler Upgrade");
if (((IUpgradableMachine) tTileEntity).hasMufflerUpgrade()) tList.add(EnumChatFormatting.GREEN+"Has Muffler Upgrade"+EnumChatFormatting.RESET);
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1707,7 +1797,7 @@ public class GT_Utility {
rEUAmount += 400;
int tValue = 0;
if (0 < (tValue = ((IMachineProgress) tTileEntity).getMaxProgress()))
tList.add("Progress: " + GT_Utility.formatNumbers(tValue) + " / " + GT_Utility.formatNumbers(((IMachineProgress) tTileEntity).getProgress()));
tList.add("Progress/Load: " +EnumChatFormatting.GREEN+GT_Utility.formatNumbers(((IMachineProgress) tTileEntity).getProgress()) +EnumChatFormatting.RESET+ " / " +EnumChatFormatting.YELLOW+GT_Utility.formatNumbers(tValue) +EnumChatFormatting.RESET);
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1723,16 +1813,16 @@ public class GT_Utility {
}
try {
if (tTileEntity instanceof IBasicEnergyContainer && ((IBasicEnergyContainer) tTileEntity).getEUCapacity() > 0) {
tList.add("Max IN: " + ((IBasicEnergyContainer) tTileEntity).getInputVoltage() + " EU");
tList.add("Max OUT: " + ((IBasicEnergyContainer) tTileEntity).getOutputVoltage() + " EU at " + ((IBasicEnergyContainer) tTileEntity).getOutputAmperage() + " Amperes");
tList.add("Energy: " + GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getStoredEU()) + " / " + GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getEUCapacity()) + "EU");
tList.add("Max IN: " +EnumChatFormatting.RED+ ((IBasicEnergyContainer) tTileEntity).getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(((IBasicEnergyContainer) tTileEntity).getInputVoltage())] + ") " +EnumChatFormatting.RESET+ " EU at "+EnumChatFormatting.RED+((IBasicEnergyContainer)tTileEntity).getInputAmperage()+EnumChatFormatting.RESET+" A");
tList.add("Max OUT: " +EnumChatFormatting.RED+ ((IBasicEnergyContainer) tTileEntity).getOutputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(((IBasicEnergyContainer) tTileEntity).getOutputVoltage())] + ") " +EnumChatFormatting.RESET+ " EU at " +EnumChatFormatting.RED+ ((IBasicEnergyContainer) tTileEntity).getOutputAmperage() +EnumChatFormatting.RESET+ " A");
tList.add("Energy: " +EnumChatFormatting.GREEN+ GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getStoredEU()) +EnumChatFormatting.RESET+ " EU / " +EnumChatFormatting.YELLOW+ GT_Utility.formatNumbers(((IBasicEnergyContainer) tTileEntity).getEUCapacity()) +EnumChatFormatting.RESET+ " EU");
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
}
try {
if (tTileEntity instanceof IGregTechTileEntity) {
tList.add("Owned by: " + ((IGregTechTileEntity) tTileEntity).getOwnerName());
tList.add("Owned by: " +EnumChatFormatting.BLUE+ ((IGregTechTileEntity) tTileEntity).getOwnerName()+EnumChatFormatting.RESET);
}
} catch (Throwable e) {
if (D1) e.printStackTrace(GT_Log.err);
@ -1779,21 +1869,23 @@ public class GT_Utility {
if (D1) e.printStackTrace(GT_Log.err);
}
}
if (aPlayer.capabilities.isCreativeMode&&GT_Values.D1) {
if (aPlayer.capabilities.isCreativeMode && GT_Values.D1) {
FluidStack tFluid = getUndergroundOil(aWorld, aX, aZ);
if (tFluid!=null)
tList.add("Oil in Chunk: " + tFluid.amount + " " + tFluid.getLocalizedName());
tList.add(EnumChatFormatting.GOLD+tFluid.getLocalizedName()+EnumChatFormatting.RESET+": " +EnumChatFormatting.YELLOW+ tFluid.amount +EnumChatFormatting.RESET+" L");
}
// if(aPlayer.capabilities.isCreativeMode){
ChunkPosition tPos = new ChunkPosition(getScaleCoordinates(aX,16), aWorld.provider.dimensionId, getScaleCoordinates(aZ,16));
if(GT_Proxy.chunkData.containsKey(tPos)){
int[] tPollution = GT_Proxy.chunkData.get(tPos);
if(tPollution.length>1){
tList.add("Pollution in Chunk: "+tPollution[1]);
tList.add("Pollution in Chunk: "+EnumChatFormatting.RED+tPollution[1]+EnumChatFormatting.RESET+" gibbl");
}else{
tList.add("No Pollution in Chunk");
tList.add(EnumChatFormatting.GREEN+"No Pollution in Chunk! HAYO!"+EnumChatFormatting.RESET);
}
}
}else{
tList.add(EnumChatFormatting.GREEN+"No Pollution in Chunk! HAYO!"+EnumChatFormatting.RESET);
}
// }
try {
@ -2029,16 +2121,16 @@ public class GT_Utility {
public static void setProspectionData(ItemStack aStack, int aX, int aY, int aZ, int aDim, FluidStack aFluid, String[] aOres) {
NBTTagCompound tNBT = getNBT(aStack);
String tData = aX + "," + aY + "," + aZ + "," + aDim + ",";
if (aFluid!=null)
tData += (aFluid.amount / 5000) + "," + aFluid.getLocalizedName() + ",";
String tData = aX + "," + aY + "," + aZ + "," + aDim + "," + aFluid.amount + "," + aFluid.getLocalizedName() + ",";//fixed dividing 1L=1mB
for (String tString : aOres) {
tData += tString + ",";
}
tNBT.setString("prospection", tData);
setNBT(aStack, tNBT);
}
public static void setAdvancedProspectionData(
byte aTier,
ItemStack aStack,
@ -2052,7 +2144,7 @@ public class GT_Utility {
setBookTitle(aStack, "Raw Prospection Data");
NBTTagCompound tNBT = GT_Utility.ItemNBT.getNBT(aStack);
tNBT.setByte("prospection_tier", aTier);
tNBT.setString("prospection_pos", "X: " + aX + " Y: " + aY + " Z: " + aZ + " Dim: " + aDim);

View file

@ -9,14 +9,18 @@ import codechicken.lib.vec.Rotation;
import cpw.mods.fml.client.registry.RenderingRegistry;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.ConfigCategories;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.interfaces.tileentity.ICoverable;
import gregtech.api.interfaces.tileentity.ITurnable;
import gregtech.api.metatileentity.BaseMetaPipeEntity;
import gregtech.api.objects.GT_FluidStack;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_PlayedSound;
import gregtech.api.util.GT_Recipe;
import gregtech.api.util.GT_Utility;
import gregtech.common.entities.GT_Entity_Arrow;
import gregtech.common.entities.GT_Entity_Arrow_Potion;
@ -27,9 +31,12 @@ import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.StatFileWriter;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.opengl.GL11;
import java.net.URL;
@ -69,12 +76,17 @@ public class GT_Client extends GT_Proxy
private final List mMoltenNegB;
private final List mMoltenNegA = Arrays.asList(new Object[0]);
private long mAnimationTick;
/**This is the place to def the value used below**/
private long afterSomeTime;
private boolean mAnimationDirection;
private boolean isFirstClientPlayerTick;
private String mMessage;
public GT_Client() {
mCapeRenderer = new GT_CapeRenderer(mCapeList);
mCapeRenderer = new GT_CapeRenderer(mCapeList);
mAnimationTick = 0L;
mAnimationDirection = false;
isFirstClientPlayerTick = true;
mMessage = "";
mPosR = Arrays.asList(new Materials[]{
/**Materials.ChargedCertusQuartz, **/Materials.Enderium, Materials.Vinteum, Materials.Uranium235, Materials.InfusedGold, Materials.Plutonium241, Materials.NaquadahEnriched, Materials.Naquadria, Materials.InfusedOrder, Materials.Force,
Materials.Pyrotheum, Materials.Sunnarium, Materials.Glowstone, Materials.Thaumium, Materials.InfusedVis, Materials.InfusedAir, Materials.InfusedFire, Materials.FierySteel, Materials.Firestone
@ -182,6 +194,7 @@ public class GT_Client extends GT_Proxy
String tName = arr$[i$];
mCapeList.add(tName.toLowerCase());
}
(new Thread(this)).start();
}
@ -206,7 +219,9 @@ public class GT_Client extends GT_Proxy
GregTech_API.METATILEENTITIES[i].getStackForm(1L).getTooltip(null, true);
i++;
} while (true);
} catch (Throwable e) {e.printStackTrace(GT_Log.err);}
} catch (Throwable e) {
e.printStackTrace(GT_Log.err);
}
// super.onPostLoad();
@ -222,7 +237,7 @@ public class GT_Client extends GT_Proxy
public void run() {
try {
GT_Log.out.println("Skip: GT_Mod: Downloading Cape List.");
GT_Log.out.println("GT_Mod: Downloading Cape List.");
@SuppressWarnings("resource")
Scanner tScanner = new Scanner(new URL("http://gregtech.overminddl1.com/com/gregoriust/gregtech/supporterlist.txt").openStream());
while (tScanner.hasNextLine()) {
@ -233,15 +248,35 @@ public class GT_Client extends GT_Proxy
}
} catch (Throwable e) {
}
/**try {
GT_Log.out.println("Skip: GT_Mod: Downloading News.");
try {
GT_Log.out.println("GT New Horizons: Downloading Cape List.");
@SuppressWarnings("resource")
Scanner tScanner = new Scanner(new URL("https://raw.githubusercontent.com/GTNewHorizons/CustomGTCapeHook-Cape-List/master/capes.txt").openStream());
while (tScanner.hasNextLine()) {
String tName = tScanner.nextLine();
if (tName.contains(":")) {
int splitLocation = tName.indexOf(":");
String username = tName.substring(0, splitLocation);
if (!this.mCapeList.contains(username.toLowerCase()) && !this.mCapeList.contains(tName.toLowerCase())) {
this.mCapeList.add(tName.toLowerCase());
}
} else {
if (!this.mCapeList.contains(tName.toLowerCase())) {
this.mCapeList.add(tName.toLowerCase());
}
}
}
} catch (Throwable e) {
}
try {
GT_Log.out.println("GT_Mod: Downloading News.");
@SuppressWarnings("resource")
Scanner tScanner = new Scanner(new URL("http://files.minecraftforge.net/maven/com/gregoriust/gregtech/message.txt").openStream());
while (tScanner.hasNextLine()) {
this.mMessage = (this.mMessage + tScanner.nextLine() + " ");
}
} catch (Throwable e) {
}**/
}
}
@SubscribeEvent
@ -252,6 +287,16 @@ public class GT_Client extends GT_Proxy
@SubscribeEvent
public void onPlayerTickEventClient(TickEvent.PlayerTickEvent aEvent) {
if ((aEvent.side.isClient()) && (aEvent.phase == TickEvent.Phase.END) && (!aEvent.player.isDead)) {
afterSomeTime++;
if(afterSomeTime>=100L){
afterSomeTime=0;
StatFileWriter sfw= Minecraft.getMinecraft().thePlayer.getStatFileWriter();
try {
for(GT_Recipe recipe:GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.mRecipeList){
recipe.mHidden=!sfw.hasAchievementUnlocked(GT_Mod.achievements.getAchievement(recipe.getOutput(0).getUnlocalizedName()));
}
}catch (Exception e){}
}
ArrayList<GT_PlayedSound> tList = new ArrayList();
for (Map.Entry<GT_PlayedSound, Integer> tEntry : GT_Utility.sPlayedSoundMap.entrySet()) {
if (tEntry.getValue().intValue() < 0) {//Integer -> Integer -> int? >_<, fix
@ -327,6 +372,12 @@ public class GT_Client extends GT_Proxy
@SubscribeEvent
public void onClientTickEvent(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent aEvent) {
if (aEvent.phase == cpw.mods.fml.common.gameevent.TickEvent.Phase.END) {
if(changeDetected>0)changeDetected--;
int newHideValue=shouldHeldItemHideThings();
if(newHideValue!=hideValue){
hideValue=newHideValue;
changeDetected=5;
}
mAnimationTick++;
if (mAnimationTick % 50L == 0L)
{mAnimationDirection = !mAnimationDirection;}
@ -493,4 +544,27 @@ public class GT_Client extends GT_Proxy
else
aWorld.playSound(aX, aY, aZ, tString, 3F, tString.startsWith("note.") ? (float) Math.pow(2D, (double) (aStack.stackSize - 13) / 12D) : 1.0F, false);
}
}
public static int hideValue=0;
public static int changeDetected=0;
private static int shouldHeldItemHideThings() {
try {
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
if (player == null) return 0;
ItemStack held = player.getCurrentEquippedItem();
if (held == null) return 0;
int[] ids = OreDictionary.getOreIDs(held);
int hide = 0;
for (int i : ids) {
if (OreDictionary.getOreName(i).equals("craftingToolSolderingIron")) {
hide |= 0x1;
break;
}
}
return hide;
}catch(Exception e){
return 0;
}
}
}

View file

@ -1,132 +1,132 @@
package gregtech.common;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.profiler.Profiler;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.WorldSettings;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.chunk.storage.IChunkLoader;
import net.minecraft.world.storage.IPlayerFileData;
import net.minecraft.world.storage.ISaveHandler;
import net.minecraft.world.storage.WorldInfo;
import java.io.File;
public class GT_DummyWorld
extends World {
public GT_IteratorRandom mRandom = new GT_IteratorRandom();
public ItemStack mLastSetBlock = null;
public GT_DummyWorld(ISaveHandler par1iSaveHandler, String par2Str, WorldProvider par3WorldProvider, WorldSettings par4WorldSettings, Profiler par5Profiler) {
super(par1iSaveHandler, par2Str, par4WorldSettings, par3WorldProvider, par5Profiler);
this.rand = this.mRandom;
}
public GT_DummyWorld() {
this(new ISaveHandler() {
public void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2) {
}
public void saveWorldInfo(WorldInfo var1) {
}
public WorldInfo loadWorldInfo() {
return null;
}
public IPlayerFileData getSaveHandler() {
return null;
}
public File getMapFileFromName(String var1) {
return null;
}
public IChunkLoader getChunkLoader(WorldProvider var1) {
return null;
}
public void flush() {
}
public void checkSessionLock() {
}
public String getWorldDirectoryName() {
return null;
}
public File getWorldDirectory() {
return null;
}
}, "DUMMY_DIMENSION", null,
// new WorldProvider(),
//
//
//
// new WorldSettings(new WorldInfo(new NBTTagCompound()))
// {
// public String getDimensionName()
// {
// return "DUMMY_DIMENSION";
// }
// }
new WorldSettings(new WorldInfo(new NBTTagCompound())), new Profiler());
}
protected IChunkProvider createChunkProvider() {
return null;
}
public Entity getEntityByID(int aEntityID) {
return null;
}
public boolean setBlock(int aX, int aY, int aZ, Block aBlock, int aMeta, int aFlags) {
this.mLastSetBlock = new ItemStack(aBlock, 1, aMeta);
return true;
}
public float getSunBrightnessFactor(float p_72967_1_) {
return 1.0F;
}
public BiomeGenBase getBiomeGenForCoords(int aX, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return BiomeGenBase.plains;
}
return BiomeGenBase.ocean;
}
public int getFullBlockLightValue(int aX, int aY, int aZ) {
return 10;
}
public Block getBlock(int aX, int aY, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return aY == 64 ? Blocks.grass : Blocks.air;
}
return Blocks.air;
}
public int getBlockMetadata(int aX, int aY, int aZ) {
return 0;
}
public boolean canBlockSeeTheSky(int aX, int aY, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return aY > 64;
}
return true;
}
protected int func_152379_p() {
return 0;
}
}
package gregtech.common;
import net.minecraft.block.Block;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.profiler.Profiler;
import net.minecraft.world.World;
import net.minecraft.world.WorldProvider;
import net.minecraft.world.WorldSettings;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.chunk.storage.IChunkLoader;
import net.minecraft.world.storage.IPlayerFileData;
import net.minecraft.world.storage.ISaveHandler;
import net.minecraft.world.storage.WorldInfo;
import java.io.File;
public class GT_DummyWorld
extends World {
public GT_IteratorRandom mRandom = new GT_IteratorRandom();
public ItemStack mLastSetBlock = null;
public GT_DummyWorld(ISaveHandler par1iSaveHandler, String par2Str, WorldProvider par3WorldProvider, WorldSettings par4WorldSettings, Profiler par5Profiler) {
super(par1iSaveHandler, par2Str, par4WorldSettings, par3WorldProvider, par5Profiler);
this.rand = this.mRandom;
}
public GT_DummyWorld() {
this(new ISaveHandler() {
public void saveWorldInfoWithPlayer(WorldInfo var1, NBTTagCompound var2) {
}
public void saveWorldInfo(WorldInfo var1) {
}
public WorldInfo loadWorldInfo() {
return null;
}
public IPlayerFileData getSaveHandler() {
return null;
}
public File getMapFileFromName(String var1) {
return null;
}
public IChunkLoader getChunkLoader(WorldProvider var1) {
return null;
}
public void flush() {
}
public void checkSessionLock() {
}
public String getWorldDirectoryName() {
return null;
}
public File getWorldDirectory() {
return null;
}
}, "DUMMY_DIMENSION", null,
// new WorldProvider(),
//
//
//
// new WorldSettings(new WorldInfo(new NBTTagCompound()))
// {
// public String getDimensionName()
// {
// return "DUMMY_DIMENSION";
// }
// }
new WorldSettings(new WorldInfo(new NBTTagCompound())), new Profiler());
}
protected IChunkProvider createChunkProvider() {
return null;
}
public Entity getEntityByID(int aEntityID) {
return null;
}
public boolean setBlock(int aX, int aY, int aZ, Block aBlock, int aMeta, int aFlags) {
this.mLastSetBlock = new ItemStack(aBlock, 1, aMeta);
return true;
}
public float getSunBrightnessFactor(float p_72967_1_) {
return 1.0F;
}
public BiomeGenBase getBiomeGenForCoords(int aX, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return BiomeGenBase.plains;
}
return BiomeGenBase.ocean;
}
public int getFullBlockLightValue(int aX, int aY, int aZ) {
return 10;
}
public Block getBlock(int aX, int aY, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return aY == 64 ? Blocks.grass : Blocks.air;
}
return Blocks.air;
}
public int getBlockMetadata(int aX, int aY, int aZ) {
return 0;
}
public boolean canBlockSeeTheSky(int aX, int aY, int aZ) {
if ((aX >= 16) && (aZ >= 16) && (aX < 32) && (aZ < 32)) {
return aY > 64;
}
return true;
}
protected int func_152379_p() {
return 0;
}
}

View file

@ -1,16 +1,16 @@
package gregtech.common;
import java.util.Random;
public class GT_IteratorRandom
extends Random {
private static final long serialVersionUID = 1L;
public int mIterationStep = 2147483647;
public int nextInt(int aParameter) {
if ((this.mIterationStep == 0) || (this.mIterationStep > aParameter)) {
this.mIterationStep = aParameter;
}
return --this.mIterationStep;
}
}
package gregtech.common;
import java.util.Random;
public class GT_IteratorRandom
extends Random {
private static final long serialVersionUID = 1L;
public int mIterationStep = 2147483647;
public int nextInt(int aParameter) {
if ((this.mIterationStep == 0) || (this.mIterationStep > aParameter)) {
this.mIterationStep = aParameter;
}
return --this.mIterationStep;
}
}

View file

@ -1,81 +1,81 @@
package gregtech.common;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
import java.util.Random;
public class GT_MinableOreGenerator
extends WorldGenerator {
private Block minableBlockId;
private Block mBlock;
private int minableBlockMeta = 0;
private int numberOfBlocks;
private boolean allowVoid = false;
public GT_MinableOreGenerator(Block par1, int par2) {
this.minableBlockId = par1;
this.numberOfBlocks = par2;
}
public GT_MinableOreGenerator(Block id, int meta, int number, boolean aAllowVoid, Block aBlock) {
this(id, number);
this.minableBlockMeta = meta;
this.allowVoid = aAllowVoid;
this.mBlock = aBlock;
}
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) {
float math_pi = 3.141593F;//FB: CNT - CNT_ROUGH_CONSTANT_VALUE
float var6 = par2Random.nextFloat() * math_pi;
float var1s = this.numberOfBlocks / 8.0F;
int var4s = par4 - 2;int var5s = par3 + 8;int var6s = par5 + 8;
float var7s = this.numberOfBlocks / 16.0F;
float var8s = math_pi / this.numberOfBlocks;
float mh_s_0 = MathHelper.sin(var6) * var1s;float mh_c_0 = MathHelper.cos(var6) * var1s;
float var7 = var5s + mh_s_0;
float var11 = var6s + mh_c_0;
int var15r = par2Random.nextInt(3);int var17r = par2Random.nextInt(3);
int mh_n_4=var17r - var15r;
int var15 = var4s + var15r;
float mh_n_0 = -2*mh_s_0;float mh_n_1 = -2*mh_c_0;
for (int var19 = 0; var19 <= this.numberOfBlocks; var19++) {
float mh_n_2 = var19 / this.numberOfBlocks;
float var20 = var7 + mh_n_0 * mh_n_2;
float var22 = var15 + mh_n_4 * mh_n_2;
float var24 = var11 + mh_n_1 * mh_n_2;
float var26 = par2Random.nextFloat() * var7s;
float var1c = var19 * var8s;
float var28 = ((MathHelper.sin(var1c) + 1.0F) * var26 + 1.0F) / 2.0F;
int var32 = MathHelper.floor_float(var20 - var28);
int var33 = MathHelper.floor_float(var22 - var28);
int var34 = MathHelper.floor_float(var24 - var28);
int var35 = MathHelper.floor_float(var20 + var28);
int var36 = MathHelper.floor_float(var22 + var28);
int var37 = MathHelper.floor_float(var24 + var28);
for (int var38 = var32; var38 <= var35; var38++) {
float var39 = (var38 + 0.5F - var20) / (var28);
float var5c = var39 * var39;
if (var5c < 1.0F) {
for (int var41 = var33; var41 <= var36; var41++) {
float var42 = (var41 + 0.5F - var22) / (var28);
float var7c = var5c + var42 * var42;
if (var7c < 1.0F) {
for (int var44 = var34; var44 <= var37; var44++) {
float var45 = (var44 + 0.5F - var24) / (var28);
Block block = par1World.getBlock(var38, var41, var44);
if ((var7c + var45 * var45 < 1.0F) && (((this.allowVoid) && (par1World.getBlock(var38, var41, var44) == Blocks.air)) || ((block != null) && (block.isReplaceableOreGen(par1World, var38, var41, var44, this.mBlock))))) {
par1World.setBlock(var38, var41, var44, this.minableBlockId, this.minableBlockMeta, 0);
}
}
}
}
}
}
}
return true;
}
}
package gregtech.common;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
import java.util.Random;
public class GT_MinableOreGenerator
extends WorldGenerator {
private Block minableBlockId;
private Block mBlock;
private int minableBlockMeta = 0;
private int numberOfBlocks;
private boolean allowVoid = false;
public GT_MinableOreGenerator(Block par1, int par2) {
this.minableBlockId = par1;
this.numberOfBlocks = par2;
}
public GT_MinableOreGenerator(Block id, int meta, int number, boolean aAllowVoid, Block aBlock) {
this(id, number);
this.minableBlockMeta = meta;
this.allowVoid = aAllowVoid;
this.mBlock = aBlock;
}
public boolean generate(World par1World, Random par2Random, int par3, int par4, int par5) {
float math_pi = 3.141593F;//FB: CNT - CNT_ROUGH_CONSTANT_VALUE
float var6 = par2Random.nextFloat() * math_pi;
float var1s = this.numberOfBlocks / 8.0F;
int var4s = par4 - 2;int var5s = par3 + 8;int var6s = par5 + 8;
float var7s = this.numberOfBlocks / 16.0F;
float var8s = math_pi / this.numberOfBlocks;
float mh_s_0 = MathHelper.sin(var6) * var1s;float mh_c_0 = MathHelper.cos(var6) * var1s;
float var7 = var5s + mh_s_0;
float var11 = var6s + mh_c_0;
int var15r = par2Random.nextInt(3);int var17r = par2Random.nextInt(3);
int mh_n_4=var17r - var15r;
int var15 = var4s + var15r;
float mh_n_0 = -2*mh_s_0;float mh_n_1 = -2*mh_c_0;
for (int var19 = 0; var19 <= this.numberOfBlocks; var19++) {
float mh_n_2 = var19 / this.numberOfBlocks;
float var20 = var7 + mh_n_0 * mh_n_2;
float var22 = var15 + mh_n_4 * mh_n_2;
float var24 = var11 + mh_n_1 * mh_n_2;
float var26 = par2Random.nextFloat() * var7s;
float var1c = var19 * var8s;
float var28 = ((MathHelper.sin(var1c) + 1.0F) * var26 + 1.0F) / 2.0F;
int var32 = MathHelper.floor_float(var20 - var28);
int var33 = MathHelper.floor_float(var22 - var28);
int var34 = MathHelper.floor_float(var24 - var28);
int var35 = MathHelper.floor_float(var20 + var28);
int var36 = MathHelper.floor_float(var22 + var28);
int var37 = MathHelper.floor_float(var24 + var28);
for (int var38 = var32; var38 <= var35; var38++) {
float var39 = (var38 + 0.5F - var20) / (var28);
float var5c = var39 * var39;
if (var5c < 1.0F) {
for (int var41 = var33; var41 <= var36; var41++) {
float var42 = (var41 + 0.5F - var22) / (var28);
float var7c = var5c + var42 * var42;
if (var7c < 1.0F) {
for (int var44 = var34; var44 <= var37; var44++) {
float var45 = (var44 + 0.5F - var24) / (var28);
Block block = par1World.getBlock(var38, var41, var44);
if ((var7c + var45 * var45 < 1.0F) && (((this.allowVoid) && (par1World.getBlock(var38, var41, var44) == Blocks.air)) || ((block != null) && (block.isReplaceableOreGen(par1World, var38, var41, var44, this.mBlock))))) {
par1World.setBlock(var38, var41, var44, this.minableBlockId, this.minableBlockMeta, 0);
}
}
}
}
}
}
}
return true;
}
}

View file

@ -1,90 +1,90 @@
package gregtech.common;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import cpw.mods.fml.common.network.FMLEmbeddedChannel;
import cpw.mods.fml.common.network.FMLOutboundHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import cpw.mods.fml.relauncher.Side;
import gregtech.api.enums.GT_Values;
import gregtech.api.net.*;
import gregtech.common.blocks.GT_Packet_Ores;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.MessageToMessageCodec;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import java.util.EnumMap;
import java.util.List;
@ChannelHandler.Sharable
public class GT_Network
extends MessageToMessageCodec<FMLProxyPacket, GT_Packet>
implements IGT_NetworkHandler {
private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
private final GT_Packet[] mSubChannels;
public GT_Network() {
this.mChannel = NetworkRegistry.INSTANCE.newChannel("GregTech", new ChannelHandler[]{this, new HandlerShared()});
this.mSubChannels = new GT_Packet[]{new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores()};
}
protected void encode(ChannelHandlerContext aContext, GT_Packet aPacket, List<Object> aOutput)
throws Exception {
aOutput.add(new FMLProxyPacket(Unpooled.buffer().writeByte(aPacket.getPacketID()).writeBytes(aPacket.encode()).copy(), (String) aContext.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
}
protected void decode(ChannelHandlerContext aContext, FMLProxyPacket aPacket, List<Object> aOutput)
throws Exception {
ByteArrayDataInput aData = ByteStreams.newDataInput(aPacket.payload().array());
aOutput.add(this.mSubChannels[aData.readByte()].decode(aData));
}
public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer) {
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
}
public void sendToAllAround(GT_Packet aPacket, NetworkRegistry.TargetPoint aPosition) {
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPosition);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
}
public void sendToServer(GT_Packet aPacket) {
((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER);
((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket);
}
public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ) {
if (!aWorld.isRemote) {
for (Object tObject : aWorld.playerEntities) {
if (!(tObject instanceof EntityPlayerMP)) {
break;
}
EntityPlayerMP tPlayer = (EntityPlayerMP) tObject;
Chunk tChunk = aWorld.getChunkFromBlockCoords(aX, aZ);
if (tPlayer.getServerForPlayer().getPlayerManager().isPlayerWatchingChunk(tPlayer, tChunk.xPosition, tChunk.zPosition)) {
sendToPlayer(aPacket, tPlayer);
}
}
}
}
@ChannelHandler.Sharable
static final class HandlerShared
extends SimpleChannelInboundHandler<GT_Packet> {
protected void channelRead0(ChannelHandlerContext ctx, GT_Packet aPacket)
throws Exception {
EntityPlayer aPlayer = GT_Values.GT.getThePlayer();
aPacket.process(aPlayer == null ? null : GT_Values.GT.getThePlayer().worldObj);
}
}
}
package gregtech.common;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteStreams;
import cpw.mods.fml.common.network.FMLEmbeddedChannel;
import cpw.mods.fml.common.network.FMLOutboundHandler;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.internal.FMLProxyPacket;
import cpw.mods.fml.relauncher.Side;
import gregtech.api.enums.GT_Values;
import gregtech.api.net.*;
import gregtech.common.blocks.GT_Packet_Ores;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelHandler;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.handler.codec.MessageToMessageCodec;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.world.World;
import net.minecraft.world.chunk.Chunk;
import java.util.EnumMap;
import java.util.List;
@ChannelHandler.Sharable
public class GT_Network
extends MessageToMessageCodec<FMLProxyPacket, GT_Packet>
implements IGT_NetworkHandler {
private final EnumMap<Side, FMLEmbeddedChannel> mChannel;
private final GT_Packet[] mSubChannels;
public GT_Network() {
this.mChannel = NetworkRegistry.INSTANCE.newChannel("GregTech", new ChannelHandler[]{this, new HandlerShared()});
this.mSubChannels = new GT_Packet[]{new GT_Packet_TileEntity(), new GT_Packet_Sound(), new GT_Packet_Block_Event(), new GT_Packet_Ores()};
}
protected void encode(ChannelHandlerContext aContext, GT_Packet aPacket, List<Object> aOutput)
throws Exception {
aOutput.add(new FMLProxyPacket(Unpooled.buffer().writeByte(aPacket.getPacketID()).writeBytes(aPacket.encode()).copy(), (String) aContext.channel().attr(NetworkRegistry.FML_CHANNEL).get()));
}
protected void decode(ChannelHandlerContext aContext, FMLProxyPacket aPacket, List<Object> aOutput)
throws Exception {
ByteArrayDataInput aData = ByteStreams.newDataInput(aPacket.payload().array());
aOutput.add(this.mSubChannels[aData.readByte()].decode(aData));
}
public void sendToPlayer(GT_Packet aPacket, EntityPlayerMP aPlayer) {
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.PLAYER);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPlayer);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
}
public void sendToAllAround(GT_Packet aPacket, NetworkRegistry.TargetPoint aPosition) {
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.ALLAROUNDPOINT);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).attr(FMLOutboundHandler.FML_MESSAGETARGETARGS).set(aPosition);
((FMLEmbeddedChannel) this.mChannel.get(Side.SERVER)).writeAndFlush(aPacket);
}
public void sendToServer(GT_Packet aPacket) {
((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).attr(FMLOutboundHandler.FML_MESSAGETARGET).set(FMLOutboundHandler.OutboundTarget.TOSERVER);
((FMLEmbeddedChannel) this.mChannel.get(Side.CLIENT)).writeAndFlush(aPacket);
}
public void sendPacketToAllPlayersInRange(World aWorld, GT_Packet aPacket, int aX, int aZ) {
if (!aWorld.isRemote) {
for (Object tObject : aWorld.playerEntities) {
if (!(tObject instanceof EntityPlayerMP)) {
break;
}
EntityPlayerMP tPlayer = (EntityPlayerMP) tObject;
Chunk tChunk = aWorld.getChunkFromBlockCoords(aX, aZ);
if (tPlayer.getServerForPlayer().getPlayerManager().isPlayerWatchingChunk(tPlayer, tChunk.xPosition, tChunk.zPosition)) {
sendToPlayer(aPacket, tPlayer);
}
}
}
}
@ChannelHandler.Sharable
static final class HandlerShared
extends SimpleChannelInboundHandler<GT_Packet> {
protected void channelRead0(ChannelHandlerContext ctx, GT_Packet aPacket)
throws Exception {
EntityPlayer aPlayer = GT_Values.GT.getThePlayer();
aPacket.process(aPlayer == null ? null : GT_Values.GT.getThePlayer().worldObj);
}
}
}

View file

@ -1,31 +1,31 @@
package gregtech.common;
import gregtech.GT_Mod;
import gregtech.api.util.GT_Log;
import java.util.ArrayList;
public class GT_PlayerActivityLogger
implements Runnable {
public void run() {
try {
for (; ; ) {
if (GT_Log.pal == null) {
return;
}
ArrayList<String> tList = GT_Mod.gregtechproxy.mBufferedPlayerActivity;
GT_Mod.gregtechproxy.mBufferedPlayerActivity = new ArrayList();
String tLastOutput = "";
int i = 0;
for (int j = tList.size(); i < j; i++) {
if (!tLastOutput.equals(tList.get(i))) {
GT_Log.pal.println((String) tList.get(i));
}
tLastOutput = (String) tList.get(i);
}
Thread.sleep(10000L);
}
} catch (Throwable e) {
}
}
}
package gregtech.common;
import gregtech.GT_Mod;
import gregtech.api.util.GT_Log;
import java.util.ArrayList;
public class GT_PlayerActivityLogger
implements Runnable {
public void run() {
try {
for (; ; ) {
if (GT_Log.pal == null) {
return;
}
ArrayList<String> tList = GT_Mod.gregtechproxy.mBufferedPlayerActivity;
GT_Mod.gregtechproxy.mBufferedPlayerActivity = new ArrayList();
String tLastOutput = "";
int i = 0;
for (int j = tList.size(); i < j; i++) {
if (!tLastOutput.equals(tList.get(i))) {
GT_Log.pal.println((String) tList.get(i));
}
tLastOutput = (String) tList.get(i);
}
Thread.sleep(10000L);
}
} catch (Throwable e) {
}
}
}

View file

@ -17,7 +17,9 @@ import net.minecraftforge.common.DimensionManager;
import java.util.ArrayList;
import java.util.List;
public class GT_Pollution {
//import net.minecraft.entity.EntityLiving;
public class GT_Pollution {//TODO REWORK
/**
* Pollution dispersion until effects start:
* Calculation: ((Limit * 0.01) + 2000) * (4 <- spreading rate)
@ -50,94 +52,108 @@ public class GT_Pollution {
* LV (0%), MV (30%), HV (52%), EV (66%), IV (76%), LuV (84%), ZPM (89%), UV (92%), MAX (95%)
*/
static List<ChunkPosition> tList = null;
static TreeMap<Integer,List<ChunkPosition>> tList = null;
static int loops = 1;
static XSTR tRan = new XSTR();
public static void onWorldTick(World aWorld, int aTick){
if(!GT_Mod.gregtechproxy.mPollution)return;
if(!GT_Mod.gregtechproxy.mPollution) return;
int aWorldID=aWorld.provider.dimensionId;
if(aTick == 0 || (tList==null && GT_Proxy.chunkData!=null)){
tList = new ArrayList<ChunkPosition>(GT_Proxy.chunkData.keySet());
tList = new TreeMap<>();
tList.put(aWorld,new ArrayList<ChunkPosition>(GT_Proxy.chunkData.keySet()));
loops = (tList.size()/1200) + 1;
// System.out.println("new Pollution loop"+aTick);
//System.out.println("new Pollution loop"+aTick);
}
if(tList!=null && tList.size() > 0){
int i = 0;
for(; i < loops ; i++){
if(tList.size()>0){
ChunkPosition tPos = tList.get(0);
tList.remove(0);
if(tPos!=null && GT_Proxy.chunkData.containsKey(tPos)){
if(tList!=null && tList.size() > 0) for(int i = 0; i < loops ; i++) if(tList.size()>0){
ChunkPosition tPos = tList.get(0);
tList.remove(0);
if(tPos!=null && GT_Proxy.chunkData.containsKey(tPos)){
int tPollution = GT_Proxy.chunkData.get(tPos)[1];
// System.out.println("process: "+tPos.chunkPosY+" "+tPos.chunkPosX+" "+tPos.chunkPosZ+" "+tPollution);
//System.out.println("process: "+tPos.chunkPosX+" "+tPos.chunkPosZ+" "+tPollution);
//Reduce pollution in chunk
tPollution = (int)(0.99f*tPollution);
tPollution -= 2000;
if(tPollution<=0){tPollution = 0;}
//Spread Pollution
if(tPollution>50000){
List<ChunkPosition> tNeighbor = new ArrayList();
tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, tPos.chunkPosY, tPos.chunkPosZ));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, tPos.chunkPosY, tPos.chunkPosZ));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ+1));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ-1));
for(ChunkPosition tNPos : tNeighbor){
if(GT_Proxy.chunkData.containsKey(tNPos)){
int tNPol = GT_Proxy.chunkData.get(tNPos)[1];
if(tNPol<tPollution && tNPol*12 < tPollution*10){
int tDiff = tPollution - tNPol;
tDiff = tDiff/10;
tNPol += tDiff;
tPollution -= tDiff;
GT_Proxy.chunkData.get(tNPos)[1] = tNPol;
tPollution = (int)(0.9945f*tPollution);
//tPollution -= 2000;
if(tPollution<=0) tPollution = 0;
//Spread Pollution
else if(tPollution>400000){
List<ChunkPosition> tNeighbor = new ArrayList();
tNeighbor.add(new ChunkPosition(tPos.chunkPosX+1, tPos.chunkPosY, tPos.chunkPosZ));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX-1, tPos.chunkPosY, tPos.chunkPosZ));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ+1));
tNeighbor.add(new ChunkPosition(tPos.chunkPosX, tPos.chunkPosY, tPos.chunkPosZ-1));
for(ChunkPosition tNPos : tNeighbor){
if(!GT_Proxy.chunkData.containsKey(tNPos))
GT_Utility.undergroundOil(aWorld,tNPos.chunkPosX,tNPos.chunkPosZ,false,0);
//if(GT_Proxy.chunkData.containsKey(tNPos)){
int tNPol = GT_Proxy.chunkData.get(tNPos)[1];
if(tNPol*6 < tPollution*5){
int tDiff = tPollution - tNPol;
tDiff = tDiff/20;
tNPol = GT_Utility.safeInt((long)tNPol+tDiff);//tNPol += tDiff;
tPollution -= tDiff;
GT_Proxy.chunkData.get(tNPos)[1] = tNPol;
}
}else{
GT_Utility.getUndergroundOil(aWorld,tNPos.chunkPosX<<4,tNPos.chunkPosZ<<4);
//}
}
}}
}
int[] tArray = GT_Proxy.chunkData.get(tPos);
tArray[1] = tPollution;
GT_Proxy.chunkData.remove(tPos);
GT_Proxy.chunkData.put(tPos, tArray);
//Create Pollution effects
// Smog filter TODO
if(tPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit){
AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(tPos.chunkPosX<<4, 0, tPos.chunkPosZ<<4, (tPos.chunkPosX<<4)+16, 256, (tPos.chunkPosZ<<4)+16);
List<EntityLivingBase> tEntitys = aWorld.getEntitiesWithinAABB(EntityLivingBase.class, chunk);
for(EntityLivingBase tEnt : tEntitys){
if(!GT_Utility.isWearingFullGasHazmat(tEnt) && tRan.nextInt(tPollution/2000) > 40){
int ran = tRan.nextInt(3);
if(ran==0)tEnt.addPotionEffect(new PotionEffect(Potion.weakness.id, Math.min(tPollution/2500,1000), tPollution/400000));
if(ran==1)tEnt.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, Math.min(tPollution/2500,1000), tPollution/400000));
if(ran==2)tEnt.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, Math.min(tPollution/2500,1000), tPollution/400000));
//Smog filter TODO
if(tPollution > GT_Mod.gregtechproxy.mPollutionSmogLimit) {
AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(tPos.chunkPosX << 4, 0, tPos.chunkPosZ << 4, (tPos.chunkPosX << 4) + 16, 256, (tPos.chunkPosZ << 4) + 16);
List<EntityLivingBase> tEntitys = aWorld.getEntitiesWithinAABB(EntityLivingBase.class, chunk);
for (EntityLivingBase tEnt : tEntitys) {
if (!GT_Utility.isWearingFullGasHazmat(tEnt)) {
switch (tRan.nextInt(3)) {
default:
tEnt.addPotionEffect(new PotionEffect(Potion.digSlowdown.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
case 1:
tEnt.addPotionEffect(new PotionEffect(Potion.weakness.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
case 2:
tEnt.addPotionEffect(new PotionEffect(Potion.moveSlowdown.id, Math.min(tPollution / 1000, 1000), tPollution / 400000));
}
}
}
// Poison effects
if(tPollution > GT_Mod.gregtechproxy.mPollutionPoisonLimit){
for(EntityLivingBase tEnt : tEntitys){
if(!GT_Utility.isWearingFullGasHazmat(tEnt) && tRan.nextInt(tPollution/2000) > 20){
int ran = tRan.nextInt(3);
if(ran==0)tEnt.addPotionEffect(new PotionEffect(Potion.poison.id, Math.min(tPollution/2500,1000), tPollution/500000));
if(ran==1)tEnt.addPotionEffect(new PotionEffect(Potion.confusion.id, Math.min(tPollution/2500,1000), 1));
if(ran==2)tEnt.addPotionEffect(new PotionEffect(Potion.blindness.id, Math.min(tPollution/2500,1000), 1));
}
}
// killing plants
if(tPollution > GT_Mod.gregtechproxy.mPollutionVegetationLimit){
int f = 20;
for(;f<(tPollution/25000);f++){
int x =tPos.chunkPosX<<4+(tRan.nextInt(16));;
int y =60 +(-f+tRan.nextInt(f*2+1));
int z =tPos.chunkPosZ<<4+(tRan.nextInt(16));
damageBlock(x, y, z, tPollution > GT_Mod.gregtechproxy.mPollutionSourRainLimit);
}}}}
}
// Poison effects
if (tPollution > GT_Mod.gregtechproxy.mPollutionPoisonLimit) {
//AxisAlignedBB chunk = AxisAlignedBB.getBoundingBox(tPos.chunkPosX*16, 0, tPos.chunkPosZ*16, tPos.chunkPosX*16+16, 256, tPos.chunkPosZ*16+16);
//List<EntityLiving> tEntitys = aWorld.getEntitiesWithinAABB(EntityLiving.class, chunk);
for (EntityLivingBase tEnt : tEntitys) {
if (!GT_Utility.isWearingFullGasHazmat(tEnt)) {
switch (tRan.nextInt(4)) {
default:
tEnt.addPotionEffect(new PotionEffect(Potion.hunger.id, tPollution / 500000));
case 1:
tEnt.addPotionEffect(new PotionEffect(Potion.confusion.id, Math.min(tPollution / 2000, 1000), 1));
case 2:
tEnt.addPotionEffect(new PotionEffect(Potion.poison.id, Math.min(tPollution / 4000, 1000), tPollution / 500000));
case 3:
tEnt.addPotionEffect(new PotionEffect(Potion.blindness.id, Math.min(tPollution / 2000, 1000), 1));
}
}
}
// killing plants
if (tPollution > GT_Mod.gregtechproxy.mPollutionVegetationLimit) {
int f = 20;
for (; f < (tPollution / 25000); f++) {
int x = (tPos.chunkPosX << 4) + tRan.nextInt(16);
int y = 60 + (-f + tRan.nextInt(f * 2 + 1));
int z = (tPos.chunkPosZ << 4) + tRan.nextInt(16);
damageBlock(aWorld, x, y, z, tPollution > GT_Mod.gregtechproxy.mPollutionSourRainLimit);
}
}
}
}
}
}}
}
}
public static void damageBlock(int x, int y, int z, boolean sourRain){
World world = DimensionManager.getWorld(0);
public static void damageBlock(World world, int x, int y, int z, boolean sourRain){
if (world.isRemote) return;
Block tBlock = world.getBlock(x, y, z);
int tMeta = world.getBlockMetadata(x, y, z);
@ -207,4 +223,17 @@ public class GT_Pollution {
}
}
public static int getPollutionAtCoords(World aWorld, int aX, int aZ){//TODO FIX
ChunkPosition tPos = new ChunkPosition(aX>>4, aWorld.provider.dimensionId, aZ>>4);
if(GT_Proxy.chunkData.containsKey(tPos)){
int[] tPollution = GT_Proxy.chunkData.get(tPos);
if(tPollution.length>1 && tPollution[1]>0){
return tPollution[1];
}else{
return 0;
}
}
return 0;
}
}

View file

@ -176,7 +176,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public int mGraniteHavestLevel=3;
public int mMaxHarvestLevel=7;
public int mWireHeatingTicks = 4;
public int mPollutionSmogLimit = 500000;
public int mPollutionSmogLimit = 550000;
public int mPollutionPoisonLimit = 750000;
public int mPollutionVegetationLimit = 1000000;
public int mPollutionSourRainLimit = 2000000;
@ -527,6 +527,172 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
GT_Log.out.println("GT_Mod: Adding Tool Usage Crafting Recipes for OreDict Items.");
for (Materials aMaterial : Materials.values()) {
if ((aMaterial.mUnificatable) && (aMaterial.mMaterialInto == aMaterial)) {
if (!aMaterial.contains(SubTag.NO_SMASHING)) {//TODO CHECK
if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammerplating, aMaterial.toString(), true)) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits, new Object[]{"h", "X", "X",
'X', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits,
new Object[]{"H", "X", 'H', ToolDictNames.craftingToolForgeHammer, 'X',
OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(
GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L),
tBits,
new Object[]{"H", "X", 'H', ToolDictNames.craftingToolForgeHammer, 'X',
OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 1L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.ingotDouble.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 2L), tBits,
new Object[]{"H", "X", 'H', ToolDictNames.craftingToolForgeHammer, 'X',
OrePrefixes.ingotDouble.get(aMaterial)});
}
if (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.hammermultiingot, aMaterial.toString(), true)) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotDouble, aMaterial, 1L), tBits, new Object[]{"I", "I", "h",
'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotTriple, aMaterial, 1L), tBits, new Object[]{"I", "B", "h",
'I', OrePrefixes.ingotDouble.get(aMaterial), 'B', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler
.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuadruple, aMaterial, 1L), tBits,
new Object[]{"I", "B", "h", 'I', OrePrefixes.ingotTriple.get(aMaterial), 'B',
OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingotQuintuple, aMaterial, 1L), tBits,
new Object[]{"I", "B", "h", 'I', OrePrefixes.ingotQuadruple.get(aMaterial), 'B',
OrePrefixes.ingot.get(aMaterial)});
}
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[]{"PIh", "P ",
"f ", 'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHammer, aMaterial, 1L), tBits, new Object[]{"II ", "IIh",
"II ", 'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[]{"PIh", "f ",
'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[]{"PII", "f h",
'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[]{"PP", "PP", "hf",
'P', OrePrefixes.plate.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits, new Object[]{"PP ", "fh ",
'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[]{"PPI", "hf ",
'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(
GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L),
tBits,
new Object[]{"fPh", 'P', OrePrefixes.plate.get(aMaterial), 'I',
OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[]{" P ", "fPh",
'P', OrePrefixes.plate.get(aMaterial), 'I', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), tBits,
new Object[]{"h ", "fX", 'X', OrePrefixes.stick.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits,
new Object[]{"ShS", 'S', OrePrefixes.stick.get(aMaterial)});
}
if (!aMaterial.contains(SubTag.NO_WORKING)) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 2L), tBits,
new Object[]{"s", "X", 'X', OrePrefixes.stickLong.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stick, aMaterial, 1L), tBits,
new Object[]{"f ", " X", 'X', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.bolt, aMaterial, 2L), tBits,
new Object[]{"s ", " X", 'X', OrePrefixes.stick.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.screw, aMaterial, 1L), tBits,
new Object[]{"fX", "X ", 'X', OrePrefixes.bolt.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.round, aMaterial, 4L), tBits,
new Object[]{"fX", 'X', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), tBits, new Object[]{"PhP", "SRf", "PdP",
'P', aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plate.get(aMaterial),
'R', OrePrefixes.ring.get(aMaterial), 'S', OrePrefixes.screw.get(aMaterial)});
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Tin.getMolten(32), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.Lead.getMolten(48), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24);
GT_Values.RA.addAssemblerRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 4L), GT_OreDictUnificator.get(OrePrefixes.ring, aMaterial, 1L), Materials.SolderingAlloy.getMolten(16), GT_OreDictUnificator.get(OrePrefixes.rotor, aMaterial, 1L), 240, 24);
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 1L), tBits,
new Object[]{"sf", "G ", 'G', OrePrefixes.gemFlawless.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.stickLong, aMaterial, 2L), tBits,
new Object[]{"sf", "G ", 'G', OrePrefixes.gemExquisite.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireGt01, aMaterial, 1L), tBits,
new Object[]{"Xx", 'X', OrePrefixes.plate.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.wireFine, aMaterial, 1L), tBits,
new Object[]{"Xx", 'X', OrePrefixes.foil.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.turbineBlade, aMaterial, 1L), tBits, new Object[]{"fPd", "SPS", " P ",
'P', aMaterial == Materials.Wood ? OrePrefixes.plank.get(aMaterial) : OrePrefixes.plateDouble.get(aMaterial),
'R', OrePrefixes.ring.get(aMaterial), 'S', OrePrefixes.screw.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtWood, aMaterial, 1L), tBits, new Object[]{" A", " S ",
"F ", 'S', OrePrefixes.stick.get(Materials.Wood), 'F', OreDictNames.craftingFeather,
'A', OrePrefixes.toolHeadArrow.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.arrowGtPlastic, aMaterial, 1L), tBits, new Object[]{" A", " S ",
"F ", 'S', OrePrefixes.stick.get(Materials.Plastic), 'F', OreDictNames.craftingFeather,
'A', OrePrefixes.toolHeadArrow.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 1L), tBits,
new Object[]{"Xf", 'X', OrePrefixes.gemChipped.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadArrow, aMaterial, 3L), tBits,
new Object[]{(aMaterial.contains(SubTag.WOOD) ? 115 : 'x') + "Pf", 'P', OrePrefixes.plate.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadAxe, aMaterial, 1L), tBits, new Object[]{"GG ", "G ",
"f ", 'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadHoe, aMaterial, 1L), tBits, new Object[]{"GG ", "f ",
" ", 'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPickaxe, aMaterial, 1L), tBits, new Object[]{"GGG", "f ",
'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadPlow, aMaterial, 1L), tBits, new Object[]{"GG", "GG", " f",
'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSaw, aMaterial, 1L), tBits,
new Object[]{"GGf", 'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSense, aMaterial, 1L), tBits, new Object[]{"GGG", " f ",
" ", 'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadShovel, aMaterial, 1L), tBits,
new Object[]{"fG", 'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadSword, aMaterial, 1L), tBits, new Object[]{" G", "fG",
'G', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadUniversalSpade, aMaterial, 1L), tBits, new Object[]{"fX",
'X', OrePrefixes.toolHeadShovel.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadBuzzSaw, aMaterial, 1L), tBits, new Object[]{"wXh", "X X",
"fXx", 'X', OrePrefixes.plate.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadWrench, aMaterial, 1L), tBits, new Object[]{"hXW", "XRX",
"WXd", 'X', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.plate.get(Materials.Steel),
'R', OrePrefixes.ring.get(Materials.Steel), 'W', OrePrefixes.screw.get(Materials.Steel)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadChainsaw, aMaterial, 1L), tBits, new Object[]{"SRS", "XhX",
"SRS", 'X', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.plate.get(Materials.Steel),
'R', OrePrefixes.ring.get(Materials.Steel)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.toolHeadDrill, aMaterial, 1L), tBits, new Object[]{"XSX", "XSX",
"ShS", 'X', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.plate.get(Materials.Steel)});
switch (aMaterial) {
case Wood:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " s",
'P', OrePrefixes.plank.get(aMaterial)});
break;
case Stone:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits, new Object[]{"P ", " f",
'P', OrePrefixes.stoneSmooth});
break;
default:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGtSmall, aMaterial, 1L), tBits,
new Object[]{" S ", "hPx"," S ", 'S', OrePrefixes.stick.get(aMaterial), 'P', OrePrefixes.plate.get(aMaterial)});
//new Object[]{"P ", aMaterial.contains(SubTag.WOOD) ? " s" : " h", 'P', OrePrefixes.plate.get(aMaterial)});
//TODO CHECK
}
switch (aMaterial) {
case Wood:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PsP", "SPS",
'P', OrePrefixes.plank.get(aMaterial), 'S', OrePrefixes.stick.get(aMaterial)});
break;
case Stone:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PfP", "SPS",
'P', OrePrefixes.stoneSmooth, 'S', new ItemStack(Blocks.stone_button, 1, 32767)});
break;
default:
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gearGt, aMaterial, 1L), tBits, new Object[]{"SPS", "PwP", "SPS",
'P', OrePrefixes.plate.get(aMaterial), 'S', OrePrefixes.stick.get(aMaterial)});
}
}
if (aMaterial.contains(SubTag.SMELTING_TO_GEM)) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 1L), tBits, new Object[]{"XXX", "XXX", "XXX",
'X', OrePrefixes.nugget.get(aMaterial)});
} else {
// GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 1L), tBits, new Object[]{"XXX", "XXX", "XXX",
// 'X', OrePrefixes.nugget.get(aMaterial)});
}//TODO CHECK END
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X",
'X', OrePrefixes.crushedCentrifuged.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial.mMacerateInto, 1L), tBits, new Object[]{"h", "X",
@ -555,6 +721,40 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
new Object[]{"XX", "XX", 'X', OrePrefixes.dustSmall.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits,
new Object[]{"XXX", "XXX", "XXX", 'X', OrePrefixes.dustTiny.get(aMaterial)});
//TODO CHECK
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 16L), tBits, new Object[]{"Xc", 'X',
OrePrefixes.crateGtDust.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 16L), tBits, new Object[]{"Xc", 'X',
OrePrefixes.crateGtGem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.ingot, aMaterial, 16L), tBits, new Object[]{"Xc",
'X', OrePrefixes.crateGtIngot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.plate, aMaterial, 16L), tBits, new Object[]{"Xc",
'X', OrePrefixes.crateGtPlate.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemChipped, aMaterial, 2L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gemFlawed.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawed, aMaterial, 2L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gem, aMaterial, 2L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gemFlawless.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.gemFlawless, aMaterial, 2L), tBits,
new Object[]{"h", "X", 'X', OrePrefixes.gemExquisite.get(aMaterial)});
if ((aMaterial.contains(SubTag.MORTAR_GRINDABLE)) && (GregTech_API.sRecipeFile.get(ConfigCategories.Tools.mortar, aMaterial.name(), true))) {
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 1L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gemChipped.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dustSmall, aMaterial, 2L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gemFlawed.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gem.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 2L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gemFlawless.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 4L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.gemExquisite.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.ingot.get(aMaterial)});
GT_ModHandler.addCraftingRecipe(GT_OreDictUnificator.get(OrePrefixes.dust, aMaterial, 1L), tBits,
new Object[]{"X", "m", 'X', OrePrefixes.plate.get(aMaterial)});
}//TODO CHECK END
}
}
}
@ -849,7 +1049,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
GT_OreDictUnificator.registerOre(OreDictNames.craftingWireCopper, aEvent.Ore);
}
else if (aEvent.Name.equals("oreHeeEndrium")) {
GT_OreDictUnificator.registerOre(OrePrefixes.ore, Materials.Endium, aEvent.Ore);
GT_OreDictUnificator.registerOre(OrePrefixes.ore, Materials.HeeEndium, aEvent.Ore);
}
else if (aEvent.Name.equals("sheetPlastic")) {
GT_OreDictUnificator.registerOre(OrePrefixes.plate, Materials.Plastic, aEvent.Ore);
@ -1406,9 +1606,9 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
return null;
}
public Object getRightItemGui(EntityPlayer player, int ID){
ItemStack mStack = player.getEquipmentInSlot(ID/100);
if(mStack==null||!(mStack.getItem() instanceof ModularArmor_Item))return null;
public Object getRightItemGui(EntityPlayer player, int ID){
ItemStack mStack = player.getEquipmentInSlot(ID/100);
if(mStack==null||!(mStack.getItem() instanceof ModularArmor_Item))return null;
switch(ID % 100){
case 0:
@ -1420,7 +1620,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}
return null;
}
}
public int getBurnTime(ItemStack aFuel) {
if ((aFuel == null) || (aFuel.getItem() == null)) {
@ -1531,7 +1731,8 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
rFuelValue = Math.max(rFuelValue, 600);
} else if (GT_Utility.areStacksEqual(aFuel, ItemList.Block_MSSFUEL.get(1, new Object[0]))) {
rFuelValue = Math.max(rFuelValue, 150000);
}if (GT_Utility.areStacksEqual(aFuel, ItemList.Block_SSFUEL.get(1, new Object[0]))) {
}
if (GT_Utility.areStacksEqual(aFuel, ItemList.Block_SSFUEL.get(1, new Object[0]))) {
rFuelValue = Math.max(rFuelValue, 100000);
}
@ -1543,6 +1744,11 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, null, null, 0);
}
public Fluid addAutogeneratedWetFluid(Materials aMaterial) {
return addFluid("wet." + aMaterial.mName.toLowerCase(Locale.ENGLISH), "wet.autogenerated", "Wet " + aMaterial.mDefaultLocalName, aMaterial,
aMaterial.mMoltenRGBa, 4, aMaterial.mMeltingPoint <= 0 ? 1000 : aMaterial.mMeltingPoint, GT_OreDictUnificator.get(OrePrefixes.cell, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
}
public Fluid addAutogeneratedPlasmaFluid(Materials aMaterial) {
return addFluid("plasma." + aMaterial.mName.toLowerCase(Locale.ENGLISH), "plasma.autogenerated", aMaterial.mDefaultLocalName + " Plasma", aMaterial,
aMaterial.mMoltenRGBa, 3, 10000, GT_OreDictUnificator.get(OrePrefixes.cellPlasma, aMaterial, 1L), ItemList.Cell_Empty.get(1L, new Object[0]), 1000);
@ -1701,8 +1907,10 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
public static final HashMap<ChunkPosition, int[]> chunkData = new HashMap<ChunkPosition, int[]>(5000);
private static final byte oilVer=(byte)0x20;
@SubscribeEvent
public void handleChunkSaveEvent(ChunkDataEvent.Save event)
public void handleChunkSaveEvent(ChunkDataEvent.Save event)//TODO FIX +RETROGEN
{
ChunkPosition tPos = new ChunkPosition(event.getChunk().xPosition,event.getChunk().worldObj.provider.dimensionId,event.getChunk().zPosition);
if(chunkData.containsKey(tPos)){
@ -1714,7 +1922,7 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
}
@SubscribeEvent
public void handleChunkLoadEvent(ChunkDataEvent.Load event)
public void handleChunkLoadEvent(ChunkDataEvent.Load event)//TODO FIX +RETROGEN
{
int tOil = 0;
int tOilFluid = 0;
@ -1756,4 +1964,4 @@ public abstract class GT_Proxy implements IGT_Mod, IGuiHandler, IFuelHandler {
this.mModID = ((aModID == null) || (aModID.equals("UNKNOWN")) ? null : aModID);
}
}
}
}

View file

@ -16,14 +16,13 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
public class GT_RecipeAdder
implements IGT_RecipeAdder {
public class GT_RecipeAdder implements IGT_RecipeAdder {
@Deprecated
public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt, int aStartEU) {
return false;
}
@Override
@Override //Really?
public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aDuration, int aEUt, int aStartEU) {
if (aInput1 == null || aInput2 == null || aOutput1 == null || aDuration < 1 || aEUt < 1 || aStartEU < 1) {
return false;
@ -39,6 +38,10 @@ public class GT_RecipeAdder
return addCentrifugeRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, 5);
}
public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt) {
return addCentrifugeRecipe(aInput1, aInput2 < 0 ? ItemList.IC2_Fuel_Can_Empty.get(-aInput2, new Object[0]) : aInput2 > 0 ? ItemList.Cell_Empty.get(aInput2, new Object[0]) : null, null, null, aOutput1, aOutput2, aOutput3, aOutput4, aOutput5, aOutput6, null, aDuration, aEUt);
}
public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt) {
if (((aInput1 == null) && (aFluidInput == null)) || ((aOutput1 == null) && (aFluidOutput == null))) {
return false;
@ -86,6 +89,10 @@ public class GT_RecipeAdder
return addChemicalRecipe(aInput1, aInput2, null, null, aOutput, aDuration);
}
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration, int aEUt) {
return addChemicalRecipe(aInput1, aInput2, null, null, aOutput, aDuration, aEUt);
}
public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration) {
return addChemicalRecipe(aInput1, aInput2, aFluidInput, aFluidOutput, aOutput, aDuration, 30);
}
@ -155,11 +162,12 @@ public class GT_RecipeAdder
return true;
}
@Deprecated
public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) {
if ((aInput1 == null) || (aOutput1 == null)) {
return false;
}
if ((GregTech_API.sRecipeFile.get("cnc", aOutput1, aDuration)) <= 0) {
if ((aDuration = GregTech_API.sRecipeFile.get("cnc", aOutput1, aDuration)) <= 0) {
return false;
}
return true;
@ -370,6 +378,17 @@ public class GT_RecipeAdder
return false;
}
public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt) {
if ((aInput1 == null) || (aOutput1 == null)) {
return false;
}
if ((aDuration = GregTech_API.sRecipeFile.get("vacuumfreezer", aInput1, aDuration)) <= 0) {
return false;
}
new GT_Recipe(aInput1, aOutput1, aDuration, aEUt, 0);//Since all other methods are taken
return true;
}
public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration) {
if ((aInput1 == null) || (aOutput1 == null)) {
return false;
@ -381,6 +400,7 @@ public class GT_RecipeAdder
return true;
}
@Deprecated
public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4) {
return false;
}
@ -462,14 +482,32 @@ public class GT_RecipeAdder
return true;
}
public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden) {
public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, int aDuration, int aEUt, boolean aHidden) {
if ((aIngredient == null) || (aInput == null) || (aOutput == null)) {
return false;
}
if (!GregTech_API.sRecipeFile.get("brewing", aOutput.getUnlocalizedName(), true)) {
return false;
}
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe(false, new ItemStack[]{aIngredient}, null, null, new FluidStack[]{new FluidStack(aInput, 750)}, new FluidStack[]{new FluidStack(aOutput, 750)}, 128, 4, 0);
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sBrewingRecipes.addRecipe(false, new ItemStack[]{aIngredient}, null, null, new FluidStack[]{new FluidStack(aInput, 750)}, new FluidStack[]{new FluidStack(aOutput, 750)}, aDuration, aEUt, 0);
if ((aHidden) && (tRecipe != null)) {
tRecipe.mHidden = true;
}
return true;
}
public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden) {
return addBrewingRecipe(aIngredient, aInput, aOutput, 128, 4, aHidden);
}
public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden) {
if ((aInput == null) || (aOutput == null)) {
return false;
}
if ((aDuration = GregTech_API.sRecipeFile.get("fermenting", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) {
return false;
}
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFermentingRecipes.addRecipe(false, null, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, aEUt, 0);
if ((aHidden) && (tRecipe != null)) {
tRecipe.mHidden = true;
}
@ -477,17 +515,7 @@ public class GT_RecipeAdder
}
public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden) {
if ((aInput == null) || (aOutput == null)) {
return false;
}
if ((aDuration = GregTech_API.sRecipeFile.get("fermenting", aOutput.getFluid().getUnlocalizedName(), aDuration)) <= 0) {
return false;
}
GT_Recipe tRecipe = GT_Recipe.GT_Recipe_Map.sFermentingRecipes.addRecipe(false, null, null, null, new FluidStack[]{aInput}, new FluidStack[]{aOutput}, aDuration, 2, 0);
if ((aHidden) && (tRecipe != null)) {
tRecipe.mHidden = true;
}
return true;
return addFermentingRecipe(aInput, aOutput, aDuration, 2, aHidden);
}
public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden) {
@ -564,6 +592,8 @@ public class GT_RecipeAdder
}
public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput) {
int aDuration= aFluidOutput == null ? aFluidInput.amount / 62 : aFluidOutput.amount / 62;
if ((aInput != null) && (aOutput != null)) {
if ((aFluidInput == null ? 1 : 0) != (aFluidOutput == null ? 1 : 0)) {
}
@ -573,7 +603,27 @@ public class GT_RecipeAdder
if (!GregTech_API.sRecipeFile.get("fluidcanner", aOutput, true)) {
return false;
}
GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new FluidStack[]{aFluidInput == null ? null : aFluidInput}, new FluidStack[]{aFluidOutput == null ? null : aFluidOutput}, aFluidOutput == null ? aFluidInput.amount / 62 : aFluidOutput.amount / 62, 1, 0);
if ((aDuration = GregTech_API.sRecipeFile.get("fluidcanner", aInput, aDuration)) <= 0) {
return false;
}
GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new FluidStack[]{aFluidInput == null ? null : aFluidInput}, new FluidStack[]{aFluidOutput == null ? null : aFluidOutput}, aDuration, 1, 0);
return true;
}
public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput, int aDuration, int aEUt) {
if ((aInput != null) && (aOutput != null)) {
if ((aFluidInput == null ? 1 : 0) != (aFluidOutput == null ? 1 : 0)) {
}
} else {
return false;
}
if (!GregTech_API.sRecipeFile.get("fluidcanner", aOutput, true)) {
return false;
}
if ((aDuration = GregTech_API.sRecipeFile.get("fluidcanner", aInput, aDuration)) <= 0) {
return false;
}
GT_Recipe.GT_Recipe_Map.sFluidCannerRecipes.addRecipe(true, new ItemStack[]{aInput}, new ItemStack[]{aOutput}, null, new FluidStack[]{aFluidInput == null ? null : aFluidInput}, new FluidStack[]{aFluidOutput == null ? null : aFluidOutput}, aDuration, aEUt, 0);
return true;
}
@ -843,10 +893,10 @@ public class GT_RecipeAdder
return false;
}
for(ItemStack tItem : aInputs){
if(tItem==null)System.out.println("addAssemblylineRecipe"+aResearchItem.getDisplayName());
if(tItem==null)System.out.println("addAssemblinglineRecipe"+aResearchItem.getDisplayName());
}
GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{aResearchItem}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Research result", new Object[0])}, null, null, aResearchTime, 30, 0);
GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes.addFakeRecipe(false, new ItemStack[]{aResearchItem}, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Writes Research result", new Object[0])}, null, null, aResearchTime, 30, 0);
GT_Recipe.GT_Recipe_Map.sAssemblylineFakeRecipes.addFakeRecipe(false, aInputs, new ItemStack[]{aOutput}, new ItemStack[]{ItemList.Tool_DataStick.getWithName(1L, "Reads Research result", new Object[0])}, aFluidInputs, null, aDuration, aEUt, 0,true);
GT_Recipe.GT_Recipe_AssemblyLine.sAssemblylineRecipes.add(new GT_Recipe_AssemblyLine( aResearchItem, aResearchTime, aInputs, aFluidInputs, aOutput, aDuration, aEUt));
return true;
}

View file

@ -1,31 +1,31 @@
package gregtech.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class GT_Server
extends GT_Proxy {
public boolean isServerSide() {
return true;
}
public boolean isClientSide() {
return false;
}
public boolean isBukkitSide() {
return false;
}
public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) {
}
public int addArmor(String aPrefix) {
return 0;
}
public EntityPlayer getThePlayer() {
return null;
}
}
package gregtech.common;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class GT_Server
extends GT_Proxy {
public boolean isServerSide() {
return true;
}
public boolean isClientSide() {
return false;
}
public boolean isBukkitSide() {
return false;
}
public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) {
}
public int addArmor(String aPrefix) {
return 0;
}
public EntityPlayer getThePlayer() {
return null;
}
}

View file

@ -4,9 +4,11 @@ import gregtech.GT_Mod;
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Log;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
import gregtech.loaders.misc.GT_Achievements;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
@ -14,6 +16,8 @@ import net.minecraft.world.chunk.IChunkProvider;
import java.util.ArrayList;
import java.util.Random;
import static gregtech.api.enums.GT_Values.D1;
public class GT_Worldgen_GT_Ore_Layer
extends GT_Worldgen {
public static ArrayList<GT_Worldgen_GT_Ore_Layer> sList = new ArrayList();
@ -27,25 +31,26 @@ public class GT_Worldgen_GT_Ore_Layer
public final short mSecondaryMeta;
public final short mBetweenMeta;
public final short mSporadicMeta;
//public final String mBiome;
public final String mRestrictBiome;
public final boolean mOverworld;
public final boolean mNether;
public final boolean mEnd;
public final boolean mEndAsteroid;
public final boolean mMoon;
public final boolean mMars;
public final boolean mAsteroid;
//public final boolean mMoon;
//public final boolean mMars;
//public final boolean mAsteroid;
public final String aTextWorldgen = "worldgen.";
public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, boolean aMoon, boolean aMars, boolean aAsteroid, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
public GT_Worldgen_GT_Ore_Layer(String aName, boolean aDefault, int aMinY, int aMaxY, int aWeight, int aDensity, int aSize, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary, Materials aSecondary, Materials aBetween, Materials aSporadic) {
super(aName, sList, aDefault);
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
this.mEndAsteroid = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "EndAsteroid", aEnd);
this.mMoon = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Moon", aMoon);
this.mMars = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Mars", aMars);
this.mAsteroid = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Asteroid", aAsteroid);
//this.mMoon = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Moon", aMoon);
//this.mMars = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Mars", aMars);
//this.mAsteroid = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Asteroid", aAsteroid);
this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
this.mMaxY = ((short) Math.max(this.mMinY + 5, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY)));
this.mWeight = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "RandomWeight", aWeight));
@ -79,13 +84,16 @@ public class GT_Worldgen_GT_Ore_Layer
if (!this.mRestrictBiome.equals("None") && !(this.mRestrictBiome.equals(aBiome))) {
return false; //Not the correct biome for ore mix
}
if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) || ((aWorld.provider.getDimensionName().equals("Moon")) && (this.mMoon)) || ((aWorld.provider.getDimensionName().equals("Mars")) && (this.mMars)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) {
//if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) || ((aWorld.provider.getDimensionName().equals("Moon")) && (this.mMoon)) || ((aWorld.provider.getDimensionName().equals("Mars")) && (this.mMars)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) {
if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) {
return false;
}
int tMinY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY - 5);
int cX = aChunkX - aRandom.nextInt(this.mSize);
int eX = aChunkX + 16 + aRandom.nextInt(this.mSize);
int[] execCount=new int[4];
for (int tX = cX; tX <= eX; tX++) {
int cZ = aChunkZ - aRandom.nextInt(this.mSize);
int eZ = aChunkZ + 16 + aRandom.nextInt(this.mSize);
@ -94,27 +102,40 @@ public class GT_Worldgen_GT_Ore_Layer
for (int i = tMinY - 1; i < tMinY + 2; i++) {
if ((aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cZ - tZ), MathHelper.abs_int(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cX - tX), MathHelper.abs_int(eX - tX)) / this.mDensity)) == 0)) {
GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mSecondaryMeta, false);
execCount[1]++;
}
}
}
if ((this.mBetweenMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cZ - tZ), MathHelper.abs_int(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cX - tX), MathHelper.abs_int(eX - tX)) / this.mDensity)) == 0))) {
GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY + 2 + aRandom.nextInt(2), tZ, this.mBetweenMeta, false);
execCount[2]++;
}
if (this.mPrimaryMeta > 0) {
for (int i = tMinY + 3; i < tMinY + 6; i++) {
if ((aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cZ - tZ), MathHelper.abs_int(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cX - tX), MathHelper.abs_int(eX - tX)) / this.mDensity)) == 0)) {
GT_TileEntity_Ores.setOreBlock(aWorld, tX, i, tZ, this.mPrimaryMeta, false);
execCount[0]++;
}
}
}
if ((this.mSporadicMeta > 0) && ((aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cZ - tZ), MathHelper.abs_int(eZ - tZ)) / this.mDensity)) == 0) || (aRandom.nextInt(Math.max(1, Math.max(MathHelper.abs_int(cX - tX), MathHelper.abs_int(eX - tX)) / this.mDensity)) == 0))) {
GT_TileEntity_Ores.setOreBlock(aWorld, tX, tMinY - 1 + aRandom.nextInt(7), tZ, this.mSporadicMeta, false);
execCount[3]++;
}
}
}
if (GT_Values.D1) {
System.out.println("Generated Orevein: " + this.mWorldGenName+" "+aChunkX +" "+ aChunkZ);
if (D1) {
GT_Log.out.println(
"Generated Orevein:" + this.mWorldGenName +
" @ dim="+aDimensionType+
" chunkX="+aChunkX+
" chunkZ="+aChunkZ+
" Secondary="+execCount[1]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mPrimaryMeta).getDisplayName()+
" Between="+execCount[2]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mPrimaryMeta).getDisplayName()+
" Primary="+execCount[0]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mPrimaryMeta).getDisplayName()+
" Sporadic="+execCount[3]+" "+new ItemStack(GregTech_API.sBlockOres1,1,mPrimaryMeta).getDisplayName()
);
}
return true;
}
}
}

View file

@ -1,57 +1,67 @@
package gregtech.common;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import java.util.Random;
public class GT_Worldgen_GT_Ore_SmallPieces
extends GT_Worldgen {
public final short mMinY;
public final short mMaxY;
public final short mAmount;
public final short mMeta;
public final boolean mOverworld;
public final boolean mNether;
public final boolean mEnd;
public final boolean mMoon;
public final boolean mMars;
public final boolean mAsteroid;
public final String mRestrictBiome;
public final String aTextWorldgen = "worldgen.";
public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, boolean aMoon, boolean aMars, boolean aAsteroid, Materials aPrimary) {
super(aName, GregTech_API.sWorldgenList, aDefault);
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
this.mMoon = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Moon", aMoon);
this.mMars = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Mars", aMars);
this.mAsteroid = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Asteroid", aAsteroid);
this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
this.mMaxY = ((short) Math.max(this.mMinY + 1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY)));
this.mAmount = ((short) Math.max(1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Amount", aAmount)));
this.mMeta = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID));
this.mRestrictBiome = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "RestrictToBiomeName", "None");
}
public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
if (!this.mRestrictBiome.equals("None") && !(this.mRestrictBiome.equals(aBiome))) {
return false; //Not the correct biome for small ore
}
if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) || ((aWorld.provider.getDimensionName().equals("Moon")) && (this.mMoon)) || ((aWorld.provider.getDimensionName().equals("Mars")) && (this.mMars)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) {
return false;
}
if (this.mMeta > 0) {
int i = 0;
for (int j = Math.max(1, this.mAmount / 2 + aRandom.nextInt(this.mAmount) / 2); i < j; i++) {
GT_TileEntity_Ores.setOreBlock(aWorld, aChunkX + aRandom.nextInt(16), this.mMinY + aRandom.nextInt(Math.max(1, this.mMaxY - this.mMinY)), aChunkZ + aRandom.nextInt(16), this.mMeta, true);
}
}
return true;
}
}
package gregtech.common;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_Log;
import gregtech.api.world.GT_Worldgen;
import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import java.util.Random;
import static gregtech.api.enums.GT_Values.D1;
public class GT_Worldgen_GT_Ore_SmallPieces
extends GT_Worldgen {
public final short mMinY;
public final short mMaxY;
public final short mAmount;
public final short mMeta;
public final boolean mOverworld;
public final boolean mNether;
public final boolean mEnd;
public final String mBiome;
public final String aTextWorldgen = "worldgen.";
public GT_Worldgen_GT_Ore_SmallPieces(String aName, boolean aDefault, int aMinY, int aMaxY, int aAmount, boolean aOverworld, boolean aNether, boolean aEnd, Materials aPrimary) {
super(aName, GregTech_API.sWorldgenList, aDefault);
this.mOverworld = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Overworld", aOverworld);
this.mNether = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Nether", aNether);
this.mEnd = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "TheEnd", aEnd);
this.mMinY = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MinHeight", aMinY));
this.mMaxY = ((short) Math.max(this.mMinY + 1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "MaxHeight", aMaxY)));
this.mAmount = ((short) Math.max(1, GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Amount", aAmount)));
this.mMeta = ((short) GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "Ore", aPrimary.mMetaItemSubID));
this.mBiome = GregTech_API.sWorldgenFile.get(aTextWorldgen + this.mWorldGenName, "BiomeName", "None");
}
public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
if (!this.mBiome.equals("None") && !(this.mBiome.equals(aBiome))) {
return false; //Not the correct biome for ore mix
}
if (!isGenerationAllowed(aWorld, aDimensionType, ((aDimensionType == -1) && (this.mNether)) || ((aDimensionType == 0) && (this.mOverworld)) || ((aDimensionType == 1) && (this.mEnd)) ? aDimensionType : aDimensionType ^ 0xFFFFFFFF)) {
return false;
}
int count=0;
if (this.mMeta > 0) {
int i = 0;
for (int j = Math.max(1, this.mAmount / 2 + aRandom.nextInt(this.mAmount) / 2); i < j; i++) {
GT_TileEntity_Ores.setOreBlock(aWorld, aChunkX + aRandom.nextInt(16), this.mMinY + aRandom.nextInt(Math.max(1, this.mMaxY - this.mMinY)), aChunkZ + aRandom.nextInt(16), this.mMeta, true);
count++;
}
}
if(D1){
GT_Log.out.println(
"Small Ore:" + this.mWorldGenName +
" @ dim="+aDimensionType+
" chunkX="+aChunkX+
" chunkZ="+aChunkZ+
" ore="+count+" "+new ItemStack(GregTech_API.sBlockOres1,1,mMeta).getDisplayName()
);
}
return true;
}
}

View file

@ -1,90 +1,90 @@
package gregtech.common;
import gregtech.api.GregTech_API;
import gregtech.api.world.GT_Worldgen_Ore;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import java.util.Collection;
import java.util.Random;
public class GT_Worldgen_Stone
extends GT_Worldgen_Ore {
public GT_Worldgen_Stone(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection<String> aBiomeList, boolean aAllowToGenerateinVoid) {
super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid);
}
public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
if ((isGenerationAllowed(aWorld, aDimensionType, this.mDimensionType)) && ((this.mBiomeList.isEmpty()) || (this.mBiomeList.contains(aBiome))) && ((this.mProbability <= 1) || (aRandom.nextInt(this.mProbability) == 0))) {
for (int i = 0; i < this.mAmount; i++) {
int tX = aChunkX + aRandom.nextInt(16);
int tY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY);
int tZ = aChunkZ + aRandom.nextInt(16);
if ((this.mAllowToGenerateinVoid) || (!aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ))) {
float math_pi = 3.141593F;//FB: CNT - CNT_ROUGH_CONSTANT_VALUE
float var6 = aRandom.nextFloat() * math_pi;
float var1d = this.mSize / 8.0F;int var2d = tX + 8;int var3d = tZ + 8;int var4d = tY - 2;
float mh_s_0 = MathHelper.sin(var6) * var1d;float mh_c_0 = MathHelper.cos(var6) * var1d;
float var7 = var2d + mh_s_0;
float var11 = var3d + mh_c_0;
int var15r = aRandom.nextInt(3);int var17r = aRandom.nextInt(3);
int var15 = var4d + var15r;
int mh_n_4=var17r - var15r;
float mh_n_0 = -2*mh_s_0;float mh_n_1 = -2*mh_c_0;
for (int var19 = 0; var19 <= this.mSize; var19++) {
float var5d = var19 / this.mSize;
float var20 = var7 + mh_n_0 * var5d;
float var22 = var15 + mh_n_4 * var5d;
float var24 = var11 + mh_n_1 * var5d;
float var6d = var19 * math_pi / this.mSize;
float var26 = aRandom.nextFloat() * this.mSize / 16.0F;
float var28 = ((MathHelper.sin(var6d) + 1.0F) * var26 + 1.0F) / 2.0F;
int tMinX = MathHelper.floor_float(var20 - var28);
int tMinY = MathHelper.floor_float(var22 - var28);
int tMinZ = MathHelper.floor_float(var24 - var28);
int tMaxX = MathHelper.floor_float(var20 + var28);
int tMaxY = MathHelper.floor_float(var22 + var28);
int tMaxZ = MathHelper.floor_float(var24 + var28);
for (int eX = tMinX; eX <= tMaxX; eX++) {
float var39 = (eX + 0.5F - var20) / (var28);
float var10d = var39 * var39;
if (var10d < 1.0F) {
for (int eY = tMinY; eY <= tMaxY; eY++) {
float var42 = (eY + 0.5F - var22) / (var28);
float var12d = var10d + var42 * var42;
if (var12d < 1.0F) {
for (int eZ = tMinZ; eZ <= tMaxZ; eZ++) {
float var45 = (eZ + 0.5F - var24) / (var28);
if (var12d + var45 * var45 < 1.0F) {
Block tTargetedBlock = aWorld.getBlock(eX, eY, eZ);
if (tTargetedBlock instanceof GT_Block_Ores_Abstract) {
TileEntity tTileEntity = aWorld.getTileEntity(eX, eY, eZ);
if ((tTileEntity instanceof GT_TileEntity_Ores)) {
if (tTargetedBlock != GregTech_API.sBlockOres1) {
((GT_TileEntity_Ores) tTileEntity).convertOreBlock(aWorld, eX, eY, eZ);
}
((GT_TileEntity_Ores)tTileEntity).overrideOreBlockMaterial(this.mBlock, (byte) this.mBlockMeta);
}
} else if (((this.mAllowToGenerateinVoid) && (aWorld.getBlock(eX, eY, eZ).isAir(aWorld, eX, eY, eZ))) || ((tTargetedBlock != null) && ((tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.end_stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.netherrack)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, GregTech_API.sBlockGranites)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, GregTech_API.sBlockStones))))) {
aWorld.setBlock(eX, eY, eZ, this.mBlock, this.mBlockMeta, 0);
}
}
}
}
}
}
}
}
}
}
return true;
}
return false;
}
}
package gregtech.common;
import gregtech.api.GregTech_API;
import gregtech.api.world.GT_Worldgen_Ore;
import gregtech.common.blocks.GT_Block_Ores_Abstract;
import gregtech.common.blocks.GT_TileEntity_Ores;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraft.world.chunk.IChunkProvider;
import java.util.Collection;
import java.util.Random;
public class GT_Worldgen_Stone
extends GT_Worldgen_Ore {
public GT_Worldgen_Stone(String aName, boolean aDefault, Block aBlock, int aBlockMeta, int aDimensionType, int aAmount, int aSize, int aProbability, int aMinY, int aMaxY, Collection<String> aBiomeList, boolean aAllowToGenerateinVoid) {
super(aName, aDefault, aBlock, aBlockMeta, aDimensionType, aAmount, aSize, aProbability, aMinY, aMaxY, aBiomeList, aAllowToGenerateinVoid);
}
public boolean executeWorldgen(World aWorld, Random aRandom, String aBiome, int aDimensionType, int aChunkX, int aChunkZ, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
if ((isGenerationAllowed(aWorld, aDimensionType, this.mDimensionType)) && ((this.mBiomeList.isEmpty()) || (this.mBiomeList.contains(aBiome))) && ((this.mProbability <= 1) || (aRandom.nextInt(this.mProbability) == 0))) {
for (int i = 0; i < this.mAmount; i++) {
int tX = aChunkX + aRandom.nextInt(16);
int tY = this.mMinY + aRandom.nextInt(this.mMaxY - this.mMinY);
int tZ = aChunkZ + aRandom.nextInt(16);
if ((this.mAllowToGenerateinVoid) || (!aWorld.getBlock(tX, tY, tZ).isAir(aWorld, tX, tY, tZ))) {
float math_pi = 3.141593F;//FB: CNT - CNT_ROUGH_CONSTANT_VALUE
float var6 = aRandom.nextFloat() * math_pi;
float var1d = this.mSize / 8.0F;int var2d = tX + 8;int var3d = tZ + 8;int var4d = tY - 2;
float mh_s_0 = MathHelper.sin(var6) * var1d;float mh_c_0 = MathHelper.cos(var6) * var1d;
float var7 = var2d + mh_s_0;
float var11 = var3d + mh_c_0;
int var15r = aRandom.nextInt(3);int var17r = aRandom.nextInt(3);
int var15 = var4d + var15r;
int mh_n_4=var17r - var15r;
float mh_n_0 = -2*mh_s_0;float mh_n_1 = -2*mh_c_0;
for (int var19 = 0; var19 <= this.mSize; var19++) {
float var5d = var19 / this.mSize;
float var20 = var7 + mh_n_0 * var5d;
float var22 = var15 + mh_n_4 * var5d;
float var24 = var11 + mh_n_1 * var5d;
float var6d = var19 * math_pi / this.mSize;
float var26 = aRandom.nextFloat() * this.mSize / 16.0F;
float var28 = ((MathHelper.sin(var6d) + 1.0F) * var26 + 1.0F) / 2.0F;
int tMinX = MathHelper.floor_float(var20 - var28);
int tMinY = MathHelper.floor_float(var22 - var28);
int tMinZ = MathHelper.floor_float(var24 - var28);
int tMaxX = MathHelper.floor_float(var20 + var28);
int tMaxY = MathHelper.floor_float(var22 + var28);
int tMaxZ = MathHelper.floor_float(var24 + var28);
for (int eX = tMinX; eX <= tMaxX; eX++) {
float var39 = (eX + 0.5F - var20) / (var28);
float var10d = var39 * var39;
if (var10d < 1.0F) {
for (int eY = tMinY; eY <= tMaxY; eY++) {
float var42 = (eY + 0.5F - var22) / (var28);
float var12d = var10d + var42 * var42;
if (var12d < 1.0F) {
for (int eZ = tMinZ; eZ <= tMaxZ; eZ++) {
float var45 = (eZ + 0.5F - var24) / (var28);
if (var12d + var45 * var45 < 1.0F) {
Block tTargetedBlock = aWorld.getBlock(eX, eY, eZ);
if (tTargetedBlock instanceof GT_Block_Ores_Abstract) {
TileEntity tTileEntity = aWorld.getTileEntity(eX, eY, eZ);
if ((tTileEntity instanceof GT_TileEntity_Ores)) {
if (tTargetedBlock != GregTech_API.sBlockOres1) {
((GT_TileEntity_Ores) tTileEntity).convertOreBlock(aWorld, eX, eY, eZ);
}
((GT_TileEntity_Ores)tTileEntity).overrideOreBlockMaterial(this.mBlock, (byte) this.mBlockMeta);
}
} else if (((this.mAllowToGenerateinVoid) && (aWorld.getBlock(eX, eY, eZ).isAir(aWorld, eX, eY, eZ))) || ((tTargetedBlock != null) && ((tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.end_stone)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, Blocks.netherrack)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, GregTech_API.sBlockGranites)) || (tTargetedBlock.isReplaceableOreGen(aWorld, eX, eY, eZ, GregTech_API.sBlockStones))))) {
aWorld.setBlock(eX, eY, eZ, this.mBlock, this.mBlockMeta, 0);
}
}
}
}
}
}
}
}
}
}
return true;
}
return false;
}
}

View file

@ -17,19 +17,24 @@ import net.minecraft.world.chunk.IChunkProvider;
import net.minecraft.world.gen.ChunkProviderEnd;
import net.minecraft.world.gen.ChunkProviderHell;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class GT_Worldgenerator
implements IWorldGenerator {
//public static boolean sAsteroids = true;
private static int mEndAsteroidProbability = 300;
private static int mGCAsteroidProbability = 50;
//private static int mGCAsteroidProbability = 50;
private static int mSize = 100;
private static int endMinSize = 50;
private static int endMaxSize = 200;
private static int gcMinSize = 100;
private static int gcMaxSize = 400;
//private static int gcMinSize = 100;
//private static int gcMaxSize = 400;
private static boolean endAsteroids = true;
private static boolean gcAsteroids = true;
public List<Runnable> mList = new ArrayList();
public boolean mIsGenerating = false;
//private static boolean gcAsteroids = true;
public GT_Worldgenerator() {
@ -37,21 +42,34 @@ public class GT_Worldgenerator
endMinSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMinSize", 50);
endMaxSize = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidMaxSize", 200);
mEndAsteroidProbability = GregTech_API.sWorldgenFile.get("endasteroids", "AsteroidProbability", 300);
gcAsteroids = GregTech_API.sWorldgenFile.get("gcasteroids", "GenerateGCAsteroids", true);
gcMinSize = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidMinSize", 100);
gcMaxSize = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidMaxSize", 400);
mGCAsteroidProbability = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidProbability", 300);
//gcAsteroids = GregTech_API.sWorldgenFile.get("gcasteroids", "GenerateGCAsteroids", true);
//gcMinSize = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidMinSize", 100);
//gcMaxSize = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidMaxSize", 400);
//mGCAsteroidProbability = GregTech_API.sWorldgenFile.get("gcasteroids", "GCAsteroidProbability", 300);
GameRegistry.registerWorldGenerator(this, 1073741823);
}
public synchronized void generate(Random aRandom, int aX, int aZ, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
int tempDimensionId = aWorld.provider.dimensionId;
if (tempDimensionId != -1 && tempDimensionId != 1 && !aChunkGenerator.getClass().getName().contains("galacticraft")) {
tempDimensionId = 0;
public void generate(Random aRandom, int aX, int aZ, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {
this.mList.add(new WorldGenContainer(new XSTR(aRandom.nextInt()), aX * 16, aZ * 16, ((aChunkGenerator instanceof ChunkProviderEnd)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.sky) ? 1 : ((aChunkGenerator instanceof ChunkProviderHell)) || (aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8) == BiomeGenBase.hell) ? -1 : 0, aWorld, aChunkGenerator, aChunkProvider, aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8).biomeName));
if (!this.mIsGenerating) {
this.mIsGenerating = true;
int mList_sS=this.mList.size();
for (int i = 0; i < mList_sS; i++) {
((Runnable) this.mList.get(i)).run();
}
this.mList.clear();
this.mIsGenerating = false;
}
new WorldGenContainer(new XSTR(aRandom.nextInt()), aX * 16, aZ * 16, tempDimensionId, aWorld, aChunkGenerator, aChunkProvider, aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8).biomeName).run();
}
//public synchronized void generate(Random aRandom, int aX, int aZ, World aWorld, IChunkProvider aChunkGenerator, IChunkProvider aChunkProvider) {//TODO CHECK???
// int tempDimensionId = aWorld.provider.dimensionId;
// if (tempDimensionId != -1 && tempDimensionId != 1 && !aChunkGenerator.getClass().getName().contains("galacticraft")) {
// tempDimensionId = 0;
// }
// new WorldGenContainer(new XSTR(aRandom.nextInt()), aX * 16, aZ * 16, tempDimensionId, aWorld, aChunkGenerator, aChunkProvider, aWorld.getBiomeGenForCoords(aX * 16 + 8, aZ * 16 + 8).biomeName).run();
//}
public static class WorldGenContainer
implements Runnable {
public final Random mRandom;
@ -101,6 +119,9 @@ public class GT_Worldgenerator
int j = 0;
for (int tZ = this.mZ - 16; j < 3; tZ += 16) {
String tBiome = this.mWorld.getBiomeGenForCoords(tX + 8, tZ + 8).biomeName;
//if (tBiome == null) {//TODO NEEDED?
// tBiome = BiomeGenBase.plains.biomeName;
//}
try {
for (GT_Worldgen tWorldGen : GregTech_API.sWorldgenList) {
tWorldGen.executeWorldgen(this.mWorld, this.mRandom, this.mBiome, this.mDimensionType, tX, tZ, this.mChunkGenerator, this.mChunkProvider);
@ -115,10 +136,11 @@ public class GT_Worldgenerator
}
//Asteroid Worldgen
int tDimensionType = this.mWorld.provider.dimensionId;
String tDimensionName = this.mWorld.provider.getDimensionName();
//String tDimensionName = this.mWorld.provider.getDimensionName();
Random aRandom = new Random();
if (((tDimensionType == 1) && endAsteroids && ((mEndAsteroidProbability <= 1) || (aRandom.nextInt(mEndAsteroidProbability) == 0))) || ((tDimensionName.equals("Asteroids")) && gcAsteroids && ((mGCAsteroidProbability <= 1) || (aRandom.nextInt(mGCAsteroidProbability) == 0)))) {
short primaryMeta = 0;
//if (((tDimensionType == 1) && endAsteroids && ((mEndAsteroidProbability <= 1) || (aRandom.nextInt(mEndAsteroidProbability) == 0))) || ((tDimensionName.equals("Asteroids")) && gcAsteroids && ((mGCAsteroidProbability <= 1) || (aRandom.nextInt(mGCAsteroidProbability) == 0)))) {
if (((tDimensionType == 1) && endAsteroids && ((mEndAsteroidProbability <= 1) || (aRandom.nextInt(mEndAsteroidProbability) == 0)))) {
short primaryMeta = 0;
short secondaryMeta = 0;
short betweenMeta = 0;
short sporadicMeta = 0;
@ -131,7 +153,8 @@ public class GT_Worldgenerator
tRandomWeight -= ((GT_Worldgen_GT_Ore_Layer) tWorldGen).mWeight;
if (tRandomWeight <= 0) {
try {
if ((tWorldGen.mEndAsteroid && tDimensionType == 1) || (tWorldGen.mAsteroid && tDimensionType == -30)) {
//if ((tWorldGen.mEndAsteroid && tDimensionType == 1) || (tWorldGen.mAsteroid && tDimensionType == -30)) {
if (tWorldGen.mEndAsteroid && tDimensionType == 1) {
primaryMeta = tWorldGen.mPrimaryMeta;
secondaryMeta = tWorldGen.mSecondaryMeta;
betweenMeta = tWorldGen.mBetweenMeta;
@ -146,14 +169,14 @@ public class GT_Worldgenerator
}
}
}
if(GT_Values.D1)System.out.println("do asteroid gen: "+this.mX+" "+this.mZ);
//if(GT_Values.D1)System.out.println("do asteroid gen: "+this.mX+" "+this.mZ);
int tX = mX + aRandom.nextInt(16);
int tY = 50 + aRandom.nextInt(200 - 50);
int tZ = mZ + aRandom.nextInt(16);
if (tDimensionType == 1) {
mSize = aRandom.nextInt((int) (endMaxSize - endMinSize));
} else if (tDimensionName.equals("Asteroids")) {
mSize = aRandom.nextInt((int) (gcMaxSize - gcMinSize));
//} else if (tDimensionName.equals("Asteroids")) {
// mSize = aRandom.nextInt((int) (gcMaxSize - gcMinSize));
}
if ((mWorld.getBlock(tX, tY, tZ).isAir(mWorld, tX, tY, tZ))) {
float var6 = aRandom.nextFloat() * 3.141593F;
@ -195,16 +218,16 @@ public class GT_Worldgenerator
} else if (ranOre < 10) {
GT_TileEntity_Ores.setOreBlock(mWorld, eX, eY, eZ, sporadicMeta, false, true);
} else {
if (tDimensionType == 1) {
mWorld.setBlock(eX, eY, eZ, Blocks.end_stone, 0, 2);
} else if (tDimensionName.equals("Asteroids")) {
//int asteroidType = aRandom.nextInt(20);
//if (asteroidType == 19) { //Rare Asteroid?
//if (tDimensionType == 1) {//TODO CHECK
mWorld.setBlock(eX, eY, eZ, Blocks.end_stone, 0, 0);
//} else if (tDimensionName.equals("Asteroids")) {
////int asteroidType = aRandom.nextInt(20);
////if (asteroidType == 19) { //Rare Asteroid?
////mWorld.setBlock(eX, eY, eZ, GregTech_API.sBlockGranites, 8, 3);
////} else {
//mWorld.setBlock(eX, eY, eZ, GregTech_API.sBlockGranites, 8, 3);
//} else {
mWorld.setBlock(eX, eY, eZ, GregTech_API.sBlockGranites, 8, 3);
//}
}
////}
//}
}
}
}
@ -224,4 +247,4 @@ public class GT_Worldgenerator
}
}
}
}
}

View file

@ -1,83 +1,83 @@
package gregtech.common.blocks;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.objects.GT_CopiedBlockTexture;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class GT_Block_Casings1
extends GT_Block_Casings_Abstract {
public GT_Block_Casings1() {
super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE);
for (byte i = 0; i < 16; i = (byte) (i + 1)) {
Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i);
}
Textures.BlockIcons.CASING_BLOCKS[120] = new GT_CopiedBlockTexture(this, 6, 0);
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "ULV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "HV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "EV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "IV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "LuV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "ZPM Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "UV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "MAX Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Bronze Plated Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block");
ItemList.Casing_ULV.set(new ItemStack(this, 1, 0));
ItemList.Casing_LV.set(new ItemStack(this, 1, 1));
ItemList.Casing_MV.set(new ItemStack(this, 1, 2));
ItemList.Casing_HV.set(new ItemStack(this, 1, 3));
ItemList.Casing_EV.set(new ItemStack(this, 1, 4));
ItemList.Casing_IV.set(new ItemStack(this, 1, 5));
ItemList.Casing_LuV.set(new ItemStack(this, 1, 6));
ItemList.Casing_ZPM.set(new ItemStack(this, 1, 7));
ItemList.Casing_UV.set(new ItemStack(this, 1, 8));
ItemList.Casing_MAX.set(new ItemStack(this, 1, 9));
ItemList.Casing_BronzePlatedBricks.set(new ItemStack(this, 1, 10));
ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11));
ItemList.Casing_Coil_Cupronickel_Deprecated.set(new ItemStack(this, 1, 12));
ItemList.Casing_Coil_Kanthal_Deprecated.set(new ItemStack(this, 1, 13));
ItemList.Casing_Coil_Nichrome_Deprecated.set(new ItemStack(this, 1, 14));
ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15));
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
switch (aMeta) {
case 10:
return Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon();
case 11:
return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon();
case 12:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 13:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 14:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon();
}
if (aSide == 0) {
return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon();
}
if (aSide == 1) {
return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon();
}
return Textures.BlockIcons.MACHINECASINGS_SIDE[aMeta].getIcon();
}
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
}
public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) {
return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2];
}
}
package gregtech.common.blocks;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.objects.GT_CopiedBlockTexture;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class GT_Block_Casings1
extends GT_Block_Casings_Abstract {
public GT_Block_Casings1() {
super(GT_Item_Casings1.class, "gt.blockcasings", GT_Material_Casings.INSTANCE);
for (byte i = 0; i < 16; i = (byte) (i + 1)) {
Textures.BlockIcons.CASING_BLOCKS[i] = new GT_CopiedBlockTexture(this, 6, i);
}
Textures.BlockIcons.CASING_BLOCKS[120] = new GT_CopiedBlockTexture(this, 6, 0);
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "ULV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "LV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "MV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "HV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "EV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "IV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "LuV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "ZPM Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "UV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "UHV Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Bronze Plated Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Heat Proof Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cupronickel Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Kanthal Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Nichrome Coil Block (Deprecated)");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Superconducting Coil Block");
ItemList.Casing_ULV.set(new ItemStack(this, 1, 0));
ItemList.Casing_LV.set(new ItemStack(this, 1, 1));
ItemList.Casing_MV.set(new ItemStack(this, 1, 2));
ItemList.Casing_HV.set(new ItemStack(this, 1, 3));
ItemList.Casing_EV.set(new ItemStack(this, 1, 4));
ItemList.Casing_IV.set(new ItemStack(this, 1, 5));
ItemList.Casing_LuV.set(new ItemStack(this, 1, 6));
ItemList.Casing_ZPM.set(new ItemStack(this, 1, 7));
ItemList.Casing_UV.set(new ItemStack(this, 1, 8));
ItemList.Casing_MAX.set(new ItemStack(this, 1, 9));
ItemList.Casing_BronzePlatedBricks.set(new ItemStack(this, 1, 10));
ItemList.Casing_HeatProof.set(new ItemStack(this, 1, 11));
ItemList.Casing_Coil_Cupronickel_Deprecated.set(new ItemStack(this, 1, 12));
ItemList.Casing_Coil_Kanthal_Deprecated.set(new ItemStack(this, 1, 13));
ItemList.Casing_Coil_Nichrome_Deprecated.set(new ItemStack(this, 1, 14));
ItemList.Casing_Coil_Superconductor.set(new ItemStack(this, 1, 15));
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
switch (aMeta) {
case 10:
return Textures.BlockIcons.MACHINE_BRONZEPLATEDBRICKS.getIcon();
case 11:
return Textures.BlockIcons.MACHINE_HEATPROOFCASING.getIcon();
case 12:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 13:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 14:
return Textures.BlockIcons.RENDERING_ERROR.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_COIL_SUPERCONDUCTOR.getIcon();
}
if (aSide == 0) {
return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon();
}
if (aSide == 1) {
return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon();
}
return Textures.BlockIcons.MACHINECASINGS_SIDE[aMeta].getIcon();
}
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
}
public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) {
return aWorld.getBlockMetadata(aX, aY, aZ) > 9 ? super.colorMultiplier(aWorld, aX, aY, aZ) : gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2];
}
}

View file

@ -1,95 +1,95 @@
package gregtech.common.blocks;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.objects.GT_CopiedBlockTexture;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class GT_Block_Casings2
extends GT_Block_Casings_Abstract {
public GT_Block_Casings2() {
super(GT_Item_Casings2.class, "gt.blockcasings2", GT_Material_Casings.INSTANCE);
for (byte i = 0; i < 16; i = (byte) (i + 1)) {
Textures.BlockIcons.CASING_BLOCKS[(i + 16)] = new GT_CopiedBlockTexture(this, 6, i);
}
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Solid Steel Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Frost Proof Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Bronze Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Steel Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Titanium Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Assembling Line Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Processor Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Data Drive Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Containment Field Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Assembler Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Pump Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Motor Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Bronze Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Steel Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Titanium Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Pipe Machine Casing");
ItemList.Casing_SolidSteel.set(new ItemStack(this, 1, 0));
ItemList.Casing_FrostProof.set(new ItemStack(this, 1, 1));
ItemList.Casing_Gearbox_Bronze.set(new ItemStack(this, 1, 2));
ItemList.Casing_Gearbox_Steel.set(new ItemStack(this, 1, 3));
ItemList.Casing_Gearbox_Titanium.set(new ItemStack(this, 1, 4));
ItemList.Casing_Gearbox_TungstenSteel.set(new ItemStack(this, 1, 5));
ItemList.Casing_Processor.set(new ItemStack(this, 1, 6));
ItemList.Casing_DataDrive.set(new ItemStack(this, 1, 7));
ItemList.Casing_ContainmentField.set(new ItemStack(this, 1, 8));
ItemList.Casing_Assembler.set(new ItemStack(this, 1, 9));
ItemList.Casing_Pump.set(new ItemStack(this, 1, 10));
ItemList.Casing_Motor.set(new ItemStack(this, 1, 11));
ItemList.Casing_Pipe_Bronze.set(new ItemStack(this, 1, 12));
ItemList.Casing_Pipe_Steel.set(new ItemStack(this, 1, 13));
ItemList.Casing_Pipe_Titanium.set(new ItemStack(this, 1, 14));
ItemList.Casing_Pipe_TungstenSteel.set(new ItemStack(this, 1, 15));
}
public IIcon getIcon(int aSide, int aMeta) {
switch (aMeta) {
case 0:
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
case 1:
return Textures.BlockIcons.MACHINE_CASING_FROST_PROOF.getIcon();
case 2:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_BRONZE.getIcon();
case 3:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_STEEL.getIcon();
case 4:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TITANIUM.getIcon();
case 5:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.getIcon();
case 6:
return Textures.BlockIcons.MACHINE_CASING_PROCESSOR.getIcon();
case 7:
return Textures.BlockIcons.MACHINE_CASING_DATA_DRIVE.getIcon();
case 8:
return Textures.BlockIcons.MACHINE_CASING_CONTAINMENT_FIELD.getIcon();
case 9:
return Textures.BlockIcons.MACHINE_CASING_ASSEMBLER.getIcon();
case 10:
return Textures.BlockIcons.MACHINE_CASING_PUMP.getIcon();
case 11:
return Textures.BlockIcons.MACHINE_CASING_MOTOR.getIcon();
case 12:
return Textures.BlockIcons.MACHINE_CASING_PIPE_BRONZE.getIcon();
case 13:
return Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL.getIcon();
case 14:
return Textures.BlockIcons.MACHINE_CASING_PIPE_TITANIUM.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_CASING_PIPE_TUNGSTENSTEEL.getIcon();
}
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
}
public float getExplosionResistance(Entity aTNT, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) {
return aWorld.getBlockMetadata(aX, aY, aZ) == 8 ? Blocks.bedrock.getExplosionResistance(aTNT) : super.getExplosionResistance(aTNT, aWorld, aX, aY, aZ, eX, eY, eZ);
}
}
package gregtech.common.blocks;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.objects.GT_CopiedBlockTexture;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class GT_Block_Casings2
extends GT_Block_Casings_Abstract {
public GT_Block_Casings2() {
super(GT_Item_Casings2.class, "gt.blockcasings2", GT_Material_Casings.INSTANCE);
for (byte i = 0; i < 16; i = (byte) (i + 1)) {
Textures.BlockIcons.CASING_BLOCKS[(i + 16)] = new GT_CopiedBlockTexture(this, 6, i);
}
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Solid Steel Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Frost Proof Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Bronze Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Steel Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Titanium Gear Box Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Assembling Line Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Processor Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Data Drive Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Containment Field Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Assembler Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Pump Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Motor Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Bronze Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Steel Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Titanium Pipe Machine Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Tungstensteel Pipe Machine Casing");
ItemList.Casing_SolidSteel.set(new ItemStack(this, 1, 0));
ItemList.Casing_FrostProof.set(new ItemStack(this, 1, 1));
ItemList.Casing_Gearbox_Bronze.set(new ItemStack(this, 1, 2));
ItemList.Casing_Gearbox_Steel.set(new ItemStack(this, 1, 3));
ItemList.Casing_Gearbox_Titanium.set(new ItemStack(this, 1, 4));
ItemList.Casing_Gearbox_TungstenSteel.set(new ItemStack(this, 1, 5));
ItemList.Casing_Processor.set(new ItemStack(this, 1, 6));
ItemList.Casing_DataDrive.set(new ItemStack(this, 1, 7));
ItemList.Casing_ContainmentField.set(new ItemStack(this, 1, 8));
ItemList.Casing_Assembler.set(new ItemStack(this, 1, 9));
ItemList.Casing_Pump.set(new ItemStack(this, 1, 10));
ItemList.Casing_Motor.set(new ItemStack(this, 1, 11));
ItemList.Casing_Pipe_Bronze.set(new ItemStack(this, 1, 12));
ItemList.Casing_Pipe_Steel.set(new ItemStack(this, 1, 13));
ItemList.Casing_Pipe_Titanium.set(new ItemStack(this, 1, 14));
ItemList.Casing_Pipe_TungstenSteel.set(new ItemStack(this, 1, 15));
}
public IIcon getIcon(int aSide, int aMeta) {
switch (aMeta) {
case 0:
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
case 1:
return Textures.BlockIcons.MACHINE_CASING_FROST_PROOF.getIcon();
case 2:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_BRONZE.getIcon();
case 3:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_STEEL.getIcon();
case 4:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TITANIUM.getIcon();
case 5:
return Textures.BlockIcons.MACHINE_CASING_GEARBOX_TUNGSTENSTEEL.getIcon();
case 6:
return Textures.BlockIcons.MACHINE_CASING_PROCESSOR.getIcon();
case 7:
return Textures.BlockIcons.MACHINE_CASING_DATA_DRIVE.getIcon();
case 8:
return Textures.BlockIcons.MACHINE_CASING_CONTAINMENT_FIELD.getIcon();
case 9:
return Textures.BlockIcons.MACHINE_CASING_ASSEMBLER.getIcon();
case 10:
return Textures.BlockIcons.MACHINE_CASING_PUMP.getIcon();
case 11:
return Textures.BlockIcons.MACHINE_CASING_MOTOR.getIcon();
case 12:
return Textures.BlockIcons.MACHINE_CASING_PIPE_BRONZE.getIcon();
case 13:
return Textures.BlockIcons.MACHINE_CASING_PIPE_STEEL.getIcon();
case 14:
return Textures.BlockIcons.MACHINE_CASING_PIPE_TITANIUM.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_CASING_PIPE_TUNGSTENSTEEL.getIcon();
}
return Textures.BlockIcons.MACHINE_CASING_SOLID_STEEL.getIcon();
}
public float getExplosionResistance(Entity aTNT, World aWorld, int aX, int aY, int aZ, double eX, double eY, double eZ) {
return aWorld.getBlockMetadata(aX, aY, aZ) == 8 ? Blocks.bedrock.getExplosionResistance(aTNT) : super.getExplosionResistance(aTNT, aWorld, aX, aY, aZ, eX, eY, eZ);
}
}

View file

@ -0,0 +1,99 @@
package gregtech.common.blocks;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.ItemList;
import gregtech.api.enums.Textures;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
public class GT_Block_Casings6
extends GT_Block_Casings_Abstract {
public GT_Block_Casings6() {
super(GT_Item_Casings6.class, "gt.blockcasings6", GT_Material_Casings.INSTANCE);
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Hermetic Casing");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Hermetic Casing I");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Hermetic Casing II");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Hermetic Casing III");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Hermetic Casing IV");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Hermetic Casing V");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Hermetic Casing VI");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Hermetic Casing VII");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Hermetic Casing VII");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Hermetic Casing IX");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Hermetic Casing X");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Hermetic Casing XI");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Hermetic Casing XII");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Hermetic Casing XIII");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Hermetic Casing XIV");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Hermetic Casing XV");
ItemList.Casing_Tank_0.set(new ItemStack(this, 1, 0));
ItemList.Casing_Tank_1.set(new ItemStack(this, 1, 1));
ItemList.Casing_Tank_2.set(new ItemStack(this, 1, 2));
ItemList.Casing_Tank_3.set(new ItemStack(this, 1, 3));
ItemList.Casing_Tank_4.set(new ItemStack(this, 1, 4));
ItemList.Casing_Tank_5.set(new ItemStack(this, 1, 5));
ItemList.Casing_Tank_6.set(new ItemStack(this, 1, 6));
ItemList.Casing_Tank_7.set(new ItemStack(this, 1, 7));
ItemList.Casing_Tank_8.set(new ItemStack(this, 1, 8));
ItemList.Casing_Tank_9.set(new ItemStack(this, 1, 9));
ItemList.Casing_Tank_10.set(new ItemStack(this, 1, 10));
ItemList.Casing_Tank_11.set(new ItemStack(this, 1, 11));
ItemList.Casing_Tank_12.set(new ItemStack(this, 1, 12));
ItemList.Casing_Tank_13.set(new ItemStack(this, 1, 13));
ItemList.Casing_Tank_14.set(new ItemStack(this, 1, 14));
ItemList.Casing_Tank_15.set(new ItemStack(this, 1, 15));
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int aSide, int aMeta) {
if (aSide == 0) {
return Textures.BlockIcons.MACHINECASINGS_BOTTOM[aMeta].getIcon();
}
if (aSide == 1) {
return Textures.BlockIcons.MACHINECASINGS_TOP[aMeta].getIcon();
}
switch (aMeta) {
case 1:
return Textures.BlockIcons.MACHINE_CASING_TANK_1.getIcon();
case 2:
return Textures.BlockIcons.MACHINE_CASING_TANK_2.getIcon();
case 3:
return Textures.BlockIcons.MACHINE_CASING_TANK_3.getIcon();
case 4:
return Textures.BlockIcons.MACHINE_CASING_TANK_4.getIcon();
case 5:
return Textures.BlockIcons.MACHINE_CASING_TANK_5.getIcon();
case 6:
return Textures.BlockIcons.MACHINE_CASING_TANK_6.getIcon();
case 7:
return Textures.BlockIcons.MACHINE_CASING_TANK_7.getIcon();
case 8:
return Textures.BlockIcons.MACHINE_CASING_TANK_8.getIcon();
case 9:
return Textures.BlockIcons.MACHINE_CASING_TANK_9.getIcon();
case 10:
return Textures.BlockIcons.MACHINE_CASING_TANK_10.getIcon();
case 11:
return Textures.BlockIcons.MACHINE_CASING_TANK_11.getIcon();
case 12:
return Textures.BlockIcons.MACHINE_CASING_TANK_12.getIcon();
case 13:
return Textures.BlockIcons.MACHINE_CASING_TANK_13.getIcon();
case 14:
return Textures.BlockIcons.MACHINE_CASING_TANK_14.getIcon();
case 15:
return Textures.BlockIcons.MACHINE_CASING_TANK_15.getIcon();
default:
return Textures.BlockIcons.MACHINE_CASING_TANK_0.getIcon();
}
}
public int colorMultiplier(IBlockAccess aWorld, int aX, int aY, int aZ) {
return gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[0] << 16 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[1] << 8 | gregtech.api.enums.Dyes.MACHINE_METAL.mRGBa[2];
}
}

View file

@ -1,95 +1,95 @@
package gregtech.common.blocks;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.fluids.IFluidBlock;
public class GT_Block_Concretes
extends GT_Block_Stones_Abstract {
public GT_Block_Concretes() {
super(GT_Item_Concretes.class, "gt.blockconcretes");
setResistance(20.0F);
this.slipperiness = 0.9F;
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Dark Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Dark Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Light Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Light Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Light Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Light Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Light Concrete");
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 0));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 1));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 2));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 3));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 4));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 5));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 6));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 7));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 8));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 9));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 10));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 11));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 12));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 13));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 14));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 15));
}
public int getHarvestLevel(int aMeta) {
return 1;
}
public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {
return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ);
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
return gregtech.api.enums.Textures.BlockIcons.CONCRETES[aMeta].getIcon();
}
return gregtech.api.enums.Textures.BlockIcons.CONCRETES[0].getIcon();
}
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) {
Block tBlock = aWorld.getBlock(aX, aY + 1, aZ);
if (((aEntity instanceof EntityLivingBase)) && (!(tBlock instanceof IFluidBlock)) && (!(tBlock instanceof BlockLiquid)) && (aEntity.onGround) && (!aEntity.isInWater()) && (!aEntity.isWet())) {
if (aEntity.isSneaking()) {
aEntity.motionX *= 0.8999999761581421D;
aEntity.motionZ *= 0.8999999761581421D;
} else {
if (aEntity.motionX < 6.0 && aEntity.motionZ < 6.0) {
aEntity.motionX *= 1.100000023841858D;
aEntity.motionZ *= 1.100000023841858D;
}
}
}
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
Block tBlock = aWorld.getBlock(aX, aY + 1, aZ);
if (((tBlock instanceof IFluidBlock)) || ((tBlock instanceof BlockLiquid))) {
return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 0.875D, aZ + 1);
}
}
package gregtech.common.blocks;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.block.Block;
import net.minecraft.block.BlockLiquid;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.fluids.IFluidBlock;
public class GT_Block_Concretes
extends GT_Block_Stones_Abstract {
public GT_Block_Concretes() {
super(GT_Item_Concretes.class, "gt.blockconcretes");
setResistance(20.0F);
this.slipperiness = 0.9F;
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Dark Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Dark Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Dark Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Dark Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Light Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Light Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Light Concrete Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Light Concrete Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Light Concrete");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Light Concrete");
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 0));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 1));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 2));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 3));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 4));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 5));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 6));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 7));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 8));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 9));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 10));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 11));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 12));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 13));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 14));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.Concrete, new ItemStack(this, 1, 15));
}
public int getHarvestLevel(int aMeta) {
return 1;
}
public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {
return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ);
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
return gregtech.api.enums.Textures.BlockIcons.CONCRETES[aMeta].getIcon();
}
return gregtech.api.enums.Textures.BlockIcons.CONCRETES[0].getIcon();
}
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity aEntity) {
Block tBlock = aWorld.getBlock(aX, aY + 1, aZ);
if (((aEntity instanceof EntityLivingBase)) && (!(tBlock instanceof IFluidBlock)) && (!(tBlock instanceof BlockLiquid)) && (aEntity.onGround) && (!aEntity.isInWater()) && (!aEntity.isWet())) {
if (aEntity.isSneaking()) {
aEntity.motionX *= 0.8999999761581421D;
aEntity.motionZ *= 0.8999999761581421D;
} else {
if (aEntity.motionX < 6.0 && aEntity.motionZ < 6.0) {
aEntity.motionX *= 1.100000023841858D;
aEntity.motionZ *= 1.100000023841858D;
}
}
}
}
public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ) {
Block tBlock = aWorld.getBlock(aX, aY + 1, aZ);
if (((tBlock instanceof IFluidBlock)) || ((tBlock instanceof BlockLiquid))) {
return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
return AxisAlignedBB.getBoundingBox(aX, aY, aZ, aX + 1, aY + 0.875D, aZ + 1);
}
}

View file

@ -1,72 +1,72 @@
package gregtech.common.blocks;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.entity.Entity;
import net.minecraft.entity.boss.EntityWither;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class GT_Block_Granites
extends GT_Block_Stones_Abstract {
public GT_Block_Granites() {
super(GT_Item_Granites.class, "gt.blockgranites");
setResistance(60.0F);
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Black Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Black Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Red Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Red Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Red Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Red Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Red Granite");
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 0));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 1));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 2));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 3));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 4));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 5));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 6));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 7));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 8));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 9));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 10));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 11));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 12));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 13));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 14));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 15));
}
public int getHarvestLevel(int aMeta) {
return 3;
}
public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {
return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F;
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon();
}
return gregtech.api.enums.Textures.BlockIcons.GRANITES[0].getIcon();
}
public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) {
return !(entity instanceof EntityWither);
}
}
package gregtech.common.blocks;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_OreDictUnificator;
import net.minecraft.entity.Entity;
import net.minecraft.entity.boss.EntityWither;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class GT_Block_Granites
extends GT_Block_Stones_Abstract {
public GT_Block_Granites() {
super(GT_Item_Granites.class, "gt.blockgranites");
setResistance(60.0F);
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".0.name", "Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".1.name", "Black Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".2.name", "Mossy Black Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".3.name", "Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".4.name", "Cracked Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".5.name", "Mossy Black Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".6.name", "Chiseled Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".7.name", "Smooth Black Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".8.name", "Red Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".9.name", "Red Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".10.name", "Mossy Red Granite Cobblestone");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".11.name", "Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".12.name", "Cracked Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".13.name", "Mossy Red Granite Bricks");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".14.name", "Chiseled Red Granite");
GT_LanguageManager.addStringLocalization(getUnlocalizedName() + ".15.name", "Smooth Red Granite");
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 0));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 1));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 2));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 3));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 4));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 5));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 6));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteBlack, new ItemStack(this, 1, 7));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 8));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 9));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 10));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 11));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 12));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 13));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 14));
GT_OreDictUnificator.registerOre(OrePrefixes.stone, Materials.GraniteRed, new ItemStack(this, 1, 15));
}
public int getHarvestLevel(int aMeta) {
return 3;
}
public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {
return this.blockHardness = Blocks.stone.getBlockHardness(aWorld, aX, aY, aZ) * 3.0F;
}
public IIcon getIcon(int aSide, int aMeta) {
if ((aMeta >= 0) && (aMeta < 16)) {
return gregtech.api.enums.Textures.BlockIcons.GRANITES[aMeta].getIcon();
}
return gregtech.api.enums.Textures.BlockIcons.GRANITES[0].getIcon();
}
public boolean canEntityDestroy(IBlockAccess world, int x, int y, int z, Entity entity) {
return !(entity instanceof EntityWither);
}
}

View file

@ -196,6 +196,38 @@ public class GT_Block_Machines
return super.getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
@Override
@SideOnly(Side.CLIENT)
public AxisAlignedBB getSelectedBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ)
{
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) {
return ((IGregTechTileEntity) tTileEntity).getCollisionBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
return super.getSelectedBoundingBoxFromPool(aWorld, aX, aY, aZ);
}
@Override //THIS
public void setBlockBoundsBasedOnState(IBlockAccess blockAccess, int aX, int aY, int aZ) {
TileEntity tTileEntity = blockAccess.getTileEntity(aX,aY,aZ);
if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) {
AxisAlignedBB bbb=((IGregTechTileEntity)tTileEntity).getCollisionBoundingBoxFromPool(((IGregTechTileEntity)tTileEntity).getWorld(), 0, 0, 0);
minX=bbb.minX;
minY=bbb.minY;
minZ=bbb.minZ;
maxX=bbb.maxX;
maxY=bbb.maxY;
maxZ=bbb.maxZ;
return;
}
super.setBlockBoundsBasedOnState(blockAccess,aX,aY,aZ);
}
@Override
public void setBlockBoundsForItemRender() {
super.setBlockBounds(0,0,0,1,1,1);
}
public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider) {
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if (((tTileEntity instanceof IGregTechTileEntity)) && (((IGregTechTileEntity) tTileEntity).getMetaTileEntity() != null)) {

View file

@ -47,11 +47,27 @@ public class GT_Block_Ores extends GT_Block_Ores_Abstract {
@Override
public Materials[] getDroppedDusts() { //Must have 8 entries; can be null.
return new Materials[]{Materials.Stone, Materials.Netherrack, Materials.Endstone, Materials.GraniteBlack, Materials.GraniteRed, Materials.Marble, Materials.Basalt, Materials.Stone};
return new Materials[]{Materials.Stone, Materials.Netherrack, Materials.Endstone, Materials.GraniteBlack, Materials.GraniteRed, Materials.Marble, Materials.Basalt, null};
}
@Override
public ITexture[] getTextureSet() { //Must have 16 entries.
return new ITexture[]{new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.netherrack, 0, 0), new GT_CopiedBlockTexture(Blocks.end_stone, 0, 0), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_BLACK_STONE), new GT_RenderedTexture(Textures.BlockIcons.GRANITE_RED_STONE), new GT_RenderedTexture(Textures.BlockIcons.MARBLE_STONE), new GT_RenderedTexture(Textures.BlockIcons.BASALT_STONE), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0)};
return new ITexture[]{
new GT_CopiedBlockTexture(Blocks.stone, 0, 0),
new GT_CopiedBlockTexture(Blocks.netherrack, 0, 0),
new GT_CopiedBlockTexture(Blocks.end_stone, 0, 0),
new GT_RenderedTexture(Textures.BlockIcons.GRANITE_BLACK_STONE),
new GT_RenderedTexture(Textures.BlockIcons.GRANITE_RED_STONE),
new GT_RenderedTexture(Textures.BlockIcons.MARBLE_STONE),
new GT_RenderedTexture(Textures.BlockIcons.BASALT_STONE),
new GT_CopiedBlockTexture(Blocks.stone, 0, 0),
new GT_CopiedBlockTexture(Blocks.stone, 0, 0),
new GT_CopiedBlockTexture(Blocks.netherrack, 0, 0),
new GT_CopiedBlockTexture(Blocks.end_stone, 0, 0),
new GT_RenderedTexture(Textures.BlockIcons.GRANITE_BLACK_STONE),
new GT_RenderedTexture(Textures.BlockIcons.GRANITE_RED_STONE),
new GT_RenderedTexture(Textures.BlockIcons.MARBLE_STONE),
new GT_RenderedTexture(Textures.BlockIcons.BASALT_STONE),
new GT_CopiedBlockTexture(Blocks.stone, 0, 0)};
}
}
}

View file

@ -1,47 +0,0 @@
package gregtech.common.blocks;
import cpw.mods.fml.common.registry.GameRegistry;
import gregtech.api.GregTech_API;
import gregtech.api.enums.Materials;
import gregtech.api.enums.OrePrefixes;
import gregtech.api.interfaces.ITexture;
import gregtech.api.objects.GT_CopiedBlockTexture;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Blocks;
public class GT_Block_Ores_GC extends GT_Block_Ores_Abstract {
Block aMoonBlock = GameRegistry.findBlock("GalacticraftCore", "tile.moonBlock");
Block aMarsBlock = GameRegistry.findBlock("GalacticraftMars", "tile.mars");
public GT_Block_Ores_GC() {
super("gt.blockores.gc", 4, true, Material.rock);
if (aMoonBlock == null) aMoonBlock = Blocks.stone;
if (aMarsBlock == null) aMarsBlock = Blocks.stone;
}
@Override
public String getUnlocalizedName() {
return "gt.blockores.gc";
}
@Override
public OrePrefixes[] getProcessingPrefix() { //Must have 8 entries.
return new OrePrefixes[]{OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore, OrePrefixes.ore};
}
@Override
public Block getDroppedBlock() {
return GregTech_API.sBlockOresGC;
}
@Override
public Materials[] getDroppedDusts() { //Must have 8 entries; can be null.
return new Materials[]{Materials.Stone, Materials.Stone, Materials.Stone, Materials.Stone, Materials.Stone, Materials.Stone, Materials.Stone, Materials.Stone};
}
@Override
public ITexture[] getTextureSet() { //Must have 16 entries.
return new ITexture[]{new GT_CopiedBlockTexture(aMoonBlock, 0, 3), new GT_CopiedBlockTexture(aMoonBlock, 0, 4), new GT_CopiedBlockTexture(aMoonBlock, 0, 6), new GT_CopiedBlockTexture(aMarsBlock, 0, 9), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0),new GT_CopiedBlockTexture(aMoonBlock, 0, 3), new GT_CopiedBlockTexture(aMoonBlock, 0, 4), new GT_CopiedBlockTexture(aMoonBlock, 0, 6), new GT_CopiedBlockTexture(aMarsBlock, 0, 9), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0), new GT_CopiedBlockTexture(Blocks.stone, 0, 0)};
}
}

View file

@ -47,4 +47,4 @@ public class GT_Block_Ores_UB3 extends GT_Block_Ores_Abstract {
public ITexture[] getTextureSet() { //Must have 16 entries.
return new ITexture[]{new GT_CopiedBlockTexture(aUBBlock, 0, 0), new GT_CopiedBlockTexture(aUBBlock, 0, 1), new GT_CopiedBlockTexture(aUBBlock, 0, 2), new GT_CopiedBlockTexture(aUBBlock, 0, 3), new GT_CopiedBlockTexture(aUBBlock, 0, 4), new GT_CopiedBlockTexture(aUBBlock, 0, 5), new GT_CopiedBlockTexture(aUBBlock, 0, 6), new GT_CopiedBlockTexture(aUBBlock, 0, 7), new GT_CopiedBlockTexture(aUBBlock, 0, 0), new GT_CopiedBlockTexture(aUBBlock, 0, 1), new GT_CopiedBlockTexture(aUBBlock, 0, 2), new GT_CopiedBlockTexture(aUBBlock, 0, 3), new GT_CopiedBlockTexture(aUBBlock, 0, 4), new GT_CopiedBlockTexture(aUBBlock, 0, 5), new GT_CopiedBlockTexture(aUBBlock, 0, 6), new GT_CopiedBlockTexture(aUBBlock, 0, 7)};
}
}
}

View file

@ -48,7 +48,7 @@ public class GT_Block_Stones extends GT_Block_Stones_Abstract {
}
public int getHarvestLevel(int aMeta) {
return 1;
return 2;
}
public float getBlockHardness(World aWorld, int aX, int aY, int aZ) {

View file

@ -1,27 +1,27 @@
package gregtech.common.blocks;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class GT_Item_Casings1
extends GT_Item_Casings_Abstract {
public GT_Item_Casings1(Block par1) {
super(par1);
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
int tMeta = getDamage(aStack);
if (tMeta >= 12 && tMeta <= 14) {
aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated1Tooltip);
aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated2Tooltip);
}
}
}
package gregtech.common.blocks;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import java.util.List;
public class GT_Item_Casings1
extends GT_Item_Casings_Abstract {
public GT_Item_Casings1(Block par1) {
super(par1);
}
@Override
@SideOnly(Side.CLIENT)
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
int tMeta = getDamage(aStack);
if (tMeta >= 12 && tMeta <= 14) {
aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated1Tooltip);
aList.add(EnumChatFormatting.ITALIC + this.mCoilOverheated2Tooltip);
}
}
}

View file

@ -1,22 +1,22 @@
package gregtech.common.blocks;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Casings2
extends GT_Item_Casings_Abstract {
public GT_Item_Casings2(Block par1) {
super(par1);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
switch (getDamage(aStack)) {
case 8:
aList.add(this.mBlastProofTooltip);
}
}
}
package gregtech.common.blocks;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Casings2
extends GT_Item_Casings_Abstract {
public GT_Item_Casings2(Block par1) {
super(par1);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
switch (getDamage(aStack)) {
case 8:
aList.add(this.mBlastProofTooltip);
}
}
}

View file

@ -1,10 +1,10 @@
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Casings3
extends GT_Item_Casings_Abstract {
public GT_Item_Casings3(Block par1) {
super(par1);
}
}
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Casings3
extends GT_Item_Casings_Abstract {
public GT_Item_Casings3(Block par1) {
super(par1);
}
}

View file

@ -1,10 +1,10 @@
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Casings4
extends GT_Item_Casings_Abstract {
public GT_Item_Casings4(Block par1) {
super(par1);
}
}
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Casings4
extends GT_Item_Casings_Abstract {
public GT_Item_Casings4(Block par1) {
super(par1);
}
}

View file

@ -1,13 +1,13 @@
package gregtech.common.blocks;
import java.util.List;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Casings5
extends GT_Item_Casings_Abstract {
public GT_Item_Casings5(Block par1) {

View file

@ -0,0 +1,10 @@
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Casings6
extends GT_Item_Casings_Abstract {
public GT_Item_Casings6(Block par1) {
super(par1);
}
}

View file

@ -1,46 +1,46 @@
package gregtech.common.blocks;
import java.util.List;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
public abstract class GT_Item_Casings_Abstract
extends ItemBlock {
protected final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block");
protected final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!");
protected final String mCoil01Tooltip = GT_LanguageManager.addStringLocalization("gt.coil01tooltip", "Base Heating Capacity = 1800 Kelvin");
protected final String mCoil02Tooltip = GT_LanguageManager.addStringLocalization("gt.coil02tooltip", "Base Heating Capacity = 2700 Kelvin");
protected final String mCoil03Tooltip = GT_LanguageManager.addStringLocalization("gt.coil03tooltip", "Base Heating Capacity = 3600 Kelvin");
protected final String mCoil04Tooltip = GT_LanguageManager.addStringLocalization("gt.coil04tooltip", "Base Heating Capacity = 4500 Kelvin");
protected final String mCoil05Tooltip = GT_LanguageManager.addStringLocalization("gt.coil05tooltip", "Base Heating Capacity = 5400 Kelvin");
protected final String mCoil06Tooltip = GT_LanguageManager.addStringLocalization("gt.coil06tooltip", "Base Heating Capacity = 7200 Kelvin");
protected final String mCoil07Tooltip = GT_LanguageManager.addStringLocalization("gt.coil07tooltip", "Base Heating Capacity = 9001 Kelvin");
protected final String mCoilOverheated1Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated1.tooltip", "These coils are deprecated");
protected final String mCoilOverheated2Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated2.tooltip", "Place in crafting grid to get regular coils");
protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof");
public GT_Item_Casings_Abstract(Block par1) {
super(par1);
setMaxDamage(0);
setHasSubtypes(true);
setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS);
}
public int getMetadata(int aMeta) {
return aMeta;
}
public String getUnlocalizedName(ItemStack aStack) {
return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
aList.add(this.mNoMobsToolTip);
aList.add(this.mNoTileEntityToolTip);
}
}
package gregtech.common.blocks;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import java.util.List;
public abstract class GT_Item_Casings_Abstract
extends ItemBlock {
protected final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block");
protected final String mNoTileEntityToolTip = GT_LanguageManager.addStringLocalization("gt.notileentityinthisblock", "This is NOT a TileEntity!");
protected final String mCoil01Tooltip = GT_LanguageManager.addStringLocalization("gt.coil01tooltip", "Base Heating Capacity = 1800 Kelvin");
protected final String mCoil02Tooltip = GT_LanguageManager.addStringLocalization("gt.coil02tooltip", "Base Heating Capacity = 2700 Kelvin");
protected final String mCoil03Tooltip = GT_LanguageManager.addStringLocalization("gt.coil03tooltip", "Base Heating Capacity = 3600 Kelvin");
protected final String mCoil04Tooltip = GT_LanguageManager.addStringLocalization("gt.coil04tooltip", "Base Heating Capacity = 4500 Kelvin");
protected final String mCoil05Tooltip = GT_LanguageManager.addStringLocalization("gt.coil05tooltip", "Base Heating Capacity = 5400 Kelvin");
protected final String mCoil06Tooltip = GT_LanguageManager.addStringLocalization("gt.coil06tooltip", "Base Heating Capacity = 7200 Kelvin");
protected final String mCoil07Tooltip = GT_LanguageManager.addStringLocalization("gt.coil07tooltip", "Base Heating Capacity = 9001 Kelvin");
protected final String mCoilOverheated1Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated1.tooltip", "These coils are deprecated");
protected final String mCoilOverheated2Tooltip = GT_LanguageManager.addStringLocalization("gt.coil.overheated2.tooltip", "Place in crafting grid to get regular coils");
protected final String mBlastProofTooltip = GT_LanguageManager.addStringLocalization("gt.blastprooftooltip", "This Block is Blast Proof");
public GT_Item_Casings_Abstract(Block par1) {
super(par1);
setMaxDamage(0);
setHasSubtypes(true);
setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS);
}
public int getMetadata(int aMeta) {
return aMeta;
}
public String getUnlocalizedName(ItemStack aStack) {
return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
aList.add(this.mNoMobsToolTip);
aList.add(this.mNoTileEntityToolTip);
}
}

View file

@ -1,22 +1,22 @@
package gregtech.common.blocks;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Concretes
extends GT_Item_Stones_Abstract {
private final String mRunFasterToolTip = GT_LanguageManager.addStringLocalization("gt.runfastertooltip", "You can walk faster on this Block");
public GT_Item_Concretes(Block par1) {
super(par1);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
aList.add(this.mRunFasterToolTip);
}
}
package gregtech.common.blocks;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Concretes
extends GT_Item_Stones_Abstract {
private final String mRunFasterToolTip = GT_LanguageManager.addStringLocalization("gt.runfastertooltip", "You can walk faster on this Block");
public GT_Item_Concretes(Block par1) {
super(par1);
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
aList.add(this.mRunFasterToolTip);
}
}

View file

@ -1,10 +1,10 @@
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Granites
extends GT_Item_Stones_Abstract {
public GT_Item_Granites(Block par1) {
super(par1);
}
}
package gregtech.common.blocks;
import net.minecraft.block.Block;
public class GT_Item_Granites
extends GT_Item_Stones_Abstract {
public GT_Item_Granites(Block par1) {
super(par1);
}
}

View file

@ -33,16 +33,21 @@ public class GT_Item_Machines
if ((tDamage <= 0) || (tDamage >= GregTech_API.METATILEENTITIES.length)) {
return;
}
TileEntity temp = GregTech_API.sBlockMachines.createTileEntity(aPlayer == null ? GT_Values.DW : aPlayer.worldObj, GregTech_API.METATILEENTITIES[tDamage] == null ? 0 : GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType());
temp.setWorldObj(aPlayer == null ? GT_Values.DW : aPlayer.worldObj);
temp.xCoord = 0;
temp.yCoord = 0;
temp.zCoord = 0;
if ((temp instanceof IGregTechTileEntity)) {
IGregTechTileEntity tTileEntity = (IGregTechTileEntity) temp;
tTileEntity.setInitialValuesAsNBT(new NBTTagCompound(), (short) tDamage);
if (tTileEntity.getDescription() != null) {
int i = 0;
if (tDamage == 0) {
aList.add("WARNING, THE EXISTENCE OF THIS ITEM IS A BUG");
aList.add("IF YOU GOT IT IN SURVIVAL THEN PLEASE REPORT IT");
} else {
TileEntity temp = GregTech_API.sBlockMachines.createTileEntity(aPlayer == null ? GT_Values.DW : aPlayer.worldObj, GregTech_API.METATILEENTITIES[tDamage] == null ? 0 : GregTech_API.METATILEENTITIES[tDamage].getTileEntityBaseType());
if (temp != null) {
temp.setWorldObj(aPlayer == null ? GT_Values.DW : aPlayer.worldObj);
temp.xCoord = 0;
temp.yCoord = 0;
temp.zCoord = 0;
if ((temp instanceof IGregTechTileEntity)) {
IGregTechTileEntity tTileEntity = (IGregTechTileEntity) temp;
tTileEntity.setInitialValuesAsNBT(new NBTTagCompound(), (short) tDamage);
if (tTileEntity.getDescription() != null) {
int i = 0;
for (String tDescription : tTileEntity.getDescription()) {
if (GT_Utility.isStringValid(tDescription)) {
if(tDescription.contains("%%%")){
@ -54,18 +59,20 @@ public class GT_Item_Machines
aList.add(tTranslated.equals("") ? tDescription : tTranslated);}
}else i++;
}
}
if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + tTileEntity.getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getEUCapacity() > 0L) {
if (tTileEntity.getInputVoltage() > 0L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_IN", "Voltage IN: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + tTileEntity.getInputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getInputVoltage())] + ")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getOutputVoltage() > 0L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + tTileEntity.getOutputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getOutputVoltage())] + ")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getOutputAmperage() > 1L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY);
}
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "EU Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY);
}
}
if (tTileEntity.getOutputVoltage() > 0L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_OUT", "Voltage OUT: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.GREEN + tTileEntity.getOutputVoltage() + " (" + GT_Values.VN[GT_Utility.getTier(tTileEntity.getOutputVoltage())] + ")" + EnumChatFormatting.GRAY);
}
if (tTileEntity.getOutputAmperage() > 1L) {
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_AMOUNT", "Amperage: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.YELLOW + tTileEntity.getOutputAmperage() + EnumChatFormatting.GRAY);
}
aList.add(GT_LanguageManager.addStringLocalization("TileEntity_EUp_STORE", "Capacity: ", !GregTech_API.sPostloadFinished ) + EnumChatFormatting.BLUE + tTileEntity.getEUCapacity() + EnumChatFormatting.GRAY);
}
}
NBTTagCompound aNBT = aStack.getTagCompound();
@ -142,4 +149,4 @@ public class GT_Item_Machines
}
return true;
}
}
}

View file

@ -1,37 +1,37 @@
package gregtech.common.blocks;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Stones_Abstract
extends ItemBlock {
private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block");
public GT_Item_Stones_Abstract(Block par1) {
super(par1);
setMaxDamage(0);
setHasSubtypes(true);
setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS);
}
public String getUnlocalizedName(ItemStack aStack) {
return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack);
}
public int getMetadata(int aMeta) {
return aMeta;
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
if (aStack.getItemDamage() % 8 >= 3) {
aList.add(this.mNoMobsToolTip);
}
}
}
package gregtech.common.blocks;
import gregtech.api.GregTech_API;
import gregtech.api.util.GT_LanguageManager;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack;
import java.util.List;
public class GT_Item_Stones_Abstract
extends ItemBlock {
private final String mNoMobsToolTip = GT_LanguageManager.addStringLocalization("gt.nomobspawnsonthisblock", "Mobs cannot Spawn on this Block");
public GT_Item_Stones_Abstract(Block par1) {
super(par1);
setMaxDamage(0);
setHasSubtypes(true);
setCreativeTab(GregTech_API.TAB_GREGTECH_MATERIALS);
}
public String getUnlocalizedName(ItemStack aStack) {
return this.field_150939_a.getUnlocalizedName() + "." + getDamage(aStack);
}
public int getMetadata(int aMeta) {
return aMeta;
}
public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aF3_H) {
super.addInformation(aStack, aPlayer, aList, aF3_H);
if (aStack.getItemDamage() % 8 >= 3) {
aList.add(this.mNoMobsToolTip);
}
}
}

View file

@ -1,18 +1,18 @@
package gregtech.common.blocks;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
public class GT_Material_Casings
extends Material {
public static final Material INSTANCE = new GT_Material_Casings();
private GT_Material_Casings() {
super(MapColor.ironColor);
setRequiresTool();
}
public boolean isOpaque() {
return false;
}
}
package gregtech.common.blocks;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
public class GT_Material_Casings
extends Material {
public static final Material INSTANCE = new GT_Material_Casings();
private GT_Material_Casings() {
super(MapColor.ironColor);
setRequiresTool();
}
public boolean isOpaque() {
return true;
}
}

View file

@ -1,18 +1,18 @@
package gregtech.common.blocks;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
public class GT_Material_Machines
extends Material {
public GT_Material_Machines() {
super(MapColor.ironColor);
setRequiresTool();
setImmovableMobility();
setAdventureModeExempt();
}
public boolean isOpaque() {
return false;
}
}
package gregtech.common.blocks;
import net.minecraft.block.material.MapColor;
import net.minecraft.block.material.Material;
public class GT_Material_Machines
extends Material {
public GT_Material_Machines() {
super(MapColor.ironColor);
setRequiresTool();
setImmovableMobility();
setAdventureModeExempt();
}
public boolean isOpaque() {
return false;
}
}

View file

@ -1,60 +1,60 @@
package gregtech.common.blocks;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import gregtech.api.net.GT_Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class GT_Packet_Ores
extends GT_Packet {
private int mX;
private int mZ;
private short mY;
private short mMetaData;
public GT_Packet_Ores() {
super(true);
}
public GT_Packet_Ores(int aX, short aY, int aZ, short aMetaData) {
super(false);
this.mX = aX;
this.mY = aY;
this.mZ = aZ;
this.mMetaData = aMetaData;
}
public byte[] encode() {
ByteArrayDataOutput tOut = ByteStreams.newDataOutput(12);
tOut.writeInt(this.mX);
tOut.writeShort(this.mY);
tOut.writeInt(this.mZ);
tOut.writeShort(this.mMetaData);
return tOut.toByteArray();
}
public GT_Packet decode(ByteArrayDataInput aData) {
return new GT_Packet_Ores(aData.readInt(), aData.readShort(), aData.readInt(), aData.readShort());
}
public void process(IBlockAccess aWorld) {
if (aWorld != null) {
TileEntity tTileEntity = aWorld.getTileEntity(this.mX, this.mY, this.mZ);
if ((tTileEntity instanceof GT_TileEntity_Ores)) {
((GT_TileEntity_Ores) tTileEntity).mMetaData = this.mMetaData;
}
if (((aWorld instanceof World)) && (((World) aWorld).isRemote)) {
((World) aWorld).markBlockForUpdate(this.mX, this.mY, this.mZ);
}
}
}
public byte getPacketID() {
return 3;
}
}
package gregtech.common.blocks;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import gregtech.api.net.GT_Packet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
public class GT_Packet_Ores
extends GT_Packet {
private int mX;
private int mZ;
private short mY;
private short mMetaData;
public GT_Packet_Ores() {
super(true);
}
public GT_Packet_Ores(int aX, short aY, int aZ, short aMetaData) {
super(false);
this.mX = aX;
this.mY = aY;
this.mZ = aZ;
this.mMetaData = aMetaData;
}
public byte[] encode() {
ByteArrayDataOutput tOut = ByteStreams.newDataOutput(12);
tOut.writeInt(this.mX);
tOut.writeShort(this.mY);
tOut.writeInt(this.mZ);
tOut.writeShort(this.mMetaData);
return tOut.toByteArray();
}
public GT_Packet decode(ByteArrayDataInput aData) {
return new GT_Packet_Ores(aData.readInt(), aData.readShort(), aData.readInt(), aData.readShort());
}
public void process(IBlockAccess aWorld) {
if (aWorld != null) {
TileEntity tTileEntity = aWorld.getTileEntity(this.mX, this.mY, this.mZ);
if ((tTileEntity instanceof GT_TileEntity_Ores)) {
((GT_TileEntity_Ores) tTileEntity).mMetaData = this.mMetaData;
}
if (((aWorld instanceof World)) && (((World) aWorld).isRemote)) {
((World) aWorld).markBlockForUpdate(this.mX, this.mY, this.mZ);
}
}
}
public byte getPacketID() {
return 3;
}
}

View file

@ -55,31 +55,34 @@ public class GT_TileEntity_Ores extends TileEntity implements ITexturedTileEntit
if (GregTech_API.sBlockOresUb1 != null) {
tOreBlock = GregTech_API.sBlockOresUb1;
aMetaData += (BlockMeta * 1000);
//System.out.println("Block changed to UB1");
}
} else if (BlockName.equals("tile.metamorphicStone")) {
if (GregTech_API.sBlockOresUb2 != null) {
tOreBlock = GregTech_API.sBlockOresUb2;
aMetaData += (BlockMeta * 1000);
//System.out.println("Block changed to UB2");
}
} else if (BlockName.equals("tile.sedimentaryStone")) {
if (GregTech_API.sBlockOresUb3 != null) {
tOreBlock = GregTech_API.sBlockOresUb3;
aMetaData += (BlockMeta * 1000);
//System.out.println("Block changed to UB3");
}
} else if (BlockName.equals("tile.moonBlock") && (BlockMeta == 3 || BlockMeta == 4)) {
if (GregTech_API.sBlockOresGC != null) {
switch (BlockMeta) {
case 3: tOreBlock = GregTech_API.sBlockOresGC; break;
case 4: aMetaData += 1000; tOreBlock = GregTech_API.sBlockOresGC; break;
}
}
} else if (BlockName.equals("tile.mars") && (BlockMeta == 6 || BlockMeta == 9)) {
if (GregTech_API.sBlockOresGC != null) {
switch (BlockMeta) {
case 6: aMetaData += 2000; tOreBlock = GregTech_API.sBlockOresGC; break;
case 9: aMetaData += 3000; tOreBlock = GregTech_API.sBlockOresGC; break;
}
}
//} else if (BlockName.equals("tile.moonBlock") && (BlockMeta == 3 || BlockMeta == 4)) {
// if (GregTech_API.sBlockOresGC != null) {
// switch (BlockMeta) {
// case 3: tOreBlock = GregTech_API.sBlockOresGC; break;
// case 4: aMetaData += 1000; tOreBlock = GregTech_API.sBlockOresGC; break;
// }
// }
//} else if (BlockName.equals("tile.mars") && (BlockMeta == 6 || BlockMeta == 9)) {
// if (GregTech_API.sBlockOresGC != null) {
// switch (BlockMeta) {
// case 6: aMetaData += 2000; tOreBlock = GregTech_API.sBlockOresGC; break;
// case 9: aMetaData += 3000; tOreBlock = GregTech_API.sBlockOresGC; break;
// }
// }
} else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.netherrack)) {
aMetaData += 1000;
} else if (tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.end_stone)) {
@ -107,6 +110,7 @@ public class GT_TileEntity_Ores extends TileEntity implements ITexturedTileEntit
} else if (!tBlock.isReplaceableOreGen(aWorld, aX, aY, aZ, Blocks.stone)) {
return false;
}
//System.out.println(tOreBlock);
aWorld.setBlock(aX, aY, aZ, tOreBlock, getHarvestData((short) aMetaData, ((GT_Block_Ores_Abstract) tOreBlock).getBaseBlockHarvestLevel(aMetaData % 16000 / 1000)), 0);
TileEntity tTileEntity = aWorld.getTileEntity(aX, aY, aZ);
if ((tTileEntity instanceof GT_TileEntity_Ores)) {

Some files were not shown because too many files have changed in this diff Show more