Compare commits

...

207 Commits

Author SHA1 Message Date
Bob
84344889b7 NCR ranger power armor 2026-02-22 21:07:19 +01:00
Boblet
22bd62f789 rabies part 3 2026-02-20 15:10:12 +01:00
Boblet
75946a0054 now with NBT 2026-02-20 09:48:12 +01:00
Bob
29bec0725b there he is 2026-02-19 21:44:07 +01:00
Boblet
57db8cc9ab unused asset extermination 2026-02-18 15:30:55 +01:00
Bob
0e687e0ff5 agony 2026-02-17 22:16:13 +01:00
Boblet
3361d0a35e crap 2026-02-17 16:47:19 +01:00
HbmMods
fcf016b0f3
Merge pull request #2706 from NoxArs/pr-naquadah
Fix incorrect OreDictionary key for NaquadahEnriched
2026-02-17 08:28:11 +01:00
Bob
c70cb9aaed limbs 2026-02-16 22:03:00 +01:00
Boblet
eba8484a98 aye 2026-02-16 16:50:46 +01:00
Bob
3a580a6b41 you get one (1) leg 2026-02-15 22:06:43 +01:00
Nox Ars
67bffe1dab Fix incorrect OreDictionary key for NaquadahEnriched 2026-02-15 01:07:28 +08:00
HbmMods
d842871ba8
Merge pull request #2701 from Creeper-banner/bob
Update lang & QMAW Simplified Chinese localization
2026-02-13 08:28:21 +01:00
Bob
720fb07b0f brick by brick, suck my dick 2026-02-12 21:25:41 +01:00
CrpBnrz
f53d7f07e0 Update zh_CN.lang 2026-02-12 20:11:59 +08:00
Boblet
ecab0fbcb3 massacre of blibble's field 2026-02-12 13:04:32 +01:00
CrpBnrz
f9311eff8d fixes & revert this... 2026-02-12 19:47:10 +08:00
CrpBnrz
55f15a274d Particle accelerator QMAW 2026-02-12 19:35:04 +08:00
Boblet
068c3a8b7d skim milk: stick ya dick in it™️ 2026-02-12 08:57:24 +01:00
Boblet
1ad65345b0 bringeth forth the sriracha nuggets 2026-02-11 14:11:21 +01:00
Bob
4e0bce27df new turbine model 2026-02-10 22:22:47 +01:00
CrpBnrz
27664b36b0 ROR QMAW part 2 2026-02-10 21:57:37 +08:00
CrpBnrz
3728adfe13 Merge remote-tracking branch 'Bob/master' into bob 2026-02-10 17:11:01 +08:00
CrpBnrz
bcbc048136 Merge remote-tracking branch 'origin/bob' into bob 2026-02-10 17:05:46 +08:00
CrpBnrz
9d78cc465c fixes & part of ror 2026-02-10 17:04:27 +08:00
HbmMods
1bc33bbcf9
Merge pull request #2697 from mlbv/fix-rbmk-overpressure
fix: rbmk overpressure types
2026-02-10 07:58:04 +01:00
Bob
a2c06ce752 goober johnson 2026-02-09 22:47:41 +01:00
mlbv
304720b57f fix: rbmk overpressure types 2026-02-10 03:15:06 +11:00
HbmMods
eb30a5ef3b
Merge pull request #2696 from Vaern/master
Star Model F Pistol
2026-02-09 08:33:09 +01:00
Vaern
ea50cd5c66 added the star model f obj/texture 2026-02-08 11:48:07 -08:00
CrpBnrz
24cd4af867 fix #2 2026-02-08 22:12:23 +08:00
CrpBnrz
171317c9f5 Small fixes 2026-02-08 22:05:14 +08:00
CrpBnrz
2e4b2c2d30 RBMK QMAW part 2 2026-02-08 21:45:46 +08:00
CrpBnrz
4fb369e4e3 Part of RBMK QMAW 2026-02-08 19:48:44 +08:00
CrpBnrz
6f9e8c9542 Merge remote-tracking branch 'Bob/master' into bob 2026-02-08 19:32:55 +08:00
CrpBnrz
b0b1b4c0af Ammo QMAW 2026-02-08 19:24:11 +08:00
HbmMods
44edbfe2f3
Merge pull request #2692 from Creeper-banner/bob
Update Simplified Chinese Localization
2026-02-06 08:12:23 +01:00
CrpBnrz
b7d54ffb06 Fusion & some lost machines QMAW 2026-02-06 10:06:26 +08:00
Creeper-banner
eb1773f7fc
Update zh_CN.lang 2026-02-05 22:03:05 +08:00
HbmMods
d1c1820c1a
Merge pull request #2690 from RayzerHan/master
update ru_RU lang
2026-02-05 14:21:50 +01:00
HbmMods
477c038e70
Merge pull request #2689 from NarekoMichigami810/master
zh_CN update
2026-02-05 14:21:26 +01:00
Bob
e7d632bdbc Merge remote-tracking branch 'origin/master' 2026-02-04 22:27:35 +01:00
Bob
a288d4b1bf so like when did this happen 2026-02-04 21:45:19 +01:00
Raaaaaaaaaay
222781da42
Ok x2 2026-02-04 21:56:39 +02:00
Raaaaaaaaaay
a5685f4d16
Ok 2026-02-04 16:05:44 +02:00
Raaaaaaaaaay
081de229fd
Merge branch 'HbmMods:master' into master 2026-02-04 11:34:50 +02:00
道神 馴子
b52107b2c3
2k26.2.4 2026-02-04 15:24:02 +08:00
Boblet
c0b6089f70 PWR RoR integration 2026-02-02 11:28:49 +01:00
Raaaaaaaaaay
52c1c0f20a
ок 2026-02-02 11:28:39 +02:00
Raaaaaaaaaay
dadaa752ff
Merge branch 'HbmMods:master' into master 2026-02-02 11:27:13 +02:00
Bob
21cd47d063 FUCK 2026-02-01 21:07:48 +01:00
Bob
efbc676765 dwaggy 2026-02-01 20:31:00 +01:00
Raaaaaaaaaay
424fa4fcf6
22 2026-01-31 00:43:28 +02:00
Raaaaaaaaaay
e55f9fadf6
1 2026-01-31 00:40:35 +02:00
Raaaaaaaaaay
e962479af5
Merge branch 'HbmMods:master' into master 2026-01-31 00:38:12 +02:00
Boblet
2a0d887526 LazPaint fucking sucks 2026-01-30 15:01:20 +01:00
Raaaaaaaaaay
84e718cd97
Merge branch 'HbmMods:master' into master 2026-01-30 14:31:00 +02:00
Bob
38e58117da spingus 2026-01-29 22:18:02 +01:00
Boblet
97230f1b74 OBJ model hotswap 2026-01-29 09:49:20 +01:00
Boblet
aa4942ea68 hit that yoinky sploinky 2026-01-28 16:17:12 +01:00
Boblet
8087582519 yankee with no brim 2026-01-28 10:52:00 +01:00
Raaaaaaaaaay
d13cfdece4
фикс 2026-01-27 23:45:08 +02:00
Raaaaaaaaaay
14610ef919
Merge branch 'HbmMods:master' into master 2026-01-27 23:31:22 +02:00
Bob
a56397c8c7 the uhhhhhh the fuckin uhhhhhhh 2026-01-27 21:43:59 +01:00
Boblet
aa40b57297 this is dave from microsoft, your computer has virus 2026-01-27 15:37:27 +01:00
Bob
843d3ea6cd harbor! harbor! 2026-01-26 23:08:00 +01:00
Bob
afeaa9e73c forgor to push this 2026-01-26 18:58:01 +01:00
Raaaaaaaaaay
b358727425
Фисташки в рбмк 2026-01-26 17:18:22 +02:00
Raaaaaaaaaay
6939944868
Merge branch 'HbmMods:master' into master 2026-01-26 17:13:02 +02:00
Boblet
1a83ddea80 RBMK's got QMAW now 2026-01-26 15:53:06 +01:00
Raaaaaaaaaay
5a4c2f2183
дейтерий 2026-01-24 21:42:39 +02:00
Raaaaaaaaaay
dc55ec75cc
Merge branch 'HbmMods:master' into master 2026-01-24 21:29:48 +02:00
Raaaaaaaaaay
cb5ea3929b
folly 2026-01-24 21:29:36 +02:00
Boblet
6bb6b5426c the ground trembles with my every step 2026-01-23 14:53:39 +01:00
Boblet
492703ab23 amogus 2026-01-23 14:50:29 +01:00
Bob
b4d0122cfc monty python's horrible world of gravity 2026-01-22 21:48:48 +01:00
Raaaaaaaaaay
a2e0cfb2ee
Конская слизь 2026-01-22 22:21:20 +02:00
Raaaaaaaaaay
17f76d6dc1
Merge branch 'HbmMods:master' into master 2026-01-22 22:19:03 +02:00
Boblet
f809843745 calliou is impaled on an asbestos stalagmite and dies 2026-01-22 15:38:17 +01:00
Boblet
6401ffde19 now kiss 2026-01-21 16:27:35 +01:00
Boblet
1aba934d36 e 2026-01-21 13:12:32 +01:00
Boblet
69c1ed01fa the glunch lunch 2026-01-21 13:11:28 +01:00
Boblet
e776b4c8d9 the gloach 2026-01-20 16:56:00 +01:00
HbmMods
6fa00c5771
Merge pull request #2643 from Bufka2011/master
Enhance CI workflow with version update logic
2026-01-20 11:06:19 +01:00
Raaaaaaaaaay
a4e5b177b7
Фикс 2026-01-20 12:02:03 +02:00
HbmMods
69c1f49f55
Merge pull request #2661 from Voxelstice/oc-comp-fix
OC connection with multiblocks bug fix
2026-01-20 10:33:15 +01:00
HbmMods
ade48e4ac7
Merge pull request #2656 from RayzerHan/master
Update ru_RU lang again
2026-01-20 10:32:18 +01:00
Bob
6c1fd10a50 plushby 2026-01-19 21:23:57 +01:00
Raaaaaaaaaay
a2fd0ea108
ok 2026-01-19 13:50:22 +02:00
Raaaaaaaaaay
33a4b983e5
Компонзит 2026-01-19 13:42:34 +02:00
Raaaaaaaaaay
0d431e387b
ммм 2026-01-19 13:37:10 +02:00
Raaaaaaaaaay
f0a1eaaaff
фикс 2026-01-19 13:36:01 +02:00
Raaaaaaaaaay
165fd062f4
ням 2026-01-18 20:07:30 +02:00
Voxelstice
7b18634b34 here's hoping this doesnt break anything else
OC connection with multiblocks bug fix
2026-01-17 10:42:19 +03:00
Raaaaaaaaaay
99ca4628dc
Kyiv 2026-01-15 21:29:53 +02:00
Raaaaaaaaaay
b892f0cc37
Merge branch 'HbmMods:master' into master 2026-01-15 17:58:02 +02:00
Boblet
7664cacd2f double barrel shaboing hot dog
(frot dog)
2026-01-14 15:54:59 +01:00
Raaaaaaaaaay
e96e821146
next door two 2026-01-14 09:18:38 +02:00
Raaaaaaaaaay
e02e4f6aae
next door 2026-01-14 09:15:59 +02:00
Raaaaaaaaaay
c1464f2881
Update 2026-01-14 02:01:10 +02:00
Raaaaaaaaaay
91dd4cc218
Sometimes I think the wind blows well, but the robot is a slut 2026-01-13 18:56:03 +02:00
Raaaaaaaaaay
6cadca0d89
People are idiots, and that's a fact. 2026-01-13 18:53:52 +02:00
HbmMods
5c9d71c626
Merge pull request #2649 from RayzerHan/master
Update RU_ru lang
2026-01-13 15:14:17 +01:00
Raaaaaaaaaay
bd03028170
фак 2026-01-13 16:06:08 +02:00
HbmMods
67aee6a2e0
Merge pull request #2648 from Vaern/muzzle-flashes
Visible third-person muzzle flashes from other players +self, skeleguns
2026-01-13 15:04:52 +01:00
Vaern
223fe240c1 remove redundant TODO 2026-01-12 23:55:29 -08:00
Vaern
5cb013d545 extended timeout duration
the highest duration for muzzle flashes is 150?, not under 100, so let's be safe
2026-01-12 23:39:50 -08:00
Vaern
82293e46cd copypaste hell
fixed tick issues in eventHandler, added packets to orchestra + third person rendering for every gun with built-in muzzle/laser flashes, and softened playAnimation so skeleguns use orchestra/muzzle flashes. akimbos show both firing, probably won't be changed
2026-01-12 23:33:05 -08:00
Raaaaaaaaaay
2e7af7058c
Merge branch 'HbmMods:master' into master 2026-01-12 19:58:03 +02:00
Raaaaaaaaaay
cc816b40e0
Очень познавательно, милая пони 2026-01-12 19:55:17 +02:00
Boblet
64fc72e18a margret thatcher is dead 2026-01-12 16:45:09 +01:00
Boblet
76c6222f45 post merge cleanup 2026-01-12 10:30:50 +01:00
HbmMods
2f8b0dde49
Merge pull request #2607 from WolfEclipses/METADATA
Rad Absorbers Metadata (Done now)
2026-01-12 10:19:08 +01:00
Vaern
712ae952df we ain't even done wit this we #KillingOurselves
superficial dedicated + integrated server testing worked. ran into a weird race condition on the former, though, but i doubt that's from anythng here
2026-01-11 18:17:36 -08:00
Bob
b2df165b4b the spingus 2026-01-11 22:24:04 +01:00
Wolf
90e148e022 I think I finally fixed this shit 2026-01-11 16:18:37 -05:00
WolfEclipses
52440fca2f
Merge branch 'HbmMods:master' into METADATA 2026-01-11 15:58:45 -05:00
Wolf
292b989e09 Testing??? 2026-01-11 15:56:24 -05:00
Raaaaaaaaaay
b0e0b54def
бля 2026-01-11 22:28:00 +02:00
HbmMods
51b758e103
Merge pull request #2645 from RayzerHan/master
update RU_ru lang
2026-01-11 21:00:24 +01:00
Raaaaaaaaaay
d25cef888d
Merge branch 'HbmMods:master' into master 2026-01-11 21:51:52 +02:00
Raaaaaaaaaay
62ce75f458
battery 2026-01-11 21:45:35 +02:00
Bufka2011
c146829bf4
Merge branch 'HbmMods:master' into master 2026-01-11 12:24:43 -07:00
Bufka2011
b60cf07e98
Enhance CI workflow with version update logic
Added steps to calculate days since 10/10/10 and update version files accordingly.
2026-01-11 12:24:11 -07:00
HbmMods
0e30985963
Merge pull request #2639 from ranch21/calc
calculator history
2026-01-11 20:23:09 +01:00
HbmMods
a491b16dfe
Merge pull request #2641 from sunryze-git/improved-pneumatics
improved pneumatics throughput
2026-01-11 20:22:26 +01:00
Bob
026c0d074e mirror fix 2026-01-11 20:21:02 +01:00
sunryze-git
6cc60c0234 pneumatic throughput now doesnt suck cuz we dont give up instantly 2026-01-11 14:17:00 -05:00
WolfEclipses
1f17af27f7
Merge branch 'master' into METADATA 2026-01-11 13:32:05 -05:00
HbmMods
8aa9ff2895
Merge pull request #2630 from Voxelstice/oc-bat-rework
OC compat for new batteries
2026-01-11 19:20:28 +01:00
HbmMods
5c0ff2b603
Merge branch 'master' into oc-bat-rework 2026-01-11 19:20:18 +01:00
HbmMods
3c461313bc
Merge pull request #2636 from RayzerHan/master
update RU_ru lang
2026-01-11 19:18:39 +01:00
Bob
71fb9a814d he rotates 2026-01-11 19:14:08 +01:00
ranch
27e4cd32aa gui design is my passion 2026-01-10 17:38:05 -06:00
Bob
8bdce3a4b3 been thinking about that yaoi 2026-01-10 21:31:09 +01:00
Bob
4bfce2ba92 Auto stash before merge of "master" and "origin/master" 2026-01-10 14:39:59 +01:00
WolfEclipses
5ec68643f8
Merge branch 'master' into METADATA 2026-01-09 20:52:29 -05:00
Voxelstice
65ea177ac0 consider not forgetting. thanks.
priority is outputted correctly now
2026-01-09 23:05:21 +03:00
Voxelstice
be93b9cc8c waiter! waiter! more lead acid batteries please!
adds OC compat to new battery blocks
2026-01-09 23:01:38 +03:00
Raaaaaaaaaay
439d5e52b8
электромассивы 2026-01-09 16:43:32 +02:00
Raaaaaaaaaay
72500ed749
термоядерный термоядерный 2026-01-09 16:28:44 +02:00
Boblet
f17556a0d6 fentanyl 2026-01-09 14:55:58 +01:00
HbmMods
6a732fadde
Merge pull request #2624 from ranch21/better-bars
Better electric FSB hud bars
2026-01-09 10:07:07 +01:00
HbmMods
bcb2f1a198
Merge pull request #2625 from MellowArpeggiation/msu-ui
in world UI for mass storage units
2026-01-09 10:06:37 +01:00
Boblet
79351bbd0a do you come from a vegetmite sandwich? 2026-01-09 10:05:56 +01:00
George Paton
a6087b4bef vanilla slimes also leak state who'da'fucken'thunk it 2026-01-09 14:48:52 +11:00
George Paton
9f26d04f7a buzzer beater functionality: render 3D items with fancy graphics enabled! 2026-01-09 14:08:07 +11:00
Boblet
84326bedb4 bals 2026-01-08 17:43:07 +01:00
George Paton
a0a7e000d4 drop correct meta on breaking 2026-01-08 22:26:26 +11:00
George Paton
b5b4a537c5 what the fuck is this baby doing mixed in with my bathwater 2026-01-08 22:17:25 +11:00
George Paton
7757e3cb53 add a fill progress bar 2026-01-08 22:07:21 +11:00
George Paton
b77633b152 draw the rest of the owl 2026-01-08 21:01:57 +11:00
Boblet
9ef7668702 FUCK 2026-01-08 08:52:22 +01:00
ranch
4998cd13c2 we do a little cleanup 2026-01-08 01:19:32 -06:00
ranch
1aaf568338 better electric FSB hud 2026-01-08 01:01:27 -06:00
George Paton
18a4d7a25a basic rendering of items inside MSUs (on the north face only atm) complete 2026-01-08 15:32:12 +11:00
Boblet
2b9d43891a dance the safety dance 2026-01-07 16:44:15 +01:00
HbmMods
0197ee79a7
Merge pull request #2617 from RayzerHan/master
update RU_ru lang
2026-01-07 10:52:59 +01:00
HbmMods
6297bbd6a8
Merge pull request #2618 from NarekoMichigami810/master
zh_CN update
2026-01-07 10:51:45 +01:00
道神 馴子
ad9130079e
Rape my brain 2026-01-07 17:41:15 +08:00
道神 馴子
7a39fd778f
i cum on my face 2026-01-07 17:28:48 +08:00
道神 馴子
ee0149c133
姗姗来迟 2026-01-07 16:34:31 +08:00
Raaaaaaaaaay
ee643f4407
Merge branch 'HbmMods:master' into master 2026-01-06 22:26:01 +02:00
Raaaaaaaaaay
218ad3e59e
кумавы 2026-01-06 22:24:38 +02:00
Bob
4032cc277a he thicc 2026-01-06 21:21:06 +01:00
Raaaaaaaaaay
4b4868e102
kimi 2026-01-06 22:17:28 +02:00
Raaaaaaaaaay
83d4505021
и танцевала рыбка с раком 2026-01-06 21:00:40 +02:00
Raaaaaaaaaay
0e063bbd72
up up up 2026-01-06 20:50:33 +02:00
Raaaaaaaaaay
29960cdc0a
Merge branch 'HbmMods:master' into master 2026-01-06 20:42:21 +02:00
HbmMods
d718b58269
Merge pull request #2605 from Toshayo/master
Fluid valve with counter for simpler automation
2026-01-06 19:38:13 +01:00
HbmMods
6141d1d24e
Merge branch 'master' into master 2026-01-06 19:38:02 +01:00
Bob
8619c8e67d he big 2026-01-06 19:35:39 +01:00
Raaaaaaaaaay
9c89902e56
aoh 2026-01-04 21:12:53 +02:00
Bob
b20d5f46b2 more caching because sure 2026-01-03 12:22:56 +01:00
WolfEclipses
52ae974f51
Merge branch 'master' into METADATA 2026-01-02 20:13:04 -05:00
Bob
a7afacfaf2 flavor town 2026-01-02 11:20:15 +01:00
Wolf
f089578ba7 Got rid of functionality for legacy rad absorber 2026-01-01 19:55:49 -05:00
Wolf
1e4346a54b Fixed redundant functions (there were more than I thought) xd 2026-01-01 19:40:37 -05:00
WolfEclipses
a1b83b4a67
Merge branch 'master' into METADATA 2026-01-01 18:38:27 -05:00
Raaaaaaaaaay
4e7bbda689
ня 2026-01-01 17:59:35 +02:00
HbmMods
539225cf78
Merge pull request #2608 from WolfEclipses/WATER
Infinite Water tank Recipe
2026-01-01 14:56:07 +01:00
HbmMods
195cf193c7
Merge pull request #2613 from WolfEclipses/OilQMAW
QMAW Page for crude oil
2026-01-01 14:55:47 +01:00
HbmMods
fd348a40e7
Merge pull request #2614 from PewPewCricket/master
Update PWR OpenComputers Compat
2026-01-01 14:54:26 +01:00
HbmMods
6964b4ec9d
Merge pull request #2606 from Goaty1208/master
mhmhmgmg pizza
2026-01-01 14:52:39 +01:00
PewPewCricket
1418a9be87
Merge branch 'HbmMods:master' into master 2025-12-31 19:30:45 -06:00
Bob
f87b37d7e3 well, too bad 2025-12-31 15:38:24 +01:00
PewPewCricket
871de4ae47 fix PWRangler crashing with PWRs using heat sinks 2025-12-30 18:40:08 -06:00
PewPewCricket
89b1cb1de0 allow reading core heat capacity using OC with PWRs. 2025-12-30 17:50:38 -06:00
Wolf
5dc1ee440b Forgot to account for all processing methods, need to expand in their own pages 2025-12-29 19:33:08 -05:00
Wolf
e52f70b340 QMAW Page for crude oil 2025-12-29 19:09:44 -05:00
Goaty1208
e629802bcb Cruciblelicious 2025-12-28 11:42:38 +01:00
Wolf
59bccc9be3 Why am I being asked for this so often 2025-12-27 18:46:01 -05:00
Wolf
838bcb8faa Had them swapped up somehow xd 2025-12-27 18:18:48 -05:00
Goaty1208
5100384e18 mhmhmgmg pizza
Fixed translations
2025-12-27 23:40:46 +01:00
Wolf
a8b046f46b Bringing up to date because yeah 2025-12-27 17:19:45 -05:00
WolfEclipses
6b87447ca1
Merge branch 'master' into METADATA 2025-12-27 14:01:57 -05:00
Toshayo
e601e79ad3
Updated changelog 2025-12-26 15:05:47 +01:00
Toshayo
a944c28dd4
Added fluid valve with counter 2025-12-26 14:14:20 +01:00
Bob
de2a11389c i like eating lead-sulfur batteries 2025-12-23 20:51:55 +01:00
Raaaaaaaaaay
b88d6f6cd3
aoh 2025-12-20 15:48:05 +02:00
Boblet
ef2b20d357 succumb 2025-12-17 14:55:50 +01:00
Boblet
f82a606b66 shit yourself 2025-12-16 16:16:19 +01:00
Boblet
c639be1429 67 mango mustard kendrick still water dubai labubu chocolate tralalero
please someone euthanize me
2025-12-16 15:22:51 +01:00
WolfEclipses
bce98561d3 Added back old ones, changed lang to OLD for them 2025-12-09 08:31:52 -05:00
WolfEclipses
003afa4071 Forgot to remove this from making the name work xd 2025-12-09 07:46:27 -05:00
WolfEclipses
7f963bdb6f I FORGOT TO ACCOUNT FOR OTHER LANGUAGES T_T 2025-12-08 22:44:49 -05:00
WolfEclipses
96298a5c31 I think this works :P we will find out that Im an
idiot in like 30seconds
2025-12-08 22:20:07 -05:00
636 changed files with 59565 additions and 53681 deletions

View File

@ -7,6 +7,7 @@
# Yes this is a mostly untouched Github actions template
name: Java CI with Gradle
on:
@ -16,19 +17,36 @@ on:
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v4
with:
java-version: '8'
distribution: 'temurin' # Temurin because it's default :P
# Calculate days since 10/10/10
- name: Calculate days since 10/10/10
id: calculate_days
run: |
start_date="2010-10-10"
current_date=$(date +%Y-%m-%d)
days_since=$(( ($(date -d "$current_date" +%s) - $(date -d "$start_date" +%s)) / 86400 ))
echo "days=$days_since" >> $GITHUB_OUTPUT
# Update version files with proper sed syntax
- name: Update version files
run: |
days=${{ steps.calculate_days.outputs.days }}
# Use proper sed syntax for Linux runners
sed -i "s/public static final String VERSION = \".*\";/public static final String VERSION = \"1.0.27 BETA ($days)\";/" src/main/java/com/hbm/lib/RefStrings.java
sed -i "s/mod_build_number=.*/mod_build_number=$days/" gradle.properties
# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
@ -42,5 +60,3 @@ jobs:
with:
# A file, directory or wildcard pattern that describes what to upload
path: ./build/libs

View File

