diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 629fdf38f0..9deff3fb34 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -34,15 +34,15 @@ achievement.fiend.desc=Sei gemein. achievement.fiend2=Unhold 2: Noch unholdiger achievement.fiend2.desc=Sei gemeiner. achievement.metalworks=Metallurgie -achievement.metalworks.desc=Bobmazon Level 1 +achievement.metalworks.desc=Bobmazon Level 1 (Hochofen) achievement.assembly=Fertigung -achievement.assembly.desc=Bobmazon Level 2 +achievement.assembly.desc=Bobmazon Level 2 (Fertigungsmaschine) achievement.chemistry=Chemie -achievement.chemistry.desc=Bobmazon Level 3 +achievement.chemistry.desc=Bobmazon Level 3 (Betonziegel) achievement.oil=Petroleum -achievement.oil.desc=Bobmazon Level 4 +achievement.oil.desc=Bobmazon Level 4 (Elektrischer Boiler) achievement.nuclear=Atomwissenschaft -achievement.nuclear.desc=Bobmazon Level 5 +achievement.nuclear.desc=Bobmazon Level 5 (Urankernbrennstoff) potion.hbm_taint=Verdorben potion.hbm_mutation=Verdorbenes Herz @@ -179,6 +179,7 @@ death.attack.blackhole=%1$s wurde spaghettifiziert. death.attack.blender=%1$s wurde in kleine, mundgerechte Stücke geschnitten. death.attack.meteorite=%1$s wurde von einem fallenden Stein aus dem Weltall erschlagen. death.attack.boxcar=%1$s wurde von einem fallenden Güterwagon zermatscht. Autsch! +death.attack.boat=%1$s wurde von Schiff getroffen. death.attack.broadcast=%1$s wurde das Gehirn geschmolzen. death.attack.ams=%1$s wurde in tödlichen Teilchen gebadet, die von der Menschheit erst benannt werden müssen. death.attack.amsCore=%1$s wurde vom Feuer einer Singularität verdampft. @@ -536,6 +537,11 @@ item.assembly_template.name=Fertigungsvorlage: item.chemistry_template.name=Chemievorlage: item.siren_track.name=Sirenentrack +item.bobmazon_materials.name=Bobmazon: Ressourcen +item.bobmazon_machines.name=Bobmazon: Blöcke und Maschinen +item.bobmazon_weapons.name=Bobmazon: Waffen und Sprengstoffe +item.bobmazon_tools.name=Bobmazon: Werkzeuge + item.fuse.name=Sicherung item.arc_electrode.name=Graphitelektrode item.arc_electrode_burnt.name=Geschmolzene Elektrode diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index ca0a20641d..6435c4d948 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -34,15 +34,15 @@ achievement.fiend.desc=Be mean. achievement.fiend2=Delinquent 2: Delinquent Harder achievement.fiend2.desc=Be meaner. achievement.metalworks=Metalworks -achievement.metalworks.desc=Bobmazon Level 1 +achievement.metalworks.desc=Bobmazon Level 1 (Blast Furnace) achievement.assembly=Fabrication -achievement.assembly.desc=Bobmazon Level 2 +achievement.assembly.desc=Bobmazon Level 2 (Assembly Machine) achievement.chemistry=Chemistry -achievement.chemistry.desc=Bobmazon Level 3 +achievement.chemistry.desc=Bobmazon Level 3 (Concrete Bricks) achievement.oil=Petroleum -achievement.oil.desc=Bobmazon Level 4 +achievement.oil.desc=Bobmazon Level 4 (Electric Boiler) achievement.nuclear=Atomic Science -achievement.nuclear.desc=Bobmazon Level 5 +achievement.nuclear.desc=Bobmazon Level 5 (Uranium Fuel) potion.hbm_taint=Tainted potion.hbm_mutation=Tainted Heart @@ -179,6 +179,7 @@ death.attack.blackhole=%1$s was spaghettified. death.attack.blender=%1$s was chopped in small, bite-sized pieces. death.attack.meteorite=%1$s was hit by a falling rock from outer space. death.attack.boxcar=%1$s was smushed by a falling boxcar. Oh well. +death.attack.boat=%1$s was hit by a boat. death.attack.broadcast=%1$s got their brain melted. death.attack.ams=%1$s was bathed in deadly particles that have yet to be named by human science. death.attack.amsCore=%1$s was vaporized in the fire of a singularity. @@ -536,6 +537,11 @@ item.assembly_template.name=Assembly Template: item.chemistry_template.name=Chemistry Template: item.siren_track.name=Siren Track +item.bobmazon_materials.name=Bobmazon: Materials +item.bobmazon_machines.name=Bobmazon: Blocks and Machines +item.bobmazon_weapons.name=Bobmazon: Weapons and Explosives +item.bobmazon_tools.name=Bobmazon: Tools + item.fuse.name=Fuse item.arc_electrode.name=Graphite Electrode item.arc_electrode_burnt.name=Molten Electrode diff --git a/assets/hbm/textures/blocks/battery_dineutronium_front.png b/assets/hbm/textures/blocks/battery_dineutronium_front.png index d97535b70e..ba82461ad0 100644 Binary files a/assets/hbm/textures/blocks/battery_dineutronium_front.png and b/assets/hbm/textures/blocks/battery_dineutronium_front.png differ diff --git a/assets/hbm/textures/blocks/battery_dineutronium_side.png b/assets/hbm/textures/blocks/battery_dineutronium_side.png index 3487ee59ee..c4aa94527f 100644 Binary files a/assets/hbm/textures/blocks/battery_dineutronium_side.png and b/assets/hbm/textures/blocks/battery_dineutronium_side.png differ diff --git a/assets/hbm/textures/blocks/battery_dineutronium_top.png b/assets/hbm/textures/blocks/battery_dineutronium_top.png index 65c4af9450..2d9ef4dc5e 100644 Binary files a/assets/hbm/textures/blocks/battery_dineutronium_top.png and b/assets/hbm/textures/blocks/battery_dineutronium_top.png differ diff --git a/assets/hbm/textures/blocks/battery_front_alt.png b/assets/hbm/textures/blocks/battery_front_alt.png index d1b86857de..329f0ae7c2 100644 Binary files a/assets/hbm/textures/blocks/battery_front_alt.png and b/assets/hbm/textures/blocks/battery_front_alt.png differ diff --git a/assets/hbm/textures/blocks/battery_lithium_front.png b/assets/hbm/textures/blocks/battery_lithium_front.png index fa335f52ad..d4dc1de6aa 100644 Binary files a/assets/hbm/textures/blocks/battery_lithium_front.png and b/assets/hbm/textures/blocks/battery_lithium_front.png differ diff --git a/assets/hbm/textures/blocks/battery_lithium_side.png b/assets/hbm/textures/blocks/battery_lithium_side.png index 0928db2801..f02b4e99b9 100644 Binary files a/assets/hbm/textures/blocks/battery_lithium_side.png and b/assets/hbm/textures/blocks/battery_lithium_side.png differ diff --git a/assets/hbm/textures/blocks/battery_lithium_top.png b/assets/hbm/textures/blocks/battery_lithium_top.png index e9512c41af..ceb7088e81 100644 Binary files a/assets/hbm/textures/blocks/battery_lithium_top.png and b/assets/hbm/textures/blocks/battery_lithium_top.png differ diff --git a/assets/hbm/textures/blocks/battery_schrabidium_front.png b/assets/hbm/textures/blocks/battery_schrabidium_front.png index 47aeed4666..8cbd57c8a2 100644 Binary files a/assets/hbm/textures/blocks/battery_schrabidium_front.png and b/assets/hbm/textures/blocks/battery_schrabidium_front.png differ diff --git a/assets/hbm/textures/blocks/battery_schrabidium_side.png b/assets/hbm/textures/blocks/battery_schrabidium_side.png index d2971feba8..030eba15d5 100644 Binary files a/assets/hbm/textures/blocks/battery_schrabidium_side.png and b/assets/hbm/textures/blocks/battery_schrabidium_side.png differ diff --git a/assets/hbm/textures/blocks/battery_schrabidium_top.png b/assets/hbm/textures/blocks/battery_schrabidium_top.png index 5fa94469b3..67cf28ecb0 100644 Binary files a/assets/hbm/textures/blocks/battery_schrabidium_top.png and b/assets/hbm/textures/blocks/battery_schrabidium_top.png differ diff --git a/assets/hbm/textures/blocks/battery_side_alt.png b/assets/hbm/textures/blocks/battery_side_alt.png index c34ca3294e..4d5e5dda9d 100644 Binary files a/assets/hbm/textures/blocks/battery_side_alt.png and b/assets/hbm/textures/blocks/battery_side_alt.png differ diff --git a/assets/hbm/textures/blocks/battery_top.png b/assets/hbm/textures/blocks/battery_top.png index d756335119..997b98baa1 100644 Binary files a/assets/hbm/textures/blocks/battery_top.png and b/assets/hbm/textures/blocks/battery_top.png differ diff --git a/assets/hbm/textures/blocks/crate_iron_side.png b/assets/hbm/textures/blocks/crate_iron_side.png index f32ef1041f..f57893be75 100644 Binary files a/assets/hbm/textures/blocks/crate_iron_side.png and b/assets/hbm/textures/blocks/crate_iron_side.png differ diff --git a/assets/hbm/textures/blocks/crate_iron_top.png b/assets/hbm/textures/blocks/crate_iron_top.png index b2c81a8ae2..c552da51b3 100644 Binary files a/assets/hbm/textures/blocks/crate_iron_top.png and b/assets/hbm/textures/blocks/crate_iron_top.png differ diff --git a/assets/hbm/textures/blocks/crate_steel_side.png b/assets/hbm/textures/blocks/crate_steel_side.png index 9765924b79..e1dd9aa52a 100644 Binary files a/assets/hbm/textures/blocks/crate_steel_side.png and b/assets/hbm/textures/blocks/crate_steel_side.png differ diff --git a/assets/hbm/textures/blocks/crate_steel_top.png b/assets/hbm/textures/blocks/crate_steel_top.png index 582ba1a63c..595c55334a 100644 Binary files a/assets/hbm/textures/blocks/crate_steel_top.png and b/assets/hbm/textures/blocks/crate_steel_top.png differ diff --git a/assets/hbm/textures/blocks/machine_transformer.png b/assets/hbm/textures/blocks/machine_transformer.png index 3ba309f73a..dea44f1329 100644 Binary files a/assets/hbm/textures/blocks/machine_transformer.png and b/assets/hbm/textures/blocks/machine_transformer.png differ diff --git a/assets/hbm/textures/blocks/machine_transformer_iron.png b/assets/hbm/textures/blocks/machine_transformer_iron.png index c6364015f0..71cae6c987 100644 Binary files a/assets/hbm/textures/blocks/machine_transformer_iron.png and b/assets/hbm/textures/blocks/machine_transformer_iron.png differ diff --git a/assets/hbm/textures/blocks/machine_transformer_top.png b/assets/hbm/textures/blocks/machine_transformer_top.png index 4580a66821..3c7cf211de 100644 Binary files a/assets/hbm/textures/blocks/machine_transformer_top.png and b/assets/hbm/textures/blocks/machine_transformer_top.png differ diff --git a/assets/hbm/textures/blocks/machine_transformer_top_iron.png b/assets/hbm/textures/blocks/machine_transformer_top_iron.png index 450ef9b084..befcb12ae0 100644 Binary files a/assets/hbm/textures/blocks/machine_transformer_top_iron.png and b/assets/hbm/textures/blocks/machine_transformer_top_iron.png differ diff --git a/assets/hbm/textures/blocks/machinetemplatetexture.png b/assets/hbm/textures/blocks/machinetemplatetexture.png new file mode 100644 index 0000000000..dffa4d237d Binary files /dev/null and b/assets/hbm/textures/blocks/machinetemplatetexture.png differ diff --git a/assets/hbm/textures/models/ModelRedBarrel.png b/assets/hbm/textures/models/ModelRedBarrel.png index f9da8f6de5..e58dab9340 100644 Binary files a/assets/hbm/textures/models/ModelRedBarrel.png and b/assets/hbm/textures/models/ModelRedBarrel.png differ diff --git a/assets/hbm/textures/models/ModelYellowBarrel.png b/assets/hbm/textures/models/ModelYellowBarrel.png index fac80fa5fe..0715c0a79f 100644 Binary files a/assets/hbm/textures/models/ModelYellowBarrel.png and b/assets/hbm/textures/models/ModelYellowBarrel.png differ diff --git a/assets/hbm/textures/models/bobmazon.png b/assets/hbm/textures/models/bobmazon.png new file mode 100644 index 0000000000..8e08c4d77c Binary files /dev/null and b/assets/hbm/textures/models/bobmazon.png differ diff --git a/com/hbm/entity/effect/EntityFalloutRain.java b/com/hbm/entity/effect/EntityFalloutRain.java index c6af0d2d81..63605108bb 100644 --- a/com/hbm/entity/effect/EntityFalloutRain.java +++ b/com/hbm/entity/effect/EntityFalloutRain.java @@ -48,6 +48,12 @@ public void onUpdate() { Vec3 vec = Vec3.createVectorHelper(radProgress * 0.5, 0, 0); double circum = radProgress * 2 * Math.PI * 2; + + /// + if(circum == 0) + circum = 1; + /// + double part = 360D / circum; vec.rotateAroundY((float) (part * revProgress)); @@ -222,6 +228,8 @@ public void setScale(int i) { public int getScale() { - return this.dataWatcher.getWatchableObjectInt(16); + int scale = this.dataWatcher.getWatchableObjectInt(16); + + return scale == 0 ? 1 : scale; } } diff --git a/com/hbm/entity/missile/EntityBobmazon.java b/com/hbm/entity/missile/EntityBobmazon.java new file mode 100644 index 0000000000..29d4833986 --- /dev/null +++ b/com/hbm/entity/missile/EntityBobmazon.java @@ -0,0 +1,73 @@ +package com.hbm.entity.missile; + +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.packet.AuxParticlePacket; +import com.hbm.packet.PacketDispatcher; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityBobmazon extends Entity { + + public ItemStack payload; + + public EntityBobmazon(World p_i1582_1_) { + super(p_i1582_1_); + this.ignoreFrustumCheck = true; + this.setSize(1F, 3F); + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(16, Integer.valueOf(0)); + } + + @Override + public void onUpdate() { + + motionY = -0.5; + motionX = 0; + motionZ = 0; + + this.lastTickPosX = this.prevPosX = this.posX; + this.lastTickPosY = this.prevPosY = this.posY; + this.lastTickPosZ = this.prevPosZ = this.posZ; + + for(int i = 0; i < 4; i++) { + + if(!this.worldObj.isRemote && i % 2 == 0) + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacket(posX, posY + 1, posZ, 2), new TargetPoint(worldObj.provider.dimensionId, posX, posY + 1, posZ, 300)); + + if(worldObj.getBlock((int)(posX - 0.5), (int)(posY + 1), (int)(posZ - 0.5)).getMaterial() != Material.air && !worldObj.isRemote && dataWatcher.getWatchableObjectInt(16) != 1) { + this.setDead(); + ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, 50); + + this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10.0F, 0.5F + this.rand.nextFloat() * 0.1F); + + if(payload != null) + worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, payload)); + + break; + } + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + } + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { } + +} diff --git a/com/hbm/entity/projectile/EntityBulletBase.java b/com/hbm/entity/projectile/EntityBulletBase.java index e112c9f006..2f18a36e43 100644 --- a/com/hbm/entity/projectile/EntityBulletBase.java +++ b/com/hbm/entity/projectile/EntityBulletBase.java @@ -3,6 +3,8 @@ import java.lang.reflect.Field; import java.util.List; +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.generic.RedBarrel; import com.hbm.calc.VectorUtil; import com.hbm.entity.effect.EntityCloudFleijaRainbow; import com.hbm.entity.effect.EntityEMPBlast; @@ -441,6 +443,8 @@ private void onBlockImpact(int bX, int bY, int bZ) { worldObj.getBlock(bX, bY, bZ) == Blocks.stained_glass_pane) worldObj.func_147480_a(bX, bY, bZ, false); + if(worldObj.getBlock(bX, bY, bZ) == ModBlocks.red_barrel) + ((RedBarrel) ModBlocks.red_barrel).explode(worldObj, bX, bY, bZ); } } diff --git a/com/hbm/handler/BobmazonOfferFactory.java b/com/hbm/handler/BobmazonOfferFactory.java index c988ce9536..aa57cb3ae6 100644 --- a/com/hbm/handler/BobmazonOfferFactory.java +++ b/com/hbm/handler/BobmazonOfferFactory.java @@ -20,137 +20,137 @@ public class BobmazonOfferFactory { public static void init() { - materials.add(new Offer(new ItemStack(ModItems.ingot_uranium), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_u233), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_u238), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_th232), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_plutonium), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_titanium), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_copper), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_red_copper), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_tungsten), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_aluminium), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_steel), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_lead), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_polymer), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_uranium_fuel), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_thorium_fuel), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_desh), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.ingot_saturnite), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 0)); - materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 0)); - materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 0)); - materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 0)); - materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 0)); - materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 0)); - materials.add(new Offer(new ItemStack(ModItems.piston_selenium), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_advanced), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_lithium), Requirement.CHEMICS, 0)); - materials.add(new Offer(new ItemStack(ModItems.arc_electrode), Requirement.ASSEMBLY, 0)); - materials.add(new Offer(new ItemStack(ModItems.fuse), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium), Requirement.NUCLEAR, 6)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u233), Requirement.NUCLEAR, 20)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u238), Requirement.NUCLEAR, 15)); + materials.add(new Offer(new ItemStack(ModItems.ingot_th232), Requirement.NUCLEAR, 4)); + materials.add(new Offer(new ItemStack(ModItems.ingot_plutonium), Requirement.NUCLEAR, 25)); + materials.add(new Offer(new ItemStack(ModItems.ingot_titanium), Requirement.STEEL, 2)); + materials.add(new Offer(new ItemStack(ModItems.ingot_copper), Requirement.STEEL, 2)); + materials.add(new Offer(new ItemStack(ModItems.ingot_red_copper), Requirement.STEEL, 4)); + materials.add(new Offer(new ItemStack(ModItems.ingot_tungsten), Requirement.STEEL, 3)); + materials.add(new Offer(new ItemStack(ModItems.ingot_aluminium), Requirement.STEEL, 2)); + materials.add(new Offer(new ItemStack(ModItems.ingot_steel), Requirement.STEEL, 4)); + materials.add(new Offer(new ItemStack(ModItems.ingot_lead), Requirement.STEEL, 2)); + materials.add(new Offer(new ItemStack(ModItems.ingot_polymer), Requirement.OIL, 8)); + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium_fuel), Requirement.NUCLEAR, 18)); + materials.add(new Offer(new ItemStack(ModItems.ingot_thorium_fuel), Requirement.NUCLEAR, 16)); + materials.add(new Offer(new ItemStack(ModItems.ingot_desh), Requirement.OIL, 16)); + materials.add(new Offer(new ItemStack(ModItems.ingot_saturnite), Requirement.STEEL, 8)); + materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 6)); + materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 4)); + materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 2)); + materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 4)); + materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 16)); + materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 12)); + materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 20)); + materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 100)); + materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 8)); + materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 12)); + materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 25)); + materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 4)); + materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 6)); + materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 10)); + materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 16)); + materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 4)); + materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 10)); + materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 27)); + materials.add(new Offer(new ItemStack(ModItems.piston_selenium), Requirement.ASSEMBLY, 12)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_advanced), Requirement.ASSEMBLY, 15)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_lithium), Requirement.CHEMICS, 30)); + materials.add(new Offer(new ItemStack(ModItems.arc_electrode), Requirement.ASSEMBLY, 15)); + materials.add(new Offer(new ItemStack(ModItems.fuse), Requirement.ASSEMBLY, 5)); - machines.add(new Offer(new ItemStack(ModBlocks.concrete_smooth), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.brick_compound), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.barbed_wire), Requirement.ASSEMBLY, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_siren), Requirement.ASSEMBLY, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.vault_door), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.blast_door), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_epress), Requirement.OIL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_difurnace_off), Requirement.STEEL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_gascent), Requirement.OIL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_diesel), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_geo), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_battery), Requirement.ASSEMBLY, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.absorber), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.absorber_green), Requirement.CHEMICS, 0)); - machines.add(new Offer(new ItemStack(ModBlocks.decon), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.concrete_smooth, 16), Requirement.CHEMICS, 32)); + machines.add(new Offer(new ItemStack(ModBlocks.brick_compound, 8), Requirement.CHEMICS, 48)); + machines.add(new Offer(new ItemStack(ModBlocks.barbed_wire, 16), Requirement.ASSEMBLY, 12)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_siren), Requirement.ASSEMBLY, 12)); + machines.add(new Offer(new ItemStack(ModBlocks.vault_door), Requirement.CHEMICS, 250)); + machines.add(new Offer(new ItemStack(ModBlocks.blast_door), Requirement.CHEMICS, 120)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_epress), Requirement.OIL, 60)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_difurnace_off), Requirement.STEEL, 26)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_gascent), Requirement.OIL, 100)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_diesel), Requirement.CHEMICS, 65)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_geo), Requirement.CHEMICS, 30)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_battery), Requirement.ASSEMBLY, 30)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 60)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 30)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 50)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 25)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 60)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 45)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 40)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 80)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber), Requirement.CHEMICS, 10)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber_green), Requirement.OIL, 25)); + machines.add(new Offer(new ItemStack(ModBlocks.decon), Requirement.CHEMICS, 15)); - weapons.add(new Offer(new ItemStack(ModBlocks.launch_pad), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.machine_radar), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.designator), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.designator_range), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.sat_chip), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.turret_cheapo), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.det_cord), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModBlocks.det_charge), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 0)); - weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette), Requirement.OIL, 0)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic), Requirement.CHEMICS, 0)); - weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.launch_pad), Requirement.OIL, 95)); + weapons.add(new Offer(new ItemStack(ModBlocks.machine_radar), Requirement.OIL, 90)); + weapons.add(new Offer(new ItemStack(ModItems.designator), Requirement.CHEMICS, 35)); + weapons.add(new Offer(new ItemStack(ModItems.designator_range), Requirement.CHEMICS, 50)); + weapons.add(new Offer(new ItemStack(ModItems.sat_chip), Requirement.CHEMICS, 35)); + weapons.add(new Offer(new ItemStack(ModBlocks.turret_cheapo), Requirement.CHEMICS, 70)); + weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 20)); + weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 35)); + weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 80)); + weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 15)); + weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap, 4), Requirement.ASSEMBLY, 25)); + weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 90)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_cord, 16), Requirement.ASSEMBLY, 50)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_charge), Requirement.CHEMICS, 25)); + weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 15)); + weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 60)); + weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 5)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 15)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 20)); + weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 100)); + weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 95)); + weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 60)); + weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 80)); + weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 60)); + weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 35)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo, 6), Requirement.OIL, 12)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh, 6), Requirement.OIL, 36)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44, 6), Requirement.OIL, 12)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap, 6), Requirement.OIL, 18)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm, 50), Requirement.OIL, 50)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du, 50), Requirement.OIL, 75)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 5)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 8)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 12)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 4)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 6)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 10)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr, 32), Requirement.OIL, 24)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap, 32), Requirement.OIL, 32)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge, 6), Requirement.OIL, 18)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug, 6), Requirement.OIL, 20)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette, 6), Requirement.OIL, 22)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic, 3), Requirement.CHEMICS, 15)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he, 3), Requirement.CHEMICS, 25)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 0)); - tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 0)); - tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 0)); - tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 0)); - tools.add(new Offer(new ItemStack(ModItems.key), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModItems.padlock), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModItems.padlock_reinforced), Requirement.OIL, 0)); - tools.add(new Offer(new ItemStack(ModItems.syringe_antidote), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModItems.syringe_metal_stimpak), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModItems.syringe_metal_medx), Requirement.STEEL, 0)); - tools.add(new Offer(new ItemStack(ModItems.radaway), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.radaway_strong), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.radx), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.pill_iodine), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.gas_mask_filter), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.gun_kit_1), Requirement.OIL, 0)); - tools.add(new Offer(new ItemStack(ModItems.gun_kit_2), Requirement.OIL, 0)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_kit), Requirement.ASSEMBLY, 0)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 0)); - tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 0)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 10)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 35)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 50)); + tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 45)); + tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 10)); + tools.add(new Offer(new ItemStack(ModItems.key), Requirement.STEEL, 2)); + tools.add(new Offer(new ItemStack(ModItems.padlock), Requirement.STEEL, 5)); + tools.add(new Offer(new ItemStack(ModItems.padlock_reinforced), Requirement.OIL, 15)); + tools.add(new Offer(new ItemStack(ModItems.syringe_antidote, 6), Requirement.STEEL, 10)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_stimpak, 4), Requirement.STEEL, 10)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_medx, 4), Requirement.STEEL, 10)); + tools.add(new Offer(new ItemStack(ModItems.radaway, 6), Requirement.ASSEMBLY, 30)); + tools.add(new Offer(new ItemStack(ModItems.radaway_strong, 3), Requirement.ASSEMBLY, 35)); + tools.add(new Offer(new ItemStack(ModItems.radx, 4), Requirement.ASSEMBLY, 20)); + tools.add(new Offer(new ItemStack(ModItems.pill_iodine, 6), Requirement.ASSEMBLY, 20)); + tools.add(new Offer(new ItemStack(ModItems.gas_mask_filter, 1), Requirement.ASSEMBLY, 5)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_1, 4), Requirement.OIL, 20)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_2, 2), Requirement.OIL, 45)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_kit), Requirement.ASSEMBLY, 40)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 100)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 160)); } public static List getOffers(ItemStack stack) { diff --git a/com/hbm/inventory/gui/GUIScreenBobmazon.java b/com/hbm/inventory/gui/GUIScreenBobmazon.java index 2257c9f08b..c16e42bacb 100644 --- a/com/hbm/inventory/gui/GUIScreenBobmazon.java +++ b/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -16,6 +16,7 @@ import com.hbm.items.tool.ItemFluidIdentifier; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; +import com.hbm.packet.ItemBobmazonPacket; import com.hbm.packet.ItemFolderPacket; import com.hbm.packet.PacketDispatcher; @@ -196,8 +197,7 @@ public void drawString(int x, int y) { public void executeAction() { mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); if(type == 0) { - //TODO: request purchase - //PacketDispatcher.wrapper.sendToServer(new ItemFolderPacket(stack.copy())); + PacketDispatcher.wrapper.sendToServer(new ItemBobmazonPacket(offer)); } else if(type == 1) { if(currentPage > 0) currentPage--; @@ -217,12 +217,12 @@ public boolean doesGuiPauseGame() { public static class Offer { - ItemStack offer; - Requirement requirement; - int cost; - int rating; - String comment; - String author; + public ItemStack offer; + public Requirement requirement; + public int cost; + public int rating; + public String comment; + public String author; public Offer(ItemStack offer, Requirement requirement, int cost, int rating, String comment, String author) { this.offer = offer; @@ -307,7 +307,7 @@ public boolean fullfills(EntityPlayerMP player) { return player.func_147099_x().hasAchievementUnlocked(achievement); } - Achievement achievement; + public Achievement achievement; } } diff --git a/com/hbm/lib/ModDamageSource.java b/com/hbm/lib/ModDamageSource.java index 0f55e6244c..c8e59da586 100644 --- a/com/hbm/lib/ModDamageSource.java +++ b/com/hbm/lib/ModDamageSource.java @@ -33,6 +33,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource turbofan = (new DamageSource("blender")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource meteorite = (new DamageSource("meteorite")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource boxcar = (new DamageSource("boxcar")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource boat = (new DamageSource("boat")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource taint = (new DamageSource("taint")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource ams = (new DamageSource("ams")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource amsCore = (new DamageSource("amsCore")).setDamageIsAbsolute().setDamageBypassesArmor(); diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index adf96ed11a..913426f32c 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3106)"; + public static final String VERSION = "1.0.27 BETA (3111)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 847a875561..54f7e46c07 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -360,6 +360,7 @@ public void registerRenderInfo() RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ()); RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMinerRocket.class, new RenderMinerRocket()); + RenderingRegistry.registerEntityRenderingHandler(EntityBobmazon.class, new RenderMinerRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileTaint.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileMicro.class, new RenderMissileTaint()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 394926de9a..f7374fba41 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -1556,6 +1556,11 @@ public static void reg2() { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.redstone_depleted, 1), new Object[] { new ItemStack(ModItems.battery_su, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.redstone_depleted, 2), new Object[] { new ItemStack(ModItems.battery_su_l, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(Items.redstone, 1), new Object[] { ModItems.redstone_depleted, ModItems.redstone_depleted }); + + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bobmazon_materials), new Object[] { Items.book, Items.gold_nugget, Items.string }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bobmazon_machines), new Object[] { Items.book, Items.gold_nugget, new ItemStack(Items.dye, 1, 1) }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bobmazon_weapons), new Object[] { Items.book, Items.gold_nugget, new ItemStack(Items.dye, 1, 8) }); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.bobmazon_tools), new Object[] { Items.book, Items.gold_nugget, new ItemStack(Items.dye, 1, 2) }); } public static void AddSmeltingRec() diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index ff0c7b7d73..1d8d9d2457 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -664,6 +664,7 @@ public void PreLoad(FMLPreInitializationEvent PreEvent) EntityRegistry.registerModEntity(EntityMissileEMPStrong.class, "entity_missile_emp_strong", 135, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityEMP.class, "entity_emp_logic", 136, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityWaterSplash.class, "entity_water_splash", 137, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityBobmazon.class, "entity_bobmazon_delivery", 138, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index 813d00f70f..5db0647e3f 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Random; +import com.hbm.blocks.ModBlocks; import com.hbm.entity.missile.EntityMissileBaseAdvanced; import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.projectile.EntityBurningFOEQ; @@ -461,6 +462,21 @@ public void itemCrafted(PlayerEvent.ItemCraftedEvent e) { if(item == ModItems.gun_revolver_pip) { e.player.addStat(MainRegistry.achC44, 1); } + if(item == Item.getItemFromBlock(ModBlocks.machine_difurnace_off)) { + e.player.addStat(MainRegistry.bobMetalworks, 1); + } + if(item == Item.getItemFromBlock(ModBlocks.machine_assembler)) { + e.player.addStat(MainRegistry.bobAssembly, 1); + } + if(item == Item.getItemFromBlock(ModBlocks.brick_concrete)) { + e.player.addStat(MainRegistry.bobChemistry, 1); + } + if(item == Item.getItemFromBlock(ModBlocks.machine_boiler_electric_off)) { + e.player.addStat(MainRegistry.bobOil, 1); + } + if(item == ModItems.ingot_uranium_fuel) { + e.player.addStat(MainRegistry.bobNuclear, 1); + } } /*@SubscribeEvent diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 4da3c1a97f..27aa75b087 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -354,6 +354,7 @@ public class ResourceManager { public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); public static final ResourceLocation minerRocket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/minerRocket.png"); + public static final ResourceLocation bobmazon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/bobmazon.png"); public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); diff --git a/com/hbm/packet/ItemBobmazonPacket.java b/com/hbm/packet/ItemBobmazonPacket.java new file mode 100644 index 0000000000..0867948a29 --- /dev/null +++ b/com/hbm/packet/ItemBobmazonPacket.java @@ -0,0 +1,194 @@ +package com.hbm.packet; + +import java.util.List; +import java.util.Random; + +import com.hbm.entity.missile.EntityBobmazon; +import com.hbm.inventory.gui.GUIScreenBobmazon.Offer; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemAssemblyTemplate; +import com.hbm.items.tool.ItemCassette; +import com.hbm.items.tool.ItemChemistryTemplate; +import com.hbm.items.tool.ItemFluidIdentifier; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineAssembler; + +import cpw.mods.fml.common.network.ByteBufUtils; +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + +public class ItemBobmazonPacket implements IMessage { + + int item; + int stacksize; + int meta; + int cost; + int achievement; + + public ItemBobmazonPacket() + { + + } + + public ItemBobmazonPacket(Offer offer) + { + this.item = Item.getIdFromItem(offer.offer.getItem()); + this.stacksize = offer.offer.stackSize; + this.meta = offer.offer.getItemDamage(); + this.cost = offer.cost; + + if(offer.requirement.achievement == MainRegistry.bobMetalworks) + this.achievement = 0; + if(offer.requirement.achievement == MainRegistry.bobAssembly) + this.achievement = 1; + if(offer.requirement.achievement == MainRegistry.bobChemistry) + this.achievement = 2; + if(offer.requirement.achievement == MainRegistry.bobOil) + this.achievement = 3; + if(offer.requirement.achievement == MainRegistry.bobNuclear) + this.achievement = 4; + } + + @Override + public void fromBytes(ByteBuf buf) { + item = buf.readInt(); + stacksize = buf.readInt(); + meta = buf.readInt(); + cost = buf.readInt(); + achievement = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(item); + buf.writeInt(stacksize); + buf.writeInt(meta); + buf.writeInt(cost); + buf.writeInt(achievement); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(ItemBobmazonPacket m, MessageContext ctx) { + + EntityPlayerMP p = ctx.getServerHandler().playerEntity; + World world = p.worldObj; + ItemStack stack = new ItemStack(Item.getItemById(m.item), m.stacksize, m.meta); + + Achievement req = null; + + if(m.achievement == 0) + req = MainRegistry.bobMetalworks; + if(m.achievement == 1) + req = MainRegistry.bobAssembly; + if(m.achievement == 2) + req = MainRegistry.bobChemistry; + if(m.achievement == 3) + req = MainRegistry.bobOil; + if(m.achievement == 4) + req = MainRegistry.bobNuclear; + + if(req != null && p.func_147099_x().hasAchievementUnlocked(req)) { + + if(countCaps(p) >= m.cost) { + + payCaps(p, m.cost); + + Random rand = world.rand; + EntityBobmazon bob = new EntityBobmazon(world); + bob.posX = p.posX + rand.nextGaussian() * 10; + bob.posY = 300; + bob.posZ = p.posZ + rand.nextGaussian() * 10; + bob.payload = stack; + + world.spawnEntityInWorld(bob); + } else { + p.addChatMessage(new ChatComponentText("[BOBMAZON] Not enough caps!")); + } + + } else { + p.addChatMessage(new ChatComponentText("[BOBMAZON] Requirements not met!")); + } + + return null; + } + + private int countCaps(EntityPlayer player) { + + int count = 0; + + for(int i = 0; i < player.inventory.getSizeInventory(); i++) { + + ItemStack stack = player.inventory.getStackInSlot(i); + + if(stack != null) { + + Item item = stack.getItem(); + + if(item == ModItems.cap_fritz || + item == ModItems.cap_korl || + item == ModItems.cap_nuka || + item == ModItems.cap_quantum || + item == ModItems.cap_rad || + item == ModItems.cap_sparkle || + item == ModItems.cap_star || + item == ModItems.cap_sunset) + count += stack.stackSize; + + } + } + + return count; + } + + private void payCaps(EntityPlayer player, int price) { + + if(price == 0) + return; + + int count = 0; + + for(int i = 0; i < player.inventory.getSizeInventory(); i++) { + + ItemStack stack = player.inventory.getStackInSlot(i); + + if(stack != null) { + + Item item = stack.getItem(); + + if(item == ModItems.cap_fritz || + item == ModItems.cap_korl || + item == ModItems.cap_nuka || + item == ModItems.cap_quantum || + item == ModItems.cap_rad || + item == ModItems.cap_sparkle || + item == ModItems.cap_star || + item == ModItems.cap_sunset) { + + for(int j = 0; j < stack.stackSize; j++) { + + player.inventory.decrStackSize(i, 1); + count++; + + if(count == price) + return; + } + } + } + } + } + } +} diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 08ec6e0155..04ec2329ed 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -83,6 +83,8 @@ public static final void registerPackets() wrapper.registerMessage(GunButtonPacket.Handler.class, GunButtonPacket.class, i++, Side.SERVER); //Packet to send block break particles wrapper.registerMessage(AuxParticlePacket.Handler.class, AuxParticlePacket.class, i++, Side.CLIENT); + //Signals server to buy offer from bobmazon + wrapper.registerMessage(ItemBobmazonPacket.Handler.class, ItemBobmazonPacket.class, i++, Side.SERVER); } } diff --git a/com/hbm/render/entity/RenderMinerRocket.java b/com/hbm/render/entity/RenderMinerRocket.java index dfae5a3232..5d64028f70 100644 --- a/com/hbm/render/entity/RenderMinerRocket.java +++ b/com/hbm/render/entity/RenderMinerRocket.java @@ -2,6 +2,7 @@ import org.lwjgl.opengl.GL11; +import com.hbm.entity.missile.EntityMinerRocket; import com.hbm.main.ResourceManager; import net.minecraft.client.renderer.entity.Render; @@ -19,7 +20,14 @@ public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, do //GL11.glRotated(180, 0, 0, 1); GL11.glDisable(GL11.GL_CULL_FACE); - bindTexture(ResourceManager.minerRocket_tex); + if(p_76986_1_ instanceof EntityMinerRocket) { + bindTexture(ResourceManager.minerRocket_tex); + } else { + bindTexture(ResourceManager.bobmazon_tex); + GL11.glRotatef(180, 1, 0, 0); + //GL11.glTranslatef(0, 2, 0); + } + ResourceManager.minerRocket.renderAll(); GL11.glEnable(GL11.GL_CULL_FACE);