From a6771747a849cdc199d9e1062430f5b25d92a882 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sun, 26 Apr 2020 22:54:47 +0200 Subject: [PATCH] soyuz launcher textures, launch sequence, new particles, package cleanup --- assets/hbm/lang/de_DE.lang | 2 + assets/hbm/lang/en_US.lang | 2 + assets/hbm/models/soyuz_lander.obj | 1418 +++++++++++++++++ assets/hbm/sounds.json | 1 + assets/hbm/sounds/block/soyuzReady.ogg | Bin 0 -> 16964 bytes .../hbm/textures/items/ingot_electronium.png | Bin 0 -> 1643 bytes .../items/ingot_electronium.png.mcmeta | 3 + assets/hbm/textures/items/pellet_advanced.png | Bin 345 -> 271 bytes .../textures/models/{ => capes}/CapeAyy.png | Bin .../models/{ => capes}/CapeDafnik.png | Bin .../models/{ => capes}/CapeGasMask.png | Bin .../hbm/textures/models/capes/CapeGodTM.png | Bin 0 -> 26591 bytes .../textures/models/{ => capes}/CapeHbm.png | Bin .../textures/models/{ => capes}/CapeHbm2.png | Bin assets/hbm/textures/models/capes/CapeHbm3.png | Bin 0 -> 1119 bytes .../models/{ => capes}/CapeHbm_old.png | Bin .../textures/models/{ => capes}/CapeHoboy.png | Bin .../models/{ => capes}/CapeHoboy_mk1.png | Bin .../models/{ => capes}/CapeHoboy_mk2.png | Bin .../models/{ => capes}/CapeLPkukin.png | Bin .../models/{ => capes}/CapeMaster.png | Bin .../textures/models/{ => capes}/CapeMek.png | Bin .../models/{ => capes}/CapeNostalgia.png | Bin .../models/{ => capes}/CapeNostalgia2.png | Bin .../models/{ => capes}/CapeRadiation.png | Bin .../textures/models/{ => capes}/CapeRed.png | Bin .../models/{ => capes}/CapeRed_old.png | Bin .../textures/models/{ => capes}/CapeSam.png | Bin .../models/{ => capes}/CapeSchrabidium.png | Bin .../models/{ => capes}/CapeShield.png | Bin .../models/{ => capes}/CapeTemplate.png | Bin .../textures/models/{ => capes}/CapeTest.png | Bin .../models/{ => capes}/CapeUnknown.png | Bin .../models/{ => capes}/CapeVertice.png | Bin .../models/{ => capes}/CapeVertice_2.png | Bin .../textures/models/capes/CapeZippySqrl.png | Bin 0 -> 995 bytes .../hbm/textures/models/soyuz/bottomstage.png | Bin 12960 -> 16596 bytes assets/hbm/textures/models/soyuz_chute.png | Bin 0 -> 100 bytes assets/hbm/textures/models/soyuz_lander.png | Bin 0 -> 5188 bytes .../models/soyuz_launcher/launcher_leg.png | Bin 505 -> 1351 bytes .../soyuz_launcher/launcher_support.png | Bin 2285 -> 3369 bytes .../soyuz_launcher/launcher_support_base.png | Bin 963 -> 4593 bytes .../models/soyuz_launcher/launcher_table.png | Bin 6592 -> 13168 bytes .../models/soyuz_launcher/launcher_tower.png | Bin 4453 -> 8622 bytes .../soyuz_launcher/launcher_tower_base.png | Bin 1302 -> 6259 bytes .../hbm/textures/particle/particle_base.png | Bin 0 -> 128 bytes com/hbm/entity/missile/EntitySoyuz.java | 142 ++ com/hbm/entity/projectile/EntityMeteor.java | 30 +- com/hbm/inventory/MachineRecipes.java | 6 +- .../container/ContainerCoreInjector.java | 4 +- com/hbm/items/ModItems.java | 10 +- com/hbm/items/special/ItemSoyuz.java | 55 + com/hbm/items/tool/ItemSatChip.java | 2 +- com/hbm/items/weapon/ItemGunShotty.java | 24 + com/hbm/lib/Library.java | 2 + com/hbm/main/ClientProxy.java | 125 ++ com/hbm/main/MainRegistry.java | 1 + com/hbm/main/ResourceManager.java | 4 + com/hbm/particle/ParticleRocketFlame.java | 102 ++ .../entity/{ => effect}/BSmokeRenderer.java | 2 +- .../entity/{ => effect}/DSmokeRenderer.java | 2 +- .../{ => effect}/ElectricityRenderer.java | 2 +- .../entity/{ => effect}/FogRenderer.java | 2 +- .../entity/{ => effect}/GasFlameRenderer.java | 2 +- .../entity/{ => effect}/GasRenderer.java | 2 +- .../{ => effect}/ModEffectRenderer.java | 2 +- .../{ => effect}/MultiCloudRenderer.java | 2 +- .../entity/{ => effect}/RenderBigNuke.java | 2 +- .../entity/{ => effect}/RenderBlackHole.java | 2 +- .../{ => effect}/RenderCloudFleija.java | 2 +- .../{ => effect}/RenderCloudRainbow.java | 2 +- .../{ => effect}/RenderCloudSolinium.java | 2 +- .../entity/{ => effect}/RenderDeathBlast.java | 2 +- .../entity/{ => effect}/RenderEMPBlast.java | 2 +- .../entity/{ => effect}/RenderFallout.java | 2 +- .../entity/{ => effect}/RenderFireball.java | 2 +- .../entity/{ => effect}/RenderFlare.java | 2 +- .../entity/{ => effect}/RenderNoCloud.java | 2 +- .../entity/{ => effect}/RenderSmallNuke.java | 2 +- .../{ => effect}/RenderSmallNukeAlt.java | 2 +- .../{ => effect}/RenderSmallNukeMK3.java | 2 +- .../entity/{ => effect}/RenderVortex.java | 2 +- .../entity/{ => effect}/SSmokeRenderer.java | 2 +- .../entity/{ => effect}/SpillRenderer.java | 2 +- .../entity/{ => effect}/TSmokeRenderer.java | 2 +- .../entity/{ => item}/RenderBomber.java | 2 +- .../entity/{ => item}/RenderMinecartTest.java | 2 +- .../entity/{ => mob}/RenderCyberCrab.java | 2 +- .../entity/{ => mob}/RenderHunterChopper.java | 2 +- .../{ => mob}/RenderNuclearCreeper.java | 2 +- .../{ => mob}/RenderTaintedCreeper.java | 2 +- .../{ => projectile}/RenderBaleflare.java | 2 +- .../entity/{ => projectile}/RenderBeam.java | 2 +- .../entity/{ => projectile}/RenderBeam2.java | 2 +- .../entity/{ => projectile}/RenderBeam3.java | 2 +- .../entity/{ => projectile}/RenderBeam4.java | 2 +- .../entity/{ => projectile}/RenderBeam5.java | 2 +- .../entity/{ => projectile}/RenderBeam6.java | 2 +- .../{ => projectile}/RenderBombletSelena.java | 2 +- .../{ => projectile}/RenderBombletTheta.java | 2 +- .../entity/{ => projectile}/RenderBoxcar.java | 2 +- .../entity/{ => projectile}/RenderBullet.java | 2 +- .../{ => projectile}/RenderChopperMine.java | 2 +- .../entity/{ => projectile}/RenderFOEQ.java | 2 +- .../{ => projectile}/RenderFallingNuke.java | 2 +- .../entity/{ => projectile}/RenderLN2.java | 2 +- .../entity/{ => projectile}/RenderLaser.java | 2 +- .../entity/{ => projectile}/RenderMeteor.java | 2 +- .../{ => projectile}/RenderMiniMIRV.java | 2 +- .../{ => projectile}/RenderMiniNuke.java | 2 +- .../entity/{ => projectile}/RenderMirv.java | 2 +- .../{ => projectile}/RenderOminousBullet.java | 2 +- .../{ => projectile}/RenderRainbow.java | 2 +- .../entity/{ => projectile}/RenderRocket.java | 2 +- .../entity/{ => projectile}/RenderRubble.java | 2 +- .../{ => projectile}/RenderSRocket.java | 2 +- .../{ => projectile}/RenderShrapnel.java | 2 +- .../entity/{ => projectile}/RenderTom.java | 2 +- .../{ => rocket}/RenderBoosterMissile.java | 2 +- .../{ => rocket}/RenderCarrierMissile.java | 2 +- .../{ => rocket}/RenderMinerRocket.java | 2 +- .../{ => rocket}/RenderMissileCustom.java | 2 +- .../{ => rocket}/RenderMissileDoomsday.java | 2 +- .../{ => rocket}/RenderMissileGeneric.java | 2 +- .../{ => rocket}/RenderMissileHuge.java | 2 +- .../{ => rocket}/RenderMissileMirv.java | 2 +- .../{ => rocket}/RenderMissileNuclear.java | 2 +- .../{ => rocket}/RenderMissileStrong.java | 2 +- .../{ => rocket}/RenderMissileTaint.java | 2 +- .../{ => rocket}/RenderMissileThermo.java | 2 +- com/hbm/render/entity/rocket/RenderSoyuz.java | 33 + .../tileentity/RenderSoyuzLauncher.java | 17 +- .../render/tileentity/RendererObjTester.java | 25 +- .../render/util/RenderAccessoryUtility.java | 36 +- com/hbm/render/util/SoyuzLauncherPronter.java | 7 +- com/hbm/sound/AudioDynamic.java | 25 +- com/hbm/sound/AudioWrapper.java | 2 +- .../bomb/TileEntityLaunchTable.java | 21 +- com/hbm/tileentity/deco/TileEntityVent.java | 14 + .../machine/TileEntitySoyuzLauncher.java | 125 +- 140 files changed, 2248 insertions(+), 132 deletions(-) create mode 100644 assets/hbm/models/soyuz_lander.obj create mode 100644 assets/hbm/sounds/block/soyuzReady.ogg create mode 100644 assets/hbm/textures/items/ingot_electronium.png create mode 100644 assets/hbm/textures/items/ingot_electronium.png.mcmeta rename assets/hbm/textures/models/{ => capes}/CapeAyy.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeDafnik.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeGasMask.png (100%) create mode 100644 assets/hbm/textures/models/capes/CapeGodTM.png rename assets/hbm/textures/models/{ => capes}/CapeHbm.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeHbm2.png (100%) create mode 100644 assets/hbm/textures/models/capes/CapeHbm3.png rename assets/hbm/textures/models/{ => capes}/CapeHbm_old.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeHoboy.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeHoboy_mk1.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeHoboy_mk2.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeLPkukin.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeMaster.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeMek.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeNostalgia.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeNostalgia2.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeRadiation.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeRed.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeRed_old.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeSam.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeSchrabidium.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeShield.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeTemplate.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeTest.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeUnknown.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeVertice.png (100%) rename assets/hbm/textures/models/{ => capes}/CapeVertice_2.png (100%) create mode 100644 assets/hbm/textures/models/capes/CapeZippySqrl.png create mode 100644 assets/hbm/textures/models/soyuz_chute.png create mode 100644 assets/hbm/textures/models/soyuz_lander.png create mode 100644 assets/hbm/textures/particle/particle_base.png create mode 100644 com/hbm/entity/missile/EntitySoyuz.java create mode 100644 com/hbm/items/special/ItemSoyuz.java create mode 100644 com/hbm/items/weapon/ItemGunShotty.java create mode 100644 com/hbm/particle/ParticleRocketFlame.java rename com/hbm/render/entity/{ => effect}/BSmokeRenderer.java (96%) rename com/hbm/render/entity/{ => effect}/DSmokeRenderer.java (95%) rename com/hbm/render/entity/{ => effect}/ElectricityRenderer.java (98%) rename com/hbm/render/entity/{ => effect}/FogRenderer.java (98%) rename com/hbm/render/entity/{ => effect}/GasFlameRenderer.java (99%) rename com/hbm/render/entity/{ => effect}/GasRenderer.java (99%) rename com/hbm/render/entity/{ => effect}/ModEffectRenderer.java (96%) rename com/hbm/render/entity/{ => effect}/MultiCloudRenderer.java (96%) rename com/hbm/render/entity/{ => effect}/RenderBigNuke.java (97%) rename com/hbm/render/entity/{ => effect}/RenderBlackHole.java (99%) rename com/hbm/render/entity/{ => effect}/RenderCloudFleija.java (95%) rename com/hbm/render/entity/{ => effect}/RenderCloudRainbow.java (98%) rename com/hbm/render/entity/{ => effect}/RenderCloudSolinium.java (97%) rename com/hbm/render/entity/{ => effect}/RenderDeathBlast.java (99%) rename com/hbm/render/entity/{ => effect}/RenderEMPBlast.java (97%) rename com/hbm/render/entity/{ => effect}/RenderFallout.java (99%) rename com/hbm/render/entity/{ => effect}/RenderFireball.java (99%) rename com/hbm/render/entity/{ => effect}/RenderFlare.java (96%) rename com/hbm/render/entity/{ => effect}/RenderNoCloud.java (99%) rename com/hbm/render/entity/{ => effect}/RenderSmallNuke.java (96%) rename com/hbm/render/entity/{ => effect}/RenderSmallNukeAlt.java (97%) rename com/hbm/render/entity/{ => effect}/RenderSmallNukeMK3.java (96%) rename com/hbm/render/entity/{ => effect}/RenderVortex.java (99%) rename com/hbm/render/entity/{ => effect}/SSmokeRenderer.java (96%) rename com/hbm/render/entity/{ => effect}/SpillRenderer.java (96%) rename com/hbm/render/entity/{ => effect}/TSmokeRenderer.java (95%) rename com/hbm/render/entity/{ => item}/RenderBomber.java (98%) rename com/hbm/render/entity/{ => item}/RenderMinecartTest.java (99%) rename com/hbm/render/entity/{ => mob}/RenderCyberCrab.java (93%) rename com/hbm/render/entity/{ => mob}/RenderHunterChopper.java (95%) rename com/hbm/render/entity/{ => mob}/RenderNuclearCreeper.java (96%) rename com/hbm/render/entity/{ => mob}/RenderTaintedCreeper.java (99%) rename com/hbm/render/entity/{ => projectile}/RenderBaleflare.java (96%) rename com/hbm/render/entity/{ => projectile}/RenderBeam.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBeam2.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBeam3.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBeam4.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBeam5.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBeam6.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderBombletSelena.java (95%) rename com/hbm/render/entity/{ => projectile}/RenderBombletTheta.java (95%) rename com/hbm/render/entity/{ => projectile}/RenderBoxcar.java (97%) rename com/hbm/render/entity/{ => projectile}/RenderBullet.java (99%) rename com/hbm/render/entity/{ => projectile}/RenderChopperMine.java (92%) rename com/hbm/render/entity/{ => projectile}/RenderFOEQ.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderFallingNuke.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderLN2.java (99%) rename com/hbm/render/entity/{ => projectile}/RenderLaser.java (97%) rename com/hbm/render/entity/{ => projectile}/RenderMeteor.java (98%) rename com/hbm/render/entity/{ => projectile}/RenderMiniMIRV.java (96%) rename com/hbm/render/entity/{ => projectile}/RenderMiniNuke.java (94%) rename com/hbm/render/entity/{ => projectile}/RenderMirv.java (94%) rename com/hbm/render/entity/{ => projectile}/RenderOminousBullet.java (95%) rename com/hbm/render/entity/{ => projectile}/RenderRainbow.java (96%) rename com/hbm/render/entity/{ => projectile}/RenderRocket.java (96%) rename com/hbm/render/entity/{ => projectile}/RenderRubble.java (97%) rename com/hbm/render/entity/{ => projectile}/RenderSRocket.java (97%) rename com/hbm/render/entity/{ => projectile}/RenderShrapnel.java (96%) rename com/hbm/render/entity/{ => projectile}/RenderTom.java (92%) rename com/hbm/render/entity/{ => rocket}/RenderBoosterMissile.java (97%) rename com/hbm/render/entity/{ => rocket}/RenderCarrierMissile.java (97%) rename com/hbm/render/entity/{ => rocket}/RenderMinerRocket.java (96%) rename com/hbm/render/entity/{ => rocket}/RenderMissileCustom.java (98%) rename com/hbm/render/entity/{ => rocket}/RenderMissileDoomsday.java (94%) rename com/hbm/render/entity/{ => rocket}/RenderMissileGeneric.java (95%) rename com/hbm/render/entity/{ => rocket}/RenderMissileHuge.java (95%) rename com/hbm/render/entity/{ => rocket}/RenderMissileMirv.java (94%) rename com/hbm/render/entity/{ => rocket}/RenderMissileNuclear.java (93%) rename com/hbm/render/entity/{ => rocket}/RenderMissileStrong.java (95%) rename com/hbm/render/entity/{ => rocket}/RenderMissileTaint.java (97%) rename com/hbm/render/entity/{ => rocket}/RenderMissileThermo.java (94%) create mode 100644 com/hbm/render/entity/rocket/RenderSoyuz.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 54e296166..25c576139 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1887,6 +1887,8 @@ item.missile_skin_metal.name=Raketenskin: Metall item.missile_custom.name=Spezialgefertigte Rakete item.missile_carrier.name=HTR-01 Trägerrakete +item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz_lander.name=Soyuz-Orbitalmodul item.sat_mapper.name=Oberflächen-Abtastungssatellit item.sat_scanner.name=Satellit mit Tiefenscanning-Modul item.sat_radar.name=Radar-Überwachungssatellit diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index c45e8d648..c3bbb2822 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1887,6 +1887,8 @@ item.missile_skin_metal.name=Missile Skin: Metal item.missile_custom.name=Custom Missile item.missile_carrier.name=HTR-01 Carrier Rocket +item.missile_soyuz.name=Soyuz-FG +item.missile_soyuz_lander.name=Soyuz Orbital Module item.sat_mapper.name=Surface Mapping Satellite item.sat_scanner.name=Satellite with Depth-Resource Scanning Module item.sat_radar.name=Radar Survey Satellite diff --git a/assets/hbm/models/soyuz_lander.obj b/assets/hbm/models/soyuz_lander.obj new file mode 100644 index 000000000..5e029b21d --- /dev/null +++ b/assets/hbm/models/soyuz_lander.obj @@ -0,0 +1,1418 @@ +# Blender v2.76 (sub 0) OBJ File: 'soyuz_lander.blend1' +# www.blender.org +o Chute +v -1.913417 13.464549 0.000000 +v -3.535534 12.651650 0.000000 +v -4.619398 11.435062 0.000000 +v -5.000000 10.000000 0.000000 +v -1.767767 13.464549 -0.732233 +v -3.266407 12.651650 -1.352990 +v -4.267767 11.435062 -1.767767 +v -4.619398 10.000000 -1.913417 +v -1.352990 13.464549 -1.352990 +v -2.500000 12.651650 -2.500000 +v -3.266407 11.435062 -3.266407 +v -3.535534 10.000000 -3.535534 +v -0.732233 13.464549 -1.767766 +v -1.352990 12.651650 -3.266407 +v -1.767767 11.435062 -4.267766 +v -1.913417 10.000000 -4.619397 +v -0.000000 13.464549 -1.913417 +v 0.000000 12.651650 -3.535533 +v 0.000000 11.435062 -4.619397 +v -0.000000 10.000000 -4.999999 +v -0.048773 10.000000 -4.903924 +v 0.732232 13.464549 -1.767766 +v 1.352990 12.651650 -3.266406 +v 1.767767 11.435062 -4.267766 +v 1.913417 10.000000 -4.619396 +v 1.352989 13.464549 -1.352990 +v 2.499999 12.651650 -2.499999 +v 3.266407 11.435062 -3.266406 +v 3.535533 10.000000 -3.535532 +v 1.767766 13.464549 -0.732232 +v 3.266406 12.651650 -1.352989 +v 4.267766 11.435062 -1.767765 +v 4.619396 10.000000 -1.913415 +v 1.913416 13.464549 0.000001 +v 3.535532 12.651650 0.000001 +v 4.619396 11.435062 0.000002 +v 4.999998 10.000000 0.000002 +v 1.767766 13.464549 0.732233 +v 3.266405 12.651650 1.352991 +v 4.267765 11.435062 1.767768 +v 4.619395 10.000000 1.913418 +v 0.048772 2.000000 -0.403924 +v 1.352989 13.464549 1.352990 +v 2.499998 12.651650 2.500000 +v 3.266405 11.435062 3.266408 +v 3.535531 10.000000 3.535534 +v -0.048773 2.000000 -0.403924 +v 0.048772 10.000000 -4.903924 +v -0.883884 13.607275 0.366116 +v 0.732232 13.464549 1.767767 +v 1.352988 12.651650 3.266407 +v 1.767764 11.435062 4.267767 +v 1.913414 10.000000 4.619397 +v -0.676496 13.607275 0.676495 +v -0.366118 13.607275 0.883883 +v -0.000001 13.607275 0.956709 +v -0.000001 13.464549 1.913417 +v -0.000002 12.651650 3.535533 +v -0.000003 11.435062 4.619398 +v -0.000003 10.000000 4.999999 +v 0.366115 13.607275 0.883884 +v 0.676494 13.607275 0.676496 +v 0.883882 13.607275 0.366117 +v -0.732234 13.464549 1.767766 +v -1.352992 12.651650 3.266406 +v -1.767770 11.435062 4.267766 +v -1.913419 10.000000 4.619396 +v 0.956707 13.607275 0.000001 +v 0.883882 13.607275 -0.366116 +v 0.676494 13.607275 -0.676494 +v -1.352991 13.464549 1.352989 +v -2.500001 12.651650 2.499998 +v -3.266410 11.435062 3.266406 +v -3.535535 10.000000 3.535532 +v -0.000001 13.607275 -0.956708 +v -0.366117 13.607275 -0.883883 +v -0.676496 13.607275 -0.676495 +v -1.767767 13.464549 0.732232 +v -3.266407 12.651650 1.352988 +v -4.267769 11.435062 1.767765 +v -4.619398 10.000000 1.913415 +v -0.883884 13.607275 -0.366116 +v -0.956709 13.607275 0.000000 +v 0.366116 13.607275 -0.883883 +v 0.048773 10.000000 4.903924 +v -0.048773 2.000000 0.403924 +v 0.048773 2.000000 0.403924 +v -0.048773 10.000000 4.903924 +v -4.903924 10.000000 0.048772 +v -0.403925 2.000000 -0.048772 +v -0.403925 2.000000 0.048773 +v -4.903925 10.000000 -0.048773 +v 4.903924 10.000000 -0.048772 +v 0.403924 2.000000 0.048772 +v 0.403924 2.000000 -0.048773 +v 4.903924 10.000000 0.048773 +v 3.433111 10.000000 -3.502086 +v 0.320105 2.000000 -0.251131 +v 0.251130 2.000000 -0.320105 +v 3.502086 10.000000 -3.433111 +v -3.433111 10.000000 3.502085 +v -0.320105 2.000000 0.251130 +v -0.251130 2.000000 0.320105 +v -3.502086 10.000000 3.433111 +v -3.502085 10.000000 -3.433111 +v -0.251131 2.000000 -0.320105 +v -0.320105 2.000000 -0.251130 +v -3.433111 10.000000 -3.502086 +v 3.502085 10.000000 3.433111 +v 0.251130 2.000000 0.320105 +v 0.320105 2.000000 0.251130 +v 3.433110 10.000000 3.502086 +v -1.913417 13.464549 0.000000 +v -3.535534 12.651650 0.000000 +v -4.619398 11.435062 0.000000 +v -5.000000 10.000000 0.000000 +v -1.767767 13.464549 -0.732233 +v -3.266407 12.651650 -1.352990 +v -4.267767 11.435062 -1.767767 +v -4.619398 10.000000 -1.913417 +v -1.352990 13.464549 -1.352990 +v -2.500000 12.651650 -2.500000 +v -3.266407 11.435062 -3.266407 +v -3.535534 10.000000 -3.535534 +v -0.732233 13.464549 -1.767766 +v -1.352990 12.651650 -3.266407 +v -1.767767 11.435062 -4.267766 +v -1.913417 10.000000 -4.619397 +v -0.000000 13.464549 -1.913417 +v 0.000000 12.651650 -3.535533 +v 0.000000 11.435062 -4.619397 +v -0.000000 10.000000 -4.999999 +v -0.048773 10.000000 -4.903924 +v 0.732232 13.464549 -1.767766 +v 1.352990 12.651650 -3.266406 +v 1.767767 11.435062 -4.267766 +v 1.913417 10.000000 -4.619396 +v 1.352989 13.464549 -1.352990 +v 2.499999 12.651650 -2.499999 +v 3.266407 11.435062 -3.266406 +v 3.535533 10.000000 -3.535532 +v 1.767766 13.464549 -0.732232 +v 3.266406 12.651650 -1.352989 +v 4.267766 11.435062 -1.767765 +v 4.619396 10.000000 -1.913415 +v 1.913416 13.464549 0.000001 +v 3.535532 12.651650 0.000001 +v 4.619396 11.435062 0.000002 +v 4.999998 10.000000 0.000002 +v 1.767766 13.464549 0.732233 +v 3.266405 12.651650 1.352991 +v 4.267765 11.435062 1.767768 +v 4.619395 10.000000 1.913418 +v 0.048772 2.000000 -0.403924 +v 1.352989 13.464549 1.352990 +v 2.499998 12.651650 2.500000 +v 3.266405 11.435062 3.266408 +v 3.535531 10.000000 3.535534 +v -0.048773 2.000000 -0.403924 +v 0.048772 10.000000 -4.903924 +v -0.883884 13.607275 0.366116 +v 0.732232 13.464549 1.767767 +v 1.352988 12.651650 3.266407 +v 1.767764 11.435062 4.267767 +v 1.913414 10.000000 4.619397 +v -0.676496 13.607275 0.676495 +v -0.366118 13.607275 0.883883 +v -0.000001 13.607275 0.956709 +v -0.000001 13.464549 1.913417 +v -0.000002 12.651650 3.535533 +v -0.000003 11.435062 4.619398 +v -0.000003 10.000000 4.999999 +v 0.366115 13.607275 0.883884 +v 0.676494 13.607275 0.676496 +v 0.883882 13.607275 0.366117 +v -0.732234 13.464549 1.767766 +v -1.352992 12.651650 3.266406 +v -1.767770 11.435062 4.267766 +v -1.913419 10.000000 4.619396 +v 0.956707 13.607275 0.000001 +v 0.883882 13.607275 -0.366116 +v 0.676494 13.607275 -0.676494 +v -1.352991 13.464549 1.352989 +v -2.500001 12.651650 2.499998 +v -3.266410 11.435062 3.266406 +v -3.535535 10.000000 3.535532 +v -0.000001 13.607275 -0.956708 +v -0.366117 13.607275 -0.883883 +v -0.676496 13.607275 -0.676495 +v -1.767767 13.464549 0.732232 +v -3.266407 12.651650 1.352988 +v -4.267769 11.435062 1.767765 +v -4.619398 10.000000 1.913415 +v -0.883884 13.607275 -0.366116 +v -0.956709 13.607275 0.000000 +v 0.366116 13.607275 -0.883883 +v 0.048773 10.000000 4.903924 +v -0.048773 2.000000 0.403924 +v 0.048773 2.000000 0.403924 +v -0.048773 10.000000 4.903924 +v -4.903924 10.000000 0.048772 +v -0.403925 2.000000 -0.048772 +v -0.403925 2.000000 0.048773 +v -4.903925 10.000000 -0.048773 +v 4.903924 10.000000 -0.048772 +v 0.403924 2.000000 0.048772 +v 0.403924 2.000000 -0.048773 +v 4.903924 10.000000 0.048773 +v 3.433111 10.000000 -3.502086 +v 0.320105 2.000000 -0.251131 +v 0.251130 2.000000 -0.320105 +v 3.502086 10.000000 -3.433111 +v -3.433111 10.000000 3.502085 +v -0.320105 2.000000 0.251130 +v -0.251130 2.000000 0.320105 +v -3.502086 10.000000 3.433111 +v -3.502085 10.000000 -3.433111 +v -0.251131 2.000000 -0.320105 +v -0.320105 2.000000 -0.251130 +v -3.433111 10.000000 -3.502086 +v 3.502085 10.000000 3.433111 +v 0.251130 2.000000 0.320105 +v 0.320105 2.000000 0.251130 +v 3.433110 10.000000 3.502086 +vt 0.666667 1.000000 +vt 0.666667 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.666667 0.500000 +vt 0.333333 0.500000 +vt 0.333333 0.250000 +vt 0.666667 0.250000 +vt 0.333333 0.000000 +vt 0.666667 0.750000 +vt 0.333333 0.750000 +vt 0.000000 0.250000 +vt 0.000000 0.750000 +vt -0.000000 0.500000 +vt -0.000000 -0.000000 +vt 0.333333 1.000000 +vt -0.000000 1.000000 +vn 0.000000 -0.490300 -0.871600 +vn 0.000000 -0.490300 0.871600 +vn -0.871600 -0.490300 0.000000 +vn 0.871600 -0.490300 0.000000 +vn 0.616300 -0.490300 -0.616300 +vn -0.616300 -0.490300 0.616300 +vn -0.616300 -0.490300 -0.616300 +vn 0.616300 -0.490300 0.616300 +vn 0.000000 0.490300 0.871600 +vn 0.000000 0.490300 -0.871600 +vn 0.871600 0.490300 0.000000 +vn -0.871600 0.490300 0.000000 +vn -0.616300 0.490300 0.616300 +vn 0.616300 0.490300 -0.616300 +vn 0.616300 0.490300 0.616300 +vn -0.616300 0.490300 -0.616300 +vn -0.622500 0.782600 0.000000 +vn -0.575200 0.782600 -0.238200 +vn -0.819300 0.462100 -0.339400 +vn -0.886800 0.462100 0.000000 +vn -0.893000 0.256300 -0.369900 +vn -0.319200 0.947700 0.000000 +vn -0.294900 0.947700 -0.122200 +vn -0.627100 0.462100 -0.627100 +vn -0.225700 0.947700 -0.225700 +vn -0.440200 0.782600 -0.440200 +vn -0.238200 0.782600 -0.575200 +vn -0.339400 0.462100 -0.819300 +vn -0.369900 0.256300 -0.893000 +vn -0.122200 0.947700 -0.294900 +vn 0.000000 0.782600 -0.622500 +vn 0.000000 0.462100 -0.886800 +vn 0.000000 0.256300 -0.966600 +vn 0.000000 0.947700 -0.319200 +vn 0.339400 0.462100 -0.819300 +vn 0.369900 0.256300 -0.893000 +vn 0.122200 0.947700 -0.294900 +vn 0.238200 0.782600 -0.575200 +vn 0.627100 0.462100 -0.627100 +vn 0.683500 0.256300 -0.683500 +vn 0.225700 0.947700 -0.225700 +vn 0.440200 0.782600 -0.440200 +vn 0.575200 0.782600 -0.238200 +vn 0.819300 0.462100 -0.339400 +vn 0.294900 0.947700 -0.122200 +vn 0.622500 0.782600 0.000000 +vn 0.886800 0.462100 0.000000 +vn 0.966600 0.256300 0.000000 +vn 0.319200 0.947700 0.000000 +vn 0.819300 0.462100 0.339400 +vn 0.294900 0.947700 0.122200 +vn 0.575200 0.782600 0.238200 +vn 0.225700 0.947700 0.225700 +vn 0.440200 0.782600 0.440200 +vn 0.627100 0.462100 0.627100 +vn 0.683500 0.256300 0.683500 +vn 0.238200 0.782600 0.575200 +vn 0.339400 0.462100 0.819300 +vn 0.369900 0.256300 0.893000 +vn 0.122200 0.947700 0.294900 +vn 0.000000 0.462100 0.886800 +vn 0.000000 0.256300 0.966600 +vn 0.000000 0.947700 0.319200 +vn 0.000000 0.782600 0.622500 +vn -0.339400 0.462100 0.819300 +vn -0.122200 0.947700 0.294900 +vn -0.238200 0.782600 0.575200 +vn -0.440200 0.782600 0.440200 +vn -0.627100 0.462100 0.627100 +vn -0.683500 0.256300 0.683500 +vn -0.225700 0.947700 0.225700 +vn -0.575200 0.782600 0.238200 +vn -0.819300 0.462100 0.339400 +vn -0.893000 0.256300 0.369900 +vn -0.294900 0.947700 0.122200 +vn -0.147500 0.989000 0.000000 +vn -0.136300 0.989000 -0.056500 +vn -0.104300 0.989000 -0.104300 +vn -0.056500 0.989000 -0.136300 +vn 0.000000 0.989000 -0.147500 +vn 0.056500 0.989000 -0.136300 +vn 0.104300 0.989000 -0.104300 +vn 0.136300 0.989000 -0.056500 +vn 0.147500 0.989000 0.000000 +vn 0.136300 0.989000 0.056500 +vn 0.104300 0.989000 0.104300 +vn 0.056500 0.989000 0.136300 +vn 0.000000 0.989000 0.147500 +vn -0.056500 0.989000 0.136300 +vn -0.104300 0.989000 0.104300 +vn -0.966600 0.256300 0.000000 +vn -0.136300 0.989000 0.056500 +vn 0.819300 -0.462100 0.339400 +vn 0.575200 -0.782600 0.238200 +vn 0.622500 -0.782600 0.000000 +vn 0.893000 -0.256300 0.369900 +vn 0.886800 -0.462100 0.000000 +vn 0.294900 -0.947700 0.122200 +vn 0.319200 -0.947700 0.000000 +vn 0.683500 -0.256300 0.683500 +vn 0.627100 -0.462100 0.627100 +vn 0.440200 -0.782600 0.440200 +vn 0.225700 -0.947700 0.225700 +vn 0.339400 -0.462100 0.819300 +vn 0.238200 -0.782600 0.575200 +vn 0.369900 -0.256300 0.893000 +vn 0.122200 -0.947700 0.294900 +vn 0.000000 -0.462100 0.886800 +vn 0.000000 -0.782600 0.622500 +vn 0.000000 -0.256300 0.966600 +vn 0.000000 -0.947700 0.319200 +vn -0.369900 -0.256300 0.893000 +vn -0.339400 -0.462100 0.819300 +vn -0.238200 -0.782600 0.575200 +vn -0.122200 -0.947700 0.294900 +vn -0.683500 -0.256300 0.683500 +vn -0.627100 -0.462100 0.627100 +vn -0.440200 -0.782600 0.440200 +vn -0.225700 -0.947700 0.225700 +vn -0.819300 -0.462100 0.339400 +vn -0.575200 -0.782600 0.238200 +vn -0.893000 -0.256300 0.369900 +vn -0.294900 -0.947700 0.122200 +vn -0.886800 -0.462100 0.000000 +vn -0.622500 -0.782600 0.000000 +vn -0.966600 -0.256300 0.000000 +vn -0.319200 -0.947700 0.000000 +vn -0.893000 -0.256300 -0.369900 +vn -0.819300 -0.462100 -0.339400 +vn -0.575200 -0.782600 -0.238200 +vn -0.294900 -0.947700 -0.122200 +vn -0.440200 -0.782600 -0.440200 +vn -0.225700 -0.947700 -0.225700 +vn -0.627100 -0.462100 -0.627100 +vn -0.683500 -0.256300 -0.683500 +vn -0.339400 -0.462100 -0.819300 +vn -0.238200 -0.782600 -0.575200 +vn -0.369900 -0.256300 -0.893000 +vn -0.122200 -0.947700 -0.294900 +vn 0.000000 -0.256300 -0.966600 +vn 0.000000 -0.462100 -0.886800 +vn 0.000000 -0.782600 -0.622500 +vn 0.000000 -0.947700 -0.319200 +vn 0.369900 -0.256300 -0.893000 +vn 0.339400 -0.462100 -0.819300 +vn 0.238200 -0.782600 -0.575200 +vn 0.122200 -0.947700 -0.294900 +vn 0.627100 -0.462100 -0.627100 +vn 0.440200 -0.782600 -0.440200 +vn 0.683500 -0.256300 -0.683500 +vn 0.225700 -0.947700 -0.225700 +vn 0.819300 -0.462100 -0.339400 +vn 0.575200 -0.782600 -0.238200 +vn 0.893000 -0.256300 -0.369900 +vn 0.294900 -0.947700 -0.122200 +vn 0.136300 -0.989000 0.056500 +vn 0.104300 -0.989000 0.104300 +vn 0.056500 -0.989000 0.136300 +vn 0.000000 -0.989000 0.147500 +vn -0.056500 -0.989000 0.136300 +vn -0.104300 -0.989000 0.104300 +vn -0.136300 -0.989000 0.056500 +vn -0.147500 -0.989000 0.000000 +vn -0.136300 -0.989000 -0.056500 +vn -0.104300 -0.989000 -0.104300 +vn -0.056500 -0.989000 -0.136300 +vn 0.000000 -0.989000 -0.147500 +vn 0.056500 -0.989000 -0.136300 +vn 0.104300 -0.989000 -0.104300 +vn 0.966600 -0.256300 0.000000 +vn 0.136300 -0.989000 -0.056500 +vn 0.147500 -0.989000 0.000000 +vn -0.683500 0.256300 -0.683500 +vn 0.893000 0.256300 -0.369900 +vn 0.893000 0.256300 0.369900 +vn -0.369900 0.256300 0.893000 +s off +f 48/1/1 42/2/1 47/3/1 +f 88/1/2 86/2/2 87/3/2 +f 92/1/3 90/2/3 91/3/3 +f 96/1/4 94/2/4 95/3/4 +f 100/1/5 98/2/5 99/3/5 +f 101/4/6 104/1/6 102/2/6 +f 105/4/7 108/1/7 106/2/7 +f 112/1/8 110/2/8 111/3/8 +f 159/3/9 154/2/9 160/1/9 +f 199/3/10 198/2/10 200/1/10 +f 203/3/11 202/2/11 204/1/11 +f 207/3/12 206/2/12 208/1/12 +f 211/3/13 210/2/13 212/1/13 +f 215/3/14 214/2/14 216/1/14 +f 219/3/15 218/2/15 220/1/15 +f 221/4/16 223/3/16 222/2/16 +f 21/4/1 48/1/1 47/3/1 +f 85/4/2 88/1/2 87/3/2 +f 89/4/3 92/1/3 91/3/3 +f 93/4/4 96/1/4 95/3/4 +f 97/4/5 100/1/5 99/3/5 +f 103/3/6 101/4/6 102/2/6 +f 107/3/7 105/4/7 106/2/7 +f 109/4/8 112/1/8 111/3/8 +f 133/4/9 159/3/9 160/1/9 +f 197/4/10 199/3/10 200/1/10 +f 201/4/11 203/3/11 204/1/11 +f 205/4/12 207/3/12 208/1/12 +f 209/4/13 211/3/13 212/1/13 +f 213/4/14 215/3/14 216/1/14 +f 217/4/15 219/3/15 220/1/15 +f 224/1/16 221/4/16 222/2/16 +s 1 +f 2/5/17 6/6/18 7/7/19 +f 3/8/20 7/7/19 8/9/21 +f 1/10/22 5/11/23 6/6/18 +f 8/9/21 7/7/19 11/12/24 +f 6/6/18 5/11/23 9/13/25 +f 6/6/18 10/14/26 11/12/24 +f 10/5/26 14/6/27 15/7/28 +f 11/8/24 15/7/28 16/9/29 +f 9/10/25 13/11/30 14/6/27 +f 14/6/27 18/14/31 19/12/32 +f 15/7/28 19/12/32 20/15/33 +f 14/6/27 13/11/30 17/13/34 +f 19/8/32 24/7/35 25/9/36 +f 17/10/34 22/11/37 23/6/38 +f 19/8/32 18/5/31 23/6/38 +f 24/7/35 28/12/39 29/15/40 +f 22/11/37 26/13/41 27/14/42 +f 23/6/38 27/14/42 28/12/39 +f 27/5/42 31/6/43 32/7/44 +f 29/2/40 28/8/39 32/7/44 +f 26/10/41 30/11/45 31/6/43 +f 31/6/43 35/14/46 36/12/47 +f 32/7/44 36/12/47 37/15/48 +f 30/11/45 34/13/49 35/14/46 +f 37/2/48 36/8/47 40/7/50 +f 34/10/49 38/11/51 39/6/52 +f 36/8/47 35/5/46 39/6/52 +f 39/6/52 38/11/51 43/13/53 +f 39/6/52 44/14/54 45/12/55 +f 40/7/50 45/12/55 46/15/56 +f 45/8/55 44/5/54 51/6/57 +f 45/8/55 52/7/58 53/9/59 +f 43/10/53 50/11/60 51/6/57 +f 52/7/58 59/12/61 60/15/62 +f 50/11/60 57/13/63 58/14/64 +f 51/6/57 58/14/64 59/12/61 +f 60/2/62 59/8/61 66/7/65 +f 57/10/63 64/11/66 65/6/67 +f 58/5/64 65/6/67 66/7/65 +f 66/7/65 65/6/67 72/14/68 +f 66/7/65 73/12/69 74/15/70 +f 64/11/66 71/13/71 72/14/68 +f 72/5/68 79/6/72 80/7/73 +f 73/8/69 80/7/73 81/9/74 +f 71/10/71 78/11/75 79/6/72 +f 1/10/22 83/1/76 82/16/77 +f 82/16/77 77/17/78 9/13/25 +f 9/10/25 77/1/78 76/16/79 +f 13/11/30 76/16/79 75/17/80 +f 75/1/80 84/16/81 22/11/37 +f 22/11/37 84/16/81 70/17/82 +f 70/1/82 69/16/83 30/11/45 +f 69/16/83 68/17/84 34/13/49 +f 68/1/84 63/16/85 38/11/51 +f 63/16/85 62/17/86 43/13/53 +f 62/1/86 61/16/87 50/11/60 +f 61/16/87 56/17/88 57/13/63 +f 56/1/88 55/16/89 64/11/66 +f 55/16/89 54/17/90 71/13/71 +f 80/7/73 3/12/20 4/15/91 +f 78/11/75 1/13/22 2/14/17 +f 71/10/71 54/1/90 49/16/92 +f 78/11/75 49/16/92 83/17/76 +f 79/6/72 2/14/17 3/12/20 +f 119/7/93 118/6/94 114/5/95 +f 120/9/96 119/7/93 115/8/97 +f 118/6/94 117/11/98 113/10/99 +f 124/15/100 123/12/101 119/7/93 +f 118/6/94 122/14/102 121/13/103 +f 123/12/101 122/14/102 118/6/94 +f 127/7/104 126/6/105 122/5/102 +f 128/9/106 127/7/104 123/8/101 +f 126/6/105 125/11/107 121/10/103 +f 127/7/104 131/12/108 130/14/109 +f 132/15/110 131/12/108 127/7/104 +f 130/14/109 129/13/111 125/11/107 +f 137/9/112 136/7/113 131/8/108 +f 135/6/114 134/11/115 129/10/111 +f 131/8/108 136/7/113 135/6/114 +f 141/15/116 140/12/117 136/7/113 +f 135/6/114 139/14/118 138/13/119 +f 140/12/117 139/14/118 135/6/114 +f 144/7/120 143/6/121 139/5/118 +f 145/9/122 144/7/120 140/8/117 +f 143/6/121 142/11/123 138/10/119 +f 148/12/124 147/14/125 143/6/121 +f 149/15/126 148/12/124 144/7/120 +f 143/6/121 147/14/125 146/13/127 +f 149/2/126 153/9/128 152/7/129 +f 147/5/125 151/6/130 150/11/131 +f 148/8/124 152/7/129 151/6/130 +f 151/6/130 156/14/132 155/13/133 +f 152/7/129 157/12/134 156/14/132 +f 153/9/128 158/15/135 157/12/134 +f 157/8/134 164/7/136 163/6/137 +f 158/2/135 165/9/138 164/7/136 +f 156/5/132 163/6/137 162/11/139 +f 172/15/140 171/12/141 164/7/136 +f 170/14/142 169/13/143 162/11/139 +f 171/12/141 170/14/142 163/6/137 +f 172/2/140 179/9/144 178/7/145 +f 177/6/146 176/11/147 169/10/143 +f 178/7/145 177/6/146 170/5/142 +f 185/12/148 184/14/149 177/6/146 +f 186/15/150 185/12/148 178/7/145 +f 184/14/149 183/13/151 176/11/147 +f 192/7/152 191/6/153 184/5/149 +f 193/9/154 192/7/152 185/8/148 +f 191/6/153 190/11/155 183/10/151 +f 113/10/99 117/11/98 194/16/156 +f 117/11/98 121/13/103 189/17/157 +f 121/10/103 125/11/107 188/16/158 +f 125/11/107 129/13/111 187/17/159 +f 134/11/115 196/16/160 187/1/159 +f 134/11/115 138/13/119 182/17/161 +f 142/11/123 181/16/162 182/1/161 +f 146/13/127 180/17/163 181/16/162 +f 150/11/131 175/16/164 180/1/163 +f 155/13/133 174/17/165 175/16/164 +f 162/11/139 173/16/166 174/1/165 +f 169/13/143 168/17/167 173/16/166 +f 176/11/147 167/16/168 168/1/167 +f 183/13/151 166/17/169 167/16/168 +f 116/15/170 115/12/97 192/7/152 +f 191/6/153 114/14/95 113/13/99 +f 190/11/155 161/16/171 166/1/169 +f 190/11/155 113/13/99 195/17/172 +f 115/12/97 114/14/95 191/6/153 +f 3/8/20 2/5/17 7/7/19 +f 4/2/91 3/8/20 8/9/21 +f 2/5/17 1/10/22 6/6/18 +f 12/15/173 8/9/21 11/12/24 +f 10/14/26 6/6/18 9/13/25 +f 7/7/19 6/6/18 11/12/24 +f 11/8/24 10/5/26 15/7/28 +f 12/2/173 11/8/24 16/9/29 +f 10/5/26 9/10/25 14/6/27 +f 15/7/28 14/6/27 19/12/32 +f 16/9/29 15/7/28 20/15/33 +f 18/14/31 14/6/27 17/13/34 +f 20/2/33 19/8/32 25/9/36 +f 18/5/31 17/10/34 23/6/38 +f 24/7/35 19/8/32 23/6/38 +f 25/9/36 24/7/35 29/15/40 +f 23/6/38 22/11/37 27/14/42 +f 24/7/35 23/6/38 28/12/39 +f 28/8/39 27/5/42 32/7/44 +f 33/9/174 29/2/40 32/7/44 +f 27/5/42 26/10/41 31/6/43 +f 32/7/44 31/6/43 36/12/47 +f 33/9/174 32/7/44 37/15/48 +f 31/6/43 30/11/45 35/14/46 +f 41/9/175 37/2/48 40/7/50 +f 35/5/46 34/10/49 39/6/52 +f 40/7/50 36/8/47 39/6/52 +f 44/14/54 39/6/52 43/13/53 +f 40/7/50 39/6/52 45/12/55 +f 41/9/175 40/7/50 46/15/56 +f 52/7/58 45/8/55 51/6/57 +f 46/2/56 45/8/55 53/9/59 +f 44/5/54 43/10/53 51/6/57 +f 53/9/59 52/7/58 60/15/62 +f 51/6/57 50/11/60 58/14/64 +f 52/7/58 51/6/57 59/12/61 +f 67/9/176 60/2/62 66/7/65 +f 58/5/64 57/10/63 65/6/67 +f 59/8/61 58/5/64 66/7/65 +f 73/12/69 66/7/65 72/14/68 +f 67/9/176 66/7/65 74/15/70 +f 65/6/67 64/11/66 72/14/68 +f 73/8/69 72/5/68 80/7/73 +f 74/2/70 73/8/69 81/9/74 +f 72/5/68 71/10/71 79/6/72 +f 5/11/23 1/10/22 82/16/77 +f 5/11/23 82/16/77 9/13/25 +f 13/11/30 9/10/25 76/16/79 +f 17/13/34 13/11/30 75/17/80 +f 17/10/34 75/1/80 22/11/37 +f 26/13/41 22/11/37 70/17/82 +f 26/10/41 70/1/82 30/11/45 +f 30/11/45 69/16/83 34/13/49 +f 34/10/49 68/1/84 38/11/51 +f 38/11/51 63/16/85 43/13/53 +f 43/10/53 62/1/86 50/11/60 +f 50/11/60 61/16/87 57/13/63 +f 57/10/63 56/1/88 64/11/66 +f 64/11/66 55/16/89 71/13/71 +f 81/9/74 80/7/73 4/15/91 +f 79/6/72 78/11/75 2/14/17 +f 78/11/75 71/10/71 49/16/92 +f 1/13/22 78/11/75 83/17/76 +f 80/7/73 79/6/72 3/12/20 +f 115/8/97 119/7/93 114/5/95 +f 116/2/170 120/9/96 115/8/97 +f 114/5/95 118/6/94 113/10/99 +f 120/9/96 124/15/100 119/7/93 +f 117/11/98 118/6/94 121/13/103 +f 119/7/93 123/12/101 118/6/94 +f 123/8/101 127/7/104 122/5/102 +f 124/2/100 128/9/106 123/8/101 +f 122/5/102 126/6/105 121/10/103 +f 126/6/105 127/7/104 130/14/109 +f 128/9/106 132/15/110 127/7/104 +f 126/6/105 130/14/109 125/11/107 +f 132/2/110 137/9/112 131/8/108 +f 130/5/109 135/6/114 129/10/111 +f 130/5/109 131/8/108 135/6/114 +f 137/9/112 141/15/116 136/7/113 +f 134/11/115 135/6/114 138/13/119 +f 136/7/113 140/12/117 135/6/114 +f 140/8/117 144/7/120 139/5/118 +f 141/2/116 145/9/122 140/8/117 +f 139/5/118 143/6/121 138/10/119 +f 144/7/120 148/12/124 143/6/121 +f 145/9/122 149/15/126 144/7/120 +f 142/11/123 143/6/121 146/13/127 +f 148/8/124 149/2/126 152/7/129 +f 146/10/127 147/5/125 150/11/131 +f 147/5/125 148/8/124 151/6/130 +f 150/11/131 151/6/130 155/13/133 +f 151/6/130 152/7/129 156/14/132 +f 152/7/129 153/9/128 157/12/134 +f 156/5/132 157/8/134 163/6/137 +f 157/8/134 158/2/135 164/7/136 +f 155/10/133 156/5/132 162/11/139 +f 165/9/138 172/15/140 164/7/136 +f 163/6/137 170/14/142 162/11/139 +f 164/7/136 171/12/141 163/6/137 +f 171/8/141 172/2/140 178/7/145 +f 170/5/142 177/6/146 169/10/143 +f 171/8/141 178/7/145 170/5/142 +f 178/7/145 185/12/148 177/6/146 +f 179/9/144 186/15/150 178/7/145 +f 177/6/146 184/14/149 176/11/147 +f 185/8/148 192/7/152 184/5/149 +f 186/2/150 193/9/154 185/8/148 +f 184/5/149 191/6/153 183/10/151 +f 195/1/172 113/10/99 194/16/156 +f 194/16/156 117/11/98 189/17/157 +f 189/1/157 121/10/103 188/16/158 +f 188/16/158 125/11/107 187/17/159 +f 129/10/111 134/11/115 187/1/159 +f 196/16/160 134/11/115 182/17/161 +f 138/10/119 142/11/123 182/1/161 +f 142/11/123 146/13/127 181/16/162 +f 146/10/127 150/11/131 180/1/163 +f 150/11/131 155/13/133 175/16/164 +f 155/10/133 162/11/139 174/1/165 +f 162/11/139 169/13/143 173/16/166 +f 169/10/143 176/11/147 168/1/167 +f 176/11/147 183/13/151 167/16/168 +f 193/9/154 116/15/170 192/7/152 +f 190/11/155 191/6/153 113/13/99 +f 183/10/151 190/11/155 166/1/169 +f 161/16/171 190/11/155 195/17/172 +f 192/7/152 115/12/97 191/6/153 +o Capsule +v 0.311409 0.125000 -0.751807 +v 0.000000 0.125000 -0.813750 +v 0.000000 0.250000 -1.085000 +v 0.000000 1.740000 -0.922250 +v 0.415212 0.250000 -1.002409 +v 0.352930 1.740000 -0.852048 +v 0.767211 0.250000 -0.767211 +v 0.652129 1.740000 -0.652129 +v 1.002409 0.250000 -0.415212 +v 0.852048 1.740000 -0.352930 +v 1.085000 0.250000 0.000000 +v 0.922250 1.740000 0.000000 +v 1.002409 0.250000 0.415212 +v 0.852048 1.740000 0.352930 +v 0.767211 0.250000 0.767211 +v 0.652129 1.740000 0.652129 +v 0.415212 0.250000 1.002409 +v 0.352930 1.740000 0.852048 +v 0.000000 0.250000 1.085000 +v 0.000000 1.740000 0.922250 +v -0.415211 0.250000 1.002409 +v -0.352930 1.740000 0.852048 +v -0.767211 0.250000 0.767211 +v -0.652129 1.740000 0.652129 +v -1.002409 0.250000 0.415212 +v -0.852048 1.740000 0.352930 +v -1.085000 0.250000 -0.000000 +v -0.922250 1.740000 -0.000000 +v -1.002409 0.250000 -0.415212 +v -0.852048 1.740000 -0.352930 +v -0.767211 0.250000 -0.767211 +v -0.652129 1.740000 -0.652129 +v -0.415211 0.250000 -1.002410 +v -0.352929 1.740000 -0.852048 +v 0.575408 0.125000 -0.575408 +v 0.751807 0.125000 -0.311409 +v 0.813750 0.125000 0.000000 +v 0.751807 0.125000 0.311409 +v 0.575408 0.125000 0.575408 +v 0.311409 0.125000 0.751807 +v 0.000000 0.125000 0.813750 +v -0.311408 0.125000 0.751807 +v -0.575408 0.125000 0.575408 +v -0.751807 0.125000 0.311409 +v -0.813750 0.125000 -0.000000 +v -0.751807 0.125000 -0.311409 +v -0.575408 0.125000 -0.575408 +v -0.311408 0.125000 -0.751807 +v -0.103803 0.000000 -0.250602 +v 0.000000 0.000000 -0.271250 +v -0.191803 0.000000 -0.191803 +v -0.250602 0.000000 -0.103803 +v -0.271250 0.000000 0.000000 +v -0.250602 0.000000 0.103803 +v -0.191803 0.000000 0.191803 +v -0.103803 0.000000 0.250602 +v 0.000000 0.000000 0.271250 +v 0.103803 0.000000 0.250602 +v 0.191803 0.000000 0.191803 +v 0.250602 0.000000 0.103803 +v 0.271250 0.000000 0.000000 +v 0.250602 0.000000 -0.103803 +v 0.191803 0.000000 -0.191803 +v 0.103803 0.000000 -0.250602 +v 0.207606 2.115000 -0.501205 +v 0.000000 2.115000 -0.542500 +v 0.383605 2.115000 -0.383605 +v 0.501205 2.115000 -0.207606 +v 0.542500 2.115000 0.000000 +v 0.501205 2.115000 0.207606 +v 0.383605 2.115000 0.383605 +v 0.207606 2.115000 0.501205 +v 0.000000 2.115000 0.542500 +v -0.207606 2.115000 0.501205 +v -0.383605 2.115000 0.383606 +v -0.501205 2.115000 0.207606 +v -0.542500 2.115000 -0.000000 +v -0.501205 2.115000 -0.207606 +v -0.383605 2.115000 -0.383606 +v -0.207605 2.115000 -0.501205 +v 0.207606 2.240000 -0.501205 +v 0.000000 2.240000 -0.542500 +v 0.383605 2.240000 -0.383605 +v 0.501205 2.240000 -0.207606 +v 0.542500 2.240000 0.000000 +v 0.501205 2.240000 0.207606 +v 0.383605 2.240000 0.383605 +v 0.207606 2.240000 0.501205 +v 0.000000 2.240000 0.542500 +v -0.207606 2.240000 0.501205 +v -0.383605 2.240000 0.383606 +v -0.501205 2.240000 0.207606 +v -0.542500 2.240000 -0.000000 +v -0.501205 2.240000 -0.207606 +v -0.383605 2.240000 -0.383606 +v -0.207606 2.240000 -0.501205 +v 0.155704 2.240000 -0.375903 +v 0.000000 2.240000 -0.406875 +v 0.287704 2.240000 -0.287704 +v 0.375904 2.240000 -0.155704 +v 0.406875 2.240000 0.000000 +v 0.375904 2.240000 0.155704 +v 0.287704 2.240000 0.287704 +v 0.155704 2.240000 0.375903 +v 0.000000 2.240000 0.406875 +v -0.155704 2.240000 0.375904 +v -0.287704 2.240000 0.287704 +v -0.375903 2.240000 0.155704 +v -0.406875 2.240000 -0.000000 +v -0.375903 2.240000 -0.155704 +v -0.287704 2.240000 -0.287704 +v -0.155704 2.240000 -0.375904 +v 0.155704 2.115000 -0.375903 +v 0.000000 2.115000 -0.406875 +v 0.287704 2.115000 -0.287704 +v 0.375904 2.115000 -0.155704 +v 0.406875 2.115000 0.000000 +v 0.375904 2.115000 0.155704 +v 0.287704 2.115000 0.287704 +v 0.155704 2.115000 0.375903 +v 0.000000 2.115000 0.406875 +v -0.155704 2.115000 0.375904 +v -0.287704 2.115000 0.287704 +v -0.375903 2.115000 0.155704 +v -0.406875 2.115000 -0.000000 +v -0.375903 2.115000 -0.155704 +v -0.287704 2.115000 -0.287704 +v -0.155704 2.115000 -0.375904 +vt 0.080357 0.666667 +vt 0.071429 0.705882 +vt 0.053571 0.705882 +vt 0.267857 0.666667 +vt 0.258929 0.705882 +vt 0.241071 0.705882 +vt 0.053571 0.666667 +vt 0.044643 0.705882 +vt 0.026786 0.705882 +vt 0.241071 0.666667 +vt 0.232143 0.705882 +vt 0.214286 0.705882 +vt 0.026786 0.666667 +vt 0.017857 0.705882 +vt -0.000000 0.705882 +vt 0.214286 0.666667 +vt 0.205357 0.705882 +vt 0.187500 0.705882 +vt 0.428571 0.666667 +vt 0.419643 0.705882 +vt 0.401786 0.705882 +vt 0.160714 0.666667 +vt 0.187500 0.666667 +vt 0.178571 0.705882 +vt 0.401786 0.666667 +vt 0.392857 0.705882 +vt 0.375000 0.705882 +vt 0.151786 0.705882 +vt 0.133929 0.705882 +vt 0.375000 0.666667 +vt 0.366071 0.705882 +vt 0.348214 0.705882 +vt 0.133929 0.666667 +vt 0.125000 0.705882 +vt 0.107143 0.705882 +vt 0.321429 0.666667 +vt 0.312500 0.705882 +vt 0.294643 0.705882 +vt 0.348214 0.666667 +vt 0.339286 0.705882 +vt 0.107143 0.666667 +vt 0.098214 0.705882 +vt 0.080357 0.705882 +vt 0.294643 0.666667 +vt 0.285714 0.705882 +vt 0.267857 0.705882 +vt 0.523883 0.635403 +vt 0.573747 0.708572 +vt 0.552128 0.947248 +vt -0.000000 0.666667 +vt 0.160714 0.705882 +vt 0.321429 0.705882 +vt 0.523883 0.972942 +vt 0.443445 0.899772 +vt 0.493310 0.972942 +vt 0.465064 0.947248 +vt 0.431746 0.837742 +vt 0.465064 0.661096 +vt 0.431746 0.770602 +vt 0.443446 0.708572 +vt 0.493310 0.635403 +vt 0.552128 0.661096 +vt 0.585447 0.770602 +vt 0.585447 0.837743 +vt 0.573747 0.899772 +vt 0.053571 0.843137 +vt 0.035714 1.000000 +vt 0.017857 1.000000 +vt 0.062500 0.745098 +vt 0.008929 0.843137 +vt 0.741071 0.470588 +vt 0.696429 0.470588 +vt 0.687500 0.000000 +vt 0.678571 0.470588 +vt 0.633929 0.470588 +vt 0.625000 -0.000000 +vt 0.616071 0.470588 +vt 0.571429 0.470588 +vt 0.562500 0.000000 +vt -0.000000 0.745098 +vt 0.553571 0.470588 +vt 0.508929 0.470588 +vt 0.491071 0.470588 +vt 0.446429 0.470588 +vt 0.437500 0.000000 +vt 0.428571 0.470588 +vt 0.383929 0.470588 +vt 0.375000 -0.000000 +vt 0.366071 0.470588 +vt 0.321429 0.470588 +vt 0.312500 0.000000 +vt 0.303571 0.470588 +vt 0.258929 0.470588 +vt 0.250000 -0.000000 +vt 0.241071 0.470588 +vt 0.196429 0.470588 +vt 0.187500 0.000000 +vt 0.178571 0.470588 +vt 0.133929 0.470588 +vt 0.125000 -0.000000 +vt 0.116071 0.470588 +vt 0.071429 0.470588 +vt 0.062500 -0.000000 +vt 0.053571 0.470588 +vt 0.008929 0.470588 +vt -0.000000 -0.000000 +vt 0.158743 0.925461 +vt 0.087137 0.956740 +vt 0.144499 0.768210 +vt 0.991071 0.470588 +vt 0.946429 0.470588 +vt 0.937500 0.000000 +vt 0.928571 0.470588 +vt 0.883929 0.470588 +vt 0.875000 -0.000000 +vt 0.803571 0.470588 +vt 0.794643 0.627451 +vt 0.767857 0.627451 +vt 0.812500 0.000000 +vt 0.758929 0.470588 +vt 0.866071 0.470588 +vt 0.821429 0.470588 +vt 0.214286 0.627451 +vt 0.732143 0.627451 +vt 0.705357 0.627451 +vt 0.544643 0.627451 +vt 0.357143 0.627451 +vt 0.330357 0.627451 +vt 0.169643 0.627451 +vt 0.142857 0.627451 +vt 0.982143 0.627451 +vt 0.955357 0.627451 +vt 0.607143 0.627451 +vt 0.419643 0.627451 +vt 0.392857 0.627451 +vt 0.232143 0.627451 +vt 0.205357 0.627451 +vt 0.044643 0.627451 +vt 0.017857 0.627451 +vt 0.857143 0.627451 +vt 0.830357 0.627451 +vt 0.669643 0.627451 +vt 0.642857 0.627451 +vt 0.482143 0.627451 +vt 0.455357 0.627451 +vt 0.294643 0.627451 +vt 0.267857 0.627451 +vt 0.107143 0.627451 +vt 0.080357 0.627451 +vt 0.919643 0.627451 +vt 0.428571 0.627451 +vt 0.187500 0.627451 +vt 0.401786 0.627451 +vt 0.160714 0.627451 +vt 0.375000 0.627451 +vt 0.133929 0.627451 +vt 0.321429 0.627451 +vt 0.348214 0.627451 +vt 0.053571 0.627451 +vt 0.241071 0.627451 +vt 0.026786 0.627451 +vt 0.366071 0.745098 +vt 0.348214 0.745098 +vt 0.125000 0.745098 +vt 0.107143 0.745098 +vt 0.312500 0.745098 +vt 0.294643 0.745098 +vt 0.339286 0.745098 +vt 0.321429 0.745098 +vt 0.098214 0.745098 +vt 0.080357 0.745098 +vt 0.285714 0.745098 +vt 0.267857 0.745098 +vt 0.071429 0.745098 +vt 0.053571 0.745098 +vt 0.258929 0.745098 +vt 0.241071 0.745098 +vt 0.044643 0.745098 +vt 0.026786 0.745098 +vt 0.232143 0.745098 +vt 0.214286 0.745098 +vt 0.017857 0.745098 +vt 0.205357 0.745098 +vt 0.187500 0.745098 +vt 0.419643 0.745098 +vt 0.401786 0.745098 +vt 0.178571 0.745098 +vt 0.160714 0.745098 +vt 0.392857 0.745098 +vt 0.375000 0.745098 +vt 0.151786 0.745098 +vt 0.133929 0.745098 +vt 0.750000 -0.000000 +vt 0.500000 0.000000 +vt 0.072894 0.799489 +vt 0.087137 0.768210 +vt 0.105747 0.751282 +vt 0.125890 0.751282 +vt 0.158743 0.799489 +vt 0.166451 0.840358 +vt 0.166451 0.884593 +vt 0.144499 0.956740 +vt 0.125890 0.973669 +vt 0.105747 0.973669 +vt 0.072894 0.925461 +vt 0.065186 0.884593 +vt 0.065186 0.840357 +vt 1.000000 -0.000000 +vt 0.517857 0.627451 +vt 0.580357 0.627451 +vt 0.892857 0.627451 +vt -0.000000 0.627451 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.942400 0.334600 +vn 0.000000 -0.991900 0.126900 +vn 0.048600 -0.991900 0.117200 +vn 0.418500 -0.908200 0.000000 +vn 0.334600 -0.942400 0.000000 +vn 0.309100 -0.942400 -0.128000 +vn 0.000000 0.419700 -0.907700 +vn 0.347300 0.419700 -0.838600 +vn 0.380400 0.108600 -0.918400 +vn 0.309100 -0.942400 0.128000 +vn 0.117200 -0.991900 0.048600 +vn 0.126900 -0.991900 0.000000 +vn 0.000000 -0.908200 -0.418500 +vn 0.000000 -0.942400 -0.334600 +vn -0.128000 -0.942400 -0.309100 +vn 0.641800 0.419700 -0.641800 +vn 0.702900 0.108600 -0.702900 +vn -0.309100 -0.942400 0.128000 +vn -0.117200 -0.991900 0.048600 +vn -0.089700 -0.991900 0.089700 +vn -0.295900 -0.908200 -0.295900 +vn -0.236600 -0.942400 -0.236600 +vn -0.309100 -0.942400 -0.128000 +vn 0.838600 0.419700 -0.347300 +vn 0.918400 0.108600 -0.380400 +vn -0.089700 -0.991900 -0.089700 +vn -0.295900 -0.908200 0.295900 +vn -0.386700 -0.908200 0.160200 +vn 0.907700 0.419700 0.000000 +vn 0.128000 -0.942400 -0.309100 +vn 0.048600 -0.991900 -0.117200 +vn 0.000000 -0.991900 -0.126900 +vn 0.160200 -0.908200 0.386700 +vn 0.000000 -0.908200 0.418500 +vn 0.838600 0.419700 0.347300 +vn 0.918400 0.108600 0.380400 +vn 0.160200 -0.908200 -0.386700 +vn 0.641800 0.419700 0.641800 +vn 0.702900 0.108600 0.702900 +vn 0.128000 -0.942400 0.309100 +vn 0.089700 -0.991900 0.089700 +vn 0.386700 -0.908200 0.160200 +vn 0.347300 0.419700 0.838600 +vn 0.380400 0.108600 0.918400 +vn -0.236600 -0.942400 0.236600 +vn -0.048600 -0.991900 0.117200 +vn 0.295900 -0.908200 -0.295900 +vn 0.236600 -0.942400 -0.236600 +vn 0.000000 0.419700 0.907700 +vn 0.000000 0.108600 0.994100 +vn -0.117200 -0.991900 -0.048600 +vn -0.126900 -0.991900 0.000000 +vn -0.160200 -0.908200 -0.386700 +vn -0.347300 0.419700 0.838600 +vn -0.380400 0.108600 0.918400 +vn 0.117200 -0.991900 -0.048600 +vn -0.418500 -0.908200 -0.000000 +vn -0.334600 -0.942400 0.000000 +vn -0.641800 0.419700 0.641800 +vn -0.702900 0.108600 0.702900 +vn 0.236600 -0.942400 0.236600 +vn -0.160200 -0.908200 0.386700 +vn -0.128000 -0.942400 0.309100 +vn -0.838600 0.419700 0.347300 +vn -0.918400 0.108600 0.380400 +vn 0.295900 -0.908200 0.295900 +vn -0.907700 0.419700 0.000000 +vn -0.994100 0.108600 -0.000000 +vn 0.386700 -0.908200 -0.160200 +vn -0.838600 0.419700 -0.347300 +vn -0.918400 0.108600 -0.380400 +vn -0.641800 0.419700 -0.641800 +vn -0.702900 0.108600 -0.702900 +vn -0.347300 0.419700 -0.838600 +vn -0.268900 0.711500 -0.649200 +vn -0.000000 0.711500 -0.702600 +vn -0.380400 0.108600 -0.918400 +vn -0.048600 -0.991900 -0.117200 +vn -0.386700 -0.908200 -0.160200 +vn 0.089700 -0.991900 -0.089700 +vn 1.000000 0.000000 -0.000000 +vn 0.923900 0.000000 0.382700 +vn 0.268900 0.711500 -0.649200 +vn 0.649200 0.711500 -0.268900 +vn 0.496800 0.711500 0.496800 +vn 0.268900 0.711500 0.649200 +vn -0.268900 0.711500 0.649200 +vn -0.496800 0.711500 0.496800 +vn -0.702600 0.711500 -0.000000 +vn -0.649200 0.711500 -0.268900 +vn 0.496800 0.711500 -0.496800 +vn 0.649200 0.711500 0.268900 +vn 0.000000 0.711500 0.702600 +vn -0.649200 0.711500 0.268900 +vn -0.496800 0.711500 -0.496800 +vn 0.702600 0.711500 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.923900 0.000000 -0.382700 +vn 0.707100 0.000000 0.707100 +vn -0.707100 0.000000 -0.707100 +vn 0.382700 0.000000 0.923900 +vn -0.382700 0.000000 -0.923900 +vn 0.000000 -0.000000 1.000000 +vn -0.000000 -0.000000 -1.000000 +vn 0.382700 0.000000 -0.923900 +vn -0.382700 -0.000000 0.923900 +vn 0.707100 0.000000 -0.707100 +vn -0.707100 -0.000000 0.707100 +vn 0.923900 0.000000 -0.382700 +vn -0.923900 0.000000 0.382700 +vn 0.000000 0.108600 -0.994100 +vn 0.994100 0.108600 0.000000 +s off +f 314/18/177 330/19/177 331/20/177 +f 307/21/177 323/22/177 324/23/177 +f 315/24/177 331/25/177 332/26/177 +f 308/27/177 324/28/177 325/29/177 +f 316/30/177 332/31/177 333/32/177 +f 309/33/177 325/34/177 326/35/177 +f 317/36/177 333/37/177 334/38/177 +f 311/39/177 310/40/177 326/41/177 +f 318/42/177 334/43/177 335/44/177 +f 311/39/177 327/45/177 328/46/177 +f 319/47/177 335/48/177 336/49/177 +f 312/50/177 328/51/177 329/52/177 +f 306/53/177 322/54/177 321/55/177 +f 306/53/177 320/56/177 336/57/177 +f 313/58/177 329/59/177 330/60/177 +f 305/61/177 321/62/177 323/63/177 +f 345/64/177 343/65/177 339/66/177 +f 315/24/177 314/18/177 331/20/177 +f 308/27/177 307/21/177 324/23/177 +f 316/30/177 315/24/177 332/26/177 +f 309/33/177 308/27/177 325/29/177 +f 317/67/177 316/30/177 333/32/177 +f 310/40/177 309/33/177 326/35/177 +f 318/42/177 317/36/177 334/38/177 +f 327/68/177 311/39/177 326/41/177 +f 319/47/177 318/42/177 335/44/177 +f 312/50/177 311/39/177 328/46/177 +f 320/56/177 319/47/177 336/49/177 +f 313/58/177 312/50/177 329/52/177 +f 305/61/177 306/53/177 321/55/177 +f 322/69/177 306/53/177 336/57/177 +f 314/18/177 313/58/177 330/60/177 +f 307/21/177 305/61/177 323/63/177 +f 339/66/177 337/70/177 351/71/177 +f 338/72/177 352/73/177 351/71/177 +f 351/71/177 350/74/177 347/75/177 +f 349/76/177 348/77/177 347/75/177 +f 347/75/177 346/78/177 345/64/177 +f 345/64/177 344/79/177 343/65/177 +f 343/65/177 342/80/177 341/81/177 +f 341/81/177 340/82/177 339/66/177 +f 337/70/177 338/72/177 351/71/177 +f 350/74/177 349/76/177 347/75/177 +f 347/75/177 345/64/177 339/66/177 +f 343/65/177 341/81/177 339/66/177 +f 339/66/177 351/71/177 347/75/177 +s 1 +f 265/83/178 281/84/179 282/85/180 +f 235/86/181 261/83/182 260/87/183 +f 228/88/184 230/89/185 229/90/186 +f 262/83/187 284/84/188 285/85/189 +f 227/86/190 226/83/191 272/87/192 +f 230/91/185 232/92/193 231/93/194 +f 268/83/195 278/84/196 279/85/197 +f 255/86/198 271/83/199 270/87/200 +f 232/94/193 234/95/201 233/96/202 +f 270/87/200 271/83/199 275/84/203 +f 247/97/204 249/86/205 268/83/195 +f 233/96/202 234/98/201 236/99/206 +f 225/83/207 288/84/208 274/85/209 +f 241/97/210 243/86/211 265/83/178 +f 236/100/206 238/101/212 237/102/213 +f 260/87/183 261/83/182 285/84/189 +f 229/86/214 225/83/207 226/87/191 +f 238/103/212 240/104/215 239/105/216 +f 264/83/217 282/84/180 283/85/218 +f 235/97/181 237/86/219 262/83/187 +f 240/106/215 242/107/220 241/108/221 +f 267/83/222 279/84/197 280/85/223 +f 231/86/224 259/83/225 225/87/207 +f 242/109/220 244/110/226 243/111/227 +f 270/83/200 276/84/228 277/85/229 +f 255/97/198 257/86/230 272/83/192 +f 244/112/226 246/113/231 245/114/232 +f 259/87/225 260/83/183 286/84/233 +f 251/86/234 269/83/235 268/87/195 +f 246/115/231 248/116/236 247/117/237 +f 263/83/238 283/84/218 284/85/188 +f 243/97/211 245/86/239 266/83/240 +f 248/118/236 250/119/241 249/120/242 +f 266/83/240 280/84/223 281/85/179 +f 237/97/219 239/86/243 263/83/238 +f 250/121/241 252/122/244 251/123/245 +f 282/124/180 278/125/196 286/126/233 +f 233/86/246 260/83/183 259/87/225 +f 252/127/244 254/128/247 253/129/248 +f 247/86/204 267/83/222 266/87/240 +f 269/83/235 277/84/229 278/85/196 +f 254/130/247 256/131/249 255/132/250 +f 258/133/251 304/134/252 290/135/253 +f 257/136/254 258/133/251 228/137/184 +f 256/138/249 258/139/251 257/136/254 +f 226/83/191 274/84/209 273/85/255 +f 241/86/210 264/83/217 263/87/238 +f 251/97/234 253/86/256 270/83/200 +f 259/83/225 287/84/257 288/85/208 +f 272/83/192 273/84/255 275/85/203 +f 293/140/258 309/33/258 310/40/259 +f 228/88/184 290/141/253 289/142/260 +f 236/99/206 234/98/201 292/143/261 +f 240/106/215 295/144/262 296/145/263 +f 246/115/231 298/146/264 299/147/265 +f 252/127/244 301/148/266 302/149/267 +f 234/95/201 232/94/193 291/150/268 +f 238/103/212 294/151/269 295/152/262 +f 244/112/226 297/153/270 298/154/264 +f 250/121/241 300/155/271 301/156/266 +f 256/138/249 303/157/272 304/158/252 +f 230/91/185 289/159/260 291/160/268 +f 236/100/206 293/161/273 294/162/269 +f 242/109/220 296/163/263 297/164/270 +f 248/118/236 299/165/265 300/166/271 +f 256/131/249 254/130/247 302/167/267 +f 301/168/274 317/36/274 318/42/275 +f 294/169/259 310/40/259 311/39/276 +f 302/170/275 318/42/275 319/47/277 +f 295/171/276 311/39/276 312/50/278 +f 303/172/277 319/47/277 320/56/279 +f 296/173/278 312/50/278 313/58/280 +f 290/174/281 306/53/281 305/61/282 +f 304/175/279 320/56/279 306/53/281 +f 297/165/280 313/58/280 314/18/283 +f 289/163/282 305/61/282 307/21/284 +f 298/166/283 314/18/283 315/24/285 +f 291/164/284 307/21/284 308/27/286 +f 299/176/285 315/24/285 316/30/287 +f 292/177/286 308/27/286 309/33/258 +f 300/178/287 316/30/287 317/67/274 +f 335/48/276 351/179/276 352/180/278 +f 328/51/279 344/181/279 345/182/281 +f 322/54/280 338/183/280 337/184/283 +f 336/57/278 352/185/278 338/186/280 +f 329/59/281 345/187/281 346/188/282 +f 321/62/283 337/189/283 339/190/285 +f 330/19/282 346/191/282 347/192/284 +f 323/22/285 339/193/285 340/194/287 +f 331/25/284 347/195/284 348/196/286 +f 324/28/287 340/197/287 341/198/274 +f 332/31/286 348/199/286 349/97/258 +f 325/34/274 341/200/274 342/201/275 +f 333/37/258 349/202/258 350/203/259 +f 326/41/275 342/204/275 343/205/277 +f 334/43/259 350/206/259 351/207/276 +f 327/45/277 343/208/277 344/209/279 +f 264/87/217 265/83/178 282/85/180 +f 233/97/246 235/86/181 260/87/183 +f 227/210/288 228/88/184 229/90/186 +f 261/87/182 262/83/187 285/85/189 +f 257/97/230 227/86/190 272/87/192 +f 229/90/186 230/91/185 231/93/194 +f 267/87/222 268/83/195 279/85/197 +f 253/97/256 255/86/198 270/87/200 +f 231/93/194 232/94/193 233/96/202 +f 276/85/228 270/87/200 275/84/203 +f 267/87/222 247/97/204 268/83/195 +f 235/211/289 233/96/202 236/99/206 +f 226/87/191 225/83/207 274/85/209 +f 264/87/217 241/97/210 265/83/178 +f 235/211/289 236/100/206 237/102/213 +f 286/85/233 260/87/183 285/84/189 +f 227/97/190 229/86/214 226/87/191 +f 237/102/213 238/103/212 239/105/216 +f 263/87/238 264/83/217 283/85/218 +f 261/87/182 235/97/181 262/83/187 +f 239/105/216 240/106/215 241/108/221 +f 266/87/240 267/83/222 280/85/223 +f 229/97/214 231/86/224 225/87/207 +f 241/108/221 242/109/220 243/111/227 +f 269/87/235 270/83/200 277/85/229 +f 271/87/199 255/97/198 272/83/192 +f 243/111/227 244/112/226 245/114/232 +f 287/85/257 259/87/225 286/84/233 +f 249/97/205 251/86/234 268/87/195 +f 245/114/232 246/115/231 247/117/237 +f 262/87/187 263/83/238 284/85/188 +f 265/87/178 243/97/211 266/83/240 +f 247/117/237 248/118/236 249/120/242 +f 265/87/178 266/83/240 281/85/179 +f 262/87/187 237/97/219 263/83/238 +f 249/120/242 250/121/241 251/123/245 +f 273/212/255 274/213/209 288/214/208 +f 288/214/208 287/215/257 273/212/255 +f 286/126/233 285/216/189 284/217/188 +f 284/217/188 283/218/218 286/126/233 +f 282/124/180 281/219/179 278/125/196 +f 280/220/223 279/221/197 278/125/196 +f 278/125/196 277/222/229 273/212/255 +f 276/223/228 275/224/203 273/212/255 +f 273/212/255 287/215/257 286/126/233 +f 286/126/233 283/218/218 282/124/180 +f 281/219/179 280/220/223 278/125/196 +f 277/222/229 276/223/228 273/212/255 +f 273/212/255 286/126/233 278/125/196 +f 231/97/224 233/86/246 259/87/225 +f 251/225/245 252/127/244 253/129/248 +f 245/97/239 247/86/204 266/87/240 +f 268/87/195 269/83/235 278/85/196 +f 253/129/248 254/130/247 255/132/250 +f 228/137/184 258/133/251 290/135/253 +f 227/210/288 257/136/254 228/137/184 +f 255/132/250 256/138/249 257/136/254 +f 272/87/192 226/83/191 273/85/255 +f 239/97/243 241/86/210 263/87/238 +f 269/87/235 251/97/234 270/83/200 +f 225/87/207 259/83/225 288/85/208 +f 271/87/199 272/83/192 275/85/203 +f 294/169/259 293/140/258 310/40/259 +f 230/89/185 228/88/184 289/142/260 +f 293/226/273 236/99/206 292/143/261 +f 242/107/220 240/106/215 296/145/263 +f 248/116/236 246/115/231 299/147/265 +f 254/128/247 252/127/244 302/149/267 +f 292/227/261 234/95/201 291/150/268 +f 240/104/215 238/103/212 295/152/262 +f 246/113/231 244/112/226 298/154/264 +f 252/122/244 250/121/241 301/156/266 +f 258/139/251 256/138/249 304/158/252 +f 232/92/193 230/91/185 291/160/268 +f 238/101/212 236/100/206 294/162/269 +f 244/110/226 242/109/220 297/164/270 +f 250/119/241 248/118/236 300/166/271 +f 303/228/272 256/131/249 302/167/267 +f 302/170/275 301/168/274 318/42/275 +f 295/171/276 294/169/259 311/39/276 +f 303/172/277 302/170/275 319/47/277 +f 296/173/278 295/171/276 312/50/278 +f 304/175/279 303/172/277 320/56/279 +f 297/165/280 296/173/278 313/58/280 +f 289/163/282 290/174/281 305/61/282 +f 290/174/281 304/175/279 306/53/281 +f 298/166/283 297/165/280 314/18/283 +f 291/164/284 289/163/282 307/21/284 +f 299/176/285 298/166/283 315/24/285 +f 292/177/286 291/164/284 308/27/286 +f 300/178/287 299/176/285 316/30/287 +f 293/140/258 292/177/286 309/33/258 +f 301/229/274 300/178/287 317/67/274 +f 336/49/278 335/48/276 352/180/278 +f 329/52/281 328/51/279 345/182/281 +f 321/55/283 322/54/280 337/184/283 +f 322/69/280 336/57/278 338/186/280 +f 330/60/282 329/59/281 346/188/282 +f 323/63/285 321/62/283 339/190/285 +f 331/20/284 330/19/282 347/192/284 +f 324/23/287 323/22/285 340/194/287 +f 332/26/286 331/25/284 348/196/286 +f 325/29/274 324/28/287 341/198/274 +f 333/32/258 332/31/286 349/97/258 +f 326/35/275 325/34/274 342/201/275 +f 334/38/259 333/37/258 350/203/259 +f 327/68/277 326/41/275 343/205/277 +f 335/44/276 334/43/259 351/207/276 +f 328/46/279 327/45/277 344/209/279 diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 4a996a1c7..3682a81d9 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -32,6 +32,7 @@ "block.missileAssembly2": {"category": "block", "sounds": [{"name": "block/missileAssembly2", "stream": false}]}, "block.openDoor": {"category": "block", "sounds": ["block/door_open_1", "block/door_open_2"]}, "block.closeDoor": {"category": "block", "sounds": ["block/door_close_1", "block/door_close_2"]}, + "block.soyuzReady": {"category": "block", "sounds": [{"name": "block/soyuzReady", "stream": false}]}, "item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]}, "item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]}, diff --git a/assets/hbm/sounds/block/soyuzReady.ogg b/assets/hbm/sounds/block/soyuzReady.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7f9f03c98cdf982b492230b5c39527146f18a514 GIT binary patch literal 16964 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 F{{U{G9*F<| literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/ingot_electronium.png b/assets/hbm/textures/items/ingot_electronium.png new file mode 100644 index 0000000000000000000000000000000000000000..845a06fbec721a67ae7657ccd5375e5d1e2db523 GIT binary patch literal 1643 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/CapeHbm_old.png b/assets/hbm/textures/models/capes/CapeHbm_old.png similarity index 100% rename from assets/hbm/textures/models/CapeHbm_old.png rename to assets/hbm/textures/models/capes/CapeHbm_old.png diff --git a/assets/hbm/textures/models/CapeHoboy.png b/assets/hbm/textures/models/capes/CapeHoboy.png similarity index 100% rename from assets/hbm/textures/models/CapeHoboy.png rename to assets/hbm/textures/models/capes/CapeHoboy.png diff --git a/assets/hbm/textures/models/CapeHoboy_mk1.png b/assets/hbm/textures/models/capes/CapeHoboy_mk1.png similarity index 100% rename from assets/hbm/textures/models/CapeHoboy_mk1.png rename to assets/hbm/textures/models/capes/CapeHoboy_mk1.png diff --git a/assets/hbm/textures/models/CapeHoboy_mk2.png b/assets/hbm/textures/models/capes/CapeHoboy_mk2.png similarity index 100% rename from assets/hbm/textures/models/CapeHoboy_mk2.png rename to assets/hbm/textures/models/capes/CapeHoboy_mk2.png diff --git a/assets/hbm/textures/models/CapeLPkukin.png b/assets/hbm/textures/models/capes/CapeLPkukin.png similarity index 100% rename from assets/hbm/textures/models/CapeLPkukin.png rename to assets/hbm/textures/models/capes/CapeLPkukin.png diff --git a/assets/hbm/textures/models/CapeMaster.png b/assets/hbm/textures/models/capes/CapeMaster.png similarity index 100% rename from assets/hbm/textures/models/CapeMaster.png rename to assets/hbm/textures/models/capes/CapeMaster.png diff --git a/assets/hbm/textures/models/CapeMek.png b/assets/hbm/textures/models/capes/CapeMek.png similarity index 100% rename from assets/hbm/textures/models/CapeMek.png rename to assets/hbm/textures/models/capes/CapeMek.png diff --git a/assets/hbm/textures/models/CapeNostalgia.png b/assets/hbm/textures/models/capes/CapeNostalgia.png similarity index 100% rename from assets/hbm/textures/models/CapeNostalgia.png rename to assets/hbm/textures/models/capes/CapeNostalgia.png diff --git a/assets/hbm/textures/models/CapeNostalgia2.png b/assets/hbm/textures/models/capes/CapeNostalgia2.png similarity index 100% rename from assets/hbm/textures/models/CapeNostalgia2.png rename to assets/hbm/textures/models/capes/CapeNostalgia2.png diff --git a/assets/hbm/textures/models/CapeRadiation.png b/assets/hbm/textures/models/capes/CapeRadiation.png similarity index 100% rename from assets/hbm/textures/models/CapeRadiation.png rename to assets/hbm/textures/models/capes/CapeRadiation.png diff --git a/assets/hbm/textures/models/CapeRed.png b/assets/hbm/textures/models/capes/CapeRed.png similarity index 100% rename from assets/hbm/textures/models/CapeRed.png rename to assets/hbm/textures/models/capes/CapeRed.png diff --git a/assets/hbm/textures/models/CapeRed_old.png b/assets/hbm/textures/models/capes/CapeRed_old.png similarity index 100% rename from assets/hbm/textures/models/CapeRed_old.png rename to assets/hbm/textures/models/capes/CapeRed_old.png diff --git a/assets/hbm/textures/models/CapeSam.png b/assets/hbm/textures/models/capes/CapeSam.png similarity index 100% rename from assets/hbm/textures/models/CapeSam.png rename to assets/hbm/textures/models/capes/CapeSam.png diff --git a/assets/hbm/textures/models/CapeSchrabidium.png b/assets/hbm/textures/models/capes/CapeSchrabidium.png similarity index 100% rename from assets/hbm/textures/models/CapeSchrabidium.png rename to assets/hbm/textures/models/capes/CapeSchrabidium.png diff --git a/assets/hbm/textures/models/CapeShield.png b/assets/hbm/textures/models/capes/CapeShield.png similarity index 100% rename from assets/hbm/textures/models/CapeShield.png rename to assets/hbm/textures/models/capes/CapeShield.png diff --git a/assets/hbm/textures/models/CapeTemplate.png b/assets/hbm/textures/models/capes/CapeTemplate.png similarity index 100% rename from assets/hbm/textures/models/CapeTemplate.png rename to assets/hbm/textures/models/capes/CapeTemplate.png diff --git a/assets/hbm/textures/models/CapeTest.png b/assets/hbm/textures/models/capes/CapeTest.png similarity index 100% rename from assets/hbm/textures/models/CapeTest.png rename to assets/hbm/textures/models/capes/CapeTest.png diff --git a/assets/hbm/textures/models/CapeUnknown.png b/assets/hbm/textures/models/capes/CapeUnknown.png similarity index 100% rename from assets/hbm/textures/models/CapeUnknown.png rename to assets/hbm/textures/models/capes/CapeUnknown.png diff --git a/assets/hbm/textures/models/CapeVertice.png b/assets/hbm/textures/models/capes/CapeVertice.png similarity index 100% rename from assets/hbm/textures/models/CapeVertice.png rename to assets/hbm/textures/models/capes/CapeVertice.png diff --git a/assets/hbm/textures/models/CapeVertice_2.png b/assets/hbm/textures/models/capes/CapeVertice_2.png similarity index 100% rename from assets/hbm/textures/models/CapeVertice_2.png rename to assets/hbm/textures/models/capes/CapeVertice_2.png diff --git a/assets/hbm/textures/models/capes/CapeZippySqrl.png b/assets/hbm/textures/models/capes/CapeZippySqrl.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbaeb0b0e026df18136e7fe6a35ad1ef2149c95 GIT binary patch literal 995 zcmV<9104K`P)8qY`d63nZapIbo;!<*+3Lu#>_Ql#QT%5ZG3-0Hm9^ANvrTGATIU*=`&soQZs-0M0svz;TWfmul}%i~=4$o;=?lFaEVFuPv5EPw zPf+@J4@-+p-+gHK`1SyPKHPW<04NpnXk2>jjH~^E#2#RHgjN7`p0`_V&-11=0~!vV zbpVxqa7)F!ZxFp1jJpmH6?=g687qM4^v`a!aiW;_lz#nmkcNZr{Qzp_*A})Rguwlo zzmH4BJesXGfaA_{dZjSk50Dglfb@APfWD{$_|NnDmn3LkI=Woz0P^6e=k#&NiokV% z;o+$O`Z>KmuiLFQdWPp{_+<2J08ujEbT%Nx?E#`z8}o$ZC&MKhHej$YKGH_I;+rd}~1}pSh zfSQ$R>6hcO5~x!_*tGyt=7&`R_5kS%>;Yu<3nB1uch(tyusiF@);N_QEc00j25Y2J zsW?9l&E;~iEDNiRsRLc&U2ROETDQ^ZbX?;yZW2NWbUGbuZf^3&p(*m*6PRRf4|*N5 z`Dn`c&8unstb0&#iHL}Zh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=_=Yh=~4we*g`dJo4{} R6m$Rp002ovPDHLkV1hM1-7WwC literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/soyuz/bottomstage.png b/assets/hbm/textures/models/soyuz/bottomstage.png index 52a63970780ef50d0f32bb23bba9bec9b0d04e83..4027e8da2549d5172682fee3fd7724b2d07a3858 100644 GIT binary patch literal 16596 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 E0D%MJ-v9sr literal 12960 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/soyuz_lander.png b/assets/hbm/textures/models/soyuz_lander.png new file mode 100644 index 0000000000000000000000000000000000000000..35fa559e8b9ff33149ecd0ee1afa19762b6850f3 GIT binary patch literal 5188 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 literal 963 zcmeAS@N?(olHy`uVBq!ia0vp^9U#oX1|)5EEd~j&6gzo_Z~#FKM+#7qxysYUF{EP7 z+dCIa7aNGQBu;c@)N2$9TI5y2IpqQ0CjVQ9tIjeAO?ub+@4f5}xqiD)!-J3LoU*n9r|t))#@xXf3|Zuo4cJq;==XJCKsg ziH=e2v+sz4luVwU=KgTm={=WDA6cCIB+jX7{{Nm!LUL!#Rx^M9@no;}{3ELstLOiJ zWmuH6|M<<%AN_l#7EE5fJp29U=uh#EYg%W|;l26$&$U0n0;?aYxdWBnU$mcfqg>u5 zaiHmIe{mi3-*K|~#J%U+b3Pfp$PcY5z5LdwTx9Qkh1b95JFocdIzaO2!_fsPV z=#4Kg&sj}YoX>k5=#4jbXJ>0YS^cnT{{2aJPseC0K5u(nTc`cxyTV>)J&+2qIhBV3 zrcZd!1!V7?Tk95idBS@>Alo*!@>JsF3E8c$YyZWqvs2%ib%J-^^QTq+Q;h$P4rIF&-2`Pz}~c$I)iA}uW_-y-*fUn%fByMD9! RY+$Zr@O1TaS?83{1OVKj!Hxg` diff --git a/assets/hbm/textures/models/soyuz_launcher/launcher_table.png b/assets/hbm/textures/models/soyuz_launcher/launcher_table.png index 94d8686fa518a353615dcfef7fc17661d0df4ceb..ff83356ea64aa2e9d8082f0de135edffc45b040e 100644 GIT binary patch literal 13168 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 KZ7JR-;eP-m^NNT7 diff --git a/assets/hbm/textures/models/soyuz_launcher/launcher_tower.png b/assets/hbm/textures/models/soyuz_launcher/launcher_tower.png index 3bfcb8c0bbc586b525ba9bf9ee6d5ac2457d5f1a..c9b22ae396653df918105481fc7ba579c137f4a5 100644 GIT binary patch literal 8622 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 literal 4453 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 diff --git a/assets/hbm/textures/models/soyuz_launcher/launcher_tower_base.png b/assets/hbm/textures/models/soyuz_launcher/launcher_tower_base.png index a504724adeab4e75d5854b85e3cc16b8582beb1c..4b7ae349b9a3120757546d2ccdebdccbad26dd7e 100644 GIT binary patch literal 6259 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 Yt>ubellpnfET9n#p00i_>zopr0BZ;;p8x;= literal 0 HcmV?d00001 diff --git a/com/hbm/entity/missile/EntitySoyuz.java b/com/hbm/entity/missile/EntitySoyuz.java new file mode 100644 index 000000000..2368b2850 --- /dev/null +++ b/com/hbm/entity/missile/EntitySoyuz.java @@ -0,0 +1,142 @@ +package com.hbm.entity.missile; + +import java.util.List; + +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.world.World; + +public class EntitySoyuz extends Entity { + + double acceleration = 0.00D; + public int mode; + + private ItemStack[] payload; + + public EntitySoyuz(World p_i1582_1_) { + super(p_i1582_1_); + this.ignoreFrustumCheck = true; + this.setSize(5.0F, 50.0F); + payload = new ItemStack[18]; + } + + @Override + public void onUpdate() { + + if(motionY < 2.0D) { + acceleration += 0.00025D; + motionY += acceleration; + } + + this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); + + if(!worldObj.isRemote) { + + //if(this.ticksExisted < 20) { + // ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 13 + rand.nextInt(3), 4 + rand.nextGaussian() * 2); + //} + } + + if(worldObj.isRemote) { + spawnExhaust(posX, posY, posZ); + spawnExhaust(posX + 2.75, posY, posZ); + spawnExhaust(posX - 2.75, posY, posZ); + spawnExhaust(posX, posY, posZ + 2.75); + spawnExhaust(posX, posY, posZ - 2.75); + } + + if(this.posY > 600) { + deployPayload(); + } + } + + private void spawnExhaust(double x, double y, double z) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "exhaust"); + data.setString("mode", "soyuz"); + data.setInteger("count", 2); + data.setDouble("width", worldObj.rand.nextDouble() * 0.35 - 0.7); + data.setDouble("posX", x); + data.setDouble("posY", y); + data.setDouble("posZ", z); + + MainRegistry.proxy.effectNT(data); + } + + private void deployPayload() { + + if(mode == 0 && payload != null) { + + } + + this.setDead(); + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(8, 0); + } + + public void setSat(ItemStack stack) { + this.payload[0] = stack; + } + + public void setPayload(List payload) { + + for(int i = 0; i < payload.size(); i++) { + this.payload[i] = payload.get(i); + } + } + + public void setSkin(int i) { + this.dataWatcher.updateObject(8, i); + } + + public int getSkin() { + return this.dataWatcher.getWatchableObjectInt(8); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) + { + return distance < 500000; + } + + @Override + public void readEntityFromNBT(NBTTagCompound nbt) { + + NBTTagList list = nbt.getTagList("items", 10); + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < payload.length) { + payload[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeEntityToNBT(NBTTagCompound nbt) { + + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < payload.length; i++) { + if (payload[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + payload[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } +} diff --git a/com/hbm/entity/projectile/EntityMeteor.java b/com/hbm/entity/projectile/EntityMeteor.java index 27040987e..bb1f5f7a0 100644 --- a/com/hbm/entity/projectile/EntityMeteor.java +++ b/com/hbm/entity/projectile/EntityMeteor.java @@ -10,6 +10,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.projectile.EntityThrowable; import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; @@ -47,18 +48,33 @@ public class EntityMeteor extends EntityThrowable { if(!this.worldObj.isRemote) { worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5 + rand.nextFloat(), true); - if(MainRegistry.enableMeteorTails) - ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction(20)); + + if(MainRegistry.enableMeteorTails) { + ExplosionLarge.spawnParticles(worldObj, posX, posY + 5, posZ, 75); + ExplosionLarge.spawnParticles(worldObj, posX + 5, posY, posZ, 75); + ExplosionLarge.spawnParticles(worldObj, posX - 5, posY, posZ, 75); + ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ + 5, 75); + ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ - 5, 75); + } + (new Meteorite()).generate(worldObj, rand, (int)Math.round(this.posX - 0.5D), (int)Math.round(this.posY - 0.5D), (int)Math.round(this.posZ - 0.5D)); } this.worldObj.playSoundEffect(this.posX, this.posY, this.posZ, "hbm:entity.oldExplosion", 10000.0F, 0.5F + this.rand.nextFloat() * 0.1F); this.setDead(); } - if(MainRegistry.enableMeteorTails) { - this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY + 1.5D, this.posZ, 0.0, 0.0, 0.0)); - for(int i = 0; i < 10; i++) - this.worldObj.spawnEntityInWorld(new EntityGasFlameFX(this.worldObj, this.posX + rand.nextDouble() * 3 - 1.5, this.posY + 1.5D + rand.nextDouble() * 3 - 1.5, this.posZ + rand.nextDouble() * 3 - 1.5, 0.0, 0.1, 0.0)); + if(MainRegistry.enableMeteorTails && worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "exhaust"); + data.setString("mode", "meteor"); + data.setInteger("count", 10); + data.setDouble("width", 1); + data.setDouble("posX", posX - motionX); + data.setDouble("posY", posY - motionY); + data.setDouble("posZ", posZ - motionZ); + + MainRegistry.proxy.effectNT(data); } } @@ -71,7 +87,7 @@ public class EntityMeteor extends EntityThrowable { @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 25000; + return distance < 500000; } @Override diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index b54797ad3..3a01bd78e 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -2104,10 +2104,10 @@ public class MachineRecipes { ItemStack sta = shredderRecipes.get(new StackWrapper(stack)); - if(sta != null) + /*if(sta != null) System.out.println(stack.getDisplayName() + " resulted " + sta.getDisplayName()); else - System.out.println(stack.getDisplayName() + " resulted null"); + System.out.println(stack.getDisplayName() + " resulted null");*/ return sta == null ? new ItemStack(ModItems.scrap) : sta; } @@ -2743,7 +2743,7 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.plate_iron, 2)); break; case W_A: - list.add(new ItemStack(ModItems.ingot_advanced_alloy, 5)); + list.add(new ItemStack(ModItems.ingot_desh, 5)); list.add(new ItemStack(ModItems.plate_iron, 2)); break; case UPGRADE_TEMPLATE: diff --git a/com/hbm/inventory/container/ContainerCoreInjector.java b/com/hbm/inventory/container/ContainerCoreInjector.java index 59e301183..095fec4c3 100644 --- a/com/hbm/inventory/container/ContainerCoreInjector.java +++ b/com/hbm/inventory/container/ContainerCoreInjector.java @@ -52,8 +52,10 @@ public class ContainerCoreInjector extends Container { { return null; } + } else { + return null; } - + if (var5.stackSize == 0) { var4.putStack((ItemStack) null); diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index b22dd4c9b..8c9a62f03 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -129,6 +129,7 @@ public class ModItems { public static Item ingot_starmetal; public static Item ingot_saturnite; public static Item plate_saturnite; + public static Item ingot_electronium; public static Item nugget_th232; public static Item nugget_uranium; @@ -1025,6 +1026,7 @@ public class ModItems { public static Item missile_carrier; public static Item missile_soyuz; + public static Item missile_soyuz_lander; public static Item sat_mapper; public static Item sat_scanner; public static Item sat_radar; @@ -1908,6 +1910,7 @@ public class ModItems { plate_saturnite = new ItemCustomLore().setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); + ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); @@ -2577,7 +2580,8 @@ public class ModItems { missile_schrabidium = new Item().setUnlocalizedName("missile_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_schrabidium"); missile_emp = new Item().setUnlocalizedName("missile_emp").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_emp"); missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_carrier"); - missile_soyuz = new Item().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); + missile_soyuz = new ItemSoyuz().setUnlocalizedName("missile_soyuz").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz"); + missile_soyuz_lander = new Item().setUnlocalizedName("missile_soyuz_lander").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":soyuz_lander"); missile_custom = new ItemCustomMissile().setUnlocalizedName("missile_custom").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":missile_custom"); sat_mapper = new ItemSatChip().setUnlocalizedName("sat_mapper").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_mapper"); sat_scanner = new ItemSatChip().setUnlocalizedName("sat_scanner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_scanner"); @@ -2860,7 +2864,7 @@ public class ModItems { gun_uzi_saturnite_silencer = new ItemGunBase(Gun22LRFactory.getSaturniteConfig().silenced()).setUnlocalizedName("gun_uzi_saturnite_silencer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uzi_saturnite_silencer"); gun_uboinik_ammo = new Item().setUnlocalizedName("gun_uboinik_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_uboinik_ammo"); gun_uboinik = new ItemGunBase(Gun12GaugeFactory.getUboinikConfig()).setUnlocalizedName("gun_uboinik").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); - gun_supershotgun = new ItemGunBase(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); + gun_supershotgun = new ItemGunShotty(Gun12GaugeFactory.getShottyConfig()).setUnlocalizedName("gun_supershotgun").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_uboinik"); gun_lever_action_ammo = new Item().setUnlocalizedName("gun_lever_action_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_lever_action_ammo"); gun_lever_action = new ItemGunBase(Gun20GaugeFactory.getMareConfig()).setUnlocalizedName("gun_lever_action").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action"); gun_lever_action_dark = new ItemGunBase(Gun20GaugeFactory.getMareDarkConfig()).setUnlocalizedName("gun_lever_action_dark").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_lever_action_dark"); @@ -3612,6 +3616,7 @@ public class ModItems { GameRegistry.registerItem(ingot_saturnite, ingot_saturnite.getUnlocalizedName()); GameRegistry.registerItem(ingot_euphemium, ingot_euphemium.getUnlocalizedName()); GameRegistry.registerItem(ingot_dineutronium, ingot_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_electronium, ingot_electronium.getUnlocalizedName()); //Dusts & Other GameRegistry.registerItem(lithium, lithium.getUnlocalizedName()); @@ -4451,6 +4456,7 @@ public class ModItems { GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); GameRegistry.registerItem(missile_soyuz, missile_soyuz.getUnlocalizedName()); + GameRegistry.registerItem(missile_soyuz_lander, missile_soyuz_lander.getUnlocalizedName()); GameRegistry.registerItem(missile_custom, missile_custom.getUnlocalizedName()); //Missile Parts diff --git a/com/hbm/items/special/ItemSoyuz.java b/com/hbm/items/special/ItemSoyuz.java new file mode 100644 index 000000000..dda1b04af --- /dev/null +++ b/com/hbm/items/special/ItemSoyuz.java @@ -0,0 +1,55 @@ +package com.hbm.items.special; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumRarity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemSoyuz extends Item { + + public ItemSoyuz() { + this.setHasSubtypes(true); + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + list.add(new ItemStack(item, 1, 0)); + list.add(new ItemStack(item, 1, 1)); + list.add(new ItemStack(item, 1, 2)); + } + + @Override + public EnumRarity getRarity(ItemStack stack) { + + if(stack.getItemDamage() == 0) + return EnumRarity.uncommon; + + if(stack.getItemDamage() == 1) + return EnumRarity.rare; + + if(stack.getItemDamage() == 2) + return EnumRarity.epic; + + return EnumRarity.common; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + list.add("Skin:"); + + switch(stack.getItemDamage()) { + case 0: list.add(EnumChatFormatting.GOLD + "Original"); break; + case 1: list.add(EnumChatFormatting.BLUE + "Luna Space Center"); break; + case 2: list.add(EnumChatFormatting.GREEN + "Post War"); break; + } + } + +} diff --git a/com/hbm/items/tool/ItemSatChip.java b/com/hbm/items/tool/ItemSatChip.java index cad7dba8e..ca434f44b 100644 --- a/com/hbm/items/tool/ItemSatChip.java +++ b/com/hbm/items/tool/ItemSatChip.java @@ -29,7 +29,7 @@ public class ItemSatChip extends Item { list.add("Displays currently loaded chunks."); if(this == ModItems.sat_miner) - list.add("Will deliver ore powders to a caargo landing pad."); + list.add("Will deliver ore powders to a cargo landing pad."); if(this == ModItems.sat_radar) list.add("Shows a map of active entities."); diff --git a/com/hbm/items/weapon/ItemGunShotty.java b/com/hbm/items/weapon/ItemGunShotty.java new file mode 100644 index 000000000..c8667af3e --- /dev/null +++ b/com/hbm/items/weapon/ItemGunShotty.java @@ -0,0 +1,24 @@ +package com.hbm.items.weapon; + +import com.hbm.handler.GunConfiguration; +import com.hbm.lib.Library; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemGunShotty extends ItemGunBase { + + public ItemGunShotty(GunConfiguration config) { + super(config); + } + + + protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { + super.updateServer(stack, world, player, slot, isCurrentItem); + + if(player.getUniqueID().toString().equals(Library.Dr_Nostalgia) && this.getDelay(stack) < this.mainConfig.rateOfFire * 0.9) + this.setDelay(stack, 0); + } + +} diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 9f8a17549..5f807fb94 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -67,6 +67,8 @@ public class Library { public static String Hoboy03new = "d7f29d9c-5103-4f6f-88e1-2632ff95973f"; public static String Dragon59MC = "dc23a304-0f84-4e2d-b47d-84c8d3bfbcdb"; public static String Steelcourage = "ac49720b-4a9a-4459-a26f-bee92160287a"; + public static String GOD___TM = "57146e3f-16b5-4e9f-b0b8-139bec2ca2cb"; + public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017"; public static List superuser = new ArrayList(); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 49d3f36ab..85b6f24b1 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -4,6 +4,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.particle.EntityCloudFX; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; @@ -31,9 +32,76 @@ import com.hbm.items.ModItems; import com.hbm.particle.ParticleContrail; import com.hbm.particle.ParticleExSmoke; import com.hbm.particle.ParticleRadiationFog; +import com.hbm.particle.ParticleRocketFlame; import com.hbm.particle.ParticleSmokePlume; import com.hbm.render.block.*; import com.hbm.render.entity.*; +import com.hbm.render.entity.effect.ElectricityRenderer; +import com.hbm.render.entity.effect.FogRenderer; +import com.hbm.render.entity.effect.GasFlameRenderer; +import com.hbm.render.entity.effect.GasRenderer; +import com.hbm.render.entity.effect.MultiCloudRenderer; +import com.hbm.render.entity.effect.RenderBigNuke; +import com.hbm.render.entity.effect.RenderBlackHole; +import com.hbm.render.entity.effect.RenderCloudFleija; +import com.hbm.render.entity.effect.RenderCloudRainbow; +import com.hbm.render.entity.effect.RenderCloudSolinium; +import com.hbm.render.entity.effect.RenderDeathBlast; +import com.hbm.render.entity.effect.RenderEMPBlast; +import com.hbm.render.entity.effect.RenderFallout; +import com.hbm.render.entity.effect.RenderFireball; +import com.hbm.render.entity.effect.RenderFlare; +import com.hbm.render.entity.effect.RenderNoCloud; +import com.hbm.render.entity.effect.RenderSmallNukeMK3; +import com.hbm.render.entity.effect.SSmokeRenderer; +import com.hbm.render.entity.effect.SpillRenderer; +import com.hbm.render.entity.effect.TSmokeRenderer; +import com.hbm.render.entity.item.RenderBomber; +import com.hbm.render.entity.item.RenderMinecartTest; +import com.hbm.render.entity.mob.RenderCyberCrab; +import com.hbm.render.entity.mob.RenderHunterChopper; +import com.hbm.render.entity.mob.RenderNuclearCreeper; +import com.hbm.render.entity.mob.RenderTaintedCreeper; +import com.hbm.render.entity.projectile.RenderBaleflare; +import com.hbm.render.entity.projectile.RenderBeam; +import com.hbm.render.entity.projectile.RenderBeam2; +import com.hbm.render.entity.projectile.RenderBeam3; +import com.hbm.render.entity.projectile.RenderBeam4; +import com.hbm.render.entity.projectile.RenderBeam5; +import com.hbm.render.entity.projectile.RenderBeam6; +import com.hbm.render.entity.projectile.RenderBombletSelena; +import com.hbm.render.entity.projectile.RenderBombletTheta; +import com.hbm.render.entity.projectile.RenderBoxcar; +import com.hbm.render.entity.projectile.RenderBullet; +import com.hbm.render.entity.projectile.RenderChopperMine; +import com.hbm.render.entity.projectile.RenderFOEQ; +import com.hbm.render.entity.projectile.RenderFallingNuke; +import com.hbm.render.entity.projectile.RenderLN2; +import com.hbm.render.entity.projectile.RenderLaser; +import com.hbm.render.entity.projectile.RenderMeteor; +import com.hbm.render.entity.projectile.RenderMiniMIRV; +import com.hbm.render.entity.projectile.RenderMiniNuke; +import com.hbm.render.entity.projectile.RenderMirv; +import com.hbm.render.entity.projectile.RenderOminousBullet; +import com.hbm.render.entity.projectile.RenderRainbow; +import com.hbm.render.entity.projectile.RenderRocket; +import com.hbm.render.entity.projectile.RenderRubble; +import com.hbm.render.entity.projectile.RenderSRocket; +import com.hbm.render.entity.projectile.RenderShrapnel; +import com.hbm.render.entity.projectile.RenderTom; +import com.hbm.render.entity.rocket.RenderBoosterMissile; +import com.hbm.render.entity.rocket.RenderCarrierMissile; +import com.hbm.render.entity.rocket.RenderMinerRocket; +import com.hbm.render.entity.rocket.RenderMissileCustom; +import com.hbm.render.entity.rocket.RenderMissileDoomsday; +import com.hbm.render.entity.rocket.RenderMissileGeneric; +import com.hbm.render.entity.rocket.RenderMissileHuge; +import com.hbm.render.entity.rocket.RenderMissileMirv; +import com.hbm.render.entity.rocket.RenderMissileNuclear; +import com.hbm.render.entity.rocket.RenderMissileStrong; +import com.hbm.render.entity.rocket.RenderMissileTaint; +import com.hbm.render.entity.rocket.RenderMissileThermo; +import com.hbm.render.entity.rocket.RenderSoyuz; import com.hbm.render.item.*; import com.hbm.render.loader.HmfModelLoader; import com.hbm.render.tileentity.*; @@ -390,6 +458,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityBuilding.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); + RenderingRegistry.registerEntityRenderingHandler(EntitySoyuz.class, new RenderSoyuz()); RenderingRegistry.registerEntityRenderingHandler(EntityBomber.class, new RenderBomber()); RenderingRegistry.registerEntityRenderingHandler(EntityBurningFOEQ.class, new RenderFOEQ()); RenderingRegistry.registerEntityRenderingHandler(EntityFallingNuke.class, new RenderFallingNuke()); @@ -565,6 +634,7 @@ public class ClientProxy extends ServerProxy World world = Minecraft.getMinecraft().theWorld; TextureManager man = Minecraft.getMinecraft().renderEngine; + EntityPlayer player = Minecraft.getMinecraft().thePlayer; Random rand = world.rand; String type = data.getString("type"); double x = data.getDouble("posX"); @@ -616,8 +686,63 @@ public class ClientProxy extends ServerProxy vec.rotateAroundY(360 / count); } } + + if("shockRand".equals(mode)) { + + double strength = data.getDouble("strength"); + + Vec3 vec = Vec3.createVectorHelper(strength, 0, 0); + vec.rotateAroundY(rand.nextInt(360)); + double r; + + for(int i = 0; i < count; i++) { + r = rand.nextDouble(); + ParticleExSmoke fx = new ParticleExSmoke(man, world, x, y, z); + fx.motionY = 0; + fx.motionX = vec.xCoord * r; + fx.motionZ = vec.zCoord * r; + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + + vec.rotateAroundY(360 / count); + } + } } + if("exhaust".equals(type)) { + + String mode = data.getString("mode"); + + if("soyuz".equals(mode)) { + + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) + return; + + int count = Math.max(1, data.getInteger("count")); + double width = data.getDouble("width"); + + for(int i = 0; i < count; i++) { + + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x + rand.nextGaussian() * width, y, z + rand.nextGaussian() * width); + fx.motionY = -0.75 + rand.nextDouble() * 0.5; + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + + if("meteor".equals(mode)) { + + if(Vec3.createVectorHelper(player.posX - x, player.posY - y, player.posZ - z).lengthVector() > 350) + return; + + int count = Math.max(1, data.getInteger("count")); + double width = data.getDouble("width"); + + for(int i = 0; i < count; i++) { + + ParticleRocketFlame fx = new ParticleRocketFlame(man, world, x + rand.nextGaussian() * width, y + rand.nextGaussian() * width, z + rand.nextGaussian() * width); + Minecraft.getMinecraft().effectRenderer.addEffect(fx); + } + } + } } @Override diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 8bf3b5fa5..41a966b5c 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -687,6 +687,7 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityTom.class, "entity_tom_the_moonstone", 141, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityTomBlast.class, "entity_tom_bust", 142, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityBuilding.class, "entity_falling_building", 143, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntitySoyuz.class, "entity_soyuz", 144, 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/ResourceManager.java b/com/hbm/main/ResourceManager.java index af8384119..b8c54b1a4 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -335,6 +335,7 @@ public class ResourceManager { public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); public static final IModelCustom minerRocket = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/minerRocket.obj")); public static final IModelCustom soyuz = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz.obj")); + public static final IModelCustom soyuz_lander = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/soyuz_lander.obj")); public static final IModelCustom soyuz_launcher_legs = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_legs.obj")); public static final IModelCustom soyuz_launcher_table = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_table.obj")); public static final IModelCustom soyuz_launcher_tower_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/launch_table/soyuz_launcher_tower_base.obj")); @@ -494,6 +495,9 @@ public class ResourceManager { public static final ResourceLocation soyuz_authentic_booster = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_authentic/booster.png"); public static final ResourceLocation soyuz_authentic_boosterside = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_authentic/boosterside.png"); public static final ResourceLocation soyuz_memento = new ResourceLocation(RefStrings.MODID, "textures/items/polaroid_memento.png"); + + public static final ResourceLocation soyuz_lander_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_lander.png"); + public static final ResourceLocation soyuz_chute_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_chute.png"); public static final ResourceLocation soyuz_launcher_legs_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_leg.png"); public static final ResourceLocation soyuz_launcher_table_tex = new ResourceLocation(RefStrings.MODID, "textures/models/soyuz_launcher/launcher_table.png"); diff --git a/com/hbm/particle/ParticleRocketFlame.java b/com/hbm/particle/ParticleRocketFlame.java new file mode 100644 index 000000000..269ea3a1e --- /dev/null +++ b/com/hbm/particle/ParticleRocketFlame.java @@ -0,0 +1,102 @@ +package com.hbm.particle; + +import java.util.Random; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.particle.EntityFX; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; + +@SideOnly(Side.CLIENT) +public class ParticleRocketFlame extends EntityFX { + + private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/particle/particle_base.png"); + private TextureManager theRenderEngine; + private int age; + private int maxAge; + + public ParticleRocketFlame(TextureManager p_i1213_1_, World p_i1218_1_, double p_i1218_2_, double p_i1218_4_, double p_i1218_6_) { + super(p_i1218_1_, p_i1218_2_, p_i1218_4_, p_i1218_6_); + theRenderEngine = p_i1213_1_; + maxAge = 300 + rand.nextInt(50); + } + + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.age++; + + if (this.age == this.maxAge) { + this.setDead(); + } + + this.motionX *= 0.9099999785423279D; + this.motionY *= 0.9099999785423279D; + this.motionZ *= 0.9099999785423279D; + + this.moveEntity(this.motionX, this.motionY, this.motionZ); + } + + public int getFXLayer() { + return 3; + } + + public void renderParticle(Tessellator p_70539_1_, float p_70539_2_, float p_70539_3_, float p_70539_4_, float p_70539_5_, float p_70539_6_, float p_70539_7_) { + + this.theRenderEngine.bindTexture(texture); + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDepthMask(false); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + RenderHelper.disableStandardItemLighting(); + + Random urandom = new Random(this.getEntityId()); + + for(int i = 0; i < 15; i++) { + + p_70539_1_.startDrawingQuads(); + + float add = urandom.nextFloat() * 0.3F; + float dark = 1 - Math.min(((float)(age) / (float)(maxAge * 0.25F)), 1); + + this.particleRed = 1 * dark + add; + this.particleGreen = 0.6F * dark + add; + this.particleBlue = 0 + add; + + this.particleAlpha = (float) Math.pow(1 - Math.min(((float)(age) / (float)(maxAge)), 1), 0.5); + + p_70539_1_.setColorRGBA_F(this.particleRed, this.particleGreen, this.particleBlue, this.particleAlpha * 0.75F); + p_70539_1_.setNormal(0.0F, 1.0F, 0.0F); + p_70539_1_.setBrightness(240); + + float spread = (float) Math.pow(((float)(age) / (float)maxAge) * 4F, 1.5) + 0.5F; + + float scale = urandom.nextFloat() * 0.5F + 0.1F + ((float)(age) / (float)maxAge) * 2F; + float pX = (float) ((this.prevPosX + (this.posX - this.prevPosX) * (double)p_70539_2_ - interpPosX) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + float pY = (float) ((this.prevPosY + (this.posY - this.prevPosY) * (double)p_70539_2_ - interpPosY) + (urandom.nextGaussian() - 1D) * 0.5F * spread); + float pZ = (float) ((this.prevPosZ + (this.posZ - this.prevPosZ) * (double)p_70539_2_ - interpPosZ) + (urandom.nextGaussian() - 1D) * 0.2F * spread); + + p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale - p_70539_7_ * scale), 1, 1); + p_70539_1_.addVertexWithUV((double)(pX - p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ - p_70539_5_ * scale + p_70539_7_ * scale), 1, 0); + p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale + p_70539_6_ * scale), (double)(pY + p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale + p_70539_7_ * scale), 0, 0); + p_70539_1_.addVertexWithUV((double)(pX + p_70539_3_ * scale - p_70539_6_ * scale), (double)(pY - p_70539_4_ * scale), (double)(pZ + p_70539_5_ * scale - p_70539_7_ * scale), 0, 1); + p_70539_1_.draw(); + } + + GL11.glPolygonOffset(0.0F, 0.0F); + GL11.glEnable(GL11.GL_LIGHTING); + } +} diff --git a/com/hbm/render/entity/BSmokeRenderer.java b/com/hbm/render/entity/effect/BSmokeRenderer.java similarity index 96% rename from com/hbm/render/entity/BSmokeRenderer.java rename to com/hbm/render/entity/effect/BSmokeRenderer.java index 036f32d13..466a77a08 100644 --- a/com/hbm/render/entity/BSmokeRenderer.java +++ b/com/hbm/render/entity/effect/BSmokeRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/DSmokeRenderer.java b/com/hbm/render/entity/effect/DSmokeRenderer.java similarity index 95% rename from com/hbm/render/entity/DSmokeRenderer.java rename to com/hbm/render/entity/effect/DSmokeRenderer.java index 51ae9e323..74f4e2ee7 100644 --- a/com/hbm/render/entity/DSmokeRenderer.java +++ b/com/hbm/render/entity/effect/DSmokeRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/ElectricityRenderer.java b/com/hbm/render/entity/effect/ElectricityRenderer.java similarity index 98% rename from com/hbm/render/entity/ElectricityRenderer.java rename to com/hbm/render/entity/effect/ElectricityRenderer.java index 0c719e297..a6901e84c 100644 --- a/com/hbm/render/entity/ElectricityRenderer.java +++ b/com/hbm/render/entity/effect/ElectricityRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/FogRenderer.java b/com/hbm/render/entity/effect/FogRenderer.java similarity index 98% rename from com/hbm/render/entity/FogRenderer.java rename to com/hbm/render/entity/effect/FogRenderer.java index 20c3c6349..46ffc1e39 100644 --- a/com/hbm/render/entity/FogRenderer.java +++ b/com/hbm/render/entity/effect/FogRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/GasFlameRenderer.java b/com/hbm/render/entity/effect/GasFlameRenderer.java similarity index 99% rename from com/hbm/render/entity/GasFlameRenderer.java rename to com/hbm/render/entity/effect/GasFlameRenderer.java index bddef0290..f14de47a7 100644 --- a/com/hbm/render/entity/GasFlameRenderer.java +++ b/com/hbm/render/entity/effect/GasFlameRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/GasRenderer.java b/com/hbm/render/entity/effect/GasRenderer.java similarity index 99% rename from com/hbm/render/entity/GasRenderer.java rename to com/hbm/render/entity/effect/GasRenderer.java index e476a781f..d6ff25a09 100644 --- a/com/hbm/render/entity/GasRenderer.java +++ b/com/hbm/render/entity/effect/GasRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/ModEffectRenderer.java b/com/hbm/render/entity/effect/ModEffectRenderer.java similarity index 96% rename from com/hbm/render/entity/ModEffectRenderer.java rename to com/hbm/render/entity/effect/ModEffectRenderer.java index df3e5f5d9..58380d534 100644 --- a/com/hbm/render/entity/ModEffectRenderer.java +++ b/com/hbm/render/entity/effect/ModEffectRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/MultiCloudRenderer.java b/com/hbm/render/entity/effect/MultiCloudRenderer.java similarity index 96% rename from com/hbm/render/entity/MultiCloudRenderer.java rename to com/hbm/render/entity/effect/MultiCloudRenderer.java index f594ab129..103d5d5a5 100644 --- a/com/hbm/render/entity/MultiCloudRenderer.java +++ b/com/hbm/render/entity/effect/MultiCloudRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBigNuke.java b/com/hbm/render/entity/effect/RenderBigNuke.java similarity index 97% rename from com/hbm/render/entity/RenderBigNuke.java rename to com/hbm/render/entity/effect/RenderBigNuke.java index c07e0a468..f05f050ef 100644 --- a/com/hbm/render/entity/RenderBigNuke.java +++ b/com/hbm/render/entity/effect/RenderBigNuke.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBlackHole.java b/com/hbm/render/entity/effect/RenderBlackHole.java similarity index 99% rename from com/hbm/render/entity/RenderBlackHole.java rename to com/hbm/render/entity/effect/RenderBlackHole.java index c1e37e9fb..cc032fe3b 100644 --- a/com/hbm/render/entity/RenderBlackHole.java +++ b/com/hbm/render/entity/effect/RenderBlackHole.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderCloudFleija.java b/com/hbm/render/entity/effect/RenderCloudFleija.java similarity index 95% rename from com/hbm/render/entity/RenderCloudFleija.java rename to com/hbm/render/entity/effect/RenderCloudFleija.java index ec29037f7..d6183648a 100644 --- a/com/hbm/render/entity/RenderCloudFleija.java +++ b/com/hbm/render/entity/effect/RenderCloudFleija.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderCloudRainbow.java b/com/hbm/render/entity/effect/RenderCloudRainbow.java similarity index 98% rename from com/hbm/render/entity/RenderCloudRainbow.java rename to com/hbm/render/entity/effect/RenderCloudRainbow.java index 7693a3539..9e9a6452b 100644 --- a/com/hbm/render/entity/RenderCloudRainbow.java +++ b/com/hbm/render/entity/effect/RenderCloudRainbow.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderCloudSolinium.java b/com/hbm/render/entity/effect/RenderCloudSolinium.java similarity index 97% rename from com/hbm/render/entity/RenderCloudSolinium.java rename to com/hbm/render/entity/effect/RenderCloudSolinium.java index d5a5e253f..4c077afbc 100644 --- a/com/hbm/render/entity/RenderCloudSolinium.java +++ b/com/hbm/render/entity/effect/RenderCloudSolinium.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderDeathBlast.java b/com/hbm/render/entity/effect/RenderDeathBlast.java similarity index 99% rename from com/hbm/render/entity/RenderDeathBlast.java rename to com/hbm/render/entity/effect/RenderDeathBlast.java index 5ac4db69b..faabf3266 100644 --- a/com/hbm/render/entity/RenderDeathBlast.java +++ b/com/hbm/render/entity/effect/RenderDeathBlast.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderEMPBlast.java b/com/hbm/render/entity/effect/RenderEMPBlast.java similarity index 97% rename from com/hbm/render/entity/RenderEMPBlast.java rename to com/hbm/render/entity/effect/RenderEMPBlast.java index fdced4e27..7e93c8447 100644 --- a/com/hbm/render/entity/RenderEMPBlast.java +++ b/com/hbm/render/entity/effect/RenderEMPBlast.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import com.hbm.entity.effect.EntityEMPBlast; diff --git a/com/hbm/render/entity/RenderFallout.java b/com/hbm/render/entity/effect/RenderFallout.java similarity index 99% rename from com/hbm/render/entity/RenderFallout.java rename to com/hbm/render/entity/effect/RenderFallout.java index 694323c10..1b3131ad1 100644 --- a/com/hbm/render/entity/RenderFallout.java +++ b/com/hbm/render/entity/effect/RenderFallout.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderFireball.java b/com/hbm/render/entity/effect/RenderFireball.java similarity index 99% rename from com/hbm/render/entity/RenderFireball.java rename to com/hbm/render/entity/effect/RenderFireball.java index 25b01eb73..693e20f8e 100644 --- a/com/hbm/render/entity/RenderFireball.java +++ b/com/hbm/render/entity/effect/RenderFireball.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/RenderFlare.java b/com/hbm/render/entity/effect/RenderFlare.java similarity index 96% rename from com/hbm/render/entity/RenderFlare.java rename to com/hbm/render/entity/effect/RenderFlare.java index 0626d2e4a..4096951dc 100644 --- a/com/hbm/render/entity/RenderFlare.java +++ b/com/hbm/render/entity/effect/RenderFlare.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderNoCloud.java b/com/hbm/render/entity/effect/RenderNoCloud.java similarity index 99% rename from com/hbm/render/entity/RenderNoCloud.java rename to com/hbm/render/entity/effect/RenderNoCloud.java index c66f146f8..28772b128 100644 --- a/com/hbm/render/entity/RenderNoCloud.java +++ b/com/hbm/render/entity/effect/RenderNoCloud.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderSmallNuke.java b/com/hbm/render/entity/effect/RenderSmallNuke.java similarity index 96% rename from com/hbm/render/entity/RenderSmallNuke.java rename to com/hbm/render/entity/effect/RenderSmallNuke.java index f3c27bb12..7eda6e0f4 100644 --- a/com/hbm/render/entity/RenderSmallNuke.java +++ b/com/hbm/render/entity/effect/RenderSmallNuke.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderSmallNukeAlt.java b/com/hbm/render/entity/effect/RenderSmallNukeAlt.java similarity index 97% rename from com/hbm/render/entity/RenderSmallNukeAlt.java rename to com/hbm/render/entity/effect/RenderSmallNukeAlt.java index 58f821fa6..b62f5b58b 100644 --- a/com/hbm/render/entity/RenderSmallNukeAlt.java +++ b/com/hbm/render/entity/effect/RenderSmallNukeAlt.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/RenderSmallNukeMK3.java b/com/hbm/render/entity/effect/RenderSmallNukeMK3.java similarity index 96% rename from com/hbm/render/entity/RenderSmallNukeMK3.java rename to com/hbm/render/entity/effect/RenderSmallNukeMK3.java index 26623a138..533e5c1c2 100644 --- a/com/hbm/render/entity/RenderSmallNukeMK3.java +++ b/com/hbm/render/entity/effect/RenderSmallNukeMK3.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderVortex.java b/com/hbm/render/entity/effect/RenderVortex.java similarity index 99% rename from com/hbm/render/entity/RenderVortex.java rename to com/hbm/render/entity/effect/RenderVortex.java index 35bbbdeb6..c5959eb05 100644 --- a/com/hbm/render/entity/RenderVortex.java +++ b/com/hbm/render/entity/effect/RenderVortex.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import java.util.Random; diff --git a/com/hbm/render/entity/SSmokeRenderer.java b/com/hbm/render/entity/effect/SSmokeRenderer.java similarity index 96% rename from com/hbm/render/entity/SSmokeRenderer.java rename to com/hbm/render/entity/effect/SSmokeRenderer.java index 780239f4c..0c9f72881 100644 --- a/com/hbm/render/entity/SSmokeRenderer.java +++ b/com/hbm/render/entity/effect/SSmokeRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/SpillRenderer.java b/com/hbm/render/entity/effect/SpillRenderer.java similarity index 96% rename from com/hbm/render/entity/SpillRenderer.java rename to com/hbm/render/entity/effect/SpillRenderer.java index ea6ead92d..ea036b0d0 100644 --- a/com/hbm/render/entity/SpillRenderer.java +++ b/com/hbm/render/entity/effect/SpillRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/TSmokeRenderer.java b/com/hbm/render/entity/effect/TSmokeRenderer.java similarity index 95% rename from com/hbm/render/entity/TSmokeRenderer.java rename to com/hbm/render/entity/effect/TSmokeRenderer.java index 0261aa74f..1df1b079e 100644 --- a/com/hbm/render/entity/TSmokeRenderer.java +++ b/com/hbm/render/entity/effect/TSmokeRenderer.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.effect; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/RenderBomber.java b/com/hbm/render/entity/item/RenderBomber.java similarity index 98% rename from com/hbm/render/entity/RenderBomber.java rename to com/hbm/render/entity/item/RenderBomber.java index 8d65de992..b2fa0f239 100644 --- a/com/hbm/render/entity/RenderBomber.java +++ b/com/hbm/render/entity/item/RenderBomber.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.item; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMinecartTest.java b/com/hbm/render/entity/item/RenderMinecartTest.java similarity index 99% rename from com/hbm/render/entity/RenderMinecartTest.java rename to com/hbm/render/entity/item/RenderMinecartTest.java index 1b27050a6..6b4cce5ad 100644 --- a/com/hbm/render/entity/RenderMinecartTest.java +++ b/com/hbm/render/entity/item/RenderMinecartTest.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.item; import net.minecraft.block.Block; import net.minecraft.client.renderer.entity.RenderMinecart; diff --git a/com/hbm/render/entity/RenderCyberCrab.java b/com/hbm/render/entity/mob/RenderCyberCrab.java similarity index 93% rename from com/hbm/render/entity/RenderCyberCrab.java rename to com/hbm/render/entity/mob/RenderCyberCrab.java index 549d006c7..0005fca26 100644 --- a/com/hbm/render/entity/RenderCyberCrab.java +++ b/com/hbm/render/entity/mob/RenderCyberCrab.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.mob; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelCrab; diff --git a/com/hbm/render/entity/RenderHunterChopper.java b/com/hbm/render/entity/mob/RenderHunterChopper.java similarity index 95% rename from com/hbm/render/entity/RenderHunterChopper.java rename to com/hbm/render/entity/mob/RenderHunterChopper.java index 2e4d42e4c..0fac7dd10 100644 --- a/com/hbm/render/entity/RenderHunterChopper.java +++ b/com/hbm/render/entity/mob/RenderHunterChopper.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderNuclearCreeper.java b/com/hbm/render/entity/mob/RenderNuclearCreeper.java similarity index 96% rename from com/hbm/render/entity/RenderNuclearCreeper.java rename to com/hbm/render/entity/mob/RenderNuclearCreeper.java index 7eb2df8dc..7b9e128c0 100644 --- a/com/hbm/render/entity/RenderNuclearCreeper.java +++ b/com/hbm/render/entity/mob/RenderNuclearCreeper.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderTaintedCreeper.java b/com/hbm/render/entity/mob/RenderTaintedCreeper.java similarity index 99% rename from com/hbm/render/entity/RenderTaintedCreeper.java rename to com/hbm/render/entity/mob/RenderTaintedCreeper.java index fd8fdf278..eb804ce08 100644 --- a/com/hbm/render/entity/RenderTaintedCreeper.java +++ b/com/hbm/render/entity/mob/RenderTaintedCreeper.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.mob; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBaleflare.java b/com/hbm/render/entity/projectile/RenderBaleflare.java similarity index 96% rename from com/hbm/render/entity/RenderBaleflare.java rename to com/hbm/render/entity/projectile/RenderBaleflare.java index 0f5ae28ba..f3c1d9fc9 100644 --- a/com/hbm/render/entity/RenderBaleflare.java +++ b/com/hbm/render/entity/projectile/RenderBaleflare.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBeam.java b/com/hbm/render/entity/projectile/RenderBeam.java similarity index 98% rename from com/hbm/render/entity/RenderBeam.java rename to com/hbm/render/entity/projectile/RenderBeam.java index 39fcce24e..6a0e4a6fe 100644 --- a/com/hbm/render/entity/RenderBeam.java +++ b/com/hbm/render/entity/projectile/RenderBeam.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBeam2.java b/com/hbm/render/entity/projectile/RenderBeam2.java similarity index 98% rename from com/hbm/render/entity/RenderBeam2.java rename to com/hbm/render/entity/projectile/RenderBeam2.java index d7175604a..d669e2515 100644 --- a/com/hbm/render/entity/RenderBeam2.java +++ b/com/hbm/render/entity/projectile/RenderBeam2.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBeam3.java b/com/hbm/render/entity/projectile/RenderBeam3.java similarity index 98% rename from com/hbm/render/entity/RenderBeam3.java rename to com/hbm/render/entity/projectile/RenderBeam3.java index 46899f38f..824474099 100644 --- a/com/hbm/render/entity/RenderBeam3.java +++ b/com/hbm/render/entity/projectile/RenderBeam3.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBeam4.java b/com/hbm/render/entity/projectile/RenderBeam4.java similarity index 98% rename from com/hbm/render/entity/RenderBeam4.java rename to com/hbm/render/entity/projectile/RenderBeam4.java index 96e29b5f9..18b8d5efb 100644 --- a/com/hbm/render/entity/RenderBeam4.java +++ b/com/hbm/render/entity/projectile/RenderBeam4.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBeam5.java b/com/hbm/render/entity/projectile/RenderBeam5.java similarity index 98% rename from com/hbm/render/entity/RenderBeam5.java rename to com/hbm/render/entity/projectile/RenderBeam5.java index 0c2a3bd81..96159124e 100644 --- a/com/hbm/render/entity/RenderBeam5.java +++ b/com/hbm/render/entity/projectile/RenderBeam5.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBeam6.java b/com/hbm/render/entity/projectile/RenderBeam6.java similarity index 98% rename from com/hbm/render/entity/RenderBeam6.java rename to com/hbm/render/entity/projectile/RenderBeam6.java index 0994c124a..4fccefa42 100644 --- a/com/hbm/render/entity/RenderBeam6.java +++ b/com/hbm/render/entity/projectile/RenderBeam6.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderBombletSelena.java b/com/hbm/render/entity/projectile/RenderBombletSelena.java similarity index 95% rename from com/hbm/render/entity/RenderBombletSelena.java rename to com/hbm/render/entity/projectile/RenderBombletSelena.java index e2a5e0126..1c8850bed 100644 --- a/com/hbm/render/entity/RenderBombletSelena.java +++ b/com/hbm/render/entity/projectile/RenderBombletSelena.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBombletTheta.java b/com/hbm/render/entity/projectile/RenderBombletTheta.java similarity index 95% rename from com/hbm/render/entity/RenderBombletTheta.java rename to com/hbm/render/entity/projectile/RenderBombletTheta.java index 287a520b9..10ae0d526 100644 --- a/com/hbm/render/entity/RenderBombletTheta.java +++ b/com/hbm/render/entity/projectile/RenderBombletTheta.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBoxcar.java b/com/hbm/render/entity/projectile/RenderBoxcar.java similarity index 97% rename from com/hbm/render/entity/RenderBoxcar.java rename to com/hbm/render/entity/projectile/RenderBoxcar.java index d5ac97583..275a6083d 100644 --- a/com/hbm/render/entity/RenderBoxcar.java +++ b/com/hbm/render/entity/projectile/RenderBoxcar.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBullet.java b/com/hbm/render/entity/projectile/RenderBullet.java similarity index 99% rename from com/hbm/render/entity/RenderBullet.java rename to com/hbm/render/entity/projectile/RenderBullet.java index 8e1cd16ce..f0b7f4fbd 100644 --- a/com/hbm/render/entity/RenderBullet.java +++ b/com/hbm/render/entity/projectile/RenderBullet.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderChopperMine.java b/com/hbm/render/entity/projectile/RenderChopperMine.java similarity index 92% rename from com/hbm/render/entity/RenderChopperMine.java rename to com/hbm/render/entity/projectile/RenderChopperMine.java index 5adf88792..fd1fffd9f 100644 --- a/com/hbm/render/entity/RenderChopperMine.java +++ b/com/hbm/render/entity/projectile/RenderChopperMine.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderFOEQ.java b/com/hbm/render/entity/projectile/RenderFOEQ.java similarity index 98% rename from com/hbm/render/entity/RenderFOEQ.java rename to com/hbm/render/entity/projectile/RenderFOEQ.java index d844a90d3..ed2cbd0d0 100644 --- a/com/hbm/render/entity/RenderFOEQ.java +++ b/com/hbm/render/entity/projectile/RenderFOEQ.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderFallingNuke.java b/com/hbm/render/entity/projectile/RenderFallingNuke.java similarity index 98% rename from com/hbm/render/entity/RenderFallingNuke.java rename to com/hbm/render/entity/projectile/RenderFallingNuke.java index 428a93819..21f191a2d 100644 --- a/com/hbm/render/entity/RenderFallingNuke.java +++ b/com/hbm/render/entity/projectile/RenderFallingNuke.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderLN2.java b/com/hbm/render/entity/projectile/RenderLN2.java similarity index 99% rename from com/hbm/render/entity/RenderLN2.java rename to com/hbm/render/entity/projectile/RenderLN2.java index 48c1c5435..fe68074b5 100644 --- a/com/hbm/render/entity/RenderLN2.java +++ b/com/hbm/render/entity/projectile/RenderLN2.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; diff --git a/com/hbm/render/entity/RenderLaser.java b/com/hbm/render/entity/projectile/RenderLaser.java similarity index 97% rename from com/hbm/render/entity/RenderLaser.java rename to com/hbm/render/entity/projectile/RenderLaser.java index 4cc75fab4..b87d393ac 100644 --- a/com/hbm/render/entity/RenderLaser.java +++ b/com/hbm/render/entity/projectile/RenderLaser.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMeteor.java b/com/hbm/render/entity/projectile/RenderMeteor.java similarity index 98% rename from com/hbm/render/entity/RenderMeteor.java rename to com/hbm/render/entity/projectile/RenderMeteor.java index e651743f6..c4fd83fae 100644 --- a/com/hbm/render/entity/RenderMeteor.java +++ b/com/hbm/render/entity/projectile/RenderMeteor.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMiniMIRV.java b/com/hbm/render/entity/projectile/RenderMiniMIRV.java similarity index 96% rename from com/hbm/render/entity/RenderMiniMIRV.java rename to com/hbm/render/entity/projectile/RenderMiniMIRV.java index eabbfc571..6a225cc32 100644 --- a/com/hbm/render/entity/RenderMiniMIRV.java +++ b/com/hbm/render/entity/projectile/RenderMiniMIRV.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMiniNuke.java b/com/hbm/render/entity/projectile/RenderMiniNuke.java similarity index 94% rename from com/hbm/render/entity/RenderMiniNuke.java rename to com/hbm/render/entity/projectile/RenderMiniNuke.java index d189845a0..6295fb83b 100644 --- a/com/hbm/render/entity/RenderMiniNuke.java +++ b/com/hbm/render/entity/projectile/RenderMiniNuke.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMirv.java b/com/hbm/render/entity/projectile/RenderMirv.java similarity index 94% rename from com/hbm/render/entity/RenderMirv.java rename to com/hbm/render/entity/projectile/RenderMirv.java index 565eb49f8..810ad9960 100644 --- a/com/hbm/render/entity/RenderMirv.java +++ b/com/hbm/render/entity/projectile/RenderMirv.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderOminousBullet.java b/com/hbm/render/entity/projectile/RenderOminousBullet.java similarity index 95% rename from com/hbm/render/entity/RenderOminousBullet.java rename to com/hbm/render/entity/projectile/RenderOminousBullet.java index cab1e04bd..09bec73a2 100644 --- a/com/hbm/render/entity/RenderOminousBullet.java +++ b/com/hbm/render/entity/projectile/RenderOminousBullet.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderRainbow.java b/com/hbm/render/entity/projectile/RenderRainbow.java similarity index 96% rename from com/hbm/render/entity/RenderRainbow.java rename to com/hbm/render/entity/projectile/RenderRainbow.java index 288ac3464..7da669711 100644 --- a/com/hbm/render/entity/RenderRainbow.java +++ b/com/hbm/render/entity/projectile/RenderRainbow.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderRocket.java b/com/hbm/render/entity/projectile/RenderRocket.java similarity index 96% rename from com/hbm/render/entity/RenderRocket.java rename to com/hbm/render/entity/projectile/RenderRocket.java index 54d5d40f0..5b9651dfc 100644 --- a/com/hbm/render/entity/RenderRocket.java +++ b/com/hbm/render/entity/projectile/RenderRocket.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import java.util.Random; diff --git a/com/hbm/render/entity/RenderRubble.java b/com/hbm/render/entity/projectile/RenderRubble.java similarity index 97% rename from com/hbm/render/entity/RenderRubble.java rename to com/hbm/render/entity/projectile/RenderRubble.java index b289df992..8e112ba52 100644 --- a/com/hbm/render/entity/RenderRubble.java +++ b/com/hbm/render/entity/projectile/RenderRubble.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderSRocket.java b/com/hbm/render/entity/projectile/RenderSRocket.java similarity index 97% rename from com/hbm/render/entity/RenderSRocket.java rename to com/hbm/render/entity/projectile/RenderSRocket.java index 2cc72bbbe..7ac3f210e 100644 --- a/com/hbm/render/entity/RenderSRocket.java +++ b/com/hbm/render/entity/projectile/RenderSRocket.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderShrapnel.java b/com/hbm/render/entity/projectile/RenderShrapnel.java similarity index 96% rename from com/hbm/render/entity/RenderShrapnel.java rename to com/hbm/render/entity/projectile/RenderShrapnel.java index d7ab88bf4..673f5528f 100644 --- a/com/hbm/render/entity/RenderShrapnel.java +++ b/com/hbm/render/entity/projectile/RenderShrapnel.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderTom.java b/com/hbm/render/entity/projectile/RenderTom.java similarity index 92% rename from com/hbm/render/entity/RenderTom.java rename to com/hbm/render/entity/projectile/RenderTom.java index e0ce99c9b..05c8ef3db 100644 --- a/com/hbm/render/entity/RenderTom.java +++ b/com/hbm/render/entity/projectile/RenderTom.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderBoosterMissile.java b/com/hbm/render/entity/rocket/RenderBoosterMissile.java similarity index 97% rename from com/hbm/render/entity/RenderBoosterMissile.java rename to com/hbm/render/entity/rocket/RenderBoosterMissile.java index 132ccce69..c586ec6d5 100644 --- a/com/hbm/render/entity/RenderBoosterMissile.java +++ b/com/hbm/render/entity/rocket/RenderBoosterMissile.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderCarrierMissile.java b/com/hbm/render/entity/rocket/RenderCarrierMissile.java similarity index 97% rename from com/hbm/render/entity/RenderCarrierMissile.java rename to com/hbm/render/entity/rocket/RenderCarrierMissile.java index 48735070d..ad6391fe6 100644 --- a/com/hbm/render/entity/RenderCarrierMissile.java +++ b/com/hbm/render/entity/rocket/RenderCarrierMissile.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMinerRocket.java b/com/hbm/render/entity/rocket/RenderMinerRocket.java similarity index 96% rename from com/hbm/render/entity/RenderMinerRocket.java rename to com/hbm/render/entity/rocket/RenderMinerRocket.java index 5d64028f7..45eadc660 100644 --- a/com/hbm/render/entity/RenderMinerRocket.java +++ b/com/hbm/render/entity/rocket/RenderMinerRocket.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileCustom.java b/com/hbm/render/entity/rocket/RenderMissileCustom.java similarity index 98% rename from com/hbm/render/entity/RenderMissileCustom.java rename to com/hbm/render/entity/rocket/RenderMissileCustom.java index 973c532f0..e7fd50aa1 100644 --- a/com/hbm/render/entity/RenderMissileCustom.java +++ b/com/hbm/render/entity/rocket/RenderMissileCustom.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileDoomsday.java b/com/hbm/render/entity/rocket/RenderMissileDoomsday.java similarity index 94% rename from com/hbm/render/entity/RenderMissileDoomsday.java rename to com/hbm/render/entity/rocket/RenderMissileDoomsday.java index b11e65d2a..f67f888e0 100644 --- a/com/hbm/render/entity/RenderMissileDoomsday.java +++ b/com/hbm/render/entity/rocket/RenderMissileDoomsday.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileGeneric.java b/com/hbm/render/entity/rocket/RenderMissileGeneric.java similarity index 95% rename from com/hbm/render/entity/RenderMissileGeneric.java rename to com/hbm/render/entity/rocket/RenderMissileGeneric.java index 899c8e669..268cca1cf 100644 --- a/com/hbm/render/entity/RenderMissileGeneric.java +++ b/com/hbm/render/entity/rocket/RenderMissileGeneric.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileHuge.java b/com/hbm/render/entity/rocket/RenderMissileHuge.java similarity index 95% rename from com/hbm/render/entity/RenderMissileHuge.java rename to com/hbm/render/entity/rocket/RenderMissileHuge.java index 7c8a4c436..af95674e1 100644 --- a/com/hbm/render/entity/RenderMissileHuge.java +++ b/com/hbm/render/entity/rocket/RenderMissileHuge.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileMirv.java b/com/hbm/render/entity/rocket/RenderMissileMirv.java similarity index 94% rename from com/hbm/render/entity/RenderMissileMirv.java rename to com/hbm/render/entity/rocket/RenderMissileMirv.java index 4b91671b0..413da7814 100644 --- a/com/hbm/render/entity/RenderMissileMirv.java +++ b/com/hbm/render/entity/rocket/RenderMissileMirv.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileNuclear.java b/com/hbm/render/entity/rocket/RenderMissileNuclear.java similarity index 93% rename from com/hbm/render/entity/RenderMissileNuclear.java rename to com/hbm/render/entity/rocket/RenderMissileNuclear.java index 8298e72e5..556007e6c 100644 --- a/com/hbm/render/entity/RenderMissileNuclear.java +++ b/com/hbm/render/entity/rocket/RenderMissileNuclear.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileStrong.java b/com/hbm/render/entity/rocket/RenderMissileStrong.java similarity index 95% rename from com/hbm/render/entity/RenderMissileStrong.java rename to com/hbm/render/entity/rocket/RenderMissileStrong.java index 1d892b734..cbe85f692 100644 --- a/com/hbm/render/entity/RenderMissileStrong.java +++ b/com/hbm/render/entity/rocket/RenderMissileStrong.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileTaint.java b/com/hbm/render/entity/rocket/RenderMissileTaint.java similarity index 97% rename from com/hbm/render/entity/RenderMissileTaint.java rename to com/hbm/render/entity/rocket/RenderMissileTaint.java index 275ec6eec..19c49616a 100644 --- a/com/hbm/render/entity/RenderMissileTaint.java +++ b/com/hbm/render/entity/rocket/RenderMissileTaint.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/RenderMissileThermo.java b/com/hbm/render/entity/rocket/RenderMissileThermo.java similarity index 94% rename from com/hbm/render/entity/RenderMissileThermo.java rename to com/hbm/render/entity/rocket/RenderMissileThermo.java index 6b01087d2..644dc3c81 100644 --- a/com/hbm/render/entity/RenderMissileThermo.java +++ b/com/hbm/render/entity/rocket/RenderMissileThermo.java @@ -1,4 +1,4 @@ -package com.hbm.render.entity; +package com.hbm.render.entity.rocket; import org.lwjgl.opengl.GL11; diff --git a/com/hbm/render/entity/rocket/RenderSoyuz.java b/com/hbm/render/entity/rocket/RenderSoyuz.java new file mode 100644 index 000000000..254dac601 --- /dev/null +++ b/com/hbm/render/entity/rocket/RenderSoyuz.java @@ -0,0 +1,33 @@ +package com.hbm.render.entity.rocket; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.util.SoyuzPronter; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderSoyuz extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float i, float j) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + GL11.glEnable(GL11.GL_CULL_FACE); + + int type = entity.getDataWatcher().getWatchableObjectInt(8); + SoyuzPronter.prontSoyuz(type); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity entity) { + //just so if there's a mod that is trying to pull a funny + return ResourceManager.soyuz_payload; + } + +} diff --git a/com/hbm/render/tileentity/RenderSoyuzLauncher.java b/com/hbm/render/tileentity/RenderSoyuzLauncher.java index 397eb3fa6..e58c6c4cb 100644 --- a/com/hbm/render/tileentity/RenderSoyuzLauncher.java +++ b/com/hbm/render/tileentity/RenderSoyuzLauncher.java @@ -12,14 +12,27 @@ import net.minecraft.tileentity.TileEntity; public class RenderSoyuzLauncher extends TileEntitySpecialRenderer { @Override - public void renderTileEntityAt(TileEntity te, double x, double y, double z, float p_147500_8_) { + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float inter) { GL11.glPushMatrix(); GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); TileEntitySoyuzLauncher launcher = (TileEntitySoyuzLauncher)te; - SoyuzLauncherPronter.prontLauncher(); + double open = 45D; + int timer = 20; + + double rot = open; + + if(launcher.rocketType >=0) + rot = 0; + + if(launcher.starting && launcher.countdown < timer) { + + rot = (timer - launcher.countdown + inter) * open / timer; + } + + SoyuzLauncherPronter.prontLauncher(rot); if(launcher.rocketType >= 0) { GL11.glTranslatef(0.0F, 5.0F, 0.0F); diff --git a/com/hbm/render/tileentity/RendererObjTester.java b/com/hbm/render/tileentity/RendererObjTester.java index d394326f2..2827f24a5 100644 --- a/com/hbm/render/tileentity/RendererObjTester.java +++ b/com/hbm/render/tileentity/RendererObjTester.java @@ -3,6 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; import com.hbm.render.util.SoyuzPronter; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; @@ -104,13 +105,35 @@ public class RendererObjTester extends TileEntitySpecialRenderer { bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/ModelCalStock.png"));*/ //stock.renderAll(1F/16F); - SoyuzPronter.prontSoyuz(2); + //SoyuzPronter.prontSoyuz(2); //TomPronter.prontTom(); //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xff8000, 0xff8000, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 25, 0.1F, 4, 0.05F); //BeamPronter.prontBeam(Vec3.createVectorHelper(5, 5, 5), EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0xffff00, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25, 1, 0F, 4, 0.05F); //BeamPronter.prontHelix(Vec3.createVectorHelper(0, 5, 0), 0.5, 0.5, 0.5, EnumWaveType.SPIRAL, EnumBeamType.LINE, 0x0000ff, 0xffff00, (int)tileEntity.getWorldObj().getTotalWorldTime() % 360 * 25 + 180, 25, 0.25F); //DiamondPronter.pront(1, 2, 3, EnumSymbol.OXIDIZER); + + //GL11.glTranslatef(0.0F, -0.25F, 0.0F); + //GL11.glRotatef(-25, 0, 1, 0); + //GL11.glRotatef(15, 0, 0, 1); + + long time = tileEntity.getWorldObj().getTotalWorldTime(); + double sine = Math.sin(time * 0.05) * 5; + double sin3 = Math.sin(time * 0.05 + Math.PI * 0.5) * 5; + double sin2 = Math.sin(time * 0.05 + Math.PI); + int height = 7; + GL11.glTranslated(0.0F, height + sin2, 0.0F); + GL11.glRotated(sine, 0, 0, 1); + GL11.glRotated(sin3, 1, 0, 0); + GL11.glTranslated(0.0F, -height, 0.0F); + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.soyuz_lander_tex); + ResourceManager.soyuz_lander.renderPart("Capsule"); + bindTexture(ResourceManager.soyuz_chute_tex); + ResourceManager.soyuz_lander.renderPart("Chute"); + GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } diff --git a/com/hbm/render/util/RenderAccessoryUtility.java b/com/hbm/render/util/RenderAccessoryUtility.java index c4f374ede..5ed75cd8a 100644 --- a/com/hbm/render/util/RenderAccessoryUtility.java +++ b/com/hbm/render/util/RenderAccessoryUtility.java @@ -9,20 +9,22 @@ import net.minecraft.util.ResourceLocation; public class RenderAccessoryUtility { - private static ResourceLocation hbm = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHbm.png"); - private static ResourceLocation hbm2 = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHbm2.png"); - private static ResourceLocation dafnik = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeDafnik.png"); - private static ResourceLocation lpkukin = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeShield.png"); - private static ResourceLocation vertice = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeVertice_2.png"); - private static ResourceLocation red = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeRed.png"); - private static ResourceLocation ayy = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeAyy.png"); - private static ResourceLocation nostalgia = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeNostalgia.png"); - private static ResourceLocation nostalgia2 = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeNostalgia2.png"); - private static ResourceLocation sam = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeSam.png"); - private static ResourceLocation hoboy = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeHoboy.png"); - private static ResourceLocation master = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeMaster.png"); - private static ResourceLocation mek = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeMek.png"); - private static ResourceLocation test = new ResourceLocation(RefStrings.MODID + ":textures/models/CapeTest.png"); + private static ResourceLocation hbm = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHbm3.png"); + private static ResourceLocation hbm2 = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHbm2.png"); + private static ResourceLocation dafnik = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeDafnik.png"); + private static ResourceLocation lpkukin = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeShield.png"); + private static ResourceLocation vertice = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeVertice_2.png"); + private static ResourceLocation red = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeRed.png"); + private static ResourceLocation ayy = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeAyy.png"); + private static ResourceLocation nostalgia = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeNostalgia.png"); + private static ResourceLocation nostalgia2 = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeNostalgia2.png"); + private static ResourceLocation sam = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeSam.png"); + private static ResourceLocation hoboy = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeHoboy.png"); + private static ResourceLocation master = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeMaster.png"); + private static ResourceLocation mek = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeMek.png"); + private static ResourceLocation god_tm = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeGodTM.png"); + private static ResourceLocation zippy = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeZippySqrl.png"); + private static ResourceLocation test = new ResourceLocation(RefStrings.MODID + ":textures/models/capes/CapeTest.png"); public static ResourceLocation getCloakFromPlayer(EntityPlayer player) { @@ -70,6 +72,12 @@ public class RenderAccessoryUtility { if(uuid.equals(Library.Steelcourage)) { return mek; } + if(uuid.equals(Library.GOD___TM)) { + return god_tm; + } + if(uuid.equals(Library.ZippySqrl)) { + return zippy; + } if(name.startsWith("Player")) { return test; } diff --git a/com/hbm/render/util/SoyuzLauncherPronter.java b/com/hbm/render/util/SoyuzLauncherPronter.java index f4e0f7b45..5d917172b 100644 --- a/com/hbm/render/util/SoyuzLauncherPronter.java +++ b/com/hbm/render/util/SoyuzLauncherPronter.java @@ -10,12 +10,10 @@ import net.minecraft.client.renderer.texture.TextureManager; public class SoyuzLauncherPronter { - public static void prontLauncher() { - - int rot = 0;//(int) (System.currentTimeMillis() / 20 % 45); + public static void prontLauncher(double rot) { GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_CULL_FACE); TextureManager tex = Minecraft.getMinecraft().getTextureManager(); tex.bindTexture(ResourceManager.soyuz_launcher_legs_tex); @@ -45,6 +43,7 @@ public class SoyuzLauncherPronter { GL11.glTranslated(0, -5.5, 6.5); ResourceManager.soyuz_launcher_support.renderAll(); GL11.glPopMatrix(); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } diff --git a/com/hbm/sound/AudioDynamic.java b/com/hbm/sound/AudioDynamic.java index d9401fd77..90f172e50 100644 --- a/com/hbm/sound/AudioDynamic.java +++ b/com/hbm/sound/AudioDynamic.java @@ -3,15 +3,21 @@ package com.hbm.sound; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.ISound; import net.minecraft.client.audio.MovingSound; +import net.minecraft.client.entity.EntityClientPlayerMP; import net.minecraft.util.ResourceLocation; @SideOnly(Side.CLIENT) public class AudioDynamic extends MovingSound { + + public float intendedVolume; protected AudioDynamic(ResourceLocation loc) { super(loc); this.repeat = true; + this.field_147666_i = ISound.AttenuationType.NONE; + this.intendedVolume = 10; } public void setPosition(float x, float y, float z) { @@ -21,7 +27,18 @@ public class AudioDynamic extends MovingSound { } @Override - public void update() { } + public void update() { + + EntityClientPlayerMP player = Minecraft.getMinecraft().thePlayer; + float f = 0; + + if(player != null) { + f = (float)Math.sqrt(Math.pow(xPosF - player.posX, 2) + Math.pow(yPosF - player.posY, 2) + Math.pow(zPosF - player.posZ, 2)); + volume = func(f, intendedVolume); + } else { + volume = intendedVolume; + } + } public void start() { Minecraft.getMinecraft().getSoundHandler().playSound(this); @@ -32,11 +49,15 @@ public class AudioDynamic extends MovingSound { } public void setVolume(float volume) { - this.volume = volume; + this.intendedVolume = volume; } public void setPitch(float pitch) { this.field_147663_c = pitch; } + + public float func(float f, float v) { + return (f / v) * -2 + 2; + } } diff --git a/com/hbm/sound/AudioWrapper.java b/com/hbm/sound/AudioWrapper.java index 729e52b9d..0028c8239 100644 --- a/com/hbm/sound/AudioWrapper.java +++ b/com/hbm/sound/AudioWrapper.java @@ -4,7 +4,7 @@ public class AudioWrapper { public void updatePosition(float x, float y, float z) { } - public void updateVolume(float pitch) { } + public void updateVolume(float volume) { } public void updatePitch(float pitch) { } diff --git a/com/hbm/tileentity/bomb/TileEntityLaunchTable.java b/com/hbm/tileentity/bomb/TileEntityLaunchTable.java index 13a97a4be..6596c9f7a 100644 --- a/com/hbm/tileentity/bomb/TileEntityLaunchTable.java +++ b/com/hbm/tileentity/bomb/TileEntityLaunchTable.java @@ -25,7 +25,6 @@ import com.hbm.packet.TEMissileMultipartPacket; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; @@ -203,22 +202,16 @@ public class TileEntityLaunchTable extends TileEntity implements ISidedInventory } } else { - List entities = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + List entities = worldObj.getEntitiesWithinAABB(EntityMissileCustom.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); - for(Entity e : entities) { - - if(e instanceof EntityMissileCustom) { - - for(int i = 0; i < 15; i++) { + if(!entities.isEmpty()) { + for(int i = 0; i < 15; i++) { - boolean dir = worldObj.rand.nextBoolean(); - float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); - float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); - - MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); - } + boolean dir = worldObj.rand.nextBoolean(); + float moX = (float) (dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); + float moZ = (float) (!dir ? 0 : worldObj.rand.nextGaussian() * 0.65F); - break; + MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25, zCoord + 0.5, "launchsmoke", new float[] {moX, 0, moZ}); } } } diff --git a/com/hbm/tileentity/deco/TileEntityVent.java b/com/hbm/tileentity/deco/TileEntityVent.java index 15670d805..a743fcfe8 100644 --- a/com/hbm/tileentity/deco/TileEntityVent.java +++ b/com/hbm/tileentity/deco/TileEntityVent.java @@ -53,5 +53,19 @@ public class TileEntityVent extends TileEntity { //} } } + + /*if(worldObj.isRemote) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "exhaust"); + data.setString("mode", "soyuz"); + data.setInteger("count", 1); + data.setDouble("width", 0); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord - 1); + data.setDouble("posZ", zCoord + 0.5); + + MainRegistry.proxy.effectNT(data); + }*/ } } diff --git a/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java b/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java index b0c2a2d6d..fb3b88010 100644 --- a/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java +++ b/com/hbm/tileentity/machine/TileEntitySoyuzLauncher.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.hbm.handler.MissileStruct; +import com.hbm.entity.missile.EntitySoyuz; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; import com.hbm.interfaces.IFluidAcceptor; @@ -11,6 +12,8 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.TileEntityMachineBase; import cpw.mods.fml.relauncher.Side; @@ -21,6 +24,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor { @@ -31,9 +35,11 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS public byte mode; public boolean starting; public int countdown; - public static final int maxCount = 200; + public static final int maxCount = 600; public byte rocketType = -1; + private AudioWrapper audio; + public MissileStruct load; private static final int[] access = new int[] { 0 }; @@ -44,7 +50,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS super(27); tanks = new FluidTank[2]; tanks[0] = new FluidTank(FluidType.KEROSENE, 128000, 0); - tanks[1] = new FluidTank(FluidType.ACID, 128000, 1); + tanks[1] = new FluidTank(FluidType.OXYGEN, 128000, 1); } @Override @@ -65,14 +71,17 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS power = Library.chargeTEFromItems(slots, 8, power, maxPower); - //TODO: stop countdown if launch conditions are not met if(!starting || !canLaunch()) { countdown = maxCount; - } else if(countdown > 0) { - countdown--; - } else { starting = false; - //TODO: liftoff! + } else if(countdown > 0) { + countdown --; + + if(countdown % 100 == 0 && countdown > 0) + worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:alarm.hatch", 100F, 1.1F); + + } else { + liftOff(); } NBTTagCompound data = new NBTTagCompound(); @@ -80,18 +89,65 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS data.setByte("mode", mode); data.setBoolean("starting", starting); data.setByte("type", this.getType()); - networkPack(data, 50); + networkPack(data, 250); } if(worldObj.isRemote) { if(!starting || !canLaunch()) { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + countdown = maxCount; + } else if(countdown > 0) { + + if(audio == null) { + audio = MainRegistry.proxy.getLoopedSound("hbm:block.soyuzReady", xCoord, yCoord, zCoord, 1.0F, 1.0F); + audio.updateVolume(100); + audio.startSound(); + } + countdown--; } + + List entities = worldObj.getEntitiesWithinAABB(EntitySoyuz.class, AxisAlignedBB.getBoundingBox(xCoord - 0.5, yCoord, zCoord - 0.5, xCoord + 1.5, yCoord + 10, zCoord + 1.5)); + + if(!entities.isEmpty()) { + + //for(int i = 0; i < 35; i++) { + + //Vec3 vec = Vec3.createVectorHelper(worldObj.rand.nextGaussian() * 0.5 + 1, 0, 0); + //vec.rotateAroundY(worldObj.rand.nextFloat() * (float) (Math.PI * 2)); + + //MainRegistry.proxy.spawnParticle(xCoord + 0.5, yCoord + 0.25 + worldObj.rand.nextFloat() * 3, zCoord + 0.5, "launchsmoke", new float[] {(float) vec.xCoord, 0, (float) vec.zCoord}); + + //} + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "smoke"); + data.setString("mode", "shockRand"); + data.setInteger("count", 35); + data.setDouble("strength", worldObj.rand.nextGaussian() * 3 + 6); + data.setDouble("posX", xCoord + 0.5); + data.setDouble("posY", yCoord + 1); + data.setDouble("posZ", zCoord + 0.5); + + MainRegistry.proxy.effectNT(data); + } } } + public void onChunkUnload() { + + if(audio != null) { + audio.stopSound(); + audio = null; + } + } + public void networkUnpack(NBTTagCompound data) { power = data.getLong("power"); mode = data.getByte("mode"); @@ -105,12 +161,47 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS starting = true; } + public void liftOff() { + + this.starting = false; + + int req = this.getFuelRequired(); + int pow = this.getPowerRequired(); + + EntitySoyuz soyuz = new EntitySoyuz(worldObj); + soyuz.setSkin(this.getType()); + soyuz.setLocationAndAngles(xCoord + 0.5, yCoord + 5, zCoord + 0.5, 0, 0); + worldObj.spawnEntityInWorld(soyuz); + + tanks[0].setFill(tanks[0].getFill() - req); + tanks[1].setFill(tanks[1].getFill() - req); + power -= pow; + + if(mode == 0) { + soyuz.setSat(slots[2]); + slots[2] = null; + } + + if(mode == 1) { + List payload = new ArrayList(); + + for(int i = 9; i < 27; i++) { + payload.add(slots[i]); + slots[i] = null; + } + + soyuz.setPayload(payload); + } + + slots[0] = null; + } + public boolean canLaunch() { if(mode == 0 && slots[2] == null) return false; - return hasRocket() && hasFuel() && hasRocket() && hasPower(); + return hasRocket() && hasFuel() && hasRocket() && hasPower() && (designator() == 0 || designator() == 2); } public boolean hasFuel() { @@ -124,9 +215,25 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS } public int getFuelRequired() { + + if(mode == 1) + return 20000 + getDist(); + return 128000; } + public int getDist() { + + if(designator() == 2) { + int x = slots[1].stackTagCompound.getInteger("xCoord"); + int z = slots[1].stackTagCompound.getInteger("zCoord"); + + return (int) Vec3.createVectorHelper(xCoord - x, 0, zCoord - z).lengthVector(); + } + + return 0; + } + public boolean hasPower() { return power >= getPowerRequired();