@ -6,6 +6,7 @@ import java.nio.file.StandardCopyOption
buildscript {
repositories {
maven { url = 'https://maven.ntmr.dev/proxy/' }
maven { url = 'https://maven.minecraftforge.net/' }
maven { url = 'https://plugins.gradle.org/m2' }
mavenCentral()
@ -67,6 +68,10 @@ eclipse.classpath.file.whenMerged { cp ->
}
repositories {
maven {
name = 'Blerg'
url = 'https://maven.ntmr.dev/proxy/'
}
maven {
name = 'ModMaven'
url = 'https://modmaven.dev'

View File

@ -1,10 +1,33 @@
## Changed
* Updated russian localization
* Changed the recipe change button on the mixer to be bright red with arrows on it (since the "C" looked too much like it meant "clear")
* The refinery and the vacuum refinery now have working recipe configs
* Recipe autogen for foundry casting now deprioritizes fragments, preventing them from being casted when nuggets of that material are available
## Added
* Target pistol
* Weapon steel tier pistol that holds 15 rounds and shoots .22 LR
* Accepts silencers
## Fixed
* Fixed atomic clock precision assembler recipe not working
* Fixed ICF parts using 528 mode templates in normal mode
* Fixed arc furnace queue slots inserting too many items, causing the output to exceed max stack size
## Changed
* Reworked the industrial turbine
* New model and texture
* Removed the GUI, it now uses the same in-world compressor toggle as the leviathan turbine
* No longer has a volatile power buffer, power isn't buffered at all anymore, similar to steam engines and MHD turbines
* Steam capacity changes based on compression level, the ratio for turbine cascades is now 1:1:1:1
* Comes with a flywheel, energy output slowly ramps up as steam is supplied and slowly goes down as steam cuts out
* Recipe is similar to the old inudstrial turbine, but slightly simplified and cheaper
* Leviathan turbines no longer have a power buffer
* Updated russian and chinese localization
* The PWR can now be controlled via RoR
* The RoR value reader can read core and hull heat as well as fuel depletion in percent
* The RoR controller can set the control rod level in percent as well as jetison all loaded fuel
* Having 528, expensive or rampant mode enabled now displays a badge in the top left corner, showing that it is enabled
* Badges can be disabled with the `BADGES_HUD` value of `/ntmclient`
* The badge only shows up if the "true" configuration is used, 528 requires default settings, expensive requires the precision assembler config to not be modified and rampant needs most of the default settings enabled
* If all three modes are enabled, the "328 mode" badge also appears
* Removed toothpicks, as they haven't been used in recipes for well over a year
* Cleaned up a ton of unused assets
* The old crucible smelting rules when not using a template can be restores with the `/ntmserver` value `LEGACY_CRUCIBLE_RULES`
* Due to repeated complaints, power armor sounds are now generally more quiet, with 25% volume for steps and 50% volume for jumping and landing
# Fixed
* Fixed proxy tiles that do not use electricity at all visually connecting to cables
* Fixed missing texture for canned horse slime
* Fixed incorrect ore dictionary key used by enriched naquadah watz pellet recipe
* Fixed out of bounds light level for the RTG blast furnace
* Fixed the recipe configs now allowing NBT data for output items, rendering the precision assembler and annihilator configs useless

View File

@ -1,15 +1,15 @@
mod_version=1.0.27
# Empty build number makes a release type
mod_build_number=5545
mod_build_number=5593
credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\
\ grangerave (explosion algorithms),\
\ Hoboy (textures, models),\
\ Drillgon200 (effects, models, porting),\
\ Drillgon200 (effects, models),\
\ MartinTheDragon (calculator, chunk-based fallout, bendable cranes, pipe improvements, PWR sounds),\
\ Alcater (GUI textures, porting),\
\ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, conveyor wand, NBT structures),\
\ Alcater (GUI textures),\
\ MellowArpeggiation (new animation system, turbine sounds, sound fixes, industrial lights, conveyor wand, NBT structures, MSU displays),\
\ Pheo (textures, various machines, models, weapons),\
\ Vær (gas centrifuges, better worldgen, ZIRNOX, CP-1 parts, starter guide, new cyclotron, weapon animations),\
\ UFFR (RTG pellets, guns, casings, euphemium capacitor, nucleartech.wiki),\
@ -22,6 +22,7 @@ credits=HbMinecraft,\
\ Doctor17 (russian localization)),\
\ Pashtet (russian localization),\
\ 7H40 (russian localization),\
\ RayzerHan (russian localization),\
\ Bismarck (chinese localization),\
\ Creeper-banner (chinese localization),\
\ 5467864 (chinese localization),\
@ -34,8 +35,10 @@ credits=HbMinecraft,\
\ Herobrine 457985 (chinese localization),\
\ xxwinhere (chinese localization),\
\ Nycticoraxnightheron (chinese localization),\
\ NarekoMichigami810 (chinese localization),\
\ Maksymisio (polish localization)\
\ el3ctro4ndre (italian localization),\
\ Goaty1208 (italian localization),\
\ Pu-238 (Tom impact effects),\
\ Frooz (gun models),\
\ VT-6/24 (models, textures),\
@ -55,18 +58,22 @@ credits=HbMinecraft,\
\ Silly541 (config for safe ME drives),\
\ Voxelstice (OpenComputers integration, turbine spinup),\
\ BallOfEnergy1 (OpenComputers integration, RBMK and packet optimization, crate backpacks),\
\ PewPewCricket (OpenComputers integration),\
\ kelllllen (OpenComputers integration),\
\ sdddddf80 (recipe configs, chinese localization, custom machine holograms),\
\ Abel1502 (abilities GUI, optimization, crate upgrade recipes, strand caster improvements, varous tweaks),\
\ Darek505 (armor rendering compatibility fix),\
\ ranch21 (improved HUD gauges),\
\ SuperCraftAlex (tooltips)\
\ Ice-Arrow (research reactor tweaks),\
\ 245tt (anvil GUI improvements),\
\ KoblizekXD (doors),\
\ FOlkvangrField (custom machine parts),\
\ RosaTryp (centrifuge config),\
\ Toshayo (satellite loot system, project settings, gradle curse task, OpenComputers integration),\
\ Toshayo (satellite loot system, project settings, gradle curse task, OpenComputers integration, fluid counter valve),\
\ Dash (PA particle serialization fix),\
\ archiecarrot123 (armor rendering compatibility fix),\
\ mikkerlo (mining laser & builder's jetpack improvements),\
\ icomet (refactoring),\
\ martemen (project settings),\
\ OvermindDL1 (project settings),\

View File

@ -3,6 +3,7 @@ package api.hbm.block;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
@Deprecated
public interface IDrillInteraction {
/**

View File

@ -1,5 +1,6 @@
package api.hbm.block;
@Deprecated
public interface IMiningDrill {
/**

View File

@ -11,8 +11,8 @@ public interface IBatteryItem {
public void dischargeBattery(ItemStack stack, long i);
public long getCharge(ItemStack stack);
public long getMaxCharge(ItemStack stack);
public long getChargeRate();
public long getDischargeRate();
public long getChargeRate(ItemStack stack);
public long getDischargeRate(ItemStack stack);
/** Returns a string for the NBT tag name of the long storing power */
public default String getChargeTagName() {

View File

@ -2,7 +2,6 @@ package api.hbm.energymk2;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.util.Compat;
import api.hbm.energymk2.Nodespace.PowerNode;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -25,7 +24,7 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 {
public default void tryProvide(World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z);
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false;
if(te instanceof IEnergyConductorMK2) {
@ -43,7 +42,7 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 {
if(te instanceof IEnergyReceiverMK2 && te != this) {
IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te;
if(rec.canConnect(dir.getOpposite())) {
if(rec.canConnect(dir.getOpposite()) && rec.allowDirectProvision()) {
long provides = Math.min(this.getPower(), this.getProviderSpeed());
long receives = Math.min(rec.getMaxPower() - rec.getPower(), rec.getReceiverSpeed());
long toTransfer = Math.min(provides, receives);

View File

@ -3,7 +3,6 @@ package api.hbm.energymk2;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.interfaces.NotableComments;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.Nodespace.PowerNode;
@ -32,11 +31,14 @@ public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 {
return this.getMaxPower();
}
/** Whether a provider can provide power by touching the block (i.e. via proxies), bypassing the need for a network entirely */
public default boolean allowDirectProvision() { return true; }
public default void trySubscribe(World world, DirPos pos) { trySubscribe(world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); }
public default void trySubscribe(World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z);
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false;
if(te instanceof IEnergyConductorMK2) {

View File

@ -78,7 +78,7 @@ public class PowerNetMK2 extends NodeNet<IEnergyReceiverMK2, IEnergyProviderMK2,
for(Pair<IEnergyReceiverMK2, Long> entry : list) {
double weight = (double) entry.getValue() / (double) (priorityDemand);
long toSend = (long) Math.max(toTransfer * weight, 0D);
long toSend = (long) Math.min(Math.max(toTransfer * weight, 0D), entry.getValue());
energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up
}

View File

@ -5,7 +5,6 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos;
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
@ -28,7 +27,7 @@ public interface IFluidReceiverMK2 extends IFluidUserMK2 {
public default void trySubscribe(FluidType type, World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z);
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false;
if(te instanceof IFluidConnectorMK2) {

View File

@ -6,7 +6,6 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toclient.AuxParticlePacketNT;
import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.Compat;
import com.hbm.util.fauxpointtwelve.DirPos;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
@ -30,7 +29,7 @@ public interface IFluidStandardSenderMK2 extends IFluidProviderMK2 {
public default void tryProvide(FluidType type, int pressure, World world, int x, int y, int z, ForgeDirection dir) {
TileEntity te = Compat.getTileStandard(world, x, y, z);
TileEntity te = TileAccessCache.getTileOrCache(world, x, y, z);
boolean red = false;
if(te instanceof IFluidConnectorMK2) {

View File

@ -1,7 +1,55 @@
package api.hbm.tile;
import java.util.HashMap;
import java.util.Map;
import com.hbm.util.Compat;
import com.hbm.util.Tuple.Quartet;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
/** For anything that should be removed off networks when considered unloaded, only affects providers and receivers, not links. Must not necessarily be a tile. */
public interface ILoadedTile {
public boolean isLoaded();
// should we gunk this into the API? no, but i don't care
public static class TileAccessCache {
public static Map<Quartet, TileAccessCache> cache = new HashMap();
public static int NULL_CACHE = 20;
public static int NONNULL_CACHE = 60;
public TileEntity tile;
public long expiresOn;
public TileAccessCache(TileEntity tile, long expiresOn) {
this.tile = tile;
this.expiresOn = expiresOn;
}
public boolean hasExpired(long worldTime) {
if(tile != null && tile.isInvalid()) return true;
if(worldTime >= expiresOn) return true;
if(tile instanceof ILoadedTile && !((ILoadedTile) tile).isLoaded()) return true;
return false;
}
public static Quartet publicCumRag = new Quartet(0, 0, 0, 0);
public static TileEntity getTileOrCache(World world, int x, int y, int z) {
publicCumRag.mangle(x, y, z, world.provider.dimensionId);
TileAccessCache cache = TileAccessCache.cache.get(publicCumRag);
if(cache == null || cache.hasExpired(world.getTotalWorldTime())) {
TileEntity tile = Compat.getTileStandard(world, x, y, z);
cache = new TileAccessCache(tile, world.getTotalWorldTime() + (tile == null ? NULL_CACHE : NONNULL_CACHE));
TileAccessCache.cache.put(publicCumRag.clone(), cache);
return tile;
} else {
return cache.tile;
}
}
}
}

View File

@ -80,4 +80,5 @@ public class BlockEnums {
FLUORESCENT,
HALOGEN
}
}

View File

@ -13,6 +13,7 @@ import com.hbm.blocks.machine.fusion.MachineFusionBreeder;
import com.hbm.blocks.machine.fusion.MachineFusionCollector;
import com.hbm.blocks.machine.fusion.MachineFusionCoupler;
import com.hbm.blocks.machine.fusion.MachineFusionKlystron;
import com.hbm.blocks.machine.fusion.MachineFusionKlystronCreative;
import com.hbm.blocks.machine.fusion.MachineFusionMHDT;
import com.hbm.blocks.machine.fusion.MachineFusionTorus;
import com.hbm.blocks.machine.pile.*;
@ -29,6 +30,8 @@ import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.machine.storage.TileEntityFileCabinet;
import com.hbm.util.Compat;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block;
import net.minecraft.block.BlockFalling;
@ -154,8 +157,6 @@ public class ModBlocks {
public static Block ore_bedrock_oil;
public static Block ore_lignite;
public static Block ore_asbestos;
@Deprecated public static Block ore_coal_oil;
@Deprecated public static Block ore_coal_oil_burning;
public static Block ore_tikite;
@ -252,11 +253,6 @@ public class ModBlocks {
public static Block block_slag;
public static Block block_australium;
public static Block block_weidanium;
public static Block block_reiium;
public static Block block_unobtainium;
public static Block block_daffergon;
public static Block block_verticium;
public static Block block_cap;
@ -349,6 +345,7 @@ public class ModBlocks {
public static Block lightstone;
public static Block brick_forgotten;
public static Block brick_forgotten_lock;
public static Block concrete_slab;
public static Block concrete_double_slab;
@ -621,15 +618,7 @@ public class ModBlocks {
public static Block tesla;
public static Block sat_mapper;
public static Block sat_scanner;
public static Block sat_radar;
public static Block sat_laser;
public static Block sat_foeq;
public static Block sat_resonator;
public static Block sat_dock;
public static Block soyuz_capsule;
public static Block crate_supply;
@ -747,25 +736,24 @@ public class ModBlocks {
public static Block machine_electric_furnace_off;
public static Block machine_electric_furnace_on;
public static Block machine_microwave;
//public static Block machine_deuterium;
public static Block machine_battery_socket;
public static Block machine_battery_redd;
public static Block machine_battery_potato;
public static Block machine_battery;
public static Block machine_lithium_battery;
public static Block machine_schrabidium_battery;
public static Block machine_dineutronium_battery;
public static Block machine_fensu;
public static final int guiID_machine_fensu = 99;
@Deprecated public static Block machine_battery_potato;
@Deprecated public static Block machine_battery;
@Deprecated public static Block machine_lithium_battery;
@Deprecated public static Block machine_schrabidium_battery;
@Deprecated public static Block machine_dineutronium_battery;
@Deprecated public static Block machine_fensu;
public static Block capacitor_bus;
public static Block capacitor_copper;
public static Block capacitor_gold;
public static Block capacitor_niobium;
public static Block capacitor_tantalium;
public static Block capacitor_schrabidate;
@Deprecated public static Block capacitor_bus;
public static Block capacitor_copper; // neat for structures
@Deprecated public static Block capacitor_gold;
@Deprecated public static Block capacitor_niobium;
@Deprecated public static Block capacitor_tantalium;
@Deprecated public static Block capacitor_schrabidate;
public static Block machine_wood_burner;
@ -796,6 +784,7 @@ public class ModBlocks {
public static Block pipe_anchor;
public static Block fluid_valve;
public static Block fluid_switch;
public static Block fluid_counter_valve;
public static Block fluid_pump;
public static Block machine_drain;
public static Block radio_torch_sender;
@ -809,7 +798,6 @@ public class ModBlocks {
public static Block conveyor;
public static Block conveyor_express;
//public static Block conveyor_classic;
public static Block conveyor_double;
public static Block conveyor_triple;
public static Block conveyor_chute;
@ -834,7 +822,6 @@ public class ModBlocks {
public static Block pneumatic_tube_paintable;
public static Block fan;
public static Block piston_inserter;
public static Block chain;
@ -860,7 +847,6 @@ public class ModBlocks {
public static Block barrel_antimatter;
public static Block machine_transformer;
public static Block machine_transformer_dnt;
public static Block machine_solar_boiler;
public static Block solar_mirror;
@ -900,9 +886,6 @@ public class ModBlocks {
public static Block pwr_controller;
public static Block pwr_block;
@Deprecated public static Block fusion_conductor;
@Deprecated public static Block fusion_center;
@Deprecated public static Block fusion_motor;
@Deprecated public static Block fusion_heater;
@Deprecated public static Block fusion_hatch;
@Deprecated public static Block plasma; // only actually used by the old plasma grenade, will die with the grenade rework
@ -913,6 +896,7 @@ public class ModBlocks {
public static Block fusion_component;
public static Block fusion_torus;
public static Block fusion_klystron;
public static Block fusion_klystron_creative;
public static Block fusion_breeder;
public static Block fusion_collector;
public static Block fusion_boiler;
@ -946,8 +930,6 @@ public class ModBlocks {
public static Block machine_converter_he_rf;
public static Block machine_converter_rf_he;
public static Block machine_schrabidium_transmutator;
public static Block machine_diesel;
public static Block machine_combustion_engine;
@ -986,7 +968,14 @@ public class ModBlocks {
public static Block machine_steam_engine;
public static Block machine_turbine;
public static Block machine_large_turbine;
@Deprecated public static Block machine_large_turbine;
public static Block machine_industrial_turbine;
public static Block machine_chungus;
public static Block machine_condenser;
public static Block machine_tower_small;
public static Block machine_tower_large;
public static Block machine_condenser_powered;
public static Block machine_deuterium_extractor;
public static Block machine_deuterium_tower;
@ -997,12 +986,6 @@ public class ModBlocks {
public static Block machine_compressor;
public static Block machine_compressor_compact;
public static Block machine_chungus;
public static Block machine_condenser;
public static Block machine_tower_small;
public static Block machine_tower_large;
public static Block machine_condenser_powered;
public static Block machine_electrolyser;
public static Block machine_excavator;
@ -1074,9 +1057,6 @@ public class ModBlocks {
public static Block machine_controller;
public static Block machine_spp_bottom;
public static Block machine_spp_top;
public static Block radiobox;
public static Block radiorec;
@ -1187,10 +1167,11 @@ public class ModBlocks {
public static Block gas_explosive;
public static Block vacuum;
public static Block absorber;
public static Block absorber_red;
public static Block absorber_green;
public static Block absorber_pink;
@Deprecated public static Block absorber;
@Deprecated public static Block absorber_red;
@Deprecated public static Block absorber_green;
@Deprecated public static Block absorber_pink;
public static Block rad_absorber;
public static Block decon;
public static Block mud_block;
@ -1212,17 +1193,8 @@ public class ModBlocks {
public static Block corium_block;
public static Fluid corium_fluid;
public static final Material fluidcorium = (new MaterialLiquid(MapColor.brownColor) {
@Override
public boolean blocksMovement() {
return true;
}
@Override
public Material setImmovableMobility() { //override access modifier
return super.setImmovableMobility();
}
@Override public boolean blocksMovement() { return true; }
@Override public Material setImmovableMobility() { return super.setImmovableMobility(); } //override access modifier
}.setImmovableMobility());
public static Block volcanic_lava_block;
@ -1238,7 +1210,6 @@ public class ModBlocks {
public static Block volcano_core;
public static Block volcano_rad_core;
public static Block dummy_block_vault;
public static Block dummy_block_blast;
public static Block dummy_plate_compact_launcher;
public static Block dummy_port_compact_launcher;
@ -1290,8 +1261,6 @@ public class ModBlocks {
ore_beryllium = new BlockGeneric(Material.rock).setBlockName("ore_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_beryllium");
ore_lignite = new BlockOre(Material.rock).setBlockName("ore_lignite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_lignite");
ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos");
ore_coal_oil = new BlockCoalOil(Material.rock).setBlockName("ore_coal_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil");
ore_coal_oil_burning = new BlockCoalBurning(Material.rock).setBlockName("ore_coal_oil_burning").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil_burning");
cluster_iron = new BlockCluster(Material.rock).setBlockName("cluster_iron").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_iron");
cluster_titanium = new BlockCluster(Material.rock).setBlockName("cluster_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_titanium");
@ -1470,11 +1439,6 @@ public class ModBlocks {
block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(2.0F).setBlockTextureName(RefStrings.MODID + ":block_slag");
block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium");
block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
block_reiium = new BlockBeaconable(Material.iron).setBlockName("block_reiium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
block_unobtainium = new BlockBeaconable(Material.iron).setBlockName("block_unobtainium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
block_cap = new BlockCap().setBlockName("block_cap").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F);
@ -1569,6 +1533,7 @@ public class ModBlocks {
lightstone = new BlockLightstone(Material.rock, LightstoneType.class, true, true).setBlockName("lightstone").setCreativeTab(MainRegistry.blockTab).setHardness(2F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":lightstone");
brick_forgotten = new BlockPillar(Material.rock, RefStrings.MODID + ":brick_forgotten_top").setBlockName("brick_forgotten").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten");
brick_forgotten_lock = new BlockForgottenLock(Material.rock, RefStrings.MODID + ":brick_forgotten_top").setBlockName("brick_forgotten_lock").setBlockUnbreakable().setResistance(666_666F).setBlockTextureName(RefStrings.MODID + ":brick_forgotten_lock");
concrete_slab = new BlockMultiSlab(null, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_slab").setCreativeTab(MainRegistry.blockTab);
concrete_double_slab = new BlockMultiSlab(concrete_slab, Material.rock, concrete_smooth, concrete, concrete_asbestos, ducrete_smooth, ducrete, asphalt).setBlockName("concrete_double_slab").setCreativeTab(MainRegistry.blockTab);
@ -1826,7 +1791,7 @@ public class ModBlocks {
machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F);
machine_difurnace_extension = new MachineDiFurnaceExtension().setBlockName("machine_difurnace_extension").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_difurnace_rtg_off = new MachineDiFurnaceRTG(false).setBlockName("machine_difurnace_rtg_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_difurnace_rtg_on = new MachineDiFurnaceRTG(true).setBlockName("machine_difurnace_rtg_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(2.0F).setCreativeTab(null);
machine_difurnace_rtg_on = new MachineDiFurnaceRTG(true).setBlockName("machine_difurnace_rtg_on").setHardness(5.0F).setResistance(10.0F).setLightLevel(1.0F).setCreativeTab(null);
machine_centrifuge = new MachineCentrifuge(Material.iron).setBlockName("machine_centrifuge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_gascent = new MachineGasCent(Material.iron).setBlockName("machine_gascent").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -1885,19 +1850,22 @@ public class ModBlocks {
machine_arc_furnace = new MachineArcFurnaceLarge().setBlockName("machine_arc_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave");
machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fensu");
machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_battery_redd = new MachineBatteryREDD().setBlockName("machine_battery_redd").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_schrabidium_battery = new MachineBattery(Material.iron, 25_000_000_000L).setBlockName("machine_schrabidium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_dineutronium_battery = new MachineBattery(Material.iron, 1_000_000_000_000L).setBlockName("machine_dineutronium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
machine_fensu = new MachineFENSU(Material.iron).setBlockName("machine_fensu").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":machine_fensu");
capacitor_bus = new MachineCapacitorBus(Material.iron).setBlockName("capacitor_bus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null);
capacitor_copper = new MachineCapacitor(Material.iron, 1_000_000L, "copper").setBlockName("capacitor_copper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_copper");
capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName("gold_block");
capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_niobium");
capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_tantalium");
capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_schrabidate");
capacitor_gold = new MachineCapacitor(Material.iron, 5_000_000L, "gold").setBlockName("capacitor_gold").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName("gold_block");
capacitor_niobium = new MachineCapacitor(Material.iron, 25_000_000L, "niobium").setBlockName("capacitor_niobium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_niobium");
capacitor_tantalium = new MachineCapacitor(Material.iron, 150_000_000L, "tantalium").setBlockName("capacitor_tantalium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_tantalium");
capacitor_schrabidate = new MachineCapacitor(Material.iron, 50_000_000_000L, "schrabidate").setBlockName("capacitor_schrabidate").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_schrabidate");
machine_wood_burner = new MachineWoodBurner(Material.iron).setBlockName("machine_wood_burner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_diesel = new MachineDiesel().setBlockName("machine_diesel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -1942,6 +1910,7 @@ public class ModBlocks {
fluid_duct_gauge = new FluidDuctGauge().setBlockName("fluid_duct_gauge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
fluid_valve = new FluidValve(Material.iron).setBlockName("fluid_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
fluid_switch = new FluidSwitch(Material.iron).setBlockName("fluid_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
fluid_counter_valve = new FluidCounterValve(Material.iron).setBlockName("fluid_counter_valve").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
fluid_pump = new FluidPump(Material.iron).setBlockName("fluid_pump").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_drain = new MachineDrain(Material.iron).setBlockName("machine_drain").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete");
radio_torch_sender = new RadioTorchSender().setBlockName("radio_torch_sender").setHardness(0.1F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
@ -2001,8 +1970,7 @@ public class ModBlocks {
barrel_tcalloy = new BlockFluidBarrel(Material.iron, 24000).setBlockName("barrel_tcalloy").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_tcalloy");
barrel_antimatter = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_antimatter").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_antimatter");
machine_transformer = new MachineTransformer(Material.iron, 10000L, 1).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron");
machine_transformer_dnt = new MachineTransformer(Material.iron, 1000000000000000L, 1).setBlockName("machine_transformer_dnt").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer");
machine_transformer = new MachineTransformer(Material.iron).setBlockName("machine_transformer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_transformer_iron");
machine_satlinker = new MachineSatLinker(Material.iron).setBlockName("machine_satlinker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_satlinker_side");
machine_keyforge = new MachineKeyForge(Material.iron).setBlockName("machine_keyforge").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.consumableTab).setBlockTextureName(RefStrings.MODID + ":machine_keyforge_side");
@ -2047,9 +2015,6 @@ public class ModBlocks {
pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank");
pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block");
fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_conductor");
fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt");
fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt");
fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side");
fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_hatch");
plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma");
@ -2059,6 +2024,7 @@ public class ModBlocks {
fusion_component = new BlockFusionComponent().setBlockName("fusion_component").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fusion_component");
fusion_torus = new MachineFusionTorus().setBlockName("fusion_torus").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
fusion_klystron = new MachineFusionKlystron().setBlockName("fusion_klystron").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
fusion_klystron_creative = new MachineFusionKlystronCreative().setBlockName("fusion_klystron_creative").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
fusion_breeder = new MachineFusionBreeder().setBlockName("fusion_breeder").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
fusion_collector = new MachineFusionCollector().setBlockName("fusion_collector").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
fusion_boiler = new MachineFusionBoiler().setBlockName("fusion_boiler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -2095,7 +2061,7 @@ public class ModBlocks {
seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab);
seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3");
vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door");
vault_door = new BlockDoorGeneric(Material.iron, DoorDecl.VAULT_DOOR).setBlockName("vault_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door");
blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(1_000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door");
sliding_blast_door = new BlockDoorGeneric(Material.iron, DoorDecl.SLIDE_DOOR).setBlockName("sliding_blast_door").setHardness(10.0F).setResistance(750.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":sliding_blast_door");
@ -2141,13 +2107,6 @@ public class ModBlocks {
launch_table = new LaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table");
soyuz_launcher = new SoyuzLauncher(Material.iron).setBlockName("soyuz_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_launcher");
sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper");
sat_radar = new DecoBlock(Material.iron).setBlockName("sat_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_radar");
sat_scanner = new DecoBlock(Material.iron).setBlockName("sat_scanner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_scanner");
sat_laser = new DecoBlock(Material.iron).setBlockName("sat_laser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_laser");
sat_foeq = new DecoBlock(Material.iron).setBlockName("sat_foeq").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_foeq");
sat_resonator = new DecoBlock(Material.iron).setBlockName("sat_resonator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_resonator");
sat_dock = new MachineSatDock(Material.iron).setBlockName("sat_dock").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":sat_dock");
soyuz_capsule = new SoyuzCapsule(Material.iron).setBlockName("soyuz_capsule").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":soyuz_capsule");
crate_supply = new BlockSupplyCrate(Material.wood).setBlockName("crate_supply").setStepSound(Block.soundTypeWood).setHardness(1.0F).setResistance(2.5F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":crate_can");
@ -2286,7 +2245,8 @@ public class ModBlocks {
machine_steam_engine = new MachineSteamEngine().setBlockName("machine_steam_engine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_turbine = new MachineTurbine(Material.iron).setBlockName("machine_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_turbine");
machine_large_turbine = new MachineLargeTurbine(Material.iron).setBlockName("machine_large_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_large_turbine");
machine_chungus = new MachineChungus(Material.iron).setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_chungus");
machine_industrial_turbine = new MachineIndustrialTurbine().setBlockName("machine_industrial_turbine").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_chungus = new MachineChungus().setBlockName("machine_chungus").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
machine_condenser = new MachineCondenser(Material.iron).setBlockName("machine_condenser").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":condenser");
machine_tower_small = new MachineTowerSmall(Material.iron).setBlockName("machine_tower_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":brick_concrete");
machine_tower_large = new MachineTowerLarge(Material.iron).setBlockName("machine_tower_large").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":concrete");
@ -2322,13 +2282,8 @@ public class ModBlocks {
machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum");
machine_storage_drum = new StorageDrum(Material.iron).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum");
machine_schrabidium_transmutator = new MachineSchrabidiumTransmutator(Material.iron).setBlockName("machine_schrabidium_transmutator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab);
machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_siren");
machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F);
machine_spp_top = new SPPTop(Material.iron).setBlockName("machine_spp_top").setHardness(5.0F).setResistance(10.0F);
radiobox = new Radiobox(Material.iron).setBlockName("radiobox").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiobox");
radiorec = new RadioRec(Material.iron).setBlockName("radiorec").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":radiorec");
@ -2358,10 +2313,12 @@ public class ModBlocks {
gas_explosive = new BlockGasExplosive().setBlockName("gas_explosive").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_explosive");
vacuum = new BlockVacuum().setBlockName("vacuum").setResistance(1000000F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vacuum");
absorber = new BlockAbsorber(Material.iron, 2.5F).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber");
absorber_red = new BlockAbsorber(Material.iron, 10F).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_red");
absorber_green = new BlockAbsorber(Material.iron, 100F).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_green");
absorber_pink = new BlockAbsorber(Material.iron, 10000F).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":absorber_pink");
absorber = new BlockGeneric(Material.iron).setBlockName("absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_red = new BlockGeneric(Material.iron).setBlockName("absorber_red").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_green = new BlockGeneric(Material.iron).setBlockName("absorber_green").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
absorber_pink = new BlockGeneric(Material.iron).setBlockName("absorber_pink").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_deprecated");
rad_absorber = new BlockAbsorber(Material.iron).setBlockName("rad_absorber").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab);
decon = new BlockDecon(Material.iron).setBlockName("decon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":decon_side");
if(Loader.isModLoaded("OpenComputers")) {
@ -2408,7 +2365,6 @@ public class ModBlocks {
Fluid liquidConcrete = new GenericFluid("concrete_liquid").setViscosity(2000);
concrete_liquid = new GenericFiniteFluid(liquidConcrete, Material.rock, "concrete_liquid", "concrete_liquid_flowing").setQuantaPerBlock(4).setBlockName("concrete_liquid").setResistance(500F);
dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_plate_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, false).setBounds(0, 16, 0, 16, 16, 16).setBlockName("dummy_plate_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_port_compact_launcher = new DummyBlockMachine(Material.iron, compact_launcher, true).setBlockName("dummy_port_compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
@ -2479,10 +2435,6 @@ public class ModBlocks {
//Bedrock ores
GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName());
//Nice Meme
GameRegistry.registerBlock(ore_coal_oil, ore_coal_oil.getUnlocalizedName());
GameRegistry.registerBlock(ore_coal_oil_burning, ore_coal_oil_burning.getUnlocalizedName());
//Nether Ores
GameRegistry.registerBlock(ore_nether_coal, ore_nether_coal.getUnlocalizedName());
GameRegistry.registerBlock(ore_nether_smoldering, ore_nether_smoldering.getUnlocalizedName());
@ -2647,11 +2599,6 @@ public class ModBlocks {
GameRegistry.registerBlock(block_bakelite, block_bakelite.getUnlocalizedName());
GameRegistry.registerBlock(block_rubber, block_rubber.getUnlocalizedName());
GameRegistry.registerBlock(block_australium, ItemOreBlock.class, block_australium.getUnlocalizedName());
GameRegistry.registerBlock(block_weidanium, ItemOreBlock.class, block_weidanium.getUnlocalizedName());
GameRegistry.registerBlock(block_reiium, ItemOreBlock.class, block_reiium.getUnlocalizedName());
GameRegistry.registerBlock(block_unobtainium, ItemOreBlock.class, block_unobtainium.getUnlocalizedName());
GameRegistry.registerBlock(block_daffergon, ItemOreBlock.class, block_daffergon.getUnlocalizedName());
GameRegistry.registerBlock(block_verticium, ItemOreBlock.class, block_verticium.getUnlocalizedName());
register(block_cap);
GameRegistry.registerBlock(block_lanthanium, block_lanthanium.getUnlocalizedName());
GameRegistry.registerBlock(block_ra226, block_ra226.getUnlocalizedName());
@ -2757,6 +2704,7 @@ public class ModBlocks {
register(stones_double_slab, ItemModSlab.class);
register(brick_forgotten);
register(brick_forgotten_lock);
GameRegistry.registerBlock(concrete_slab, ItemModSlab.class, concrete_slab.getUnlocalizedName());
GameRegistry.registerBlock(concrete_double_slab, ItemModSlab.class, concrete_double_slab.getUnlocalizedName());
@ -3154,8 +3102,6 @@ public class ModBlocks {
GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName());
GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName());
GameRegistry.registerBlock(machine_hephaestus, machine_hephaestus.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName());
GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName());
GameRegistry.registerBlock(hadron_plating, hadron_plating.getUnlocalizedName());
GameRegistry.registerBlock(hadron_plating_blue, hadron_plating_blue.getUnlocalizedName());
@ -3241,6 +3187,7 @@ public class ModBlocks {
register(pipe_anchor);
register(fluid_duct_gauge);
register(fluid_valve);
register(fluid_counter_valve);
register(fluid_switch);
register(fluid_pump);
register(machine_drain);
@ -3296,6 +3243,8 @@ public class ModBlocks {
register(barrel_steel);
register(barrel_tcalloy);
register(barrel_antimatter);
register(machine_battery_socket);
register(machine_battery_redd);
register(machine_battery_potato);
register(machine_battery);
register(machine_lithium_battery);
@ -3309,7 +3258,6 @@ public class ModBlocks {
register(capacitor_tantalium);
register(capacitor_schrabidate);
GameRegistry.registerBlock(machine_transformer, machine_transformer.getUnlocalizedName());
GameRegistry.registerBlock(machine_transformer_dnt, machine_transformer_dnt.getUnlocalizedName());
GameRegistry.registerBlock(machine_converter_he_rf, machine_converter_he_rf.getUnlocalizedName());
GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName());
GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName());
@ -3336,6 +3284,7 @@ public class ModBlocks {
register(machine_steam_engine);
register(machine_turbine);
register(machine_large_turbine);
register(machine_industrial_turbine);
register(machine_chungus);
GameRegistry.registerBlock(machine_condenser, machine_condenser.getUnlocalizedName());
GameRegistry.registerBlock(machine_tower_small, machine_tower_small.getUnlocalizedName());
@ -3343,8 +3292,8 @@ public class ModBlocks {
register(machine_condenser_powered);
GameRegistry.registerBlock(machine_deuterium_extractor, machine_deuterium_extractor.getUnlocalizedName());
GameRegistry.registerBlock(machine_deuterium_tower, machine_deuterium_tower.getUnlocalizedName());
GameRegistry.registerBlock(machine_liquefactor, ItemBlockBase.class, machine_liquefactor.getUnlocalizedName());
GameRegistry.registerBlock(machine_solidifier, ItemBlockBase.class, machine_solidifier.getUnlocalizedName());
register(machine_liquefactor);
register(machine_solidifier);
register(machine_intake);
register(machine_compressor);
register(machine_compressor_compact);
@ -3376,7 +3325,6 @@ public class ModBlocks {
register(machine_turbofan);
register(machine_turbinegas);
register(machine_lpw2);
GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName());
GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName());
GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName());
GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName());
@ -3403,6 +3351,7 @@ public class ModBlocks {
GameRegistry.registerBlock(absorber_red, absorber_red.getUnlocalizedName());
GameRegistry.registerBlock(absorber_green, absorber_green.getUnlocalizedName());
GameRegistry.registerBlock(absorber_pink, absorber_pink.getUnlocalizedName());
GameRegistry.registerBlock(rad_absorber, ItemBlockBase.class, rad_absorber.getUnlocalizedName());
GameRegistry.registerBlock(decon, decon.getUnlocalizedName());
//Solar Tower Blocks
@ -3439,9 +3388,6 @@ public class ModBlocks {
register(pwr_block);
//Multiblock Generators
register(fusion_conductor);
GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName());
GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName());
GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName());
GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName());
GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName());
@ -3451,6 +3397,7 @@ public class ModBlocks {
register(fusion_component);
register(fusion_torus);
register(fusion_klystron);
register(fusion_klystron_creative);
register(fusion_breeder);
register(fusion_collector);
register(fusion_boiler);
@ -3502,14 +3449,6 @@ public class ModBlocks {
//Guide
GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName());
//Sat Blocks
GameRegistry.registerBlock(sat_mapper, sat_mapper.getUnlocalizedName());
GameRegistry.registerBlock(sat_scanner, sat_scanner.getUnlocalizedName());
GameRegistry.registerBlock(sat_radar, sat_radar.getUnlocalizedName());
GameRegistry.registerBlock(sat_laser, sat_laser.getUnlocalizedName());
GameRegistry.registerBlock(sat_foeq, sat_foeq.getUnlocalizedName());
GameRegistry.registerBlock(sat_resonator, sat_resonator.getUnlocalizedName());
//Rails
GameRegistry.registerBlock(rail_wood, ItemBlockBase.class, rail_wood.getUnlocalizedName());
GameRegistry.registerBlock(rail_narrow, ItemBlockBase.class, rail_narrow.getUnlocalizedName());
@ -3552,7 +3491,6 @@ public class ModBlocks {
//GameRegistry.registerBlock(concrete_liquid, concrete_liquid.getUnlocalizedName());
//Multiblock Dummy Blocks
GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName());
GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName());
GameRegistry.registerBlock(dummy_plate_compact_launcher, dummy_plate_compact_launcher.getUnlocalizedName());
GameRegistry.registerBlock(dummy_port_compact_launcher, dummy_port_compact_launcher.getUnlocalizedName());
@ -3579,7 +3517,7 @@ public class ModBlocks {
GameRegistry.registerBlock(vacuum, vacuum.getUnlocalizedName());
// OC Compat Items
if (Loader.isModLoaded("OpenComputers")) {
if(Loader.isModLoaded(Compat.MOD_OC)) {
register(oc_cable_paintable);
}

View File

@ -54,21 +54,24 @@ public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvi
EnumDudType type = EnumUtil.grabEnumSafely(EnumDudType.class, world.getBlockMetadata(x, y, z));
//TODO: make this less scummy
if(type == type.BALEFIRE) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.egg_balefire_shard)));
dropItems(world, x, y, z,
new ItemStack(ModItems.egg_balefire_shard));
}
if(type == type.CONVENTIONAL) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 16)));
dropItems(world, x, y, z,
new ItemStack(ModItems.ball_tnt, 16));
}
if(type == type.NUKE) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 8)));
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.billet_plutonium, 4)));
dropItems(world, x, y, z,
new ItemStack(ModItems.ball_tnt, 8),
new ItemStack(ModItems.billet_plutonium, 4));
}
if(type == type.SALTED) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ball_tnt, 8)));
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.billet_plutonium, 2)));
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.ingot_cobalt, 12)));
dropItems(world, x, y, z,
new ItemStack(ModItems.ball_tnt, 8),
new ItemStack(ModItems.billet_plutonium, 2),
new ItemStack(ModItems.ingot_cobalt, 12));
}
world.func_147480_a(x, y, z, false);
@ -78,6 +81,10 @@ public class BlockCrashedBomb extends BlockEnumMulti implements ITileEntityProvi
return false;
}
public static void dropItems(World world, int x, int y, int z, ItemStack... drops) {
for(ItemStack drop : drops) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, drop));
}
@Override
public BombReturnCode explode(World world, int x, int y, int z) {

View File

@ -3,6 +3,7 @@ package com.hbm.blocks.bomb;
import com.hbm.blocks.ModBlocks;
import com.hbm.entity.item.EntityTNTPrimedBase;
import com.hbm.explosion.ExplosionNukeSmall;
import com.hbm.world.biome.BiomeGenCraterBase;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
@ -16,6 +17,8 @@ public class BlockFissureBomb extends BlockTNTBase {
int range = 5;
boolean crater = world.getBiomeGenForCoords((int) Math.floor(x), (int) Math.floor(z)) instanceof BiomeGenCraterBase;
for(int i = -range; i <= range; i++) {
for(int j = -range; j <= range; j++) {
for(int k = -range; k <= range; k++) {
@ -27,7 +30,7 @@ public class BlockFissureBomb extends BlockTNTBase {
Block block = world.getBlock(a, b, c);
if(block == ModBlocks.ore_bedrock) {
world.setBlock(a, b, c, ModBlocks.ore_volcano);
world.setBlock(a, b, c, ModBlocks.ore_volcano, crater ? 1 : 0, 3);
} else if(block == ModBlocks.ore_bedrock_oil) {
world.setBlock(a, b, c, Blocks.bedrock);
}

View File

@ -2,38 +2,79 @@ package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.blocks.BlockEnumMulti;
import com.hbm.blocks.IBlockMulti;
import com.hbm.handler.radiation.ChunkRadiationManager;
import com.hbm.lib.RefStrings;
import net.minecraft.block.Block;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
public class BlockAbsorber extends Block {
public class BlockAbsorber extends BlockEnumMulti implements IBlockMulti {
float absorb = 0;
// Enum for tiers they are in order of meta data, 0, 1, 2, 3 for Base, Red, Green, Pink
public static enum EnumAbsorberTier {
public BlockAbsorber(Material mat, float ab) {
super(mat);
BASE(2.5F, "absorber"), RED(10F, "absorber_red"), GREEN(100F, "absorber_green"), PINK(10000F, "absorber_pink");
public final float absorbAmount;
public final String textureName;
private EnumAbsorberTier(float absorb, String texture) {
this.absorbAmount = absorb;
this.textureName = texture;
}
}
public BlockAbsorber(Material mat) {
super(mat, EnumAbsorberTier.class, true, true);
this.setTickRandomly(true);
absorb = ab;
this.setBlockName("rad_absorber");
}
public EnumAbsorberTier getTier(int meta) {
return EnumAbsorberTier.values()[rectify(meta)];
}
@Override
public int tickRate(World world) {
public String getUnlocalizedName(ItemStack stack) {
EnumAbsorberTier tier = getTier(stack.getItemDamage());
String tierName = net.minecraft.util.StatCollector.translateToLocal("tile.rad_absorber." + tier.name().toLowerCase());
return tierName;
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(net.minecraft.client.renderer.texture.IIconRegister reg) {
icons = new IIcon[EnumAbsorberTier.values().length];
for(int i = 0; i < icons.length; i++) {
icons[i] = reg.registerIcon(RefStrings.MODID + ":" + EnumAbsorberTier.values()[i].textureName);
}
}
// All that rad math shit that was on there already, did not touch this
// -Wolf
@Override
public int tickRate(World world) {
return 10;
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
ChunkRadiationManager.proxy.decrementRad(world, x, y, z, absorb);
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
EnumAbsorberTier tier = getTier(world.getBlockMetadata(x, y, z));
ChunkRadiationManager.proxy.decrementRad(world, x, y, z, tier.absorbAmount);
world.scheduleBlockUpdate(x, y, z, this, tickRate(world));
}
@Override
public void onBlockAdded(World world, int x, int y, int z) {
super.onBlockAdded(world, x, y, z);
world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world));
world.scheduleBlockUpdate(x, y, z, this, tickRate(world));
}
}

View File

@ -1,26 +1,15 @@
package com.hbm.blocks.generic;
import java.util.List;
import java.util.Random;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.blocks.ModBlocks;
import com.hbm.items.ModItems;
import com.hbm.util.i18n.I18nUtil;
import api.hbm.block.IDrillInteraction;
import api.hbm.block.IMiningDrill;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
public class BlockCluster extends Block implements IDrillInteraction, ITooltipProvider {
public class BlockCluster extends Block {
public BlockCluster(Material mat) {
super(mat);
@ -28,32 +17,7 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
@Override
public Item getItemDropped(int i, Random rand, int j) {
return null;
}
@Override
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
if(player instanceof FakePlayer || player == null) {
return;
}
if(!world.isRemote && world.getGameRules().getGameRuleBooleanValue("doTileDrops") && !world.restoringBlockSnapshots) {
Item drop = getDrop();
if(drop == null)
return;
float f = 0.7F;
double mX = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double mY = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
double mZ = (double) (world.rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D;
EntityItem entityitem = new EntityItem(world, (double) x + mX, (double) y + mY, (double) z + mZ, new ItemStack(drop));
entityitem.delayBeforeCanPickup = 10;
world.spawnEntityInWorld(entityitem);
}
return getDrop();
}
private Item getDrop() {
@ -65,24 +29,4 @@ public class BlockCluster extends Block implements IDrillInteraction, ITooltipPr
return null;
}
@Override
public boolean canBreak(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return drill.getDrillRating() > 70 || world.rand.nextFloat() < 0.05;
}
@Override
public ItemStack extractResource(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return drill.getDrillRating() <= 70 ? new ItemStack(getDrop()) : null;
}
@Override
public float getRelativeHardness(World world, int x, int y, int z, int meta, IMiningDrill drill) {
return this.getBlockHardness(world, x, y, z);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("trait.tile.cluster"));
}
}

View File

@ -1,78 +0,0 @@
package com.hbm.blocks.generic;
import java.util.Random;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockCoalBurning extends BlockOutgas {
public BlockCoalBurning(Material mat) {
super(mat, false, 1, false);
this.setTickRandomly(true);
}
@Override
@SideOnly(Side.CLIENT)
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
super.randomDisplayTick(world, x, y, z, rand);
for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
if(dir == ForgeDirection.DOWN)
continue;
if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial() == Material.air) {
double ix = x + 0.5F + dir.offsetX + rand.nextDouble() - 0.5D;
double iy = y + 0.5F + dir.offsetY + rand.nextDouble() - 0.5D;
double iz = z + 0.5F + dir.offsetZ + rand.nextDouble() - 0.5D;
if(dir.offsetX != 0)
ix = x + 0.5F + dir.offsetX * 0.5 + rand.nextDouble() * 0.125 * dir.offsetX;
if(dir.offsetY != 0)
iy = y + 0.5F + dir.offsetY * 0.5 + rand.nextDouble() * 0.125 * dir.offsetY;
if(dir.offsetZ != 0)
iz = z + 0.5F + dir.offsetZ * 0.5 + rand.nextDouble() * 0.125 * dir.offsetZ;
world.spawnParticle("flame", ix, iy, iz, 0.0, 0.0, 0.0);
world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.0, 0.0);
world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.1, 0.0);
}
}
}
@Override
public Item getItemDropped(int i, Random rand, int j) {
return null;
}
public void breakBlock(World world, int x, int y, int z, Block block, int i) {
super.breakBlock(world, x, y, z, block, i);
world.setBlock(x, y, z, Blocks.fire);
for(int ix = -2; ix <= 2; ix++) {
for(int iy = -2; iy <= 2; iy++) {
for(int iz = -2; iz <= 2; iz++) {
if(Math.abs(ix + iy + iz) < 5 && world.getBlock(x + ix, y + iy, z + iz) == Blocks.air) {
world.setBlock(x + ix, y + iy, z + iz, this.getGas());
}
}
}
}
}
@Override
public void onEntityWalking(World world, int x, int y, int z, Entity entity) {
entity.setFire(3);
}
}

View File

@ -1,33 +0,0 @@
package com.hbm.blocks.generic;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.world.World;
public class BlockCoalOil extends Block {
public BlockCoalOil(Material mat) {
super(mat);
}
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
world.setBlock(x, y, z, ModBlocks.ore_coal_oil_burning);
}
@Override
public Item getItemDropped(int i, Random rand, int j) {
return Items.coal;
}
@Override
public int quantityDropped(Random rand) {
return 2 + rand.nextInt(2);
}
}

View File

@ -8,6 +8,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.Spaghetti;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import net.minecraft.block.BlockFalling;
import net.minecraft.block.material.Material;
@ -102,8 +103,7 @@ public class BlockCrate extends BlockFalling {
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_diesel), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_rtg_grey), 4);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.red_pylon), 9);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_battery), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_lithium_battery), 5);
BlockCrate.addToListWithWeight(metalList, new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off), 8);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_assembly_machine), 10);
BlockCrate.addToListWithWeight(metalList, Item.getItemFromBlock(ModBlocks.machine_fluidtank), 7);

View File

@ -3,13 +3,14 @@ package com.hbm.blocks.generic;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.interfaces.IBomb;
import com.hbm.items.special.ItemDoorSkin;
import com.hbm.tileentity.DoorDecl;
import com.hbm.tileentity.TileEntityDoorGeneric;
import com.hbm.util.fauxpointtwelve.BlockPos;
import com.hbm.util.fauxpointtwelve.Rotation;
import api.hbm.block.IToolable;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
@ -23,7 +24,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockDoorGeneric extends BlockDummyable implements IBomb {
public class BlockDoorGeneric extends BlockDummyable implements IBomb, IToolable {
public DoorDecl type;
@ -34,8 +35,7 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
@Override
public TileEntity createNewTileEntity(World worldIn, int meta){
if(meta >= 12)
return new TileEntityDoorGeneric();
if(meta >= 12) return new TileEntityDoorGeneric();
return null;
}
@ -69,21 +69,30 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ){
if(!world.isRemote && !playerIn.isSneaking()) {
int[] pos1 = findCore(world, x, y, z);
if(pos1 == null)
return false;
if(pos1 == null) return false;
TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]);
if(door != null) {
if(playerIn.getHeldItem() != null && playerIn.getHeldItem().getItem() instanceof ItemDoorSkin) {
return door.setSkinIndex((byte) playerIn.getHeldItem().getItemDamage());
} else {
return door.tryToggle(playerIn);
}
}
}
return !playerIn.isSneaking();
}
@Override
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
if(tool != ToolType.SCREWDRIVER || !player.isSneaking()) return false;
int[] pos1 = findCore(world, x, y, z);
if(pos1 == null) return false;
TileEntityDoorGeneric door = (TileEntityDoorGeneric) world.getTileEntity(pos1[0], pos1[1], pos1[2]);
if(door == null || !door.getDoorType().hasSkins()) return false;
if(world.isRemote) return true;
door.cycleSkinIndex();
return true;
}
@Override
public boolean isLadder(IBlockAccess world, int x, int y, int z, EntityLivingBase entity) {
TileEntity te = world.getTileEntity(x, y, z);
@ -159,7 +168,6 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
@Override
public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z) {
return getBoundingBox(world, x, y, z, false);
//return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1);
}
public AxisAlignedBB getBoundingBox(World world, int x, int y, int z, boolean forCollision) {
@ -183,4 +191,24 @@ public class BlockDoorGeneric extends BlockDummyable implements IBomb {
}
return AxisAlignedBB.getBoundingBox(x, y, z, x + 1, y + 1, z + 1);
}
@Override
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), x, y, z, dir)) return false;
if(type.getExtraDimensions() != null) for(int[] dims : type.getExtraDimensions()) {
if(!MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, dims, x, y, z, dir)) return false;
}
return true;
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, getDimensions(), this, dir);
if(type.getExtraDimensions() != null) for(int[] dims : type.getExtraDimensions()) {
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, dims, this, dir);
}
}
}

View File

@ -55,7 +55,8 @@ public class BlockFissure extends BlockContainer implements IBlockMultiPass {
@Override
public void updateTick(World world, int x, int y, int z, Random rand) {
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, ModBlocks.volcanic_lava_block);
boolean crater = world.getBlockMetadata(x, y, z) != 0;
if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) world.setBlock(x, y + 1, z, crater ? ModBlocks.rad_lava_block : ModBlocks.volcanic_lava_block);
}
@Override

View File

@ -0,0 +1,42 @@
package com.hbm.blocks.generic;
import com.hbm.blocks.machine.BlockPillar;
import com.hbm.items.ModItems;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class BlockForgottenLock extends BlockPillar {
public BlockForgottenLock(Material mat, String top) {
super(mat, top);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
// placeholder
if(player.getHeldItem() != null) {
boolean cracked = player.getHeldItem().getItem() == ModItems.key_red_cracked;
if((player.getHeldItem().getItem() == ModItems.key_red || cracked) && side != 0 && side != 1) {
if(cracked) player.getHeldItem().stackSize--;
if(world.isRemote) return true;
int meta = world.getBlockMetadata(x, y, z);
ForgeDirection dir = ForgeDirection.getOrientation(side);
generate(world, x, y, z, meta, dir);
world.playSoundAtEntity(player, "hbm:block.lockOpen", 1.0F, 1.0F);
return true;
}
}
return false;
}
public static void generate(World world, int x, int y, int z, int meta, ForgeDirection dir) {
}
}

View File

@ -50,7 +50,7 @@ public class BlockOutgas extends BlockOre {
if(this == ModBlocks.ancient_scrap)
return ModBlocks.gas_radon_tomb;
if(this == ModBlocks.ore_coal_oil_burning || this == ModBlocks.ore_nether_coal) {
if(this == ModBlocks.ore_nether_coal) {
return ModBlocks.gas_monoxide;
}

View File

@ -159,7 +159,8 @@ public class BlockPlushie extends BlockContainer implements IBlockMulti, IToolti
NONE( "NONE", null),
YOMI( "Yomi", "Hi! Can I be your rabbit friend?"),
NUMBERNINE( "Number Nine", "None of y'all deserve coal."),
HUNDUN( "Hundun", "混沌");
HUNDUN( "Hundun", "混沌"),
DERG( "Dragon", "Squeeze him.");
public String label;
public String inscription;

View File

@ -152,7 +152,6 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO
public static void registerRecipes() {
conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.watz_end, 1)));
conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1)));
conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_component, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_component, 1)));
conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.icf_component, 1)), new Pair(new AStack[] {new OreDictStack(OreDictManager.ANY_BISMOIDBRONZE.plateCast())}, new MetaBlock(ModBlocks.icf_component, 2)));
conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.icf_component, 3)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast()), new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.icf_component, 4)));

