From 5b78dfb129e91eb1fa7ee9caa00508644fd7ac00 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 16 Apr 2019 00:31:20 +0200 Subject: [PATCH] contrail particle, bobmazon gui, offers, base framework, achievements --- assets/hbm/lang/de_DE.lang | 10 + assets/hbm/lang/en_US.lang | 10 + assets/hbm/textures/items/bob_assembly.png | Bin 0 -> 295 bytes assets/hbm/textures/items/bob_chemistry.png | Bin 0 -> 255 bytes assets/hbm/textures/items/bob_metalworks.png | Bin 0 -> 248 bytes assets/hbm/textures/items/bob_nuclear.png | Bin 0 -> 306 bytes assets/hbm/textures/items/bob_oil.png | Bin 0 -> 193 bytes .../hbm/textures/items/bobmazon_machines.png | Bin 0 -> 344 bytes .../hbm/textures/items/bobmazon_materials.png | Bin 0 -> 356 bytes .../hbm/textures/items/bobmazon_special.png | Bin 0 -> 354 bytes assets/hbm/textures/items/bobmazon_tools.png | Bin 0 -> 362 bytes .../hbm/textures/items/bobmazon_weapons.png | Bin 0 -> 335 bytes assets/hbm/textures/particle/contrail.png | Bin 0 -> 133 bytes com/hbm/blocks/test/TestEventTester.java | 11 +- .../missile/EntityMissileBaseAdvanced.java | 9 +- com/hbm/entity/particle/ParticleContrail.java | 89 +++++ com/hbm/handler/BobmazonOfferFactory.java | 173 ++++++++++ com/hbm/handler/GUIHandler.java | 3 + com/hbm/inventory/gui/GUIScreenBobmazon.java | 313 ++++++++++++++++++ .../inventory/gui/GUIScreenSatInterface.java | 5 + .../gui/GUIScreenTemplateFolder.java | 5 + com/hbm/items/ModItems.java | 34 +- com/hbm/items/tool/ItemCatalog.java | 22 ++ com/hbm/main/ClientProxy.java | 10 +- com/hbm/main/MainRegistry.java | 21 +- com/hbm/main/ModEventHandlerClient.java | 6 + 26 files changed, 715 insertions(+), 6 deletions(-) create mode 100644 assets/hbm/textures/items/bob_assembly.png create mode 100644 assets/hbm/textures/items/bob_chemistry.png create mode 100644 assets/hbm/textures/items/bob_metalworks.png create mode 100644 assets/hbm/textures/items/bob_nuclear.png create mode 100644 assets/hbm/textures/items/bob_oil.png create mode 100644 assets/hbm/textures/items/bobmazon_machines.png create mode 100644 assets/hbm/textures/items/bobmazon_materials.png create mode 100644 assets/hbm/textures/items/bobmazon_special.png create mode 100644 assets/hbm/textures/items/bobmazon_tools.png create mode 100644 assets/hbm/textures/items/bobmazon_weapons.png create mode 100644 assets/hbm/textures/particle/contrail.png create mode 100644 com/hbm/entity/particle/ParticleContrail.java create mode 100644 com/hbm/handler/BobmazonOfferFactory.java create mode 100644 com/hbm/inventory/gui/GUIScreenBobmazon.java create mode 100644 com/hbm/items/tool/ItemCatalog.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 035a128c0..629fdf38f 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -33,6 +33,16 @@ achievement.fiend=Unhold achievement.fiend.desc=Sei gemein. achievement.fiend2=Unhold 2: Noch unholdiger achievement.fiend2.desc=Sei gemeiner. +achievement.metalworks=Metallurgie +achievement.metalworks.desc=Bobmazon Level 1 +achievement.assembly=Fertigung +achievement.assembly.desc=Bobmazon Level 2 +achievement.chemistry=Chemie +achievement.chemistry.desc=Bobmazon Level 3 +achievement.oil=Petroleum +achievement.oil.desc=Bobmazon Level 4 +achievement.nuclear=Atomwissenschaft +achievement.nuclear.desc=Bobmazon Level 5 potion.hbm_taint=Verdorben potion.hbm_mutation=Verdorbenes Herz diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 9278d61e3..ca0a20641 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -33,6 +33,16 @@ achievement.fiend=Delinquent achievement.fiend.desc=Be mean. achievement.fiend2=Delinquent 2: Delinquent Harder achievement.fiend2.desc=Be meaner. +achievement.metalworks=Metalworks +achievement.metalworks.desc=Bobmazon Level 1 +achievement.assembly=Fabrication +achievement.assembly.desc=Bobmazon Level 2 +achievement.chemistry=Chemistry +achievement.chemistry.desc=Bobmazon Level 3 +achievement.oil=Petroleum +achievement.oil.desc=Bobmazon Level 4 +achievement.nuclear=Atomic Science +achievement.nuclear.desc=Bobmazon Level 5 potion.hbm_taint=Tainted potion.hbm_mutation=Tainted Heart diff --git a/assets/hbm/textures/items/bob_assembly.png b/assets/hbm/textures/items/bob_assembly.png new file mode 100644 index 0000000000000000000000000000000000000000..94a997f526e87bbed432288ad79993d31a34aa9e GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfp4u1mh1-w1%s!npUXO@geCw=R&hQ6 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/bob_chemistry.png b/assets/hbm/textures/items/bob_chemistry.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb88fd3c5f7573bbc821a80e2c6f0ed14f20aba GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf_t(CI@rJ{{b*DA{bmr}fxN7+DQp*~~nZ0=i!kdn` zn8)(4z7SimIuWE%UX0Cv^~k34d;hm*G3@efIkJIG$>(9uF?pk;5|eiK z+=}-f@2!p7q;nyv{QONGoAbg90!|GU0 uD$nmQpL?(_Vd<-o5B?H@2dnq%{$RLL7O(4*cKs#L=?tE(elF{r5}E*N=wZ|V literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/bob_nuclear.png b/assets/hbm/textures/items/bob_nuclear.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd0225d7ff2ef6373ce37096a6c9278a3dd7f26 GIT binary patch literal 306 zcmV-20nPr2P)@c`Q82d|75Gq-M-^b>{v2z2Z`+|yq85RaJ%vlNHvb~kl#G{N(g2CrB*Os z>!=xEoWo+Rsa20atw3uHz+|Q)0mo?_ieypckI3Y7fXl(Wrn-2hI#kP5~9b;{X5v07*qoM6N<$ Ef*0R=ssI20 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/bob_oil.png b/assets/hbm/textures/items/bob_oil.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e71f831782d5f26e8949d31b7ccb6f5a6522aa GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#1%x><3?9<{3#p;}blFM%FZw=e~+ay8D@qeAMxBi#Em-yW$ o@Mx+0d~O_C?(U+)$nb#S#|EEkKX>Z90J?#})78&qol`;+0ByfVfB*mh literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/bobmazon_machines.png b/assets/hbm/textures/items/bobmazon_machines.png new file mode 100644 index 0000000000000000000000000000000000000000..21f69a46e4173e1762a2a8c72f633113dbcf2990 GIT binary patch literal 344 zcmV-e0jK_nP)b;@5JjI2dj>jtl}NrrsxorNO#)o3*D?MSom$9T5}3MpGtKdsk;d8fdDu@JWRdN>Ru z13@2*>Y6%=oD$Cknk=)7BuN0Q=u+YrQnrPZZ7hU^msw^753?DI#iG-Xg|H8Lg_P~R z?{haAbzbhT-cO}9Z^t7(0AWvlxo^+dmzY5p__En}9l@`g qTmel6Kha2Tflh&unA!#YTfPAoj+_O1C|ZR800003LZN?wlh9dk zkOZ9F92~_>5TxLe?c&zSAUZ_h9OTX>>9vEt>GAk|-@Q8y{#e$gKo$p5_2)NFy}VJN zz|d**>|tT|Bt1bFOfR3wkN1oc%LMAccuJBa09v#x8Dw!FvpA5U(`eWlPqjeaolz7; zYaTj{KG4eIK>FJa&Q|*>-POBQ);2HiLk0l*>5RokJ79v#+NP{+{3t{2>@ouIJP*;UtjzR zR!LOQ1YX@fS}nmU$vRL~?YU6oB#XVi00M=+X#=TyTwpTSai!A)Alj(oF}!Qo88s zqJu779O47$8&rrdP!|Q^hKfWGQIHm)#G%~Sl7EVx=?v%hg}{YBjwm~@oV8f*Q5dA| za|0UMOY7951pxZ*_gp@nPMK673+maMpQSew;ROeY6F-HMv-;#GzaxGFx6Clv`w!Pd zVIT~E`e+4v0vAC&X2qgfb7KRb(eXIjzT((+OW{j&2S9UYgKl>Y13*eiqvO##ykU7{ zl|lf=aR4wrhi@pQkW!-Bu-Wpdn2V(_496c40M(isUz{I}BTBK`@)-_33gLeHPQ*P4d{s8^WeYD7o%>9_@^_45&!@I07*qoM6N<$g42MO AP5=M^ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/bobmazon_tools.png b/assets/hbm/textures/items/bobmazon_tools.png new file mode 100644 index 0000000000000000000000000000000000000000..681bd2b15524f258e6427c2e433e71eb95d821bb GIT binary patch literal 362 zcmV-w0hRuVP)3_#D8Y~hHA8x;EERQ}p5hmvnp{$Yt{RA05(L}C z^i-4C{eewQgF^x8ifB-Tganc`JH)sf*Y-96uljO%pXcs!2mCQ)SAp?Bs`+m6T>kYCj zGuFL`=nVjoSvV^>x&U6r4T}(zvyE1 zg{|OtHrxoBB&uiw@25}15Hv})fhx71s3f~Ut3XNAYyGse?slLVvDu?Yx!-pWKfoW8d>c?o9qxJ> zGuCx|y@RT%u{&xRSWR7&wk&0swa>cprF)OAK^5{mQP% hH!v!2l8EWBxeVbps7U5*LKf&ku<3n4TQ?6aK materials = new ArrayList(); + public static List machines = new ArrayList(); + public static List weapons = new ArrayList(); + public static List tools = new ArrayList(); + + public static void init() { + + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u233), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_u238), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_th232), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_plutonium), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_titanium), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_copper), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_red_copper), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_tungsten), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_aluminium), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_steel), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_lead), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_polymer), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_uranium_fuel), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_thorium_fuel), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_desh), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.ingot_saturnite), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.lithium), Requirement.CHEMICS, 0)); + materials.add(new Offer(new ItemStack(ModItems.solid_fuel), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.lignite), Requirement.STEEL, 0)); + materials.add(new Offer(new ItemStack(ModItems.canister_oil), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.canister_fuel), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.canister_petroil), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.canister_kerosene), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.canister_NITAN), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.gas_petroleum), Requirement.OIL, 0)); + materials.add(new Offer(new ItemStack(ModItems.motor), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.rtg_unit), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.circuit_aluminium), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.circuit_copper), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.circuit_red_copper), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.circuit_gold), Requirement.CHEMICS, 0)); + materials.add(new Offer(new ItemStack(ModItems.pellet_gas), Requirement.CHEMICS, 0)); + materials.add(new Offer(new ItemStack(ModItems.magnetron), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.pellet_rtg), Requirement.NUCLEAR, 0)); + materials.add(new Offer(new ItemStack(ModItems.piston_selenium), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_advanced), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(ItemBattery.getFullBattery(ModItems.battery_lithium), Requirement.CHEMICS, 0)); + materials.add(new Offer(new ItemStack(ModItems.arc_electrode), Requirement.ASSEMBLY, 0)); + materials.add(new Offer(new ItemStack(ModItems.fuse), Requirement.ASSEMBLY, 0)); + + machines.add(new Offer(new ItemStack(ModBlocks.concrete_smooth), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.brick_compound), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.barbed_wire), Requirement.ASSEMBLY, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_siren), Requirement.ASSEMBLY, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.vault_door), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.blast_door), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_epress), Requirement.OIL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_difurnace_off), Requirement.STEEL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_gascent), Requirement.OIL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_diesel), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_geo), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_battery), Requirement.ASSEMBLY, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_lithium_battery), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_assembler), Requirement.ASSEMBLY, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_chemplant), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_off), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_boiler_electric_off), Requirement.OIL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_shredder), Requirement.ASSEMBLY, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_well), Requirement.OIL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.machine_refinery), Requirement.OIL, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.absorber_green), Requirement.CHEMICS, 0)); + machines.add(new Offer(new ItemStack(ModBlocks.decon), Requirement.CHEMICS, 0)); + + weapons.add(new Offer(new ItemStack(ModBlocks.launch_pad), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.machine_radar), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.designator), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.designator_range), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.sat_chip), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.turret_cheapo), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.turret_cheapo_ammo), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.turret_control), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.turret_chip), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.turret_biometry), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.mine_ap), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.emp_bomb), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_cord), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModBlocks.det_charge), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.detonator), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.detonator_laser), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.defuser), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_nopip), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_minigun), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_panzerschreck), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_hk69), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_uzi), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_lever_action), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_bolt_action), Requirement.ASSEMBLY, 0)); + weapons.add(new Offer(new ItemStack(ModItems.gun_revolver_ammo), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_357_desh), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_44_ap), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_5mm_du), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_incendiary), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_rocket_sleek), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_incendiary), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_grenade_sleek), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_22lr_ap), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_slug), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.ammo_20gauge_flechette), Requirement.OIL, 0)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_generic), Requirement.CHEMICS, 0)); + weapons.add(new Offer(new ItemStack(ModItems.grenade_if_he), Requirement.CHEMICS, 0)); + + tools.add(new Offer(new ItemStack(ModBlocks.machine_keyforge), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_telelinker), Requirement.CHEMICS, 0)); + tools.add(new Offer(new ItemStack(ModBlocks.machine_satlinker), Requirement.CHEMICS, 0)); + tools.add(new Offer(new ItemStack(ModItems.oil_detector), Requirement.CHEMICS, 0)); + tools.add(new Offer(new ItemStack(ModItems.geiger_counter), Requirement.CHEMICS, 0)); + tools.add(new Offer(new ItemStack(ModItems.key), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModItems.padlock), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModItems.padlock_reinforced), Requirement.OIL, 0)); + tools.add(new Offer(new ItemStack(ModItems.syringe_antidote), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_stimpak), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModItems.syringe_metal_medx), Requirement.STEEL, 0)); + tools.add(new Offer(new ItemStack(ModItems.radaway), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.radaway_strong), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.radx), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.pill_iodine), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.gas_mask_filter), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_1), Requirement.OIL, 0)); + tools.add(new Offer(new ItemStack(ModItems.gun_kit_2), Requirement.OIL, 0)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_kit), Requirement.ASSEMBLY, 0)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_red_kit), Requirement.CHEMICS, 0)); + tools.add(new Offer(new ItemStack(ModItems.hazmat_grey_kit), Requirement.OIL, 0)); + } + + public static List getOffers(ItemStack stack) { + + if(stack != null) { + + if(stack.getItem() == ModItems.bobmazon_materials) + return materials; + if(stack.getItem() == ModItems.bobmazon_machines) + return machines; + if(stack.getItem() == ModItems.bobmazon_weapons) + return weapons; + if(stack.getItem() == ModItems.bobmazon_tools) + return tools; + } + + return null; + } + +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index f187046ff..1bca7df3f 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -1496,6 +1496,9 @@ public class GUIHandler implements IGuiHandler { return new GUIScreenSatInterface(player); case ModItems.guiID_item_box: return new GUILeadBox(new ContainerLeadBox(player, player.inventory, new InventoryLeadBox(player.getHeldItem()))); + case ModItems.guiID_item_bobmazon: + if(BobmazonOfferFactory.getOffers(player.getHeldItem()) != null) + return new GUIScreenBobmazon(player, BobmazonOfferFactory.getOffers(player.getHeldItem())); } } return null; diff --git a/com/hbm/inventory/gui/GUIScreenBobmazon.java b/com/hbm/inventory/gui/GUIScreenBobmazon.java new file mode 100644 index 000000000..2257c9f08 --- /dev/null +++ b/com/hbm/inventory/gui/GUIScreenBobmazon.java @@ -0,0 +1,313 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.inventory.MachineRecipes; +import com.hbm.items.ModItems; +import com.hbm.items.tool.ItemAssemblyTemplate.EnumAssemblyTemplate; +import com.hbm.items.tool.ItemCassette; +import com.hbm.items.tool.ItemCassette.TrackType; +import com.hbm.items.tool.ItemChemistryTemplate; +import com.hbm.items.tool.ItemFluidIdentifier; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.packet.ItemFolderPacket; +import com.hbm.packet.PacketDispatcher; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.stats.Achievement; +import net.minecraft.util.ResourceLocation; + +public class GUIScreenBobmazon extends GuiScreen { + + protected static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_bobmazon.png"); + protected int xSize = 176; + protected int ySize = 229; + protected int guiLeft; + protected int guiTop; + int currentPage = 0; + List offers = new ArrayList(); + List buttons = new ArrayList(); + private final EntityPlayer player; + + public GUIScreenBobmazon(EntityPlayer player, List offers) { + + this.player = player; + + this.offers = offers; + } + + int getPageCount() { + return (int)Math.ceil((offers.size() - 1) / 3); + } + + public void updateScreen() { + if(currentPage < 0) + currentPage = 0; + if(currentPage > getPageCount()) + currentPage = getPageCount(); + } + + public void drawScreen(int mouseX, int mouseY, float f) + { + this.drawDefaultBackground(); + this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY); + GL11.glDisable(GL11.GL_LIGHTING); + this.drawGuiContainerForegroundLayer(mouseX, mouseY); + GL11.glEnable(GL11.GL_LIGHTING); + } + + public void initGui() + { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + + updateButtons(); + } + + protected void updateButtons() { + + if(!buttons.isEmpty()) + buttons.clear(); + + for(int i = currentPage * 3; i < Math.min(currentPage * 3 + 3, offers.size()); i++) { + buttons.add(new FolderButton(guiLeft + 34, guiTop + 35 + (54 * (int)Math.floor(i)) - currentPage * 3 * 54, offers.get(i))); + } + + if(currentPage != 0) + buttons.add(new FolderButton(guiLeft + 25 - 18, guiTop + 26 + (27 * 3), 1, "Previous")); + if(currentPage != getPageCount()) + buttons.add(new FolderButton(guiLeft + 25 + (27 * 4) + 18, guiTop + 26 + (27 * 3), 2, "Next")); + } + + protected void mouseClicked(int i, int j, int k) { + try { + for(FolderButton b : buttons) + if(b.isMouseOnButton(i, j)) + b.executeAction(); + } catch (Exception ex) { + updateButtons(); + } + } + + protected void drawGuiContainerForegroundLayer(int i, int j) { + + this.fontRendererObj.drawString(I18n.format((currentPage + 1) + "/" + (getPageCount() + 1)), + guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(I18n.format((currentPage + 1) + "/" + (getPageCount() + 1))) / 2, guiTop + 205, 4210752); + + for(FolderButton b : buttons) + if(b.isMouseOnButton(i, j)) + b.drawString(i, j); + } + + protected void drawGuiContainerBackgroundLayer(float f, int i, int j) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + for(FolderButton b : buttons) + b.drawButton(b.isMouseOnButton(i, j)); + for(FolderButton b : buttons) + b.drawIcon(b.isMouseOnButton(i, j)); + + for(int d = currentPage * 3; d < Math.min(currentPage * 3 + 3, offers.size()); d++) { + offers.get(d).drawRequirement(this, guiLeft + 34, guiTop + 53 + (54 * (int)Math.floor(d)) - currentPage * 3 * 54); + } + } + + protected void keyTyped(char p_73869_1_, int p_73869_2_) + { + if (p_73869_2_ == 1 || p_73869_2_ == this.mc.gameSettings.keyBindInventory.getKeyCode()) + { + this.mc.thePlayer.closeScreen(); + } + + } + + class FolderButton { + + int xPos; + int yPos; + //0: regular, 1: prev, 2: next + int type; + String info; + Offer offer; + + public FolderButton(int x, int y, int t, String i) { + xPos = x; + yPos = y; + type = t; + info = i; + } + + public FolderButton(int x, int y, Offer offer) { + xPos = x; + yPos = y; + type = 0; + this.offer = offer; + } + + public void updateButton(int mouseX, int mouseY) { + } + + public boolean isMouseOnButton(int mouseX, int mouseY) { + return xPos <= mouseX && xPos + 18 > mouseX && yPos < mouseY && yPos + 18 >= mouseY; + } + + public void drawButton(boolean b) { + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(xPos, yPos, b ? 176 + 18 : 176, type == 1 ? 18 : (type == 2 ? 36 : 0), 18, 18); + } + + public void drawIcon(boolean b) { + try { + GL11.glDisable(GL11.GL_LIGHTING); + if(offer != null) { + itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), offer.offer, xPos + 1, yPos + 1); + } + GL11.glEnable(GL11.GL_LIGHTING); + } catch(Exception x) { } + } + + public void drawString(int x, int y) { + if(info == null || info.isEmpty()) + return; + + func_146283_a(Arrays.asList(new String[] { info }), x, y); + } + + public void executeAction() { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + if(type == 0) { + //TODO: request purchase + //PacketDispatcher.wrapper.sendToServer(new ItemFolderPacket(stack.copy())); + } else if(type == 1) { + if(currentPage > 0) + currentPage--; + updateButtons(); + } else if(type == 2) { + if(currentPage < getPageCount()) + currentPage++; + updateButtons(); + } + } + } + + @Override + public boolean doesGuiPauseGame() { + return false; + } + + public static class Offer { + + ItemStack offer; + Requirement requirement; + int cost; + int rating; + String comment; + String author; + + public Offer(ItemStack offer, Requirement requirement, int cost, int rating, String comment, String author) { + this.offer = offer; + this.requirement = requirement; + this.cost = cost; + this.rating = rating * 4 - 1; + this.comment = comment; + this.author = author; + } + + public Offer(ItemStack offer, Requirement requirement, int cost) { + this.offer = offer; + this.requirement = requirement; + this.cost = cost; + this.rating = 0; + this.comment = "No Ratings"; + this.author = ""; + } + + public void drawRequirement(GUIScreenBobmazon gui, int x, int y) { + try { + + RenderHelper.enableGUIStandardItemLighting(); + GL11.glColor3f(1F, 1F, 1F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + gui.drawTexturedModalRect(x + 19, y - 4, 176, 62, 39, 8); + gui.drawTexturedModalRect(x + 19, y - 4, 176, 54, rating, 8); + + String count = ""; + if(offer.stackSize > 1) + count = " x" + offer.stackSize; + + GL11.glPushMatrix(); + + float scale = 0.65F; + GL11.glScalef(scale, scale, scale); + gui.fontRendererObj.drawString(I18n.format(offer.getDisplayName()) + count, (int)((x + 20) / scale), (int)((y - 12) / scale), 4210752); + + GL11.glPopMatrix(); + + String price = cost + " Cap"; + if(cost != 1) + price += "s"; + + gui.fontRendererObj.drawString(price, x + 62, y - 3, 4210752); + + GL11.glPushMatrix(); + + GL11.glScalef(0.5F, 0.5F, 0.5F); + + if(!author.isEmpty()) + gui.fontRendererObj.drawString("- " + author, (x + 20) * 2, (y + 18) * 2, 0x222222); + gui.fontRendererObj.drawString(comment, (x + 20) * 2, (y + 8) * 2, 0x222222); + + GL11.glPopMatrix(); + + GL11.glDisable(GL11.GL_LIGHTING); + if(offer != null) { + gui.itemRender.renderItemAndEffectIntoGUI(gui.fontRendererObj, gui.mc.getTextureManager(), requirement.achievement.theItemStack, x + 1, y + 1); + } + GL11.glEnable(GL11.GL_LIGHTING); + + } catch(Exception ex) { } + } + + } + + public enum Requirement { + + STEEL(MainRegistry.bobMetalworks), + ASSEMBLY(MainRegistry.bobAssembly), + CHEMICS(MainRegistry.bobChemistry), + OIL(MainRegistry.bobOil), + NUCLEAR(MainRegistry.bobNuclear); + + private Requirement(Achievement achievement) { + this.achievement = achievement; + } + + public boolean fullfills(EntityPlayerMP player) { + + return player.func_147099_x().hasAchievementUnlocked(achievement); + } + + Achievement achievement; + } + +} diff --git a/com/hbm/inventory/gui/GUIScreenSatInterface.java b/com/hbm/inventory/gui/GUIScreenSatInterface.java index dfb99857c..16dbe09d1 100644 --- a/com/hbm/inventory/gui/GUIScreenSatInterface.java +++ b/com/hbm/inventory/gui/GUIScreenSatInterface.java @@ -107,6 +107,11 @@ public class GUIScreenSatInterface extends GuiScreen { } } + @Override + public boolean doesGuiPauseGame() { + return false; + } + protected void drawGuiContainerForegroundLayer(int i, int j) { if(connectedSat != null && connectedSat.satelliteType == SatelliteType.LASER) { diff --git a/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 9bdd886b0..7f79a5fc5 100644 --- a/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -95,6 +95,11 @@ public class GUIScreenTemplateFolder extends GuiScreen { updateButtons(); } + + @Override + public boolean doesGuiPauseGame() { + return false; + } protected void updateButtons() { diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index c648a4b23..8b3f846e8 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -791,6 +791,11 @@ public class ModItems { public static Item siren_track; public static Item fluid_duct; + public static Item bobmazon_materials; + public static Item bobmazon_machines; + public static Item bobmazon_weapons; + public static Item bobmazon_tools; + public static Item missile_assembly; public static Item missile_generic; public static Item missile_anti_ballistic; @@ -1556,10 +1561,17 @@ public class ModItems { public static Item nothing; public static Item void_anim; + public static Item bob_metalworks; + public static Item bob_assembly; + public static Item bob_chemistry; + public static Item bob_oil; + public static Item bob_nuclear; + public static final int guiID_item_folder = 99; public static final int guiID_item_designator = 100; public static final int guiID_item_sat_interface = 101; public static final int guiID_item_box = 102; + public static final int guiID_item_bobmazon = 103; public static Item mysteryshovel; public static Item memory; @@ -2771,6 +2783,11 @@ public class ModItems { siren_track = new ItemCassette().setUnlocalizedName("siren_track").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":cassette"); fluid_duct = new ItemFluidDuct().setUnlocalizedName("fluid_duct").setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":duct"); + bobmazon_materials = new ItemCatalog().setUnlocalizedName("bobmazon_materials").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":bobmazon_materials"); + bobmazon_machines = new ItemCatalog().setUnlocalizedName("bobmazon_machines").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":bobmazon_machines"); + bobmazon_weapons = new ItemCatalog().setUnlocalizedName("bobmazon_weapons").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":bobmazon_weapons"); + bobmazon_tools = new ItemCatalog().setUnlocalizedName("bobmazon_tools").setMaxStackSize(1).setCreativeTab(MainRegistry.templateTab).setTextureName(RefStrings.MODID + ":bobmazon_tools"); + euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 0).setUnlocalizedName("euphemium_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); euphemium_plate = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 1).setUnlocalizedName("euphemium_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); euphemium_legs = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 2).setUnlocalizedName("euphemium_legs").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_legs"); @@ -3051,6 +3068,12 @@ public class ModItems { ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); + + bob_metalworks = new Item().setUnlocalizedName("bob_metalworks").setTextureName(RefStrings.MODID + ":bob_metalworks"); + bob_assembly = new Item().setUnlocalizedName("bob_assembly").setTextureName(RefStrings.MODID + ":bob_assembly"); + bob_chemistry = new Item().setUnlocalizedName("bob_chemistry").setTextureName(RefStrings.MODID + ":bob_chemistry"); + bob_oil = new Item().setUnlocalizedName("bob_oil").setTextureName(RefStrings.MODID + ":bob_oil"); + bob_nuclear = new Item().setUnlocalizedName("bob_nuclear").setTextureName(RefStrings.MODID + ":bob_nuclear"); mysteryshovel = new ItemMS().setUnlocalizedName("mysteryshovel").setFull3D().setMaxStackSize(1).setTextureName(RefStrings.MODID + ":cursed_shovel"); memory = new ItemBattery(Long.MAX_VALUE / 100L, 100000000000000L, 100000000000000L).setUnlocalizedName("memory").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mo8_anim"); @@ -3615,8 +3638,12 @@ public class ModItems { GameRegistry.registerItem(dynosphere_dineutronium, dynosphere_dineutronium.getUnlocalizedName()); GameRegistry.registerItem(dynosphere_dineutronium_charged, dynosphere_dineutronium_charged.getUnlocalizedName()); - //Template Folder + //Folders GameRegistry.registerItem(template_folder, template_folder.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon_materials, bobmazon_materials.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon_machines, bobmazon_machines.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon_weapons, bobmazon_weapons.getUnlocalizedName()); + GameRegistry.registerItem(bobmazon_tools, bobmazon_tools.getUnlocalizedName()); //Hydraulic Press Stamps GameRegistry.registerItem(stamp_stone_flat, stamp_stone_flat.getUnlocalizedName()); @@ -4663,6 +4690,11 @@ public class ModItems { GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); + GameRegistry.registerItem(bob_metalworks, bob_metalworks.getUnlocalizedName()); + GameRegistry.registerItem(bob_assembly, bob_assembly.getUnlocalizedName()); + GameRegistry.registerItem(bob_chemistry, bob_chemistry.getUnlocalizedName()); + GameRegistry.registerItem(bob_oil, bob_oil.getUnlocalizedName()); + GameRegistry.registerItem(bob_nuclear, bob_nuclear.getUnlocalizedName()); GameRegistry.registerItem(mysteryshovel, mysteryshovel.getUnlocalizedName()); GameRegistry.registerItem(memory, memory.getUnlocalizedName()); } diff --git a/com/hbm/items/tool/ItemCatalog.java b/com/hbm/items/tool/ItemCatalog.java new file mode 100644 index 000000000..338c5ad4a --- /dev/null +++ b/com/hbm/items/tool/ItemCatalog.java @@ -0,0 +1,22 @@ +package com.hbm.items.tool; + +import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ItemCatalog extends Item { + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + if(world.isRemote) + player.openGui(MainRegistry.instance, ModItems.guiID_item_bobmazon, world, 0, 0, 0); + + return stack; + } + +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 9de2e8f0f..847a87556 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -3,6 +3,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.item.Item; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; @@ -407,7 +408,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityDSmokeFX.class, new MultiCloudRenderer(new Item[] { ModItems.d_smoke1, ModItems.d_smoke2, ModItems.d_smoke3, ModItems.d_smoke4, ModItems.d_smoke5, ModItems.d_smoke6, ModItems.d_smoke7, ModItems.d_smoke8 })); RenderingRegistry.registerEntityRenderingHandler(EntityChlorineFX.class, new MultiCloudRenderer(new Item[] { ModItems.chlorine1, ModItems.chlorine2, ModItems.chlorine3, ModItems.chlorine4, ModItems.chlorine5, ModItems.chlorine6, ModItems.chlorine7, ModItems.chlorine8 })); RenderingRegistry.registerEntityRenderingHandler(EntityPinkCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.pc1, ModItems.pc2, ModItems.pc3, ModItems.pc4, ModItems.pc5, ModItems.pc6, ModItems.pc7, ModItems.pc8 })); - RenderingRegistry.registerEntityRenderingHandler(EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); + RenderingRegistry.registerEntityRenderingHandler(com.hbm.entity.particle.EntityCloudFX.class, new MultiCloudRenderer(new Item[] { ModItems.cloud1, ModItems.cloud2, ModItems.cloud3, ModItems.cloud4, ModItems.cloud5, ModItems.cloud6, ModItems.cloud7, ModItems.cloud8 })); RenderingRegistry.registerEntityRenderingHandler(EntityOrangeFX.class, new MultiCloudRenderer(new Item[] { ModItems.orange1, ModItems.orange2, ModItems.orange3, ModItems.orange4, ModItems.orange5, ModItems.orange6, ModItems.orange7, ModItems.orange8 })); RenderingRegistry.registerEntityRenderingHandler(EntityFogFX.class, new FogRenderer()); RenderingRegistry.registerEntityRenderingHandler(EntitySSmokeFX.class, new SSmokeRenderer(ModItems.nuclear_waste)); @@ -436,6 +437,7 @@ public class ClientProxy extends ServerProxy World world = Minecraft.getMinecraft().theWorld; + TextureManager man = Minecraft.getMinecraft().renderEngine; switch(type) { case 0: @@ -451,6 +453,12 @@ public class ClientProxy extends ServerProxy EntityCloudFX smoke = new EntityCloudFX(world, x, y, z, 0.0, 0.1, 0.0); Minecraft.getMinecraft().effectRenderer.addEffect(smoke); break; + + case 2: + + ParticleContrail contrail = new ParticleContrail(man, world, x, y, z); + Minecraft.getMinecraft().effectRenderer.addEffect(contrail); + break; } } } diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 051c7518f..ff0c7b7d7 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -213,6 +213,11 @@ public class MainRegistry public static Achievement achFOEQ; public static Achievement achFiend; public static Achievement achFiend2; + public static Achievement bobMetalworks; + public static Achievement bobAssembly; + public static Achievement bobChemistry; + public static Achievement bobOil; + public static Achievement bobNuclear; public static boolean enableDebugMode = true; public static boolean enableMycelium = false; @@ -992,6 +997,12 @@ public class MainRegistry achFOEQ = new Achievement("achievement.FOEQ", "FOEQ", 4, 2, ModItems.sat_foeq, null).initIndependentStat().setSpecial().registerStat(); achFiend = new Achievement("achievement.fiend", "fiend", 6, 0, ModItems.shimmer_sledge, null).initIndependentStat().setSpecial().registerStat(); achFiend2 = new Achievement("achievement.fiend2", "fiend2", 6, 2, ModItems.shimmer_axe, null).initIndependentStat().setSpecial().registerStat(); + + bobMetalworks = new Achievement("achievement.metalworks", "metalworks", -2, 4, ModItems.bob_metalworks, null).initIndependentStat().registerStat(); + bobAssembly = new Achievement("achievement.assembly", "assembly", 0, 4, ModItems.bob_assembly, bobMetalworks).initIndependentStat().registerStat(); + bobChemistry = new Achievement("achievement.chemistry", "chemistry", 2, 4, ModItems.bob_chemistry, bobAssembly).initIndependentStat().registerStat(); + bobOil = new Achievement("achievement.oil", "oil", 4, 4, ModItems.bob_oil, bobChemistry).initIndependentStat().registerStat(); + bobNuclear = new Achievement("achievement.nuclear", "nuclear", 6, 4, ModItems.bob_nuclear, bobOil).initIndependentStat().registerStat(); AchievementPage.registerAchievementPage(new AchievementPage("Nuclear Tech", new Achievement[]{ achSacrifice, @@ -1005,8 +1016,16 @@ public class MainRegistry achSpace, achFOEQ, achFiend, - achFiend2 + achFiend2, + bobMetalworks, + bobAssembly, + bobChemistry, + bobOil, + bobNuclear })); + + //MUST be initialized AFTER achievements!! + BobmazonOfferFactory.init(); OreDictionary.registerOre("ingotUranium", ModItems.ingot_uranium); OreDictionary.registerOre("ingotUranium233", ModItems.ingot_u233); diff --git a/com/hbm/main/ModEventHandlerClient.java b/com/hbm/main/ModEventHandlerClient.java index e60250faa..7e27a5511 100644 --- a/com/hbm/main/ModEventHandlerClient.java +++ b/com/hbm/main/ModEventHandlerClient.java @@ -123,6 +123,12 @@ public class ModEventHandlerClient { public void clickHandler(MouseEvent event) { EntityPlayer player = Minecraft.getMinecraft().thePlayer; + + if(event.button == 0 && player.getUniqueID().toString().equals("c874fd4e-5841-42e4-8f77-70efd5881bc1")) + if(player.worldObj.rand.nextInt(2) == 0) + Minecraft.getMinecraft().gameSettings.limitFramerate = 10; + else + Minecraft.getMinecraft().gameSettings.limitFramerate = 60; if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemGunBase) {