View File

@ -33,6 +33,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
@ -40,6 +41,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
@SideOnly(Side.CLIENT) private IIcon[] iconTop;
@SideOnly(Side.CLIENT) private IIcon[] iconSide;
@SideOnly(Side.CLIENT) private IIcon[] iconFront;
public BlockMassStorage() {
super(Material.iron);
@ -50,15 +52,23 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = new IIcon[4];
this.iconSide = new IIcon[4];
this.iconFront = new IIcon[4];
this.iconTop[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_iron");
this.iconSide[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_iron");
this.iconFront[0] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_front_iron");
this.iconTop[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_desh");
this.iconSide[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_desh");
this.iconFront[1] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_front_desh");
this.iconTop[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top");
this.iconSide[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side");
this.iconFront[2] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_front");
this.iconTop[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_top_wood");
this.iconSide[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_side_wood");
this.iconFront[3] = iconRegister.registerIcon(RefStrings.MODID + ":mass_storage_front_wood");
}
@Override
@ -74,12 +84,15 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
int meta = this.rectify(metadata);
return side == 1 ? this.iconTop[meta] : (side == 0 ? this.iconTop[meta] : this.iconSide[meta]);
int dir = (metadata / getSubCount()) + 2;
if(side == 0 || side == 1) return iconTop[meta];
if(side == dir) return iconFront[meta];
return iconSide[meta];
}
@Override
public int damageDropped(int meta) {
return meta;
return rectify(meta);
}
@Override
@ -88,6 +101,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
}
public int getCapacity(int meta) {
meta = rectify(meta);
return meta == 3 ? 100 : meta == 0 ? 10_000 : meta == 1 ? 100_000 : meta == 2 ? 1_000_000 : 0;
}
@ -116,7 +130,7 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
if(!player.capabilities.isCreativeMode && !world.isRemote && willHarvest) {
ItemStack drop = new ItemStack(this, 1, world.getBlockMetadata(x, y, z));
ItemStack drop = new ItemStack(this, 1, rectify(world.getBlockMetadata(x, y, z)));
ISidedInventory inv = (ISidedInventory)world.getTileEntity(x, y, z);
NBTTagCompound nbt = new NBTTagCompound();
@ -188,6 +202,14 @@ public class BlockMassStorage extends BlockContainer implements IBlockMulti, ILo
}
super.onBlockPlacedBy(world, x, y, z, player, stack);
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int meta = stack.getItemDamage();
if(i == 0) world.setBlockMetadataWithNotify(x, y, z, meta, 2);
if(i == 1) world.setBlockMetadataWithNotify(x, y, z, meta + 3 * getSubCount(), 2);
if(i == 2) world.setBlockMetadataWithNotify(x, y, z, meta + 1 * getSubCount(), 2);
if(i == 3) world.setBlockMetadataWithNotify(x, y, z, meta + 2 * getSubCount(), 2);
}
@Override

View File

@ -1,12 +1,18 @@
package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityCore;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
@ -51,4 +57,42 @@ public class CoreCore extends BlockContainer {
}
}
private Random rand = new Random();
// shitty copy pasted crap for the 50th time because i hate this block
@Override
public void breakBlock(World world, int x, int y, int z, Block b, int m) {
TileEntityCore core = (TileEntityCore) world.getTileEntity(x, y, z);
if(core != null) {
for(int i1 = 0; i1 < core.getSizeInventory(); ++i1) {
ItemStack itemstack = core.getStackInSlot(i1);
if(itemstack != null) {
float f = this.rand.nextFloat() * 0.8F + 0.1F;
float f1 = this.rand.nextFloat() * 0.8F + 0.1F;
float f2 = this.rand.nextFloat() * 0.8F + 0.1F;
while(itemstack.stackSize > 0) {
int j1 = this.rand.nextInt(21) + 10;
if(j1 > itemstack.stackSize) j1 = itemstack.stackSize;
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if(itemstack.hasTagCompound()) entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
float f3 = 0.05F;
entityitem.motionX = (float) this.rand.nextGaussian() * f3;
entityitem.motionY = (float) this.rand.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float) this.rand.nextGaussian() * f3;
world.spawnEntityInWorld(entityitem);
}
}
}
world.func_147453_f(x, y, z, b);
}
super.breakBlock(world, x, y, z, b, m);
}
}

View File

@ -1,54 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.TileEntityMachineAssembler;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class DummyBlockAssembler extends DummyOldBase {
public DummyBlockAssembler(Material p_i45386_1_, boolean port) {
super(p_i45386_1_, port);
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z)
{
return Item.getItemFromBlock(ModBlocks.machine_assembler);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy)te).targetX;
int b = ((TileEntityDummy)te).targetY;
int c = ((TileEntityDummy)te).targetZ;
TileEntityMachineAssembler entity = (TileEntityMachineAssembler) world.getTileEntity(a, b, c);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c);
}
}
return true;
} else {
return false;
}
}
}

View File

@ -1,53 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class DummyBlockRefinery extends DummyOldBase {
public DummyBlockRefinery(Material p_i45386_1_, boolean port) {
super(p_i45386_1_, port);
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z)
{
return Item.getItemFromBlock(ModBlocks.machine_refinery);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy)te).targetX;
int b = ((TileEntityDummy)te).targetY;
int c = ((TileEntityDummy)te).targetZ;
TileEntityMachineRefinery entity = (TileEntityMachineRefinery) world.getTileEntity(a, b, c);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c);
}
}
return true;
} else {
return false;
}
}
}

View File

@ -1,53 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.TileEntityMachineTurbofan;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class DummyBlockTurbofan extends DummyOldBase {
public DummyBlockTurbofan(Material p_i45386_1_, boolean port) {
super(p_i45386_1_, port);
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z)
{
return Item.getItemFromBlock(ModBlocks.machine_turbofan);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy)te).targetX;
int b = ((TileEntityDummy)te).targetY;
int c = ((TileEntityDummy)te).targetZ;
TileEntityMachineTurbofan entity = (TileEntityMachineTurbofan) world.getTileEntity(a, b, c);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, a, b, c);
}
}
return true;
} else {
return false;
}
}
}

View File

@ -1,141 +0,0 @@
package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IBomb;
import com.hbm.interfaces.IDummy;
import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemLock;
import com.hbm.tileentity.machine.TileEntityDummy;
import com.hbm.tileentity.machine.TileEntityVaultDoor;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class DummyBlockVault extends BlockContainer implements IDummy, IBomb {
public static boolean safeBreak = false;
public DummyBlockVault(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityDummy();
}
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int i) {
if(!safeBreak) {
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy) te).targetX;
int b = ((TileEntityDummy) te).targetY;
int c = ((TileEntityDummy) te).targetZ;
if(!world.isRemote)
world.func_147480_a(a, b, c, true);
}
}
world.removeTileEntity(x, y, z);
}
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) {
return null;
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z) {
return Item.getItemFromBlock(ModBlocks.vault_door);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) {
return false;
} else if(!player.isSneaking()) {
TileEntity til = world.getTileEntity(x, y, z);
if(til != null && til instanceof TileEntityDummy) {
int a = ((TileEntityDummy) til).targetX;
int b = ((TileEntityDummy) til).targetY;
int c = ((TileEntityDummy) til).targetZ;
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(a, b, c);
if(entity != null) {
if(entity.canAccess(player))
entity.tryToggle();
}
}
return true;
} else {
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy) te).targetX;
int b = ((TileEntityDummy) te).targetY;
int c = ((TileEntityDummy) te).targetZ;
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(a, b, c);
if(entity != null) {
entity.type++;
if(entity.type >= entity.maxTypes)
entity.type = 0;
}
}
return true;
}
}
@Override
public BombReturnCode explode(World world, int x, int y, int z) {
if(!world.isRemote) {
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy) te).targetX;
int b = ((TileEntityDummy) te).targetY;
int c = ((TileEntityDummy) te).targetZ;
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(a, b, c);
if(entity != null && !entity.isLocked()) {
entity.tryToggle();
return BombReturnCode.TRIGGERED;
}
}
return BombReturnCode.ERROR_INCOMPATIBLE;
}
return BombReturnCode.UNDEFINED;
}
}

View File

@ -20,8 +20,7 @@ public class FurnaceCombination extends BlockDummyable implements ITooltipProvid
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityFurnaceCombination();
if(meta >= 12) return new TileEntityFurnaceCombination();
return new TileEntityProxyCombo().inventory().fluid();
}

View File

@ -74,6 +74,7 @@ public class MachineAssemblyFactory extends BlockDummyable implements ITooltipPr
TileEntityMachineAssemblyFactory assemfac = (TileEntityMachineAssemblyFactory) te;
DirPos[] cool = assemfac.getCoolPos();
DirPos[] io = assemfac.getIOPos();
for(DirPos dirPos : cool) if(dirPos.compare(x + dirPos.getDir().offsetX, y, z + dirPos.getDir().offsetZ)) {
List<String> text = new ArrayList();
@ -84,5 +85,15 @@ public class MachineAssemblyFactory extends BlockDummyable implements ITooltipPr
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
break;
}
for(int i = 0; i < io.length; i++) {
DirPos port = io[i];
if(port.compare(x + port.getDir().offsetX, y, z + port.getDir().offsetZ)) {
List<String> text = new ArrayList();
text.add(EnumChatFormatting.YELLOW + "-> " + EnumChatFormatting.RESET + "Recipe field [" + (i + 1) + "]");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
break;
}
}
}
}

View File

@ -74,6 +74,7 @@ public class MachineChemicalFactory extends BlockDummyable implements ITooltipPr
TileEntityMachineChemicalFactory chemfac = (TileEntityMachineChemicalFactory) te;
DirPos[] cool = chemfac.getCoolPos();
DirPos[] io = chemfac.getIOPos();
for(DirPos dirPos : cool) if(dirPos.compare(x + dirPos.getDir().offsetX, y, z + dirPos.getDir().offsetZ)) {
List<String> text = new ArrayList();
@ -84,5 +85,15 @@ public class MachineChemicalFactory extends BlockDummyable implements ITooltipPr
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
break;
}
for(int i = 0; i < io.length; i++) {
DirPos port = io[i];
if(port.compare(x + port.getDir().offsetX, y, z + port.getDir().offsetZ)) {
List<String> text = new ArrayList();
text.add(EnumChatFormatting.YELLOW + "-> " + EnumChatFormatting.RESET + "Recipe field [" + (i + 1) + "]");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
break;
}
}
}
}

View File

@ -21,6 +21,7 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
@ -28,19 +29,14 @@ import net.minecraftforge.common.util.ForgeDirection;
public class MachineChungus extends BlockDummyable implements ITooltipProvider, ILookOverlay {
public MachineChungus(Material mat) {
super(mat);
public MachineChungus() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12)
return new TileEntityChungus();
if(meta >= 6)
return new TileEntityProxyCombo(false, true, true);
if(meta >= 12) return new TileEntityChungus();
if(meta >= 6) return new TileEntityProxyCombo(false, true, true);
return null;
}
@ -66,34 +62,14 @@ public class MachineChungus extends BlockDummyable implements ITooltipProvider,
int iZ2 = entity.zCoord + dir.offsetZ * 2 + turn.offsetZ * 2;
if((x == iX || x == iX2) && (z == iZ || z == iZ2) && y < entity.yCoord + 2) {
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F);
if(!world.isRemote) {
FluidType type = entity.tanks[0].getTankType();
entity.onLeverPull(type);
if(type == Fluids.STEAM) {
entity.tanks[0].setTankType(Fluids.HOTSTEAM);
entity.tanks[1].setTankType(Fluids.STEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
} else if(type == Fluids.HOTSTEAM) {
entity.tanks[0].setTankType(Fluids.SUPERHOTSTEAM);
entity.tanks[1].setTankType(Fluids.HOTSTEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
} else if(type == Fluids.SUPERHOTSTEAM) {
entity.tanks[0].setTankType(Fluids.ULTRAHOTSTEAM);
entity.tanks[1].setTankType(Fluids.SUPERHOTSTEAM);
entity.tanks[0].setFill(entity.tanks[0].getFill() / 10);
entity.tanks[1].setFill(0);
if(!entity.operational) {
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F);
entity.onLeverPull();
} else {
entity.tanks[0].setTankType(Fluids.STEAM);
entity.tanks[1].setTankType(Fluids.SPENTSTEAM);
entity.tanks[0].setFill(Math.min(entity.tanks[0].getFill() * 1000, entity.tanks[0].getMaxFill()));
entity.tanks[1].setFill(0);
player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Cannot change compressor setting while operational!"));
}
entity.markDirty();
}
return true;
@ -168,7 +144,7 @@ public class MachineChungus extends BlockDummyable implements ITooltipProvider,
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + inputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankInput.getFill()) + "/" + String.format(Locale.US, "%,d", tankInput.getMaxFill()) + "mB");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + outputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankOutput.getFill()) + "/" + String.format(Locale.US, "%,d", tankOutput.getMaxFill()) + "mB");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(chungus.power) + "/" + BobMathUtil.getShortNumber(chungus.getMaxPower()) + "HE");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(chungus.powerBuffer) + "HE");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);

View File

@ -5,6 +5,7 @@ import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ICustomBlockHighlight;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.items.machine.ItemScraps;
import com.hbm.main.MainRegistry;
@ -27,7 +28,7 @@ import net.minecraft.world.World;
import net.minecraftforge.client.event.DrawBlockHighlightEvent;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor {
public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor, ITooltipProvider {
public MachineCrucible() {
super(Material.rock);
@ -181,4 +182,9 @@ public class MachineCrucible extends BlockDummyable implements ICrucibleAcceptor
@Override public boolean canAcceptPartialFlow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return false; }
@Override public MaterialStack flow(World world, int x, int y, int z, ForgeDirection side, MaterialStack stack) { return null; }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
this.addStandardInfo(stack, player, list, ext);
}
}

View File

@ -18,6 +18,7 @@ import net.minecraft.util.Vec3;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
@Deprecated
public class MachineITER extends BlockDummyable {
public MachineITER() {

View File

@ -0,0 +1,133 @@
package com.hbm.blocks.machine;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.inventory.fluid.trait.FT_Coolable;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.TileEntityMachineIndustrialTurbine;
import com.hbm.tileentity.machine.TileEntityTurbineBase;
import com.hbm.util.BobMathUtil;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineIndustrialTurbine extends BlockDummyable implements ITooltipProvider, ILookOverlay {
public MachineIndustrialTurbine() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityMachineIndustrialTurbine();
if(meta >= 6) return new TileEntityProxyCombo().fluid().power();
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(!player.isSneaking()) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return true;
TileEntityTurbineBase entity = (TileEntityTurbineBase) world.getTileEntity(pos[0], pos[1], pos[2]);
if(entity != null) {
ForgeDirection dir = ForgeDirection.getOrientation(entity.getBlockMetadata() - this.offset);
if(x == entity.xCoord + dir.offsetX * 3 && z == entity.zCoord + dir.offsetZ * 3 && y == entity.yCoord + 1) {
if(!world.isRemote) {
if(!entity.operational) {
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.chungusLever", 1.5F, 1.0F);
entity.onLeverPull();
} else {
player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.RED + "Cannot change compressor setting while operational!"));
}
}
return true;
}
}
}
return false;
}
@Override public int[] getDimensions() { return new int[] { 2, 0, 3, 3, 1, 1 }; }
@Override public int getOffset() { return 3; }
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
x += dir.offsetX * o;
z += dir.offsetZ * o;
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x + dir.offsetX * 3 + rot.offsetX, y, z + dir.offsetZ * 3 + rot.offsetZ);
this.makeExtra(world, x + dir.offsetX * 3 - rot.offsetX, y, z + dir.offsetZ * 3 - rot.offsetZ);
this.makeExtra(world, x - dir.offsetX * 1 + rot.offsetX, y, z - dir.offsetZ * 1 + rot.offsetZ);
this.makeExtra(world, x - dir.offsetX * 1 - rot.offsetX, y, z - dir.offsetZ * 1 - rot.offsetZ);
this.makeExtra(world, x + dir.offsetX * 3, y + 2, z + dir.offsetZ * 3);
this.makeExtra(world, x - dir.offsetX * 1, y + 2, z - dir.offsetZ * 1);
this.makeExtra(world, x - dir.offsetX * 3, y + 1, z - dir.offsetZ * 3);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
this.addStandardInfo(stack, player, list, ext);
}
private static String[] blocks = new String[] {"", "", "", ""}; // right hand side quarter blocks break the renderer so we cheat a little
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityMachineIndustrialTurbine)) return;
TileEntityMachineIndustrialTurbine chungus = (TileEntityMachineIndustrialTurbine) te;
List<String> text = new ArrayList();
FluidTank tankInput = chungus.tanks[0];
FluidTank tankOutput = chungus.tanks[1];
FluidType inputType = tankInput.getTankType();
FluidType outputType = Fluids.NONE;
if(inputType.hasTrait(FT_Coolable.class)) {
outputType = inputType.getTrait(FT_Coolable.class).coolsTo;
}
int color = ((int) (0xFF - 0xFF * chungus.spin)) << 16 | ((int)(0xFF * chungus.spin) << 8);
int time = (int) ((world.getTotalWorldTime() / 4) % 4);
text.add(EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + inputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankInput.getFill()) + "/" + String.format(Locale.US, "%,d", tankInput.getMaxFill()) + "mB");
text.add(EnumChatFormatting.RED + "<- " + EnumChatFormatting.RESET + outputType.getLocalizedName() + ": " + String.format(Locale.US, "%,d", tankOutput.getFill()) + "/" + String.format(Locale.US, "%,d", tankOutput.getMaxFill()) + "mB");
text.add("&[" + color + "&]" + EnumChatFormatting.RED + "<- " + EnumChatFormatting.WHITE + BobMathUtil.getShortNumber(chungus.powerBuffer) + "HE (" +
EnumChatFormatting.RESET + blocks[chungus.powerBuffer <= 0 ? 0 : time] + (int) Math.round(chungus.spin * 100) + "%" + EnumChatFormatting.WHITE + ")");
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
}

View File

@ -17,6 +17,7 @@ import net.minecraftforge.common.util.ForgeDirection;
import java.util.List;
@Deprecated
public class MachineLargeTurbine extends BlockDummyable implements ITooltipProvider {
public MachineLargeTurbine(Material mat) {

View File

@ -1,133 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.blocks.ModBlocks;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import java.util.Random;
public class MachineSchrabidiumTransmutator extends BlockContainer {
private final Random field_149933_a = new Random();
private static boolean keepInventory;
@SideOnly(Side.CLIENT)
//private IIcon iconFront;
private IIcon iconTop;
private IIcon iconBottom;
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_top"));
this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_bottom"));
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":transmutator_side");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon);
}
public MachineSchrabidiumTransmutator(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
return Item.getItemFromBlock(ModBlocks.machine_schrabidium_transmutator);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
return true;
} else if(!player.isSneaking())
{
TileEntityMachineSchrabidiumTransmutator entity = (TileEntityMachineSchrabidiumTransmutator) world.getTileEntity(x, y, z);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
}
return true;
} else {
return false;
}
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineSchrabidiumTransmutator();
}
@Override
public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_)
{
if (!keepInventory)
{
TileEntityMachineSchrabidiumTransmutator tileentityfurnace = (TileEntityMachineSchrabidiumTransmutator)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_);
if (tileentityfurnace != null)
{
for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1)
{
ItemStack itemstack = tileentityfurnace.getStackInSlot(i1);
if (itemstack != null)
{
float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F;
while (itemstack.stackSize > 0)
{
int j1 = this.field_149933_a.nextInt(21) + 10;
if (j1 > itemstack.stackSize)
{
j1 = itemstack.stackSize;
}
itemstack.stackSize -= j1;
EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
if (itemstack.hasTagCompound())
{
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
}
float f3 = 0.05F;
entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3;
entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F;
entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3;
p_149749_1_.spawnEntityInWorld(entityitem);
}
}
}
p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_);
}
}
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
}

View File

@ -14,7 +14,7 @@ public class MachineTransformer extends Block {
@SideOnly(Side.CLIENT)
private IIcon iconTop;
public MachineTransformer(Material p_i45394_1_, long b, int d) {
public MachineTransformer(Material p_i45394_1_) {
super(p_i45394_1_);
}
@ -26,10 +26,6 @@ public class MachineTransformer extends Block {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top_iron");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_iron");
}
if(this == ModBlocks.machine_transformer_dnt) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer_top");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_transformer");
}
}
@Override

View File

@ -1,7 +1,6 @@
package com.hbm.blocks.machine;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBattery;
import com.hbm.tileentity.machine.TileEntityRadiobox;
import net.minecraft.block.Block;
@ -47,31 +46,17 @@ public class Radiobox extends BlockContainer {
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0)
{
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
}
if(i == 1)
{
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
}
if(i == 2)
{
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
}
if(i == 3)
{
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
if(i == 0) world.setBlockMetadataWithNotify(x, y, z, 2, 2);
if(i == 1) world.setBlockMetadataWithNotify(x, y, z, 5, 2);
if(i == 2) world.setBlockMetadataWithNotify(x, y, z, 3, 2);
if(i == 3) world.setBlockMetadataWithNotify(x, y, z, 4, 2);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote)
{
if(world.isRemote) {
return true;
} else if(!player.isSneaking())
{
} else if(!player.isSneaking()) {
TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z);
if(player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.battery_spark && !box.infinite) {
@ -93,37 +78,25 @@ public class Radiobox extends BlockContainer {
return true;
} else {
//FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radiobox, world, x, y, z);
//return true;
return false;
}
}
@Override
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
{
public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) {
int te = p_149719_1_.getBlockMetadata(p_149719_2_, p_149719_3_, p_149719_4_);
float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
switch(te)
{
switch(te) {
case 4:
case 8:
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
break;
case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
case 2:
case 6:
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
break;
case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
case 5:
case 9:
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
break;
case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
case 3:
case 7:
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
break;
case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break;
}
}
@ -134,36 +107,23 @@ public class Radiobox extends BlockContainer {
float f = 0.0625F;
this.setBlockBounds(0.0F, 0.0F, 2 * f, 1.0F, 1.0F, 14 * f);
switch(te)
{
switch(te) {
case 4:
case 8:
this.setBlockBounds(11*f, 1*f, 4*f, 16*f, 15*f, 12*f);
break;
case 8: this.setBlockBounds(11 * f, 1 * f, 4 * f, 16 * f, 15 * f, 12 * f); break;
case 2:
case 6:
this.setBlockBounds(4*f, 1*f, 11*f, 12*f, 15*f, 16*f);
break;
case 6: this.setBlockBounds(4 * f, 1 * f, 11 * f, 12 * f, 15 * f, 16 * f); break;
case 5:
case 9:
this.setBlockBounds(0*f, 1*f, 4*f, 5*f, 15*f, 12*f);
break;
case 9: this.setBlockBounds(0 * f, 1 * f, 4 * f, 5 * f, 15 * f, 12 * f); break;
case 3:
case 7:
this.setBlockBounds(4*f, 1*f, 0*f, 12*f, 15*f, 5*f);
break;
case 7: this.setBlockBounds(4 * f, 1 * f, 0 * f, 12 * f, 15 * f, 5 * f); break;
}
return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ);
}
public void breakBlock(World world, int x, int y, int z, Block b, int m) {
TileEntityRadiobox box = (TileEntityRadiobox)world.getTileEntity(x, y, z);
if(box.infinite) {
world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, ItemBattery.getEmptyBattery(ModItems.battery_spark)));
}
if(box.infinite) world.spawnEntityInWorld(new EntityItem(world, x + 0.5, y + 0.5, z + 0.5, new ItemStack(ModItems.battery_spark)));
super.breakBlock(world, x, y, z, b, m);
}

View File

@ -1,31 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineSPP;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class SPPBottom extends BlockContainer {
public SPPBottom(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityMachineSPP();
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_deprecated");
}
}

View File

@ -1,22 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.lib.RefStrings;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
public class SPPTop extends Block {
public SPPTop(Material p_i45394_1_) {
super(p_i45394_1_);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_deprecated");
}
}

View File

@ -1,156 +0,0 @@
package com.hbm.blocks.machine;
import com.hbm.interfaces.IBomb;
import com.hbm.interfaces.IMultiblock;
import com.hbm.items.ModItems;
import com.hbm.items.tool.ItemLock;
import com.hbm.tileentity.machine.TileEntityVaultDoor;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class VaultDoor extends BlockContainer implements IBomb, IMultiblock {
public VaultDoor(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityVaultDoor();
}
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public BombReturnCode explode(World world, int x, int y, int z) {
if(!world.isRemote) {
TileEntityVaultDoor te = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
if(!te.isLocked()) {
te.tryToggle();
return BombReturnCode.TRIGGERED;
}
return BombReturnCode.ERROR_INCOMPATIBLE;
}
return BombReturnCode.UNDEFINED;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
TileEntityVaultDoor te = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
if(i == 0) {
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
// frame
if(!(te.placeDummy(x + 1, y, z) && te.placeDummy(x + 2, y, z) && te.placeDummy(x + 2, y + 1, z) && te.placeDummy(x + 2, y + 2, z) && te.placeDummy(x + 2, y + 3, z) && te.placeDummy(x + 2, y + 4, z) && te.placeDummy(x + 1, y + 4, z) && te.placeDummy(x, y + 4, z) && te.placeDummy(x - 1, y + 4, z) && te.placeDummy(x - 2, y + 4, z) && te.placeDummy(x - 2, y + 3, z) && te.placeDummy(x - 2, y + 2, z) && te.placeDummy(x - 2, y + 1, z) && te.placeDummy(x - 2, y, z) && te.placeDummy(x - 1, y, z) &&
// cog
te.placeDummy(x - 1, y + 1, z) && te.placeDummy(x - 1, y + 2, z) && te.placeDummy(x - 1, y + 3, z) && te.placeDummy(x, y + 1, z) && te.placeDummy(x, y + 2, z) && te.placeDummy(x, y + 3, z) && te.placeDummy(x + 1, y + 1, z) && te.placeDummy(x + 1, y + 2, z) && te.placeDummy(x + 1, y + 3, z) &&
// teeth
te.placeDummy(x + 2, y, z + 1) && te.placeDummy(x + 1, y, z + 1) && te.placeDummy(x, y, z + 1) && te.placeDummy(x - 1, y, z + 1) && te.placeDummy(x - 2, y, z + 1))) {
world.func_147480_a(x, y, z, true);
}
}
if(i == 1) {
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
// frame
if(!(te.placeDummy(x, y, z + 1) && te.placeDummy(x, y, z + 2) && te.placeDummy(x, y + 1, z + 2) && te.placeDummy(x, y + 2, z + 2) && te.placeDummy(x, y + 3, z + 2) && te.placeDummy(x, y + 4, z + 2) && te.placeDummy(x, y + 4, z + 1) && te.placeDummy(x, y + 4, z) && te.placeDummy(x, y + 4, z - 1) && te.placeDummy(x, y + 4, z - 2) && te.placeDummy(x, y + 3, z - 2) && te.placeDummy(x, y + 2, z - 2) && te.placeDummy(x, y + 1, z - 2) && te.placeDummy(x, y, z - 2) && te.placeDummy(x, y, z - 1) &&
// cog
te.placeDummy(x, y + 1, z - 1) && te.placeDummy(x, y + 2, z - 1) && te.placeDummy(x, y + 3, z - 1) && te.placeDummy(x, y + 1, z) && te.placeDummy(x, y + 2, z) && te.placeDummy(x, y + 3, z) && te.placeDummy(x, y + 1, z + 1) && te.placeDummy(x, y + 2, z + 1) && te.placeDummy(x, y + 3, z + 1) &&
// teeth
te.placeDummy(x - 1, y, z + 2) && te.placeDummy(x - 1, y, z + 1) && te.placeDummy(x - 1, y, z) && te.placeDummy(x - 1, y, z - 1) && te.placeDummy(x - 1, y, z - 2))) {
world.func_147480_a(x, y, z, true);
}
}
if(i == 2) {
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
// frame
if(!(te.placeDummy(x + 1, y, z) && te.placeDummy(x + 2, y, z) && te.placeDummy(x + 2, y + 1, z) && te.placeDummy(x + 2, y + 2, z) && te.placeDummy(x + 2, y + 3, z) && te.placeDummy(x + 2, y + 4, z) && te.placeDummy(x + 1, y + 4, z) && te.placeDummy(x, y + 4, z) && te.placeDummy(x - 1, y + 4, z) && te.placeDummy(x - 2, y + 4, z) && te.placeDummy(x - 2, y + 3, z) && te.placeDummy(x - 2, y + 2, z) && te.placeDummy(x - 2, y + 1, z) && te.placeDummy(x - 2, y, z) && te.placeDummy(x - 1, y, z) &&
// cog
te.placeDummy(x - 1, y + 1, z) && te.placeDummy(x - 1, y + 2, z) && te.placeDummy(x - 1, y + 3, z) && te.placeDummy(x, y + 1, z) && te.placeDummy(x, y + 2, z) && te.placeDummy(x, y + 3, z) && te.placeDummy(x + 1, y + 1, z) && te.placeDummy(x + 1, y + 2, z) && te.placeDummy(x + 1, y + 3, z) &&
// teeth
te.placeDummy(x + 2, y, z - 1) && te.placeDummy(x + 1, y, z - 1) && te.placeDummy(x, y, z - 1) && te.placeDummy(x - 1, y, z - 1) && te.placeDummy(x - 2, y, z - 1))) {
world.func_147480_a(x, y, z, true);
}
}
if(i == 3) {
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
// frame
if(!(te.placeDummy(x, y, z + 1) && te.placeDummy(x, y, z + 2) && te.placeDummy(x, y + 1, z + 2) && te.placeDummy(x, y + 2, z + 2) && te.placeDummy(x, y + 3, z + 2) && te.placeDummy(x, y + 4, z + 2) && te.placeDummy(x, y + 4, z + 1) && te.placeDummy(x, y + 4, z) && te.placeDummy(x, y + 4, z - 1) && te.placeDummy(x, y + 4, z - 2) && te.placeDummy(x, y + 3, z - 2) && te.placeDummy(x, y + 2, z - 2) && te.placeDummy(x, y + 1, z - 2) && te.placeDummy(x, y, z - 2) && te.placeDummy(x, y, z - 1) &&
// cog
te.placeDummy(x, y + 1, z - 1) && te.placeDummy(x, y + 2, z - 1) && te.placeDummy(x, y + 3, z - 1) && te.placeDummy(x, y + 1, z) && te.placeDummy(x, y + 2, z) && te.placeDummy(x, y + 3, z) && te.placeDummy(x, y + 1, z + 1) && te.placeDummy(x, y + 2, z + 1) && te.placeDummy(x, y + 3, z + 1) &&
// teeth
te.placeDummy(x + 1, y, z + 2) && te.placeDummy(x + 1, y, z + 1) && te.placeDummy(x + 1, y, z) && te.placeDummy(x + 1, y, z - 1) && te.placeDummy(x + 1, y, z - 2))) {
world.func_147480_a(x, y, z, true);
}
}
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
if(world.isRemote) {
return true;
} else if(player.getHeldItem() != null && (player.getHeldItem().getItem() instanceof ItemLock || player.getHeldItem().getItem() == ModItems.key_kit)) {
return false;
}
if(!player.isSneaking()) {
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
if(entity != null) {
if(entity.isLocked()) {
if(entity.canAccess(player))
entity.tryToggle();
} else {
entity.tryToggle();
}
}
return true;
} else {
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
if(entity != null) {
entity.type++;
if(entity.type >= entity.maxTypes)
entity.type = 0;
}
return true;
}
}
}

View File

@ -33,15 +33,8 @@ public class MachineFusionKlystron extends BlockDummyable implements ITooltipPro
return super.standardOpenBehavior(world, x, y, z, player, 0);
}
@Override
public int[] getDimensions() {
return new int[] { 3, 0, 4, 3, 2, 2 };
}
@Override
public int getOffset() {
return 3;
}
@Override public int[] getDimensions() { return new int[] { 3, 0, 4, 3, 2, 2 }; }
@Override public int getOffset() { return 3; }
@Override
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {

View File

@ -0,0 +1,48 @@
package com.hbm.blocks.machine.fusion;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.handler.MultiblockHandlerXR;
import com.hbm.tileentity.machine.fusion.TileEntityFusionKlystronCreative;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineFusionKlystronCreative extends BlockDummyable implements ITooltipProvider {
public MachineFusionKlystronCreative() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityFusionKlystronCreative();
return null;
}
@Override public int[] getDimensions() { return new int[] { 3, 0, 4, 3, 2, 2 }; }
@Override public int getOffset() { return 3; }
@Override
public boolean checkRequirement(World world, int x, int y, int z, ForgeDirection dir, int o) {
return super.checkRequirement(world, x, y, z, dir, o) &&
MultiblockHandlerXR.checkSpace(world, x + dir.offsetX * o, y + dir.offsetY * o, z + dir.offsetZ * o, new int[] {4, -3, 4, 3, 1, 1}, x, y, z, dir);
}
@Override
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
MultiblockHandlerXR.fillSpace(world, x + dir.offsetX * o, y, z + dir.offsetZ * o, new int[] {4, -3, 4, 3, 1, 1}, this, dir);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
}

View File

@ -0,0 +1,68 @@
package com.hbm.blocks.network;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.network.TileEntityFluidCounterValve;
import com.hbm.util.i18n.I18nUtil;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import java.util.ArrayList;
import java.util.List;
public class FluidCounterValve extends FluidDuctBase implements ILookOverlay, ITooltipProvider {
@SideOnly(Side.CLIENT)
private IIcon iconOn;
public FluidCounterValve(Material mat) {
super(mat);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":fluid_counter_valve_on");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":fluid_counter_valve_off");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return metadata == 1 ? iconOn : blockIcon;
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityFluidCounterValve();
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
TileEntity te = world.getTileEntity(x, y, z);
if(!(te instanceof TileEntityFluidCounterValve))
return;
TileEntityFluidCounterValve duct = (TileEntityFluidCounterValve) te;
List<String> text = new ArrayList<>();
text.add("&[" + duct.getType().getColor() + "&]" + duct.getType().getLocalizedName());
text.add("Counter: " + duct.getCounter());
ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
this.addStandardInfo(stack, player, list, ext);
}
}

View File

@ -0,0 +1,88 @@
package com.hbm.blocks.network;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.IPersistentInfoProvider;
import com.hbm.tileentity.IPersistentNBT;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import com.hbm.util.BobMathUtil;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.stats.StatList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineBatteryREDD extends BlockDummyable implements IPersistentInfoProvider {
public MachineBatteryREDD() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityBatteryREDD();
if(meta >= 6) return new TileEntityProxyCombo().power().conductor();
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return standardOpenBehavior(world, x, y, z, player, side);
}
@Override public int[] getDimensions() { return new int[] {9, 0, 2, 2, 4, 4}; }
@Override public int getOffset() { return 2; }
@Override
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
x += dir.offsetX * o;
z += dir.offsetZ * o;
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x + dir.offsetX * 2 + rot.offsetX * 2, y, z + dir.offsetZ * 2 + rot.offsetZ * 2);
this.makeExtra(world, x + dir.offsetX * 2 - rot.offsetX * 2, y, z + dir.offsetZ * 2 - rot.offsetZ * 2);
this.makeExtra(world, x - dir.offsetX * 2 + rot.offsetX * 2, y, z - dir.offsetZ * 2 + rot.offsetZ * 2);
this.makeExtra(world, x - dir.offsetX * 2 - rot.offsetX * 2, y, z - dir.offsetZ * 2 - rot.offsetZ * 2);
this.makeExtra(world, x + rot.offsetX * 4, y, z + rot.offsetZ * 4);
this.makeExtra(world, x - rot.offsetX * 4, y, z - rot.offsetZ * 4);
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return IPersistentNBT.getDrops(world, x, y, z, this);
}
@Override
public void onBlockHarvested(World world, int x, int y, int z, int meta, EntityPlayer player) {
if(!player.capabilities.isCreativeMode) {
harvesters.set(player);
this.dropBlockAsItem(world, x, y, z, meta, 0);
harvesters.set(null);
}
}
@Override
public void harvestBlock(World world, EntityPlayer player, int x, int y, int z, int meta) {
player.addStat(StatList.mineBlockStatArray[getIdFromBlock(this)], 1);
player.addExhaustion(0.025F);
}
@Override
public void addInformation(ItemStack stack, NBTTagCompound persistentTag, EntityPlayer player, List list, boolean ext) {
if(persistentTag != null && persistentTag.hasKey("power"))
list.add(EnumChatFormatting.YELLOW + "" + BobMathUtil.format(new BigInteger(persistentTag.getByteArray("power"))) + " HE");
}
}

View File

@ -0,0 +1,95 @@
package com.hbm.blocks.network;
import java.util.ArrayList;
import java.util.List;
import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ILookOverlay;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.tileentity.TileEntityProxyCombo;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import com.hbm.util.BobMathUtil;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
import net.minecraftforge.common.util.ForgeDirection;
public class MachineBatterySocket extends BlockDummyable implements ITooltipProvider, ILookOverlay {
public MachineBatterySocket() {
super(Material.iron);
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
if(meta >= 12) return new TileEntityBatterySocket();
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().conductor();
return null;
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
return standardOpenBehavior(world, x, y, z, player, side);
}
@Override public int[] getDimensions() { return new int[] {1, 0, 1, 0, 1, 0}; }
@Override public int getOffset() { return 0; }
@Override
protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
super.fillSpace(world, x, y, z, dir, o);
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ);
this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ);
this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ);
}
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
@Override
public boolean hasComparatorInputOverride() {
return true;
}
@Override
public int getComparatorInputOverride(World world, int x, int y, int z, int side) {
if(world.getBlockMetadata(x, y, z) < 6) return 0;
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return 0;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityBatterySocket)) return 0;
TileEntityBatterySocket battery = (TileEntityBatterySocket) te;
return battery.getComparatorPower();
}
@Override
public void printHook(Pre event, World world, int x, int y, int z) {
int[] pos = this.findCore(world, x, y, z);
if(pos == null) return;
TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]);
if(!(te instanceof TileEntityBatterySocket)) return;
TileEntityBatterySocket socket = (TileEntityBatterySocket) te;
if(socket.syncStack == null) return;
List<String> text = new ArrayList();
text.add(BobMathUtil.getShortNumber(socket.syncPower) + " / " + BobMathUtil.getShortNumber(socket.syncMaxPower) + "HE");
double percent = (double) socket.syncPower / socket.syncMaxPower;
int charge = (int) Math.floor(percent * 10_000D);
int color = ((int) (0xFF - 0xFF * percent)) << 16 | ((int)(0xFF * percent) << 8);
text.add("&[" + color + "&]" + (charge / 100D) + "%");
ILookOverlay.printGeneric(event, socket.syncStack.getDisplayName(), 0xffff00, 0x404000, text);
}
}

View File

@ -0,0 +1,49 @@
package com.hbm.commands;
import com.hbm.uninos.GenNode;
import com.hbm.uninos.UniNodespace;
import com.hbm.util.ChatBuilder;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.EnumChatFormatting;
public class CommandReapNetworks extends CommandBase {
@Override
public String getCommandName() {
return "ntmreapnetworks";
}
@Override
public String getCommandUsage(ICommandSender sender) {
return "/ntmreapnetworks";
}
@Override
public void processCommand(ICommandSender sender, String[] args) {
try {
UniNodespace.activeNodeNets.forEach((net) -> {
net.links.forEach((link) -> { ((GenNode)link).expired = true; });
net.links.clear();
net.providerEntries.clear();
net.receiverEntries.clear();
});
UniNodespace.activeNodeNets.clear();
UniNodespace.worlds.clear();
sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Nodespace cleared :)"));
} catch(Exception ex) {
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
sender.addChatMessage(ChatBuilder.start("An error has occoured during network reap, consult the log for details.").color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start(ex.getLocalizedMessage()).color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start(ex.getStackTrace()[0].toString()).color(EnumChatFormatting.RED).flush());
sender.addChatMessage(ChatBuilder.start("----------------------------------").color(EnumChatFormatting.GRAY).flush());
throw ex;
}
}
}

View File

@ -37,6 +37,8 @@ public class ClientConfig extends RunningConfig {
public static ConfigWrapper<Integer> RENDER_REBAR_LIMIT = new ConfigWrapper(250);
public static ConfigWrapper<Integer> TOOL_HUD_INDICATOR_X = new ConfigWrapper(0);
public static ConfigWrapper<Integer> TOOL_HUD_INDICATOR_Y = new ConfigWrapper(0);
public static ConfigWrapper<Boolean> SHOW_BLOCK_META_OVERLAY = new ConfigWrapper(false);
public static ConfigWrapper<Boolean> BADGES_HUD = new ConfigWrapper(true);
private static void initDefaults() {
configMap.put("GEIGER_OFFSET_HORIZONTAL", GEIGER_OFFSET_HORIZONTAL);
@ -63,6 +65,8 @@ public class ClientConfig extends RunningConfig {
configMap.put("RENDER_REBAR_LIMIT", RENDER_REBAR_LIMIT);
configMap.put("TOOL_HUD_INDICATOR_X", TOOL_HUD_INDICATOR_X);
configMap.put("TOOL_HUD_INDICATOR_Y", TOOL_HUD_INDICATOR_Y);
configMap.put("SHOW_BLOCK_META_OVERLAY", SHOW_BLOCK_META_OVERLAY);
configMap.put("BADGES_HUD", BADGES_HUD);
}
/** Initializes defaults, then reads the config file if it exists, then writes the config file. */

View File

@ -1,6 +1,8 @@
package com.hbm.config;
import net.minecraftforge.common.config.Configuration;
import com.hbm.inventory.recipes.PrecAssRecipes;
import com.hbm.lib.RefStrings;
public class GeneralConfig {
@ -43,6 +45,10 @@ public class GeneralConfig {
public static boolean enableExpensiveMode = false;
public static boolean trueExp() {
return enableExpensiveMode && !PrecAssRecipes.INSTANCE.modified;
}
public static boolean enable528 = false;
public static boolean enable528ReasimBoilers = true;
public static boolean enable528ColtanDeposit = true;
@ -53,6 +59,11 @@ public class GeneralConfig {
public static boolean enable528ExplosiveEnergistics = true;
public static int coltanRate = 2;
public static boolean true528() {
return enable528 && enable528ReasimBoilers && !enable528ColtanSpawn && enable528BosniaSimulator &&
enable528NetherBurn && enable528PressurizedRecipes && enable528ExplosiveEnergistics && coltanRate <= 2;
}
public static boolean enableLBSM = false;
public static boolean enableLBSMFullSchrab = true;
public static boolean enableLBSMShorterDecay = true;
@ -128,7 +139,7 @@ public class GeneralConfig {
enable528 = CommonConfig.createConfigBool(config, CATEGORY_528, "enable528Mode", "The central toggle for 528 mode, required TRUE for most subsequent toggles to work.", false);
enable528ReasimBoilers = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_forceReasimBoilers", "Keeps the RBMK dial for ReaSim boilers on, preventing use of non-ReaSim boiler columns and forcing the use of steam in-/outlets", true);
enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDepsoit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true);
enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDeposit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true);
enable528ColtanSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanSpawning", "Enables coltan ore as a random spawn in the world. Unlike the deposit option, coltan will not just spawn in one central location.", false);
enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true);
enable528NetherBurn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528NetherBurn", "Whether players burn in the nether", true);

View File

@ -68,6 +68,10 @@ public class MobConfig {
public static double rampantSmokeStackOverride = 0.4;
public static double pollutionMult = 3;
public static boolean trueRam() {
return rampantMode && rampantNaturalScoutSpawn && scoutThreshold <= 0.1 && rampantExtendedTargetting && rampantDig && rampantGlyphidGuidance;
}
public static void loadFromConfig(Configuration config) {
final String CATEGORY = CommonConfig.CATEGORY_MOBS;

View File

@ -20,6 +20,8 @@ public class ServerConfig extends RunningConfig {
public static ConfigWrapper<Boolean> CRATE_OPEN_HELD = new ConfigWrapper(true);
public static ConfigWrapper<Boolean> CRATE_KEEP_CONTENTS = new ConfigWrapper(true);
public static ConfigWrapper<Integer> ITEM_HAZARD_DROP_TICKRATE = new ConfigWrapper(2);
public static ConfigWrapper<Boolean> ENABLE_MKU = new ConfigWrapper(true);
public static ConfigWrapper<Boolean> LEGACY_CRUCIBLE_RULES = new ConfigWrapper(false);
private static void initDefaults() {
configMap.put("DAMAGE_COMPATIBILITY_MODE", DAMAGE_COMPATIBILITY_MODE);
@ -32,6 +34,8 @@ public class ServerConfig extends RunningConfig {
configMap.put("CRATE_OPEN_HELD", CRATE_OPEN_HELD);
configMap.put("CRATE_KEEP_CONTENTS", CRATE_KEEP_CONTENTS);
configMap.put("ITEM_HAZARD_DROP_TICKRATE", ITEM_HAZARD_DROP_TICKRATE);
configMap.put("ENABLE_MKU", ENABLE_MKU);
configMap.put("LEGACY_CRUCIBLE_RULES", LEGACY_CRUCIBLE_RULES);
}
/** Initializes defaults, then reads the config file if it exists, then writes the config file. */

View File

@ -4,6 +4,7 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.fluid.Fluids;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
import com.hbm.items.ItemEnums;
@ -181,13 +182,13 @@ public class ConsumableRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pads_static, 1), new Object[] { "CDC", "ISI", "CDC", 'C', CU.ingot(), 'D', ModItems.ducttape, 'I', ANY_RUBBER.ingot(), 'S', ModItems.pads_slime });
//Batteries
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', ModBlocks.capacitor_gold });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', ModBlocks.capacitor_niobium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', ModBlocks.capacitor_tantalium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery, 1), new Object[] { "PCP", "PCP", "PCP", 'P', STEEL.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk2, 1), new Object[] { "PCP", "PCP", "PCP", 'P', ANY_PLASTIC.ingot(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.armor_battery_mk3, 1), new Object[] { "PCP", "PCP", "PCP", 'P', GOLD.plate(), 'C', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()) });
//Special Mods
CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.fusion_conductor });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.hadron_coil_alloy });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_container, 1), new Object[] { "HAH", "ACA", "HAH", 'H', ModItems.heart_piece, 'A', AL.ingot(), 'C', ModItems.coin_creeper });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_booster, 1), new Object[] { "GHG", "MCM", "GHG", 'G', GOLD.ingot(), 'H', ModItems.heart_container, 'M', ModItems.morning_glory, 'C', ModItems.coin_maskman });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ANY_COKE.gem(), 'C', ModItems.coin_worm });

View File

@ -161,7 +161,7 @@ public class RodRecipes {
public static void registerInit() {
/* GT6 */
if(OreDictionary.doesOreNameExist("ingotNaquadah-Enriched")) addPellet(new DictFrame("Naquadah-Enriched"), EnumWatzType.NQD);
if(OreDictionary.doesOreNameExist("ingotNaquadahEnriched")) addPellet(new DictFrame("NaquadahEnriched"), EnumWatzType.NQD);
if(OreDictionary.doesOreNameExist("ingotNaquadria")) addPellet(new DictFrame("Naquadria"), EnumWatzType.NQR);
}

View File

@ -9,6 +9,7 @@ import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ItemEnums.EnumPlantType;
import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.tool.ItemBlowtorch;
import com.hbm.items.tool.ItemModMinecart;
@ -62,10 +63,10 @@ public class ToolRecipes {
addShovel( DESH.ingot(), ModItems.desh_shovel);
addHoe( DESH.ingot(), ModItems.desh_hoe);
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', ModItems.battery_lithium });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_sword, 1), new Object[] { "RPR", "RPR", " B ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_pickaxe, 1), new Object[] { "RDM", " PB", " P ", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_axe, 1), new Object[] { " DP", "RRM", " PB", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.elec_shovel, 1), new Object[] { " P", "RRM", " B", 'P', ANY_PLASTIC.ingot(), 'D', DURA.ingot(), 'R', DURA.bolt(), 'M', ModItems.motor, 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addShapelessAuto(new ItemStack(ModItems.centri_stick, 1), new Object[] { ModItems.centrifuge_element, ModItems.energy_core, KEY_STICK });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.smashing_hammer, 1), new Object[] { "STS", "SPS", " P ", 'S', STEEL.block(), 'T', W.block(), 'P', ANY_PLASTIC.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', GOLD.plate(), 'S', KEY_STICK });
@ -136,7 +137,7 @@ public class ToolRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.mirror_tool), new Object[] { " A ", " IA", "I ", 'A', AL.ingot(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.rbmk_tool), new Object[] { " A ", " IA", "I ", 'A', PB.ingot(), 'I', IRON.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', ModItems.battery_generic });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.power_net_tool), new Object[] { "WRW", " I ", " B ", 'W', MINGRADE.wireFine(), 'R', REDSTONE.dust(), 'I', IRON.ingot(), 'B', EnumBatteryPack.BATTERY_LEAD.stack() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.analysis_tool), new Object[] { " G", " S ", "S ", 'G', KEY_ANYPANE, 'S', STEEL.ingot() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.toolbox), new Object[] { "CCC", "CIC", 'C', CU.plate(), 'I', IRON.ingot() });

View File

@ -12,6 +12,7 @@ import static com.hbm.inventory.OreDictManager.*;
import com.hbm.items.ItemAmmoEnums.*;
import com.hbm.items.ItemEnums.EnumCasingType;
import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.ModItems;
import com.hbm.items.weapon.GunB92Cell;
@ -76,6 +77,8 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_uzi_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_uzi, 'M', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_spas12, 1), new Object[] { "BRM", "BGS", 'B', DESH.lightBarrel(), 'R', DESH.lightReceiver(), 'M', GUNMETAL.mechanism(), 'G', ANY_PLASTIC.grip(), 'S', DESH.stock() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_panzerschreck, 1), new Object[] { "BBB", "PGM", 'B', DESH.heavyBarrel(), 'P', STEEL.plateCast(), 'G', DESH.grip(), 'M', GUNMETAL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_star_f, 1), new Object[] { "BRM", " G", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'G', ANY_PLASTIC.grip() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_star_f_akimbo, 1), new Object[] { "UMU", 'U', ModItems.gun_star_f, 'M', BIGMT.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3, 1), new Object[] { "BRM", "WGS", 'B', WEAPONSTEEL.lightBarrel(), 'R', WEAPONSTEEL.lightReceiver(), 'M', WEAPONSTEEL.mechanism(), 'W', WOOD.grip(), 'G', RUBBER.grip(), 'S', WOOD.stock() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_g3_zebra, 1), new Object[] { " M ", "MPM", " M ", 'M', BIGMT.mechanism(), 'P', ModItems.gun_g3 });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.gun_stinger, 1), new Object[] { "BBB", "PGM", 'B', WEAPONSTEEL.heavyBarrel(), 'P', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'G', WEAPONSTEEL.grip(), 'M', WEAPONSTEEL.mechanism() });
@ -148,7 +151,7 @@ public class WeaponRecipes {
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.DRILL_SATURNITE.ordinal()), new Object[] { " IP", "IIM", " IP", 'I', BIGMT.ingot(), 'P', ANY_HARDPLASTIC.ingot(), 'M', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_DIESEL.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plate(), 'P', ModItems.piston_selenium, 'S', STEEL.pipe() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_AVIATION.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', DURA.plateCast(), 'P', ModItems.piston_selenium, 'S', GUNMETAL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', ModBlocks.capacitor_gold });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_ELECTRIC.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_PLASTIC.ingot(), 'P', GOLD.wireDense(), 'S', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()) });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.ENGINE_TURBO.ordinal()), new Object[] { "DSD", "PPP", "DSD", 'D', ANY_BISMOIDBRONZE.plateCast(), 'P', ModItems.piston_selenium, 'S', WEAPONSTEEL.mechanism() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.MAGNET.ordinal()), new Object[] { "RGR", "GBG", "RGR", 'R', RUBBER.ingot(), 'G', GOLD.wireDense(), 'B', NB.block() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SIFTER.ordinal()), new Object[] { "IGI", "IGI", 'I', DURA.ingot(), 'G', ModBlocks.steel_grate });
@ -310,6 +313,9 @@ public class WeaponRecipes {
//Nuke parts
CraftingManager.addRecipeAuto(new ItemStack(ModItems.n2_charge, 1), new Object[] { " D ", "ERE", " D ", 'D', ModItems.ducttape, 'E', ModBlocks.det_charge, 'R', REDSTONE.block() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_spark, 1), new Object[] { " W ", "DSD", "DSD", 'W', MAGTUNG.wireDense(), 'D', ModItems.plate_dineutronium, 'S', ModItems.powder_spark_mix });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DSD", "DTD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.battery_trixite, 1), new Object[] { " W ", "DTD", "DSD", 'W', MAGTUNG.wireDense(), 'D', BIGMT.plateCast(), 'S', ModItems.powder_power, 'T', ModItems.crystal_trixite });
//Custom nuke rods
CraftingManager.addRecipeAuto(new ItemStack(ModItems.custom_tnt, 1), new Object[] { " C ", "TIT", "TIT", 'C', CU.plate(), 'I', IRON.plate(), 'T', ANY_HIGHEXPLOSIVE.ingot() });

View File

@ -24,7 +24,7 @@ public abstract class EntityDroneBase extends Entity {
public EntityDroneBase(World world) {
super(world);
this.setSize(1.5F, 2.0F);
this.setSize(0.75F, 0.75F);
}
public void setTarget(double x, double y, double z) {

View File

@ -150,10 +150,13 @@ public class EntityFBI extends EntityMob implements IRangedAttackMob {
canDestroy.add(Blocks.trapdoor);
canDestroy.add(ModBlocks.machine_press);
canDestroy.add(ModBlocks.machine_epress);
canDestroy.add(ModBlocks.machine_chemplant);
canDestroy.add(ModBlocks.machine_chemical_plant);
canDestroy.add(ModBlocks.machine_chemical_factory);
canDestroy.add(ModBlocks.machine_crystallizer);
canDestroy.add(ModBlocks.machine_turbine);
canDestroy.add(ModBlocks.machine_large_turbine);
canDestroy.add(ModBlocks.machine_industrial_turbine);
canDestroy.add(ModBlocks.machine_chungus);
canDestroy.add(ModBlocks.machine_purex);
canDestroy.add(ModBlocks.crate_iron);
canDestroy.add(ModBlocks.crate_steel);
canDestroy.add(ModBlocks.machine_diesel);

View File

@ -30,8 +30,6 @@ public class EntityMeteor extends Entity {
this.ignoreFrustumCheck = true;
this.isImmuneToFire = true;
this.setSize(4F, 4F);
if(worldObj.isRemote)
this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 200F, 0.9F + this.rand.nextFloat() * 0.2F, 0);
}
public List<BlockPos> getBlocksInRadius(World world, int x, int y, int z, int radius) {
@ -145,11 +143,13 @@ public class EntityMeteor extends Entity {
} else {
if(this.audioFly == null) this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 200F, 0.9F + this.rand.nextFloat() * 0.2F, 10);
if(this.audioFly.isPlaying()) {
// Update sound
this.audioFly.keepAlive();
this.audioFly.updateVolume(1F);
this.audioFly.updatePosition((int) this.posX, (int) this.posY, (int) this.posZ);
this.audioFly.updatePosition((float) this.posX, (float) (this.posY + this.height / 2), (float) this.posZ);
} else {
// Start playing the sound
EntityPlayer player = MainRegistry.proxy.me();

View File

@ -52,7 +52,7 @@ public abstract class EntityRailCarElectric extends EntityRailCarRidable {
if(stack != null && stack.getItem() instanceof IBatteryItem) {
IBatteryItem battery = (IBatteryItem) stack.getItem();
int powerNeeded = this.getMaxPower() - this.getPower();
long powerProvided = Math.min(battery.getDischargeRate(), battery.getCharge(stack));
long powerProvided = Math.min(battery.getDischargeRate(stack), battery.getCharge(stack));
int powerTransfered = (int) Math.min(powerNeeded, powerProvided);
if(powerTransfered > 0) {

View File

@ -421,7 +421,6 @@ public class ExplosionNukeGeneric {
public static void emp(World world, int x, int y, int z) {
if (!world.isRemote) {
Block b = world.getBlock(x,y,z);
TileEntity te = world.getTileEntity(x, y, z);
if (te != null && te instanceof IEnergyHandlerMK2) {
@ -440,8 +439,6 @@ public class ExplosionNukeGeneric {
if(random.nextInt(5) <= 1)
world.setBlock(x, y, z, ModBlocks.block_electrical_scrap);
}
if((b == ModBlocks.fusion_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater) && random.nextInt(10) == 0)
world.setBlock(x, y, z, ModBlocks.block_electrical_scrap);
}
}

View File

@ -110,7 +110,7 @@ public class ExplosionTom {
if(y <= craterFloor) {
if(worldObj.rand.nextInt(499) < 1) {
if(worldObj.rand.nextInt(200) == 0) {
worldObj.setBlock(pX, y, pZ, ModBlocks.ore_tektite_osmiridium, 0, 2);
} else {
worldObj.setBlock(pX, y, pZ, ModBlocks.tektite, 0, 2);

View File

@ -5,6 +5,7 @@ import java.util.List;
import java.util.UUID;
import com.hbm.config.RadiationConfig;
import com.hbm.config.ServerConfig;
import com.hbm.entity.mob.EntityDuck;
import com.hbm.handler.threading.PacketThreading;
import com.hbm.lib.ModDamageSource;
@ -261,6 +262,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
/// CONTAGION ///
public static int getContagion(EntityLivingBase entity) {
if(!ServerConfig.ENABLE_MKU.get()) return 0;
return getData(entity).contagion;
}
@ -315,7 +317,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
props.setFloat("hfr_digamma", digamma);
props.setInteger("hfr_asbestos", asbestos);
props.setInteger("hfr_bomb", bombTimer);
props.setInteger("hfr_contagion", contagion);
if(ServerConfig.ENABLE_MKU.get()) props.setInteger("hfr_contagion", contagion);
props.setInteger("hfr_blacklung", blacklung);
props.setInteger("hfr_oil", oil);
props.setInteger("hfr_fire", fire);
@ -343,7 +345,7 @@ public class HbmLivingProps implements IExtendedEntityProperties {
digamma = props.getFloat("hfr_digamma");
asbestos = props.getInteger("hfr_asbestos");
bombTimer = props.getInteger("hfr_bomb");
contagion = props.getInteger("hfr_contagion");
if(ServerConfig.ENABLE_MKU.get()) contagion = props.getInteger("hfr_contagion");
blacklung = props.getInteger("hfr_blacklung");
oil = props.getInteger("hfr_oil");
fire = props.getInteger("hfr_fire");

View File

@ -149,7 +149,7 @@ public class BobmazonOfferFactory {
special.add(new Offer(ItemKitNBT.create(
new ItemStack(ModItems.rod_of_discord).setStackDisplayName("Cock Joke"),
ModItems.canned_conserve.stackFromEnum(64, EnumFoodType.JIZZ).setStackDisplayName("Class A Horse Semen"),
ModItems.canned_conserve.stackFromEnum(64, EnumFoodType.SLIME).setStackDisplayName("Class A Horse Semen"),
new ItemStack(ModItems.pipe_lead).setStackDisplayName("Get Nutted, Dumbass"),
new ItemStack(ModItems.gem_alexandrite)
).setStackDisplayName("The Nut Bucket"), Requirement.HIDDEN, 64));

View File

@ -6,6 +6,7 @@ import java.util.Random;
import com.hbm.config.GeneralConfig;
import com.hbm.config.RadiationConfig;
import com.hbm.config.ServerConfig;
import com.hbm.config.WorldConfig;
import com.hbm.entity.mob.EntityCreeperNuclear;
import com.hbm.entity.mob.EntityDuck;
@ -371,6 +372,7 @@ public class EntityEffectHandler {
}
private static void handleContagion(EntityLivingBase entity) {
if(!ServerConfig.ENABLE_MKU.get()) return;
World world = entity.worldObj;
@ -676,7 +678,7 @@ public class EntityEffectHandler {
FlameCreator.composeEffect(entity.worldObj, x - living.width / 2 + living.width * rand.nextDouble(), y + rand.nextDouble() * living.height, z - living.width / 2 + living.width * rand.nextDouble(), FlameCreator.META_BLACK);
}
if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire);
if(props.fire > 0 || props.phosphorus > 0 || props.balefire > 0 || props.blackFire > 0) if(!entity.isEntityAlive()) ConfettiUtil.decideConfetti(living, DamageSource.onFire);
}
private static void handleDashing(Entity entity) {

View File

@ -23,7 +23,7 @@ import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
@Deprecated
@Deprecated // an experiment that i had to staple more and more features to until it ended up a bloated decaying corpse
public abstract class NEIUniversalHandler extends TemplateRecipeHandler implements ICompatNHNEI {
public LinkedList<RecipeTransferRect> transferRectsRec = new LinkedList<RecipeTransferRect>();

View File

@ -11,8 +11,8 @@ import com.hbm.blocks.ModBlocks;
import com.hbm.handler.imc.ICompatNHNEI;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.gui.GUIMachineShredder;
import com.hbm.inventory.recipes.MachineRecipes;
import com.hbm.inventory.recipes.ShredderRecipes;
import com.hbm.items.ModItems;
import com.hbm.lib.RefStrings;
import codechicken.nei.NEIServerUtils;
@ -175,9 +175,18 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler implements ICom
public TemplateRecipeHandler newInstance() {
if(fuels == null || fuels.isEmpty())
fuels = new ArrayList<Fuel>();
for(ItemStack i : MachineRecipes.instance().getBlades()) {
for(ItemStack i : getBlades()) {
fuels.add(new Fuel(i));
}
return super.newInstance();
}
public static ArrayList<ItemStack> getBlades() {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.blades_advanced_alloy));
fuels.add(new ItemStack(ModItems.blades_steel));
fuels.add(new ItemStack(ModItems.blades_titanium));
fuels.add(new ItemStack(ModItems.blades_desh));
return fuels;
}
}

View File

@ -0,0 +1,10 @@
package com.hbm.interfaces;
public enum HalfLifeType {
/** Counted in days **/
SHORT,
/** Counted in years **/
MEDIUM,
/** Counted in hundreds of years **/
LONG;
}

View File

@ -1,429 +0,0 @@
package com.hbm.interfaces;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Arrays;
import org.apache.logging.log4j.Level;
import com.google.common.annotations.Beta;
import com.hbm.hazard.HazardRegistry;
import com.hbm.main.MainRegistry;
import com.hbm.util.BobMathUtil;
import com.hbm.util.i18n.I18nUtil;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
/**
* Interface for customizable warheads or other explosive devices
* @author UFFR
*
*/
@Beta
@Spaghetti("AAAAAAAA")
public interface ICustomWarhead
{
public static enum EnumCustomWarhead
{
AMAT,
BF,
BIO,
CHEM,
FUSION,
GRAV,
HE,
NUCLEAR,
TX,
SCHRAB,
ZPE;
public String getLoc()
{
return I18nUtil.resolveKey("warhead.".concat(toString()));
}
public enum EnumChemicalType
{
ACID,
CHLORINE,
NERVE,
TOX;
public String getLoc()
{
return I18nUtil.resolveKey("warhead.CHEM.".concat(toString()));
}
}
public enum EnumBioType
{
ANTHRAX,
MKU;
public String getLoc()
{
return I18nUtil.resolveKey("warhead.BIO.".concat(toString()));
}
}
}
public static enum EnumCustomWarheadTrait
{
CLEAN,
CLEANISH,
DIRTY,
RAD,
SALT;
public String getLoc()
{
return I18nUtil.resolveKey("warheadTrait.".concat(toString()));
}
}
public static enum EnumWeaponType
{
DENIAL,
STRATEGIC,
TACTICAL,
WMD;
public String getLoc()
{
return I18nUtil.resolveKey("warheadType.".concat(toString()));
}
}
public static final String KEY_ANTHRAX = "warheadFuel.ANTHRAX";
public static final String KEY_MKU = "warheadFuel.MKU";
public static final String KEY_CAUSTIC = "warheadFuel.ACID";
public static final String KEY_NERVE = "warheadFuel.NERVE";
public static final String KEY_TOX = "warheadFuel.TOX";
public static final String NBT_GROUP = "NTM_NUKE_INFO";
public static final String NBT_YIELD = "YIELD";
public static final String NBT_ALTITUDE = "ALTITUDE";
public static final String NBT_MASS = "MASS";
public static final String NBT_SPECIAL = "SPECIAL_FIELD";
public static final String NBT_WARHEAD = "WARHEAD";
public static final String NBT_TYPE = "WARHEAD_TYPE";
public static final String NBT_TRAIT = "WARHEAD_TRAIT";
public static final DecimalFormat df = new DecimalFormat("#.00");
public static EnumChatFormatting getColorFromWarhead(EnumCustomWarhead warhead)
{
switch (warhead)
{
case AMAT:
return EnumChatFormatting.DARK_RED;
case BF:
return EnumChatFormatting.GREEN;
case BIO:
return EnumChatFormatting.GOLD;
case CHEM:
return EnumChatFormatting.YELLOW;
case FUSION:
return EnumChatFormatting.BLUE;
case GRAV:
return EnumChatFormatting.DARK_GRAY;
case HE:
return EnumChatFormatting.RED;
case NUCLEAR:
return EnumChatFormatting.DARK_GREEN;
case SCHRAB:
return EnumChatFormatting.AQUA;
case TX:
return EnumChatFormatting.DARK_PURPLE;
case ZPE:
return (System.currentTimeMillis() % 1000 < 500 ? EnumChatFormatting.DARK_AQUA : EnumChatFormatting.LIGHT_PURPLE);
default:
return EnumChatFormatting.WHITE;
}
}
public default float getYield()
{
return 0.0F;
}
public default EnumCustomWarhead getWarheadType(NBTTagCompound data)
{
return EnumCustomWarhead.valueOf(data.getString(NBT_WARHEAD));
}
public default EnumWeaponType getWeaponType(NBTTagCompound data)
{
return EnumWeaponType.valueOf(data.getString(NBT_TYPE));
}
public default EnumCustomWarheadTrait getWeaponTrait(NBTTagCompound data)
{
return EnumCustomWarheadTrait.valueOf(data.getString(NBT_TRAIT));
}
public ItemStack constructNew();
public ICustomWarhead getInstance();
public default Item getItem()
{
return (Item) this;
}
public static ItemStack addData(NBTTagCompound data, Item item)
{
ItemStack stackOut = new ItemStack(item);
stackOut.stackTagCompound = new NBTTagCompound();
stackOut.stackTagCompound.setTag(NBT_GROUP, data);
return stackOut.copy();
}
public default NBTTagCompound getWarheadData(ItemStack stack)
{
return stack.getTagCompound().getCompoundTag(NBT_GROUP);
}
public default ItemStack addFuel(ItemStack stack, Enum<?> fuel, float amount)
{
if (stack != null && stack.getItem() instanceof ICustomWarhead)
{
NBTTagCompound data = getWarheadData(stack);
data.setFloat(fuel.toString(), amount);
data.setFloat(NBT_MASS, data.getFloat(NBT_MASS) + amount);
}
return stack;
}
public default ItemStack addData(ItemStack stack, String key, String value)
{
if (stack != null && stack.getItem() instanceof ICustomWarhead)
getWarheadData(stack).setString(key, value);
return stack;
}
public default void addCompositionalInfo(NBTTagCompound data, List<String> tooltip, List<Enum<?>> combinedFuels)
{
for (Enum<?> f : combinedFuels)
if (data.getFloat(f.toString()) > 0)
tooltip.add(String.format(Locale.US, "%s: %skg (%s)", I18nUtil.resolveKey("warheadFuel.".concat(f.toString())), df.format(data.getFloat(f.toString())), BobMathUtil.toPercentage(data.getFloat(f.toString()), data.getFloat(NBT_MASS))));
}
public default void addTooltip(ItemStack stack, List<String> tooltip)
{
// tooltip.clear();
try {
NBTTagCompound data = getWarheadData(stack);
final ArrayList<Enum<?>> combinedFuels = new ArrayList<>();
combinedFuels.addAll(Arrays.asList(FissileFuel.values()));
combinedFuels.addAll(Arrays.asList(FusionFuel.values()));
combinedFuels.addAll(Arrays.asList(SaltedFuel.values()));
combinedFuels.addAll(Arrays.asList(EnumCustomWarhead.values()));
switch (getWarheadType(data))
{
case NUCLEAR:
case TX:
case HE:
tooltip.add("Composition:");
addCompositionalInfo(data, tooltip, combinedFuels);
break;
default:
break;
}
final EnumCustomWarhead warhead = getWarheadType(data);
tooltip.add(data.getFloat(NBT_MASS) + "kg total");
tooltip.add("");
switch (warhead)
{
case CHEM:
case BIO:
tooltip.add("Type: " + getColorFromWarhead(warhead) + I18nUtil.resolveKey("warhead.".concat(warhead.toString()), I18nUtil.resolveKey(data.getString(NBT_SPECIAL))));
break;
default:
tooltip.add("Type: " + getColorFromWarhead(warhead) + warhead.getLoc());
break;
}
tooltip.add("Function: " + getWeaponType(data).getLoc());
switch (warhead)
{
case AMAT:
case BF:
case FUSION:
case GRAV:
case HE:
case NUCLEAR:
case TX:
tooltip.add("Yield: " + BobMathUtil.getShortNumber(data.getInteger(NBT_YIELD)) + "T");
break;
case BIO:
case CHEM:
case SCHRAB:
tooltip.add("Radius: " + BobMathUtil.getShortNumber(data.getInteger(NBT_YIELD)) + "M");
break;
default:
break;
}
tooltip.add("Trait: " + getWeaponTrait(data).getLoc());
}
catch (Exception e)
{
MainRegistry.logger.catching(Level.ERROR, e);
}
}
public enum FissileFuel
{
U233(15F, 197.5F, HazardRegistry.u233, 19.05F),
U235(52F, 202.5F, HazardRegistry.u235, 19.05F),
Np237(60F, 202.5F, HazardRegistry.np237, 20.45F),
Pu239(10F, 207.1F, HazardRegistry.pu239, 19.86F),
Pu241(12, 210F, HazardRegistry.pu241, 19.86F),
Am241(66, 210F, HazardRegistry.am241, 13.67F),
Am242m(11F, 212F, HazardRegistry.am242, 13.67F),
Sa326(1F, 250F, HazardRegistry.sa326, 39.7F);
public final float criticalMass;
public final float energyReleased;
public final float radioactivity;
private final float mass;
private FissileFuel(float criticalMass, float energyReleased, float radioactivity, float mass)
{
this.criticalMass = criticalMass;
this.energyReleased = energyReleased;
this.radioactivity = radioactivity;
this.mass = mass;
}
public float getBlockMass()
{
return mass * 100;
}
public float getIngotMass()
{
return getBlockMass() / 9;
}
public float getNuggetMass()
{
return getIngotMass() / 9;
}
public String getLoc()
{
return I18nUtil.resolveKey("warheadFuel.".concat(toString()));
}
}
public enum FusionFuel
{
DEUT,
TRIT,
Li,
LiDEUT;
public String getLoc()
{
return I18nUtil.resolveKey("warheadFuel".concat(toString()));
}
}
public enum SaltedFuel
{
Co59(1.4902F * 0.75F, 5, HalfLifeType.MEDIUM, 8.86F),
Co60(1.4902F, 5, HalfLifeType.MEDIUM, 8.86F),
Sr90(0.546F, 28, HalfLifeType.MEDIUM, 2.64F),
Cs137(1.1737F, 30, HalfLifeType.MEDIUM, 1.93F),
Ta181(0.52F * 0.75F, 114, HalfLifeType.SHORT, 16.65F),
Ta182(0.52F, 114, HalfLifeType.SHORT, 16.654F),
Au197(1.3735F * 0.75F, 2, HalfLifeType.SHORT, 19.32F),
Au198(1.3735F, 2, HalfLifeType.SHORT, 19.32F),
Pu240(5.25575F, 65, HalfLifeType.LONG, 19.86F),
Sa327(0.5F, 100, HalfLifeType.LONG, 39.7F);
public final float decayEnergy;
public final int halfLife;
public final HalfLifeType type;
private final float mass;
SaltedFuel(float decayEnergy, int halfLife, HalfLifeType type, float mass)
{
this.decayEnergy = decayEnergy;
this.halfLife = halfLife;
this.type = type;
this.mass = mass;
}
public enum HalfLifeType
{
/** Counted in days **/
SHORT,
/** Counted in years **/
MEDIUM,
/** Counted in hundreds of years **/
LONG;
}
public float getBlockMass()
{
return mass * 100;
}
public float getIngotMass()
{
return getBlockMass() / 9;
}
public float getNuggetMass()
{
return getIngotMass() / 9;
}
}
/*public static class CustomWarheadWrapper
{
public static final ICustomWarhead cWarhead = (ICustomWarhead) ModItems.custom_warhead;
public static final ICustomWarhead cCore = (ICustomWarhead) ModItems.custom_core;
public static final CustomWarheadWrapper gravimetricBase = new CustomWarheadWrapper(cWarhead).addFuel(EnumCustomWarhead.GRAV, 1000.0F).addData(NBT_TYPE, EnumWeaponType.TACTICAL).addData(NBT_WARHEAD, EnumCustomWarhead.GRAV).addData(NBT_TRAIT, EnumCustomWarheadTrait.CLEAN);
public static final CustomWarheadWrapper pureFusionBase = new CustomWarheadWrapper(cWarhead).addFuel(FusionFuel.LiDEUT, 500).addData(NBT_TYPE, EnumWeaponType.TACTICAL).addData(NBT_WARHEAD, EnumCustomWarhead.FUSION).addData(NBT_TRAIT, EnumCustomWarheadTrait.CLEANISH).setStackData(8, 1);
public static final CustomWarheadWrapper chemicalBase = new CustomWarheadWrapper(cWarhead).addFuel(EnumChemicalType.NERVE, 15).addData(NBT_TYPE, EnumWeaponType.WMD).addData(NBT_WARHEAD, EnumCustomWarhead.CHEM).addData(NBT_TRAIT, EnumCustomWarheadTrait.DIRTY).addData(NBT_SPECIAL, KEY_NERVE).setStackData(1, 2);
public static final CustomWarheadWrapper biologicalBase = new CustomWarheadWrapper(cWarhead).addFuel(EnumBioType.ANTHRAX, 15).addData(NBT_TYPE, EnumWeaponType.WMD).addData(NBT_WARHEAD, EnumCustomWarhead.BIO).addData(NBT_TRAIT, EnumCustomWarheadTrait.DIRTY).addData(NBT_SPECIAL, KEY_ANTHRAX).setStackData(1, 3);
public static final CustomWarheadWrapper saltedBase = new CustomWarheadWrapper(cWarhead).addFuel(FissileFuel.U235, 20).addFuel(FissileFuel.Pu239, 5).addFuel(FusionFuel.LiDEUT, 20).addFuel(SaltedFuel.Co59, 10).addData(NBT_TYPE, EnumWeaponType.DENIAL).addData(NBT_WARHEAD, EnumCustomWarhead.TX).addData(NBT_TRAIT, EnumCustomWarheadTrait.SALT).setStackData(1, 4);
private ItemStack stack;
private ICustomWarhead warhead;
public CustomWarheadWrapper(ItemStack stack)
{
if (stack != null && stack.getItem() instanceof ICustomWarhead)
{
this.stack = ((ICustomWarhead) stack.getItem()).constructNew();
warhead = (ICustomWarhead) stack.getItem();
}
else
throw new IllegalArgumentException("Input stack item is not instance of " + ICustomWarhead.class.toString());
}
public CustomWarheadWrapper(ICustomWarhead warhead)
{
stack = warhead.constructNew();
this.warhead = warhead;
}
public CustomWarheadWrapper(Item item)
{
if (!(item instanceof ICustomWarhead))
throw new IllegalArgumentException("Input stack item is not instance of [ICustomWarhead]");
stack = ((ICustomWarhead) item).constructNew();
warhead = (ICustomWarhead) item;
}
public CustomWarheadWrapper addFuel(Enum<?> fuel, float amount)
{
warhead.addFuel(stack, fuel, amount);
return this;
}
public CustomWarheadWrapper addData(String key, String value)
{
warhead.addData(stack, key, value);
return this;
}
public CustomWarheadWrapper addData(String key, Enum<?> value)
{
return addData(key, value.toString());
}
public CustomWarheadWrapper setStackData(int stackSize, int meta)
{
stack.stackSize = stackSize <= 1 ? 1 : stackSize;
stack.setItemDamage(meta <= 0 ? 0 : meta);
return this;
}
public NBTTagCompound regurgitateData()
{
return (NBTTagCompound) warhead.getWarheadData(getStack()).copy();
}
public ICustomWarhead getInterface()
{
return warhead;
}
public ItemStack getStack()
{
return stack.copy();
}
}*/
}

View File

@ -259,11 +259,6 @@ public class OreDictManager {
* RARE METALS
*/
public static final DictFrame AUSTRALIUM = new DictFrame("Australium");
public static final DictFrame REIIUM = new DictFrame("Reiium");
public static final DictFrame WEIDANIUM = new DictFrame("Weidanium");
public static final DictFrame UNOBTAINIUM = new DictFrame("Unobtainium");
public static final DictFrame VERTICIUM = new DictFrame("Verticium");
public static final DictFrame DAFFERGON = new DictFrame("Daffergon");
/*
* RARE EARTHS
*/
@ -466,11 +461,6 @@ public class OreDictManager {
* RARE METALS
*/
AUSTRALIUM .nugget(nugget_australium) .billet(billet_australium) .ingot(ingot_australium) .dust(powder_australium) .block(block_australium) .ore(ore_australium);
REIIUM .block(block_reiium);
WEIDANIUM .block(block_weidanium);
UNOBTAINIUM .block(block_unobtainium);
VERTICIUM .block(block_verticium);
DAFFERGON .block(block_daffergon);
/*
* RARE EARTHS

View File

@ -0,0 +1,62 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotNonRetarded;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerBatteryREDD extends Container {
protected TileEntityBatteryREDD socket;
public ContainerBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) {
this.socket = tedf;
this.addSlotToContainer(new SlotNonRetarded(socket, 0, 26, 53));
this.addSlotToContainer(new SlotNonRetarded(socket, 1, 80, 53));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 99 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 157));
}
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return socket.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack copy = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if(slot != null && slot.getHasStack()) {
ItemStack stack = slot.getStack();
copy = stack.copy();
if(index <= 1) {
if(!this.mergeItemStack(stack, 2, this.inventorySlots.size(), true)) return null;
} else {
if(!this.mergeItemStack(stack, 0, 2, false)) return null;
}
if(stack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return copy;
}
}

View File

@ -0,0 +1,61 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotNonRetarded;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerBatterySocket extends Container {
protected TileEntityBatterySocket socket;
public ContainerBatterySocket(InventoryPlayer invPlayer, TileEntityBatterySocket tedf) {
this.socket = tedf;
this.addSlotToContainer(new SlotNonRetarded(socket, 0, 35, 35));
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 9; j++) {
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 99 + i * 18));
}
}
for(int i = 0; i < 9; i++) {
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 157));
}
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return socket.isUseableByPlayer(player);
}
@Override
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
ItemStack copy = null;
Slot slot = (Slot) this.inventorySlots.get(index);
if(slot != null && slot.getHasStack()) {
ItemStack stack = slot.getStack();
copy = stack.copy();
if(index == 0) {
if(!this.mergeItemStack(stack, 1, this.inventorySlots.size(), true)) return null;
} else {
if(!this.mergeItemStack(stack, 0, 1, false)) return null;
}
if(stack.stackSize == 0) {
slot.putStack((ItemStack) null);
} else {
slot.onSlotChanged();
}
}
return copy;
}
}

View File

@ -1,88 +0,0 @@
package com.hbm.inventory.container;
import com.hbm.inventory.SlotCraftingOutput;
import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;
public class ContainerMachineSchrabidiumTransmutator extends Container {
private TileEntityMachineSchrabidiumTransmutator nukeBoy;
public ContainerMachineSchrabidiumTransmutator(InventoryPlayer invPlayer, TileEntityMachineSchrabidiumTransmutator tedf) {
nukeBoy = tedf;
this.addSlotToContainer(new Slot(tedf, 0, 44, 63));
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 1, 134, 63));
this.addSlotToContainer(new Slot(tedf, 2, 26, 18));
this.addSlotToContainer(new Slot(tedf, 3, 8, 108));
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 9; j++)
{
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56));
}
}
for(int i = 0; i < 9; i++)
{
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56));
}
}
@Override
public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2)
{
ItemStack var3 = null;
Slot var4 = (Slot) this.inventorySlots.get(par2);
if (var4 != null && var4.getHasStack())
{
ItemStack var5 = var4.getStack();
var3 = var5.copy();
if (par2 <= 3) {
if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true))
{
return null;
}
}
else if (!this.mergeItemStack(var5, 0, 1, false))
{
if (!this.mergeItemStack(var5, 3, 4, false))
if (!this.mergeItemStack(var5, 2, 3, false))
return null;
}
if (var5.stackSize == 0)
{
var4.putStack((ItemStack) null);
}
else
{
var4.onSlotChanged();
}
}
return var3;
}
@Override
public boolean canInteractWith(EntityPlayer player) {
return nukeBoy.isUseableByPlayer(player);
}
@Override
public void updateProgressBar(int i, int j) {
if(i == 1)
{
nukeBoy.power = j;
}
}
}

View File

@ -70,7 +70,12 @@ public class FluidType {
this.id = Fluids.registerSelf(this);
}
/** For custom fluids */
public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) {
setupCustom(name, color, p, f, r, symbol, texName, tint, id, displayName);
}
public FluidType setupCustom(String name, int color, int p, int f, int r, EnumSymbol symbol, String texName, int tint, int id, String displayName) {
this.stringId = name;
this.color = color;
this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US);
@ -85,6 +90,7 @@ public class FluidType {
this.id = id;
Fluids.register(this, id);
return this;
}
public FluidType(int forcedId, String name, int color, int p, int f, int r, EnumSymbol symbol) {
@ -97,6 +103,10 @@ public class FluidType {
/** For CompatFluidRegistry */
public FluidType(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) {
setupForeign(name, id, color, p, f, r, symbol, texture);
}
public FluidType setupForeign(String name, int id, int color, int p, int f, int r, EnumSymbol symbol, ResourceLocation texture) {
this.stringId = name;
this.color = color;
this.unlocalized = "hbmfluid." + name.toLowerCase(Locale.US);
@ -108,8 +118,9 @@ public class FluidType {
this.renderWithTint = true;
this.id = id;
Fluids.register(this, id);
Fluids.foreignFluids.add(this);
Fluids.register(this, id);
return this;
}
public FluidType setTemp(int temperature) {

View File

@ -418,6 +418,8 @@ public class Fluids {
if(!customTypes.exists()) initDefaultFluids(customTypes);
readCustomFluids(customTypes);
for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad();
//AND DON'T FORGET THE META DOWN HERE
// V V V V V V V V
@ -601,6 +603,7 @@ public class Fluids {
ACID = PEROXIDE;
for(FluidType custom : customFluids) metaOrder.add(custom);
for(FluidType custom : foreignFluids) metaOrder.add(custom);
CHLORINE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 2F, 20, HazardClass.GAS_LUNG, false)));
PHOSGENE.addTraits(new FT_Toxin().addEntry(new ToxinDirectDamage(ModDamageSource.cloud, 4F, 20, HazardClass.GAS_LUNG, false)));
@ -670,7 +673,6 @@ public class Fluids {
throw new IllegalStateException("A severe error has occoured during NTM's fluid registering process! The MetaOrder and Mappings are inconsistent! Mapping size: " + idMapping.size()+ " / MetaOrder size: " + metaOrder.size());
}
/// FINAL ///
long baseline = 100_000L; //we do not know
@ -817,7 +819,9 @@ public class Fluids {
String texture = obj.get("texture").getAsString();
int temperature = obj.get("temperature").getAsInt();
FluidType type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature);
FluidType type = fluidMigration.get(name);
if(type == null) type = new FluidType(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature);
else type.setupCustom(name, color, p, f, r, symbol, texture, tint, id, displayName).setTemp(temperature);
customFluids.add(type);
}
@ -882,12 +886,15 @@ public class Fluids {
}
}
public static HashMap<String, FluidType> fluidMigration = new HashMap(); // since reloading would create new fluid instances, and those break existing machines
public static void reloadFluids(){
File folder = MainRegistry.configHbmDir;
File customTypes = new File(folder.getAbsolutePath() + File.separatorChar + "hbmFluidTypes.json");
if(!customTypes.exists()) initDefaultFluids(customTypes);
for(FluidType type : customFluids) {
fluidMigration.put(type.getName(), type);
idMapping.remove(type.getID());
registerOrder.remove(type);
nameMapping.remove(type.getName());
@ -896,6 +903,7 @@ public class Fluids {
customFluids.clear();
for(FluidType type : foreignFluids) {
fluidMigration.put(type.getName(), type);
idMapping.remove(type.getID());
registerOrder.remove(type);
nameMapping.remove(type.getName());
@ -915,6 +923,7 @@ public class Fluids {
}
for(IFluidRegisterListener listener : additionalListeners) listener.onFluidsLoad();
for(FluidType custom : foreignFluids) metaOrder.add(custom);
}
private static void registerCalculatedFuel(FluidType type, double base, double combustMult, FuelGrade grade) {

View File

@ -0,0 +1,87 @@
package com.hbm.inventory.gui;
import java.math.BigInteger;
import java.util.Locale;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import com.hbm.inventory.container.ContainerBatteryREDD;
import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toserver.NBTControlPacket;
import com.hbm.tileentity.machine.storage.TileEntityBatteryREDD;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
public class GUIBatteryREDD extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_battery_redd.png");
private TileEntityBatteryREDD battery;
public GUIBatteryREDD(InventoryPlayer invPlayer, TileEntityBatteryREDD tedf) {
super(new ContainerBatteryREDD(invPlayer, tedf));
battery = tedf;
this.xSize = 176;
this.ySize = 181;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
NBTTagCompound data = new NBTTagCompound();
if(this.checkClick(x, y, 133, 16, 18, 18)) { this.click(); data.setBoolean("low", true); }
if(this.checkClick(x, y, 133, 52, 18, 18)) { this.click(); data.setBoolean("high", true); }
if(this.checkClick(x, y, 152, 35, 16, 16)) { this.click(); data.setBoolean("priority", true); }
if(!data.hasNoTags()) PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, battery.xCoord, battery.yCoord, battery.zCoord));
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
GL11.glPushMatrix();
GL11.glDisable(GL12.GL_RESCALE_NORMAL);
GL11.glScaled(0.5, 0.5, 1);
String label = String.format(Locale.US, "%,d", battery.power) + " HE";
this.fontRendererObj.drawString(label, 242 - this.fontRendererObj.getStringWidth(label), 45, 0x00ff00);
String deltaText = String.format(Locale.US, "%,d", battery.delta) + " HE/s";
int comp = battery.delta.compareTo(BigInteger.ZERO);
if(comp > 0) deltaText = EnumChatFormatting.GREEN + "+" + deltaText;
else if(comp < 0) deltaText = EnumChatFormatting.RED + deltaText;
else deltaText = EnumChatFormatting.YELLOW + "+" + deltaText;
this.fontRendererObj.drawString(deltaText, 242 - this.fontRendererObj.getStringWidth(deltaText), 65, 0x00ff00);
GL11.glPopMatrix();
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
drawTexturedModalRect(guiLeft + 133, guiTop + 16, 176, 52 + battery.redLow * 18, 18, 18);
drawTexturedModalRect(guiLeft + 133, guiTop + 52, 176, 52 + battery.redHigh * 18, 18, 18);
drawTexturedModalRect(guiLeft + 152, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16);
}
}

View File

@ -0,0 +1,116 @@
package com.hbm.inventory.gui;
import java.util.ArrayList;
import java.util.List;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerBatterySocket;
import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toserver.NBTControlPacket;
import com.hbm.tileentity.machine.storage.TileEntityBatterySocket;
import com.hbm.util.BobMathUtil;
import com.hbm.util.i18n.I18nUtil;
import api.hbm.energymk2.IBatteryItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
public class GUIBatterySocket extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_battery_socket.png");
private TileEntityBatterySocket battery;
public GUIBatterySocket(InventoryPlayer invPlayer, TileEntityBatterySocket tedf) {
super(new ContainerBatterySocket(invPlayer, tedf));
battery = tedf;
this.xSize = 176;
this.ySize = 181;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
if(battery.slots[0] != null && battery.slots[0].getItem() instanceof IBatteryItem) {
//this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.getMaxPower());
IBatteryItem item = (IBatteryItem) battery.slots[0].getItem();
String deltaText = BobMathUtil.getShortNumber(Math.abs(battery.delta)) + "HE/s";
if(battery.delta > 0) deltaText = EnumChatFormatting.GREEN + "+" + deltaText;
else if(battery.delta < 0) deltaText = EnumChatFormatting.RED + "-" + deltaText;
else deltaText = EnumChatFormatting.YELLOW + "+" + deltaText;
String[] info = { BobMathUtil.getShortNumber(item.getCharge(battery.slots[0])) + "/" + BobMathUtil.getShortNumber(item.getMaxCharge(battery.slots[0])) + "HE", deltaText };
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 34, 52, mouseX, mouseY, info);
}
String lang = null;
switch(battery.priority) {
case LOW: lang = "low"; break;
case HIGH: lang = "high"; break;
default: lang = "normal"; break;
}
List<String> priority = new ArrayList();
priority.add(I18nUtil.resolveKey("battery.priority." + lang));
priority.add(I18nUtil.resolveKey("battery.priority.recommended"));
String[] desc = I18nUtil.resolveKeyArray("battery.priority." + lang + ".desc");
for(String s : desc) priority.add(s);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 125, guiTop + 35, 16, 16, mouseX, mouseY, priority);
}
protected void mouseClicked(int x, int y, int i) {
super.mouseClicked(x, y, i);
NBTTagCompound data = new NBTTagCompound();
if(this.checkClick(x, y, 106, 16, 18, 18)) { this.click(); data.setBoolean("low", true); }
if(this.checkClick(x, y, 106, 52, 18, 18)) { this.click(); data.setBoolean("high", true); }
if(this.checkClick(x, y, 125, 35, 16, 16)) { this.click(); data.setBoolean("priority", true); }
if(!data.hasNoTags()) PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, battery.xCoord, battery.yCoord, battery.zCoord));
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(battery.slots[0] != null && battery.slots[0].getItem() instanceof IBatteryItem) {
IBatteryItem item = (IBatteryItem) battery.slots[0].getItem();
long power = item.getCharge(battery.slots[0]);
long maxPower = item.getMaxCharge(battery.slots[0]);
if(power > Long.MAX_VALUE / 100) {
power /= 100;
maxPower /= 100;
}
if(maxPower <= 1) maxPower = 1;
int p = (int) (power * 52 / maxPower); // won't work then flying too close to the sun (the limits of the LONG data type)
drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p);
}
drawTexturedModalRect(guiLeft + 106, guiTop + 16, 176, 52 + battery.redLow * 18, 18, 18);
drawTexturedModalRect(guiLeft + 106, guiTop + 52, 176, 52 + battery.redHigh * 18, 18, 18);
drawTexturedModalRect(guiLeft + 125, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16);
}
}

View File

@ -1,23 +1,29 @@
package com.hbm.inventory.gui;
import com.hbm.lib.RefStrings;
import com.hbm.util.Tuple;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.util.ResourceLocation;
import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.Locale;
import java.util.Stack;
public class GUICalculator extends GuiScreen {
private static final ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/gui/calculator.png");
private int xSize = 220;
private int ySize = 50;
private int borderWidth = 2;
private GuiTextField inputField;
private int selectedHist = -1;
private static final int maxHistory = 6;
private static Deque<Tuple.Pair<String, Double>> history = new ArrayDeque<>();
private String latestResult = "?";
@Override
@ -46,8 +52,15 @@ public class GUICalculator extends GuiScreen {
String input = inputField.getText().replaceAll("[^\\d+\\-*/^!.()\\sA-Za-z]+", "");
if (p_73869_1_ == 13 || p_73869_1_ == 10) { // when pressing enter (CR or LF)
if (selectedHist != -1) {
input = new ArrayList<>(history).get(selectedHist).key;
inputField.setText(input);
selectedHist = -1;
} else {
try {
double result = evaluateExpression(input);
history.addFirst(new Tuple.Pair<String,Double>(input, result));
if (history.size() > maxHistory) history.removeLast();
String plainStringRepresentation = (new BigDecimal(result, MathContext.DECIMAL64)).toPlainString();
GuiScreen.setClipboardString(plainStringRepresentation);
inputField.setText(plainStringRepresentation);
@ -56,6 +69,15 @@ public class GUICalculator extends GuiScreen {
} catch (Exception ignored) {}
return;
}
}
if (p_73869_2_ == 200) { // up arrow
selectedHist = Math.max(selectedHist - 1, -1);
} else if (p_73869_2_ == 208) { // down arrow
selectedHist = Math.min(selectedHist + 1, history.size() - 1);
} else {
selectedHist = -1;
}
if (input.isEmpty()) {
latestResult = "?";
@ -72,14 +94,27 @@ public class GUICalculator extends GuiScreen {
super.drawScreen(mouseX, mouseY, partialTicks);
GL11.glColor4f(1F, 1F, 1F, 1F);
mc.getTextureManager().bindTexture(texture);
int x = (width - xSize) / 2;
int y = (height - ySize) / 2;
int histHeight = (fontRendererObj.FONT_HEIGHT + 2) * maxHistory;
int histStart = y + 30 + fontRendererObj.FONT_HEIGHT + 8;
drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
drawRect(x, y, x+xSize, y+ySize+histHeight, 0xFF2d2d2d);
drawRect(x+borderWidth, y+borderWidth, x+xSize-borderWidth, y+ySize-borderWidth+histHeight, 0xFF3d3d3d);
drawRect(x, histStart - 5, x+xSize, histStart - 3, 0xFF2d2d2d);
inputField.drawTextBox();
fontRendererObj.drawString("=" + latestResult, x + 5, y + 30, -1);
int i = 0;
for (Tuple.Pair<String, Double> prevInput : history) {
int hy = y + 50 + (fontRendererObj.FONT_HEIGHT+1)*i;
if (i == selectedHist) {
drawRect(x + 4, hy - 1, x + 4 + xSize - 9, hy + fontRendererObj.FONT_HEIGHT, 0xFF111111);
}
fontRendererObj.drawString(prevInput.key + " = " + prevInput.value, x + 5, hy, -1);
i++;
}
}
/**

View File

@ -6,13 +6,12 @@ import com.hbm.inventory.container.ContainerCrateDesh;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.util.ResourceLocation;
public class GUICrateDesh extends GuiContainer {
public class GUICrateDesh extends GuiCrateBase {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_desh.png");
private IInventory crate;

View File

@ -7,12 +7,11 @@ import com.hbm.inventory.container.ContainerCrateIron;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUICrateIron extends GuiContainer {
public class GUICrateIron extends GuiCrateBase {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_iron.png");
private IInventory diFurnace;

View File

@ -6,13 +6,12 @@ import com.hbm.inventory.container.ContainerCrateSteel;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.util.ResourceLocation;
public class GUICrateSteel extends GuiContainer {
public class GUICrateSteel extends GuiCrateBase {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_steel.png");
private IInventory crate;

View File

@ -7,12 +7,11 @@ import com.hbm.inventory.container.ContainerCrateTemplate;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUICrateTemplate extends GuiContainer {
public class GUICrateTemplate extends GuiCrateBase {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_template.png");
private IInventory diFurnace;

View File

@ -8,12 +8,11 @@ import com.hbm.inventory.container.ContainerCrateTungsten;
import com.hbm.lib.RefStrings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUICrateTungsten extends GuiContainer {
public class GUICrateTungsten extends GuiCrateBase {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten.png");
private static ResourceLocation texture_hot = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_crate_tungsten_hot.png");

View File

@ -1,60 +0,0 @@
package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIMachineSchrabidiumTransmutator extends GuiInfoContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_transmutator.png");
private TileEntityMachineSchrabidiumTransmutator diFurnace;
public GUIMachineSchrabidiumTransmutator(InventoryPlayer invPlayer, TileEntityMachineSchrabidiumTransmutator tedf) {
super(new ContainerMachineSchrabidiumTransmutator(invPlayer, tedf));
diFurnace = tedf;
this.xSize = 176;
this.ySize = 222;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format(String.valueOf(diFurnace.getPower()) + " HE"), this.xSize / 2 - this.fontRendererObj.getStringWidth(String.valueOf(diFurnace.getPower()) + " HE") / 2, 16, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
}
@Override
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
if(diFurnace.getPower() > 0) {
int i = (int)diFurnace.getPowerScaled(88);
drawTexturedModalRect(guiLeft + 8, guiTop + 106 - i, 176, 88 - i, 16, i);
}
if(diFurnace.isProcessing())
{
int j1 = diFurnace.getProgressScaled(66);
drawTexturedModalRect(guiLeft + 64, guiTop + 55, 176, 88, j1, 66);
}
}
}

View File

@ -0,0 +1,19 @@
package com.hbm.inventory.gui;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.inventory.Container;
public abstract class GuiCrateBase extends GuiContainer {
public GuiCrateBase(Container container) {
super(container);
}
@Override
protected void mouseClicked(int x, int y, int button) {
boolean touchScreen = this.mc.gameSettings.touchscreen;
this.mc.gameSettings.touchscreen = false;
super.mouseClicked(x, y, button);
this.mc.gameSettings.touchscreen = touchScreen;
}
}

View File

@ -60,7 +60,7 @@ public class Mats {
public static final NTMMaterial MAT_DIAMOND = makeNonSmeltable(1430, DIAMOND, 0xFFFFFF, 0x1B7B6B, 0x8CF4E2).setConversion(MAT_CARBON, 1, 1).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setAutogen(FRAGMENT, DUST, PIPE, CASTPLATE, WELDEDPLATE, BLOCK).m();
public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setAutogen(FRAGMENT, WIRE, NUGGET, DUST, DENSEWIRE, CASTPLATE, BLOCK).m();
public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000).setAutogen(FRAGMENT, INGOT).n();
public static final NTMMaterial MAT_OBSIDIAN = makeSmeltable(_VS + 02, df("Obsidian"), 0x3D234D).n();
public static final NTMMaterial MAT_HEMATITE = makeAdditive( 2601, HEMATITE, 0xDFB7AE, 0x5F372E, 0x6E463D).m();
public static final NTMMaterial MAT_WROUGHTIRON = makeSmeltable(2602, df("WroughtIron"), 0xFAAB89).m();
@ -107,7 +107,7 @@ public class Mats {
public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK).m();
public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m();
public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setAutogen(NUGGET).m();
public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(NUGGET, DUST, BLOCK).m();
public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m();
public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setAutogen(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m();
public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setAutogen(FRAGMENT, NUGGET, DUSTTINY, DUST, DENSEWIRE, BLOCK).m();
public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m();

View File

@ -14,6 +14,7 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter;
import com.hbm.config.GeneralConfig;
import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.FluidType;
@ -59,6 +60,7 @@ public class AnnihilatorRecipes extends SerializableRecipe {
@Override
public void registerDefaults() {
if(GeneralConfig.enable528) {
recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel"))));
recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip"))));
recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid"))));
@ -77,6 +79,7 @@ public class AnnihilatorRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty"))));
recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller"))));
}
}
@Override public String getFileName() { return "hbmAnnihilator.json"; }
@Override public Object getRecipeObject() { return recipes; }

View File

@ -80,7 +80,7 @@ public class ArcWelderRecipes extends SerializableRecipe {
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_CMB.id), 1_200, 10_000_000L, new FluidStack(Fluids.REFORMGAS, 1_000),
new OreDictStack(CMB.plateCast(), 2)));
//pre-DFC
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 20_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000),
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.plate_welded, 1, Mats.MAT_OSMIRIDIUM.id), 6_000, 50_000_000L, new FluidStack(Fluids.REFORMGAS, 16_000),
new OreDictStack(OSMIRIDIUM.plateCast(), 2)));
//Missile Parts

View File

@ -115,10 +115,6 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_gascent, 1), new AStack[] {new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.coil_tungsten, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal()) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_diesel, 1), new AStack[] {new OreDictStack(STEEL.shell(), 1), new ComparableStack(ModItems.piston_selenium, 1), new OreDictStack(STEEL.plateCast(), 1), new ComparableStack(ModItems.coil_copper, 4), }, 60);
makeRecipe(new ComparableStack(ModBlocks.machine_rtg_grey, 1), new AStack[] {new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new OreDictStack(MINGRADE.wireFine(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 3), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_battery, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12) },100);
makeRecipe(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new AStack[] {new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12) },100);
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_battery, 1), new AStack[] {new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_dineutronium_battery, 1), new AStack[] {new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_shredder, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModBlocks.steel_beam, 2), new ComparableStack(Blocks.iron_bars, 2) },200);
makeRecipe(new ComparableStack(ModBlocks.machine_well, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 20), new ComparableStack(ModItems.tank_steel, 2), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.pipes_steel, 1), new ComparableStack(ModItems.drill_titanium, 1) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_pumpjack, 1), new AStack[] {new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.plateWelded(), 8), new ComparableStack(ModItems.pipes_steel, 4), new ComparableStack(ModItems.tank_steel, 4), new OreDictStack(STEEL.plate(), 32), new ComparableStack(ModItems.drill_titanium, 1), new ComparableStack(ModItems.motor_desh) }, 400);
@ -130,16 +126,8 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_crystallizer, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(TI.shell(), 3), new OreDictStack(DESH.ingot(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC), },200);
makeRecipe(new ComparableStack(ModBlocks.machine_fluidtank, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 2), new OreDictStack(STEEL.plate(), 6), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_bat9000, 1), new AStack[] {new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16), },150);
makeRecipe(new ComparableStack(ModBlocks.machine_orbus, 1), new AStack[] {new OreDictStack(STEEL.ingot(), 12), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plate(), 12), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1) }, 200);
makeRecipe(new ComparableStack(ModBlocks.machine_mining_laser, 1), new AStack[] {new ComparableStack(ModItems.tank_steel, 3), !exp ? new OreDictStack(STEEL.plate(), 16) : new OreDictStack(STEEL.heavyComp(), 3), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 3), !exp ? new OreDictStack(DURA.ingot(), 4) : new OreDictStack(DESH.heavyComp(), 1), new OreDictStack(DURA.bolt(), 8), new ComparableStack(ModBlocks.machine_battery, 3), },400);
makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300);
makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300);
makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500);
makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100);
makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ALLOY.wireFine(), 24), },200);
makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250);
makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 4), new AStack[] {new OreDictStack(W.plateWelded(), 2), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 2) }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200);
makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200);
makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100);
@ -193,55 +181,6 @@ import net.minecraft.item.ItemStack;
makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300);
makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600);
makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModBlocks.machine_transformer, 1), },1000);
makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100);
makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100);
makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.arc_electrode, 4), },100);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.coil_tungsten, 3), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new OreDictStack(CU.plateCast(), 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 8), new OreDictStack(DURA.ingot(), 16), new OreDictStack(STEEL.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multi, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 12), new OreDictStack(DURA.ingot(), 18), new OreDictStack(STEEL.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multier, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 16), new OreDictStack(DURA.ingot(), 20), new OreDictStack(STEEL.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 3), },100);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(AL.plate(), 3), },100);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(CU.plateCast(), 3), },100);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 6), },200);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(AL.plate(), 6), },200);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(STEEL.plate(), 9), },300);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(AL.plate(), 9), },300);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(IRON.plate(), 9), },300);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },300);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(STEEL.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(AL.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(IRON.plate(), 12), },500);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },500);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(STEEL.plate(), 16), },600);
makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(AL.plate(), 16), },600);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), },200);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit,3, EnumCircuitType.ADVANCED), },300);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100);
makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100);
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200);
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200);
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), },500);
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), },400);
makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), }, 60);
makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600);
makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600);
makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600);
makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] {
new OreDictStack(TI.shell(), 32),
@ -253,17 +192,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.part_generic, 32, EnumPartType.LDE)
},600);
makeRecipe(new ComparableStack(ModItems.sat_base, 1), new AStack[] {
new OreDictStack(RUBBER.ingot(), 12),
new OreDictStack(TI.shell(), 3),
new ComparableStack(ModItems.thruster_large, 1),
new ComparableStack(ModItems.part_generic, 8, EnumPartType.LDE),
new ComparableStack(ModItems.plate_desh, 4),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.photo_panel, 24),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},500);
makeRecipe(new ComparableStack(ModItems.sat_head_mapper, 1), new AStack[] {
new OreDictStack(STEEL.shell(), 3),
new ComparableStack(ModItems.plate_desh, 4),
@ -300,39 +228,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.crystal_xen, 1),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED)
},1000);
makeRecipe(new ComparableStack(ModItems.sat_foeq, 1), new AStack[] {
new OreDictStack(TI.shell(), 3),
new ComparableStack(ModItems.plate_desh, 8),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.HYDROGEN.getID()),
new ComparableStack(ModItems.photo_panel, 16),
new ComparableStack(ModItems.thruster_nuclear, 1),
new ComparableStack(ModItems.ingot_uranium_fuel, 6),
new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC),
new ComparableStack(ModItems.magnetron, 3),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},1200);
makeRecipe(new ComparableStack(ModItems.sat_miner, 1), new AStack[] {
new OreDictStack(BIGMT.plate(), 24),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.drill_titanium, 2),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModItems.centrifuge_element, 4),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},600);
makeRecipe(new ComparableStack(ModItems.sat_lunar_miner, 1), new AStack[] {
new ComparableStack(ModItems.ingot_meteorite, 4),
new ComparableStack(ModItems.plate_desh, 4),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.drill_titanium, 2),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)
},600);
makeRecipe(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new AStack[] {
new ComparableStack(ModItems.upgrade_speed_3, 1),
@ -358,19 +253,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID),
}, 500);
makeRecipe(new ComparableStack(ModBlocks.machine_fensu, 1), new AStack[] {
new ComparableStack(ModItems.ingot_electronium, 32),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
!exp ? new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64) : new OreDictStack(ANY_RESISTANTALLOY.heavyComp(), 64),
new OreDictStack(DURA.block(), 16),
new OreDictStack(STAR.block(), 64),
new ComparableStack(ModBlocks.machine_transformer_dnt, 8),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24),
new ComparableStack(ModItems.powder_magic, 64),
new ComparableStack(ModItems.plate_dineutronium, 24),
new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 128)
}, 1200);
makeRecipe(new ComparableStack(ModBlocks.machine_combustion_engine, 1), new AStack[] {
new OreDictStack(STEEL.plate(), 16),
new OreDictStack(CU.ingot(), 12),
@ -517,18 +399,6 @@ import net.minecraft.item.ItemStack;
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
}, 600);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new OreDictStack(ND.wireDense(), 32),
!exp ? new OreDictStack(STEEL.ingot(), 16) : new OreDictStack(STEEL.heavyComp(), 3),
new OreDictStack(STEEL.plate(), 32),
new OreDictStack(AL.plate(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new OreDictStack(RUBBER.ingot(), 24),
new OreDictStack(CU.plateCast(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC)
}, 600);
makeRecipe(new ComparableStack(ModBlocks.reactor_zirnox, 1), new AStack[] {
!exp ? new OreDictStack(STEEL.shell(), 4) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(STEEL.pipe(), 8),
@ -581,113 +451,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.motor, 2),
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_chekhov, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 3),
new OreDictStack(GUNMETAL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_iron, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_friendly, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC),
new OreDictStack(STEEL.pipe(), 3),
new OreDictStack(GUNMETAL.mechanism(), 1),
new ComparableStack(ModBlocks.crate_iron, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_jeremy, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.motor_desh, 1),
new OreDictStack(STEEL.shell(), 3),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_tauon, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(ANY_PLASTIC.ingot(), 4),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.motor_desh, 1),
new OreDictStack(CU.ingot(), 32),
new OreDictStack(BIGMT.mechanism(), 3),
new ComparableStack(ModItems.battery_lithium, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_richard, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(ANY_PLASTIC.ingot(), 2),
new OreDictStack(STEEL.shell(), 8),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_howard, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 24),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 10),
new OreDictStack(WEAPONSTEEL.mechanism(), 3),
new ComparableStack(ModBlocks.crate_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_maxwell, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(STEEL.ingot(), 24),
new ComparableStack(ModItems.motor, 2),
new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 4),
new OreDictStack(BIGMT.mechanism(), 3),
new ComparableStack(ModItems.magnetron, 16),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_fritz, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 16),
new ComparableStack(ModItems.motor, 3),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 8),
new OreDictStack(GUNMETAL.mechanism(), 3),
new ComparableStack(ModBlocks.barrel_steel, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_arty, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 128),
new ComparableStack(ModItems.motor_desh, 5),
new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED),
new OreDictStack(STEEL.pipe(), 12),
new OreDictStack(WEAPONSTEEL.mechanism(), 16),
new ComparableStack(ModBlocks.machine_radar, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.turret_himars, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 1),
new OreDictStack(STEEL.ingot(), 128),
new OreDictStack(ANY_PLASTIC.ingot(), 64),
new ComparableStack(ModItems.motor_desh, 5),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new OreDictStack(BIGMT.mechanism(), 8),
new ComparableStack(ModBlocks.machine_radar, 1),
new ComparableStack(ModItems.crt_display, 1)
}, 300);
makeRecipe(new ComparableStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL), new AStack[] {
new OreDictStack(STEEL.plate(), 24),
new OreDictStack(ANY_PLASTIC.ingot(), 12),
@ -761,14 +524,6 @@ import net.minecraft.item.ItemStack;
new OreDictStack(RUBBER.ingot(), 8),
new OreDictStack(STEEL.pipe(), 8),
}, 400);
makeRecipe(new ComparableStack(Item.getItemFromBlock(ModBlocks.machine_fel), 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 1),
new OreDictStack(ALLOY.wireDense(), 64),
!exp ? new OreDictStack(STEEL.plateCast(), 12) : new OreDictStack(STEEL.heavyComp(), 1),
new OreDictStack(ANY_PLASTIC.ingot(), 16),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)
}, 400);
makeRecipe(new ComparableStack(ModBlocks.rbmk_blank, 1), new AStack[] {
new ComparableStack(ModBlocks.concrete_asbestos, 4),
@ -905,17 +660,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] {
!exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 12),
new OreDictStack(ALLOY.wireDense(), 32),
new ComparableStack(ModItems.motor_desh, 2),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID),
new ComparableStack(ModBlocks.capacitor_tantalium, 1),
new ComparableStack(ModBlocks.glass_quartz, 16)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.launch_pad_large, 1), new AStack[] {
new OreDictStack(STEEL.plateCast(), 6),
@ -1064,20 +808,6 @@ import net.minecraft.item.ItemStack;
addTantalium(new ComparableStack(ModBlocks.turret_fritz, 1), 3);
addTantalium(new ComparableStack(ModBlocks.launch_pad, 1), 5);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3),
new ComparableStack(ModBlocks.hadron_coil_neodymium, 8),
new OreDictStack(ALLOY.wireFine(), 64),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(STEEL.plate(), 32),
new OreDictStack(AL.plate(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new OreDictStack(RUBBER.ingot(), 24),
new OreDictStack(CU.plateCast(), 8),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 50, EnumCircuitType.CAPACITOR_BOARD)
}, 600);
makeRecipe(new ComparableStack(ModBlocks.rbmk_console, 1), new AStack[] {
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(AL.plate(), 32),
@ -1094,34 +824,6 @@ import net.minecraft.item.ItemStack;
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC),
new ComparableStack(ModItems.circuit, 10, EnumCircuitType.CAPACITOR_BOARD),
}, 300);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 3),
new ComparableStack(ModBlocks.steel_scaffold, 10),
new OreDictStack(STEEL.ingot(), 16),
new OreDictStack(ANY_PLASTIC.ingot(), 8),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 15, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_launcher_core_large, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 10),
new OreDictStack(STEEL.ingot(), 24),
new OreDictStack(ANY_PLASTIC.ingot(), 12),
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.circuit, 25, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
makeRecipe(new ComparableStack(ModBlocks.struct_soyuz_core, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 5),
new ComparableStack(ModBlocks.steel_scaffold, 24),
new OreDictStack(STEEL.ingot(), 32),
new OreDictStack(ANY_PLASTIC.ingot(), 24),
new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED),
new ComparableStack(ModItems.upgrade_power_3, 3),
new ComparableStack(ModItems.circuit, 100, EnumCircuitType.CAPACITOR_BOARD),
}, 200);
}
makeRecipe(new ComparableStack(ModBlocks.machine_fracking_tower), new AStack[] {

View File

@ -27,6 +27,8 @@ import com.hbm.items.ItemEnums.EnumExpensiveType;
import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemPACoil.EnumCoilType;
@ -57,11 +59,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
public void registerDefaults() {
boolean no528 = !GeneralConfig.enable528;
// NBTStack test
// this.register(new GenericRecipe("demo1").setup(20, 100).outputItems(BrokenItem.make(ModItems.plate_iron)).inputItems(new OreDictStack(IRON.ingot())));
// this.register(new GenericRecipe("demo2").setup(20, 100).outputItems(BrokenItem.make(ModItems.plate_gold)).inputItems(new OreDictStack(IRON.ingot())));
// this.register(new GenericRecipe("demo3").setup(20, 100).outputItems(new ItemStack(Items.iron_ingot)).inputItems(new NBTStack(BrokenItem.make(ModItems.plate_iron))));
// plates and ingots
String autoPlate = "autoswitch.plates";
this.register(new GenericRecipe("ass.plateiron").setup(60, 100).outputItems(new ItemStack(ModItems.plate_iron, 1)).inputItems(new OreDictStack(IRON.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this));
@ -87,7 +84,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1))
.inputItems(new ComparableStack(ModItems.nugget_bismuth, 2), new OreDictStack(U238.billet(), 2), new OreDictStack(NB.dust(), 1)));
this.register(new GenericRecipe("ass.plateeuphemium").setup(600, 100).outputItems(new ItemStack(ModItems.plate_euphemium, 1))
.inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new ComparableStack(ModItems.ingot_osmiridium)));
.inputItems(new OreDictStack(EUPH.ingot(), 4), new OreDictStack(AT.dust(), 3), new OreDictStack(BI.dust(), 1), new OreDictStack(VOLCANIC.gem(), 1), new OreDictStack(OSMIRIDIUM.ingot())));
this.register(new GenericRecipe("ass.platednt").setup(600, 100).outputItems(new ItemStack(ModItems.plate_dineutronium, 4))
.inputItems(new OreDictStack(DNT.ingot(), 4), new ComparableStack(ModItems.powder_spark_mix, 2), new OreDictStack(DESH.ingot(), 1)));
@ -216,10 +213,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new ComparableStack(ModItems.cap_fritz, 64), new ComparableStack(ModItems.cap_fritz, 64)));
this.register(new GenericRecipe("ass.capkorl").setup(10, 100).outputItems(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL))
.inputItems(new ComparableStack(ModItems.cap_korl, 64), new ComparableStack(ModItems.cap_korl, 64)));
/*
this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1))
.inputItems());
*/
// machines
this.register(new GenericRecipe("ass.shredder").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_shredder, 1))
@ -276,7 +269,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.crackingtower").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_catalytic_cracker, 1))
.inputItems(new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(DESH.ingot(), 12), new OreDictStack(NB.ingot(), 4))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(NB.ingot(), 4))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "rubber"));
.setPools528(GenericRecipes.POOL_PREFIX_528 + "plastic"));
this.register(new GenericRecipe("ass.radiolysis").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_radiolysis, 1))
.inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(PB.plate(), 12), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.thermo_element, 8))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.thermo_element, 8)));
@ -315,7 +308,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_RUBBER.ingot(), 4), new ComparableStack(ModItems.part_generic, 2, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.part_generic, 4, EnumPartType.PISTON_HYDRAULIC.ordinal()), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)));
this.register(new GenericRecipe("ass.fel").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_fel, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ALLOY.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.part_generic, 4, EnumPartType.GLASS_POLARIZED), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.silex").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_silex, 1))
.inputItems(new ComparableStack(ModBlocks.glass_quartz, 16), new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(DESH.ingot(), 4), new OreDictStack(RUBBER.ingot(), 8), new OreDictStack(STEEL.pipe(), 8))
@ -348,7 +341,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(TI.shell(), 4), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 3), new ComparableStack(Items.diamond, 3), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.motor, 3))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(DURA.plate(), 4), new ComparableStack(ModItems.crystal_redstone, 12), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModItems.motor_desh, 3)));
this.register(new GenericRecipe("ass.teleporter").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_teleporter, 1))
.inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1)));
.inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.radar").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_radar, 1))
.inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(ANY_RUBBER.ingot(), 12), new ComparableStack(ModItems.magnetron, 5), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.crt_display, 4))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT), new ComparableStack(ModItems.crt_display, 4)));
@ -393,8 +386,8 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.hephaestus").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_hephaestus, 1))
.inputItems(new OreDictStack(STEEL.pipe(), 12), new OreDictStack(STEEL.ingot(), 24), new OreDictStack(CU.plate(), 24), new OreDictStack(NB.ingot(), 4), new OreDictStack(RUBBER.ingot(), 12), new ComparableStack(ModBlocks.glass_quartz, 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(NB.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModBlocks.glass_quartz, 16)));
this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_large_turbine, 1))
.inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 6), new OreDictStack(DURA.pipe(), 3), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC))
this.register(new GenericRecipe("ass.iturbine").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_industrial_turbine, 1))
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(RUBBER.ingot(), 4), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 4), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.turbine_titanium, 3), new OreDictStack(GOLD.wireDense(), 16), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.leviturbine").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_chungus, 1))
.inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(STEEL.plateWelded(), 16), new OreDictStack(TI.plate(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 16), new ComparableStack(ModItems.turbine_tungsten, 5), new ComparableStack(ModItems.turbine_titanium, 3), new ComparableStack(ModItems.flywheel_beryllium, 1), new OreDictStack(GOLD.wireDense(), 48), new OreDictStack(DURA.pipe(), 16), new OreDictStack(STEEL.pipe(), 16))
@ -409,36 +402,49 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 5), new OreDictStack(STEEL.pipe(), 24), new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 16)));
// batteries
this.register(new GenericRecipe("ass.battery").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_battery, 1))
.inputItems(new OreDictStack(STEEL.plateWelded(), 1), new OreDictStack(S.dust(), 12), new OreDictStack(PB.dust(), 12)));
this.register(new GenericRecipe("ass.batterylithium").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_lithium_battery, 1))
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(CO.dust(), 12), new OreDictStack(LI.dust(), 12)));
this.register(new GenericRecipe("ass.batteryschrabidium").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_schrabidium_battery, 1))
.inputItems(new OreDictStack(DESH.ingot(), 16), new OreDictStack(NP237.dust(), 12), new OreDictStack(SA326.dust(), 12)));
this.register(new GenericRecipe("ass.batterydnt").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_dineutronium_battery, 1))
.inputItems(new OreDictStack(DNT.ingot(), 24), new ComparableStack(ModItems.powder_spark_mix, 12), new ComparableStack(ModItems.battery_spark_cell_1000, 1), new OreDictStack(CMB.ingot(), 32)));
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_fensu, 1))
.inputItems(new ComparableStack(ModItems.ingot_electronium, 32),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 64),
new OreDictStack(DURA.block(), 16),
new OreDictStack(STAR.block(), 64),
new ComparableStack(ModBlocks.machine_transformer_dnt, 8),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24),
this.register(new GenericRecipe("ass.capacitorgold").setup(100, 100).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_GOLD.ordinal()))
.inputItems(new OreDictStack(STEEL.plate(), 8),
new OreDictStack(GOLD.wireDense(), 16)));
this.register(new GenericRecipe("ass.capacitorniobium").setup(100, 1_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM.ordinal()))
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 12),
new OreDictStack(NB.wireDense(), 24)));
this.register(new GenericRecipe("ass.capacitortantalum").setup(100, 10_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM.ordinal()))
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
new OreDictStack(TA.ingot(), 24)));
this.register(new GenericRecipe("ass.capacitorbismuth").setup(100, 25_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_BISMUTH.ordinal()))
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 24),
new OreDictStack(BI.ingot(), 24),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CHIP_QUANTUM)));
this.register(new GenericRecipe("ass.capacitorspark").setup(100, 100_000).outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_SPARK.ordinal()))
.inputItems(new OreDictStack(CMB.plateCast(), 12),
new ComparableStack(ModItems.powder_spark_mix, 32),
new ComparableStack(ModItems.pellet_charged, 32),
new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP_QUANTUM))
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
.outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000)));
this.register(new GenericRecipe("ass.fensusan").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_battery_redd, 1))
.inputItems(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
new OreDictStack(CMB.plateCast(), 32),
new OreDictStack(MAGTUNG.wireDense(), 32),
new ComparableStack(ModItems.plate_dineutronium, 64),
new ComparableStack(ModItems.powder_magic, 64),
new ComparableStack(ModItems.plate_dineutronium, 24),
new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 64),
new ComparableStack(ModItems.ingot_cft, 64))
.inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64),
new ComparableStack(ModBlocks.machine_dineutronium_battery, 16),
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.FERRO_PLATING),
new OreDictStack(STAR.block(), 64),
new ComparableStack(ModBlocks.machine_transformer_dnt, 8),
new ComparableStack(ModItems.coil_magnetized_tungsten, 24),
new ComparableStack(ModItems.powder_magic, 64),
new ComparableStack(ModItems.plate_dineutronium, 24),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(OSMIRIDIUM.plateWelded(), 64),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 64),
new OreDictStack(CMB.plateCast(), 64),
new ComparableStack(ModItems.ingot_u238m2),
new ComparableStack(ModItems.ingot_cft, 64),
new ComparableStack(ModItems.ingot_cft, 64)));
@ -451,12 +457,12 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16)));
this.register(new GenericRecipe("ass.orbus").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_orbus, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc_polonium, 1))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc_polonium, 1)));
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(BIGMT.plateCast(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 12), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.coil_advanced_alloy, 24), new ComparableStack(ModItems.battery_sc, 1, EnumBatterySC.PO210)));
// accelerators
this.register(new GenericRecipe("ass.cyclotron").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_cyclotron, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 3), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(STEEL.plate(), 32), new OreDictStack(AL.plate(), 32), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new OreDictStack(CU.plateCast(), 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(ND.wireDense(), 32), new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 24), new OreDictStack(RUBBER.ingot(), 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BASIC))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT)));
this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1))
.inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4))
@ -487,7 +493,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.pabscco").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO.ordinal())).inputItems(new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64)));
this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16)));
this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1))
.inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16))
.inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_TANTALUM), new ComparableStack(ModBlocks.glass_quartz, 16))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum"));
@ -544,9 +550,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ZR.plateWelded(), 1), new ComparableStack(ModItems.billet_ra226be, 3)));
// fusion reactor
this.register(new GenericRecipe("ass.fusionconductor").setup(100, 100).outputItems(new ItemStack(ModBlocks.fusion_conductor, 1))
.inputItems(new ComparableStack(ModItems.coil_advanced_alloy, 5)));
this.register(new GenericRecipe("ass.fusioncore").setup(600, 100).outputItems(new ItemStack(ModBlocks.struct_torus_core, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BISMOID))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.PLASTIC), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))
@ -579,7 +582,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.fusionmhdt").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.fusion_mhdt, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(CU.plateWelded(), 64), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 64), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.PLASTIC), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.QUANTUM))
.setPools(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
this.register(new GenericRecipe("ass.fusioncoupler").setup(300, 100).outputItems(new ItemStack(ModBlocks.fusion_coupler, 1))
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), new OreDictStack(CU.plate(), 32), new OreDictStack(BSCCO.wireDense(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID))
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BSCCO.wireDense(), 16), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER)));
@ -656,13 +659,9 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.overdrive3").setup(1_200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_3, 1))
.inputItems(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(ANY_BISMOIDBRONZE.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)));
}
/*
this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1))
.inputItems());
*/
// rancid shit mob spawners
this.register(new GenericRecipe("ass.chopper").setup(1_200, 100).outputItems(new ItemStack(ModItems.spawn_chopper, 8))
this.register(new GenericRecipe("ass.chopper").setup(1_200, 100).outputItems(new ItemStack(ModItems.spawn_chopper, 1))
.inputItems(new OreDictStack(CMB.plateCast(), 24), new OreDictStack(STEEL.plate(), 32), new OreDictStack(MAGTUNG.wireFine(), 48), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_ADVANCED)));
this.register(new GenericRecipe("ass.ballsotron").setup(1_200, 100).outputItems(new ItemStack(ModItems.spawn_worm, 1))
.inputItems(new OreDictStack(TI.plateWelded(), 32), new OreDictStack(RUBBER.ingot(), 64), new ComparableStack(ModItems.motor, 64), new OreDictStack(GOLD.wireDense(), 64), new OreDictStack(U238.block(), 10), new ComparableStack(ModItems.mech_key, 1)));
@ -785,41 +784,36 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.bholegrenade").setup(1_200, 100).outputItems(new ItemStack(ModItems.grenade_black_hole, 1))
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1)));
/*
this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1))
.inputItems());
*/
// turrets
this.register(new GenericRecipe("ass.turretchekhov").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_chekhov, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretfriendly").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_friendly, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretjeremy").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_jeremy, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turrettauon").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_tauon, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turretrichard").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_richard, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.turrethoward").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_howard, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.maxwell").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_maxwell, 1))
.inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.CAPACITOR_NIOBIUM), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.fritz").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_fritz, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg"));
this.register(new GenericRecipe("ass.arty").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_arty, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "arty"));
this.register(new GenericRecipe("ass.himars").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_himars, 1))
.inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.inputItems(new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "arty"));
this.register(new GenericRecipe("ass.himarssmall").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL))
.inputItems(new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC)));
@ -879,7 +873,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
this.register(new GenericRecipe("ass.stealthmissile").setup(1_200, 100).outputItems(new ItemStack(ModItems.missile_stealth, 1))
.inputItems(new OreDictStack(TI.plate(), 20), new OreDictStack(AL.plate(), 20), new OreDictStack(KEY_BLACK, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED.ordinal()), new OreDictStack(STEEL.bolt(), 32)));
this.register(new GenericRecipe("ass.shuttlemissile").setup(200, 100).outputItems(new ItemStack(ModItems.missile_shuttle, 1))
.inputItems(new ComparableStack(ModItems.missile_generic, 2), new ComparableStack(ModItems.missile_strong, 1), new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4)));
.inputItems(new ComparableStack(ModItems.missile_generic, 1), new ComparableStack(ModItems.missile_strong, 1), new OreDictStack(KEY_ORANGE, 5), new ComparableStack(ModItems.canister_full, 24, Fluids.GASOLINE_LEADED.getID()), new OreDictStack(FIBER.ingot(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 8), new OreDictStack(KEY_ANYPANE, 6), new OreDictStack(STEEL.plate(), 4)));
this.register(new GenericRecipe("ass.launchpad").setup(200, 100).outputItems(new ItemStack(ModBlocks.launch_pad_large, 1))
.inputItems(new OreDictStack(STEEL.plateCast(), 6), new OreDictStack(ANY_CONCRETE.any(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 16), new ComparableStack(ModBlocks.steel_scaffold, 24), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED)));
this.register(new GenericRecipe("ass.launchpadsilo").setup(200, 100).outputItems(new ItemStack(ModBlocks.launch_pad, 1))
@ -986,11 +980,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
.inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER))
.setPools528(GenericRecipes.POOL_PREFIX_528 + "controller"));
/*
this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModItems., 1))
.inputItems());
*/
// weapons
this.register(new GenericRecipe("ass.schrabhammer").setup(6_000, 100).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1))
.inputItems(
@ -1049,7 +1038,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.photo_panel, 24),
new ComparableStack(ModItems.circuit, 12, EnumCircuitType.BASIC),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)));
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satellitemapper").setup(600, 100).outputItems(new ItemStack(ModItems.sat_head_mapper, 1))
.inputItems(new OreDictStack(STEEL.shell(), 3),
new ComparableStack(ModItems.plate_desh, 4),
@ -1090,7 +1079,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.ingot_uranium_fuel, 6),
new ComparableStack(ModItems.circuit, 24, EnumCircuitType.BASIC),
new ComparableStack(ModItems.magnetron, 3),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)));
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satelliteasteroidminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_miner, 1))
.inputItems(new OreDictStack(BIGMT.plate(), 24),
new ComparableStack(ModItems.motor_desh, 2),
@ -1100,7 +1089,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModItems.centrifuge_element, 4),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)));
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.satellitelunarminer").setup(600, 100).outputItems(new ItemStack(ModItems.sat_lunar_miner, 1))
.inputItems(new ComparableStack(ModItems.ingot_meteorite, 4),
new ComparableStack(ModItems.plate_desh, 4),
@ -1110,7 +1099,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
new ComparableStack(ModItems.fluid_barrel_full, 1, Fluids.KEROSENE.getID()),
new ComparableStack(ModItems.thruster_small, 1),
new ComparableStack(ModItems.photo_panel, 12),
new ComparableStack(ModBlocks.machine_lithium_battery, 1)));
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
this.register(new GenericRecipe("ass.gerald").setup(6_000, 100).outputItems(new ItemStack(ModItems.sat_gerald, 1))
.inputItems(new OreDictStack(SBD.plateCast(), 64),
new OreDictStack(SBD.plateCast(), 64),

View File

@ -19,6 +19,7 @@ import com.hbm.items.ItemEnums.EnumFuelAdditive;
import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
@ -155,6 +156,36 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
.inputFluids(new FluidStack(Fluids.BITUMEN, 1_000))
.outputItems(new ItemStack(ModBlocks.asphalt, 16)));
/// BATTERIES ///
this.register(new GenericRecipe("chem.batterylead").setup(100, 100)
.inputItems(new OreDictStack(STEEL.plate(), 4),
new OreDictStack(PB.ingot(), 4))
.inputFluids(new FluidStack(Fluids.SULFURIC_ACID, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal())));
this.register(new GenericRecipe("chem.batterylithium").setup(100, 1_000)
.inputItems(new OreDictStack(LI.dust(), 12),
new OreDictStack(CO.dust(), 8),
new OreDictStack(ANY_PLASTIC.ingot(), 4))
.inputFluids(new FluidStack(Fluids.OXYGEN, 2_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM.ordinal())));
this.register(new GenericRecipe("chem.batterysodium").setup(100, 10_000)
.inputItems(new OreDictStack(NA.dust(), 24),
new OreDictStack(IRON.dust(), 24),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 12))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SODIUM.ordinal())));
this.register(new GenericRecipe("chem.batteryschrabidium").setup(100, 25_000)
.inputItems(new OreDictStack(SA326.dust(), 24),
new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 8))
.inputFluids(new FluidStack(Fluids.HELIUM4, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_SCHRABIDIUM.ordinal())));
this.register(new GenericRecipe("chem.batteryquantum").setup(100, 100_000)
.inputItems(new OreDictStack(BSCCO.wireDense(), 24),
new ComparableStack(ModItems.pellet_charged, 32),
new ComparableStack(ModItems.ingot_cft, 16))
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
.outputItems(new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()))
.outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 8_000)));
/// SOLIDS ///
this.register(new GenericRecipe("chem.desh").setup(100, 100)
.inputItems(new ComparableStack(ModItems.powder_desh_mix))

View File

@ -16,6 +16,7 @@ import net.minecraft.item.ItemStack;
public class FusionRecipes extends GenericRecipes<FusionRecipe> {
public static final FusionRecipes INSTANCE = new FusionRecipes();
public long maxInput;
@Override public int inputItemLimit() { return 0; }
@Override public int inputFluidLimit() { return 3; }
@ -120,6 +121,18 @@ public class FusionRecipes extends GenericRecipes<FusionRecipe> {
.outputItems(new ItemStack(ModItems.powder_gold))); // eough
}
@Override
public void registerPost() {
super.registerPost();
this.maxInput = 0;
// set max value for creative klystron
for(FusionRecipe recipe : this.recipeOrderedList) {
if(recipe.ignitionTemp > this.maxInput) this.maxInput = recipe.ignitionTemp;
}
}
// foresight! yeah!
@Override
public void readExtraData(JsonElement element, FusionRecipe recipe) {

View File

@ -6,11 +6,12 @@ import com.hbm.interfaces.Spaghetti;
import com.hbm.inventory.FluidContainer;
import com.hbm.inventory.FluidContainerRegistry;
import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
import com.hbm.items.machine.ItemBatterySC.EnumBatterySC;
import com.hbm.util.Tuple.Triplet;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.oredict.OreDictionary;
@ -48,64 +49,13 @@ public class MachineRecipes {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.battery_potato));
fuels.add(new ItemStack(ModItems.battery_potatos));
fuels.add(new ItemStack(ModItems.battery_generic));
fuels.add(new ItemStack(ModItems.battery_red_cell));
fuels.add(new ItemStack(ModItems.battery_red_cell_6));
fuels.add(new ItemStack(ModItems.battery_red_cell_24));
fuels.add(new ItemStack(ModItems.battery_advanced));
fuels.add(new ItemStack(ModItems.battery_advanced_cell));
fuels.add(new ItemStack(ModItems.battery_advanced_cell_4));
fuels.add(new ItemStack(ModItems.battery_advanced_cell_12));
fuels.add(new ItemStack(ModItems.battery_lithium));
fuels.add(new ItemStack(ModItems.battery_lithium_cell));
fuels.add(new ItemStack(ModItems.battery_lithium_cell_3));
fuels.add(new ItemStack(ModItems.battery_lithium_cell_6));
fuels.add(new ItemStack(ModItems.battery_schrabidium));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_2));
fuels.add(new ItemStack(ModItems.battery_schrabidium_cell_4));
fuels.add(new ItemStack(ModItems.battery_trixite));
fuels.add(new ItemStack(ModItems.battery_spark));
fuels.add(new ItemStack(ModItems.battery_spark_cell_6));
fuels.add(new ItemStack(ModItems.battery_spark_cell_25));
fuels.add(new ItemStack(ModItems.battery_spark_cell_100));
fuels.add(new ItemStack(ModItems.battery_spark_cell_1000));
fuels.add(new ItemStack(ModItems.battery_spark_cell_10000));
fuels.add(new ItemStack(ModItems.battery_spark_cell_power));
fuels.add(new ItemStack(ModItems.fusion_core));
fuels.add(new ItemStack(ModItems.energy_core));
for(EnumBatteryPack num : EnumBatteryPack.values()) fuels.add(new ItemStack(ModItems.battery_pack, 1, num.ordinal()));
for(EnumBatterySC num : EnumBatterySC.values()) fuels.add(new ItemStack(ModItems.battery_sc, 1, num.ordinal()));
fuels.add(new ItemStack(ModItems.battery_creative));
return fuels;
}
public ArrayList<ItemStack> getBlades() {
ArrayList<ItemStack> fuels = new ArrayList<ItemStack>();
fuels.add(new ItemStack(ModItems.blades_advanced_alloy));
fuels.add(new ItemStack(ModItems.blades_steel));
fuels.add(new ItemStack(ModItems.blades_titanium));
fuels.add(new ItemStack(ModItems.blades_desh));
return fuels;
}
public static boolean mODE(Item item, String[] names) {
return mODE(new ItemStack(item), names);
}
public static boolean mODE(ItemStack item, String[] names) {
boolean flag = false;
if(names.length > 0) {
for(int i = 0; i < names.length; i++) {
if(mODE(item, names[i]))
flag = true;
}
}
return flag;
}
public static boolean mODE(Item item, String name) {
return mODE(new ItemStack(item), name);
}
//Matches Ore Dict Entry
public static boolean mODE(ItemStack stack, String name) {

View File

@ -67,7 +67,7 @@ public class PedestalRecipes extends SerializableRecipe {
new OreDictStack(STAR.ingot()), new OreDictStack(DURA.plateCast()), new OreDictStack(STAR.ingot())));
register(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker),
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()),
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.SLIME), new OreDictStack(GOLD.plateCast()),
new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()),
new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.stick_dynamite), new OreDictStack(GOLD.plateCast()))
.extra(PedestalExtraCondition.SUN));
@ -172,7 +172,7 @@ public class PedestalRecipes extends SerializableRecipe {
rec.recipeSet = obj.get("set").getAsInt();
}
this.recipes.add(rec);
this.register(rec);
}
@Override

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