mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-03-24 02:44:34 +00:00
Compare commits
77 Commits
1.0.27_X56
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8283f41032 | ||
|
|
6498777602 | ||
|
|
399f51097d | ||
|
|
6c68778fd0 | ||
|
|
da0d355565 | ||
|
|
94d37e3910 | ||
|
|
f50f93ec6c | ||
|
|
25271de81c | ||
|
|
24f53f4997 | ||
|
|
59d5db4f66 | ||
|
|
274aaede2b | ||
|
|
abe6efc52e | ||
|
|
c408a66e97 | ||
|
|
0bf5a82391 | ||
|
|
037f2a636b | ||
|
|
e8bbc53e36 | ||
|
|
2e27763092 | ||
|
|
b97970404a | ||
|
|
827aaf13e6 | ||
|
|
bf0ad9be66 | ||
|
|
185c049635 | ||
|
|
b8cccbca16 | ||
|
|
eaacba72c8 | ||
|
|
6678b76187 | ||
|
|
132bc10e50 | ||
|
|
2d9e645f9e | ||
|
|
f81adc816b | ||
|
|
bfc7790cae | ||
|
|
92706fdba3 | ||
|
|
4d28c091e1 | ||
|
|
6d3aaaf045 | ||
|
|
06c8928229 | ||
|
|
2049a05649 | ||
|
|
d80c0767d6 | ||
|
|
816ead946d | ||
|
|
7303ecbff6 | ||
|
|
a95b3761c6 | ||
|
|
d9353f5cc8 | ||
|
|
e9f59c7920 | ||
|
|
892e844f49 | ||
|
|
8bc5cf1c9d | ||
|
|
6ffc310f9a | ||
|
|
93e9f35f05 | ||
|
|
1ccad02a73 | ||
|
|
2396b23288 | ||
|
|
e3f43a5dc2 | ||
|
|
f6cca3fda6 | ||
|
|
f721b321fc | ||
|
|
09dd62b71d | ||
|
|
7ecafd73fc | ||
|
|
0b418c2f51 | ||
|
|
ae5f5d0ac1 | ||
|
|
2766bb5b73 | ||
|
|
60f7541a8d | ||
|
|
aa23ba19bc | ||
|
|
3c01133374 | ||
|
|
be1ef22576 | ||
|
|
7ecdb61226 | ||
|
|
be9373e652 | ||
|
|
e123b37a35 | ||
|
|
5d7fe1ac66 | ||
|
|
5253f9e818 | ||
|
|
1bd1c325be | ||
|
|
e547ee5b79 | ||
|
|
7577ffd665 | ||
|
|
73cb0e1db4 | ||
|
|
c8bfa6edcc | ||
|
|
96ae2a9a9c | ||
|
|
8146e68eaa | ||
|
|
b108bc1f57 | ||
|
|
21cd3a9eeb | ||
|
|
a1fc206006 | ||
|
|
2fc4e04b4c | ||
|
|
c98c83aa5d | ||
|
|
4f8b43ac89 | ||
|
|
f7e271629d | ||
|
|
82dd6f6358 |
95
changelog
95
changelog
@ -1,84 +1,21 @@
|
|||||||
## Added
|
## Added
|
||||||
* Reasim RBMK control rods
|
* Plasma forge
|
||||||
* Come in manual and auto variants, but not moderated
|
* Plasma-powered assembly machine
|
||||||
* The same as standard control rods, except they need 5kHE/t
|
* Used to produce lategame items that until now were regular assembler recipes
|
||||||
* Have only a single cable connection at the bottom
|
|
||||||
* Replace standard RBMK control rods when 528 mode is enabled
|
|
||||||
* New RBMK fuels
|
|
||||||
* UZrH
|
|
||||||
* Made from MEU, zirconium and hydrogen in the PUREX
|
|
||||||
* More efficient than MEU but with less durability
|
|
||||||
* Has a new thermal coefficient mechanic, once the core heat exceeds 1000°C, reactivity drops down
|
|
||||||
* Very high diffusion, meaning the core is considerably colder than on most fuels
|
|
||||||
* RBMK Display panel
|
|
||||||
* Single block that shows a 7x7 view of a linked RBMK
|
|
||||||
* Doesn't have a GUI or tooltips or anything, only acts as a monitor
|
|
||||||
* Ideal for >15x15 reactor monitoring, since the displays are tileable
|
|
||||||
|
|
||||||
## Changed
|
## Changed
|
||||||
* Updated RBMK visuals
|
* Doubled bismuth and tantalum yields from high-performance solvent bedrock ore processing
|
||||||
* The indentations on most RBMK passive elements have been removed, heavily reducing tri count and allowing face culling, making RBMKs render much more efficiently
|
* Hoppers and buckets can now be made out of steel
|
||||||
* The caps no longer render as part of the TESR and instead use much more performant ISBRH rendering
|
* RoR gauges now show the lowest and highest configured value on the actual gauge
|
||||||
* Due to most passive elements no longer needing TESRs for their caps, most parts no longer use any TESRs at all
|
* The steel sword now looks like a medieval broad sword with the appropriate scale
|
||||||
* This should fix various issues regarding lower-end hardware (especially Pojav) as well as issues with TESRs getting skipped due to the sheer number of things to render
|
* All remaining items have been removed from the template folder, siren tracks and plate stamps are now made in the anvil
|
||||||
* Control rods now show their set color as part of the model
|
* Gerald assembly now requires stellar flux
|
||||||
* Improved buzzsaw tree detection
|
* The DFC parts are now made in the plasma forge, with the recipes being more expensive
|
||||||
* Instead of just clearing a pillar, it now tries to detect branches
|
* The restrictions for firing Folly (using the scope, waiting for the startup) no longer apply to NPCs (which can never fulfill them anyway), allowing them to actually use it
|
||||||
* The max size of trees that can be successfully harvested is now way bigger
|
* The plinking sound played when a drill cannot break a block now only plays once for the entire AoE instead of once for every single block that couldnt be broken
|
||||||
* This means that things like 2x2 jungle trees can now be automated
|
|
||||||
* Annihilating radioactive items now creates that item's radiation value x5 as chunk radiation
|
|
||||||
* The maximum per tick is a 1000 RAD/s increase to prevent world-destroying radiation levels from annihilating demon cores
|
|
||||||
* The water door now has a skin that isn't rusted with less contrast
|
|
||||||
* The containment door now has a lead-colored skin with a trefoil on it
|
|
||||||
* Using a screwdriver on a beamline now toggles a window which flashes if a particle passes
|
|
||||||
* Particles now start slowly and accelerate, instead of passing a fixed 10 components per tick, particles only do 1 component per tick, which increases by 1 every 1,000 momentum
|
|
||||||
* RBMK absorber columns now heat up when exposed to neutrons
|
|
||||||
* The type of neutron does not matter, only the quantity
|
|
||||||
* 20 flux equals 1°C heatup
|
|
||||||
* RBMK passive cooling has changed
|
|
||||||
* The default value is now 2.5°C/t instead of 1
|
|
||||||
* This value only applies to rods that have exposed sides, i.e. the edges of a reactor
|
|
||||||
* There is now a second passive cooling variable used for rods on the inside (`dialPassiveCoolingInner`, 0.1°C/t by default)
|
|
||||||
* The effective passive cooling value is scaled smoothly depending on how many sides are exposed, using `dialPassiveCoolingInner` with no exposed sides and `dialPassiveCooling` for rods with four exposed sides
|
|
||||||
* Simply put, spindly RBMKs are now way less desirable, structural columns no longer just debuff the reactor and reactors that actually look like reactors are now more powerful
|
|
||||||
* Chanced the way RBMK coolers work
|
|
||||||
* Instead of using cryogel, coolers use 50mB of cold PFM per tick and return an equal amount of warm PFM
|
|
||||||
* In a 5x5 square around the cooler, all components are cooled down by 200°C per tick, down to a minimum of 20°C
|
|
||||||
* This renders that section of the reactor unsuitable for boiling water, however it means very high heat fuels can be used
|
|
||||||
* Cold PFM is used up at a steady rate, even if the reactor is already cold
|
|
||||||
* The RBMK structural column recipe now uses only half as many metal plates, and rubber instead of insulator
|
|
||||||
* Changed the way reasim RBMK fuel channels work
|
|
||||||
* Instead of six randomized neutron streams, reasim rods now use eight 75% strength streams in an even star pattern
|
|
||||||
* The pattern is rotated in a random multiple of 9° (i.e. four possible angle variations)
|
|
||||||
* RBMK steam channels now spawn steam particles if water is voided due to the steam buffer not being emptied in time
|
|
||||||
* Rebalanced 528 mode
|
|
||||||
* Increased the chance for most precision assembler recipes to succeed
|
|
||||||
* Increased the chance for items to be salvaged by recycling
|
|
||||||
* In expensive mode, the chances have been increased drastically compared to the old values
|
|
||||||
* Added RoR functionality to some RBMK columns
|
|
||||||
* Manual control rods can have their target height set, allowing them to be remote controlled without a console
|
|
||||||
* All fuel channels can now provide values such as column heat, fuel skin heat, depletion and xenon poison
|
|
||||||
* RBMK consoles and displays no longer show the temperature value of control rods as a red gradient, instead they show the control rods' color grouping
|
|
||||||
* RBMK fuel rods can no longer be removed by hand if the skin temp exceeds 200°C
|
|
||||||
* RBMK fuel rods can no longer be cycled via autoloader if the skin temp exceeds 1,000°C
|
|
||||||
* For fully automated high powered reactors, it may now be necessary to read the depletion via RoR and then throttle the reactor with control rods
|
|
||||||
* RBMK cranes can still remove any fuel, no matter how hot it is
|
|
||||||
* RBMK fuel channels will now undergo meltdown if it is broken when a fuel rod is still loaded with a heat temperature of at least 1,500°C
|
|
||||||
* The annihilator now creates pollution when destroying fluids, with a 200% pollution modifier
|
|
||||||
* MOX fuel now uses plutonium-239 instead of RGP, and more uranium-238
|
|
||||||
* This makes it a decent option for pu239 from the chicago pile without having to use HEP239
|
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
* Fixed NBTStack serialization omitting the stack size most of the time, preventing deserialization (mainly in the precision assembler config)
|
* Fixed size 15 dual kerosene thruster not rendering at all
|
||||||
* Fixed precision assembler not being listed in the creative inventory
|
* Fixed HUD/jetpack toggle popup not working at all on multiplayer servers
|
||||||
* Fixed OpenComputers integration for the CCGT
|
* Fixed assembly machine NEI handler not being able to handle all thirteen inputs at once
|
||||||
* Fixed tool abilities switching when clicking on a block with a special interaction
|
* Fixed RBMK fuel channels playing the meltdown sound when broken while hot with meltdowns disabled
|
||||||
* Fixed outdated info on the QMAW pages involving AA and BSCCO due to the fusion reactor update
|
|
||||||
* Fixed ammo container giving 9mm instead of .22 for the akimbo target pistols
|
|
||||||
* Fixed RBMK control rods incorrectly showing up in the red group when no group is set
|
|
||||||
* Fixed fluid output direction being incorrect on boilers, causing them to break with pipe anchors
|
|
||||||
* Fixed an issue where the industrial turbine's tendency to round up the possible operation counter would cause it to use up steam it doesn't actually have
|
|
||||||
* Fixed yet another issue with the settings tool when copying automatic control rod settings
|
|
||||||
* Fixed quad rocket launcher steering not working right
|
|
||||||
* Fixed standard and industrial boilers not respecting the heating efficiency value of the fluid trait
|
|
||||||
* Fixed copy tool integration for RBMK automatic control rods (again)
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
mod_version=1.0.27
|
mod_version=1.0.27
|
||||||
# Empty build number makes a release type
|
# Empty build number makes a release type
|
||||||
mod_build_number=5628
|
mod_build_number=5634
|
||||||
|
|
||||||
credits=HbMinecraft,\
|
credits=HbMinecraft,\
|
||||||
\ rodolphito (explosion algorithms),\
|
\ rodolphito (explosion algorithms),\
|
||||||
|
|||||||
@ -8,14 +8,7 @@ import com.hbm.blocks.generic.*;
|
|||||||
import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect;
|
import com.hbm.blocks.generic.BlockHazard.ExtDisplayEffect;
|
||||||
import com.hbm.blocks.machine.*;
|
import com.hbm.blocks.machine.*;
|
||||||
import com.hbm.blocks.machine.albion.*;
|
import com.hbm.blocks.machine.albion.*;
|
||||||
import com.hbm.blocks.machine.fusion.MachineFusionBoiler;
|
import com.hbm.blocks.machine.fusion.*;
|
||||||
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.*;
|
import com.hbm.blocks.machine.pile.*;
|
||||||
import com.hbm.blocks.machine.rbmk.*;
|
import com.hbm.blocks.machine.rbmk.*;
|
||||||
import com.hbm.blocks.network.*;
|
import com.hbm.blocks.network.*;
|
||||||
@ -887,6 +880,7 @@ public class ModBlocks {
|
|||||||
public static Block fusion_boiler;
|
public static Block fusion_boiler;
|
||||||
public static Block fusion_mhdt;
|
public static Block fusion_mhdt;
|
||||||
public static Block fusion_coupler;
|
public static Block fusion_coupler;
|
||||||
|
public static Block fusion_plasma_forge;
|
||||||
|
|
||||||
public static Block machine_icf_press;
|
public static Block machine_icf_press;
|
||||||
public static Block icf_component;
|
public static Block icf_component;
|
||||||
@ -1097,6 +1091,8 @@ public class ModBlocks {
|
|||||||
public static Block rbmk_console;
|
public static Block rbmk_console;
|
||||||
public static Block rbmk_crane_console;
|
public static Block rbmk_crane_console;
|
||||||
public static Block rbmk_display;
|
public static Block rbmk_display;
|
||||||
|
public static Block rbmk_key_pad;
|
||||||
|
public static Block rbmk_gauge;
|
||||||
public static Block rbmk_autoloader;
|
public static Block rbmk_autoloader;
|
||||||
public static Block rbmk_loader;
|
public static Block rbmk_loader;
|
||||||
public static Block rbmk_steam_inlet;
|
public static Block rbmk_steam_inlet;
|
||||||
@ -2001,6 +1997,7 @@ public class ModBlocks {
|
|||||||
fusion_boiler = new MachineFusionBoiler().setBlockName("fusion_boiler").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");
|
||||||
fusion_mhdt = new MachineFusionMHDT().setBlockName("fusion_mhdt").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
fusion_mhdt = new MachineFusionMHDT().setBlockName("fusion_mhdt").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
fusion_coupler = new MachineFusionCoupler().setBlockName("fusion_coupler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
fusion_coupler = new MachineFusionCoupler().setBlockName("fusion_coupler").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
|
fusion_plasma_forge = new MachineFusionPlasmaForge().setBlockName("fusion_plasma_forge").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
|
|
||||||
machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
machine_icf_press = new MachineICFPress().setBlockName("machine_icf_press").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
icf = new MachineICF().setBlockName("icf").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
@ -2117,6 +2114,8 @@ public class ModBlocks {
|
|||||||
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
|
rbmk_console = new RBMKConsole().setBlockName("rbmk_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_console");
|
||||||
rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console");
|
rbmk_crane_console = new RBMKCraneConsole().setBlockName("rbmk_crane_console").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_crane_console");
|
||||||
rbmk_display = new RBMKDisplay().setBlockName("rbmk_display").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
rbmk_display = new RBMKDisplay().setBlockName("rbmk_display").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||||
|
rbmk_key_pad = new RBMKKeyPad().setBlockName("rbmk_key_pad").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||||
|
rbmk_gauge = new RBMKGauge().setBlockName("rbmk_gauge").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||||
rbmk_autoloader = new RBMKAutoloader().setBlockName("rbmk_autoloader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_autoloader");
|
rbmk_autoloader = new RBMKAutoloader().setBlockName("rbmk_autoloader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_autoloader");
|
||||||
rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
||||||
rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet");
|
rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet");
|
||||||
@ -3109,6 +3108,8 @@ public class ModBlocks {
|
|||||||
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
|
GameRegistry.registerBlock(rbmk_console, rbmk_console.getUnlocalizedName());
|
||||||
GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName());
|
GameRegistry.registerBlock(rbmk_crane_console, rbmk_crane_console.getUnlocalizedName());
|
||||||
register(rbmk_display);
|
register(rbmk_display);
|
||||||
|
register(rbmk_key_pad);
|
||||||
|
register(rbmk_gauge);
|
||||||
register(rbmk_autoloader);
|
register(rbmk_autoloader);
|
||||||
register(rbmk_loader);
|
register(rbmk_loader);
|
||||||
register(rbmk_steam_inlet);
|
register(rbmk_steam_inlet);
|
||||||
@ -3358,6 +3359,7 @@ public class ModBlocks {
|
|||||||
register(fusion_boiler);
|
register(fusion_boiler);
|
||||||
register(fusion_mhdt);
|
register(fusion_mhdt);
|
||||||
register(fusion_coupler);
|
register(fusion_coupler);
|
||||||
|
register(fusion_plasma_forge);
|
||||||
|
|
||||||
register(watz_element);
|
register(watz_element);
|
||||||
register(watz_cooler);
|
register(watz_cooler);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import java.util.Random;
|
|||||||
|
|
||||||
import com.hbm.blocks.IBlockMulti;
|
import com.hbm.blocks.IBlockMulti;
|
||||||
import com.hbm.blocks.ITooltipProvider;
|
import com.hbm.blocks.ITooltipProvider;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.world.gen.nbt.INBTTileEntityTransformable;
|
import com.hbm.world.gen.nbt.INBTTileEntityTransformable;
|
||||||
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
import com.hbm.world.gen.nbt.INBTBlockTransformable;
|
||||||
|
|
||||||
@ -102,9 +103,9 @@ public class BlockPlushie extends BlockContainer implements IBlockMulti, IToolti
|
|||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
if(plushie.type == PlushieType.HUNDUN) {
|
if(plushie.type == PlushieType.HUNDUN) {
|
||||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.hunduns_magnificent_howl", 100F, 1F);
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, NTMSounds.BLOCK_HUNDUNS_MAGNIFICENT_HOWL, 100F, 1F);
|
||||||
} else {
|
} else {
|
||||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:block.squeakyToy", 0.25F, 1F);
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, NTMSounds.BLOCK_PLUSHY, 0.25F, 1F);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -160,7 +161,7 @@ public class BlockPlushie extends BlockContainer implements IBlockMulti, IToolti
|
|||||||
YOMI( "Yomi", "Hi! Can I be your rabbit friend?"),
|
YOMI( "Yomi", "Hi! Can I be your rabbit friend?"),
|
||||||
NUMBERNINE( "Number Nine", "None of y'all deserve coal."),
|
NUMBERNINE( "Number Nine", "None of y'all deserve coal."),
|
||||||
HUNDUN( "Hundun", "混沌"),
|
HUNDUN( "Hundun", "混沌"),
|
||||||
DERG( "Dragon", "Squeeze him.");
|
DERG( "Dragon", "Squeeze him."); // blerg
|
||||||
|
|
||||||
public String label;
|
public String label;
|
||||||
public String inscription;
|
public String inscription;
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
package com.hbm.blocks.machine.fusion;
|
||||||
|
|
||||||
|
import com.hbm.blocks.BlockDummyable;
|
||||||
|
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||||
|
import com.hbm.tileentity.machine.fusion.TileEntityFusionPlasmaForge;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
|
public class MachineFusionPlasmaForge extends BlockDummyable {
|
||||||
|
|
||||||
|
public MachineFusionPlasmaForge() {
|
||||||
|
super(Material.iron);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
|
if(meta >= 12) return new TileEntityFusionPlasmaForge();
|
||||||
|
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid();
|
||||||
|
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 this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public int[] getDimensions() { return new int[] { 4, 0, 5, 5, 5, 5 }; }
|
||||||
|
@Override public int getOffset() { return 5; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||||
|
super.fillSpace(world, x, y, z, dir, o);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -225,7 +225,9 @@ public abstract class RBMKBase extends BlockDummyable implements IToolable, ILoo
|
|||||||
world.spawnEntityInWorld(new EntityItem(world, pos[0] + 0.5, pos[1] + 0.5 + RBMKDials.getColumnHeight(world), pos[2] + 0.5, new ItemStack(ModItems.rbmk_lid_glass)));
|
world.spawnEntityInWorld(new EntityItem(world, pos[0] + 0.5, pos[1] + 0.5 + RBMKDials.getColumnHeight(world), pos[2] + 0.5, new ItemStack(ModItems.rbmk_lid_glass)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rbmk.explodeOnBroken = false;
|
||||||
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], DIR_NO_LID.ordinal() + offset, 3);
|
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], DIR_NO_LID.ordinal() + offset, 3);
|
||||||
|
rbmk.explodeOnBroken = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -1,57 +1,19 @@
|
|||||||
package com.hbm.blocks.machine.rbmk;
|
package com.hbm.blocks.machine.rbmk;
|
||||||
|
|
||||||
import org.lwjgl.opengl.GL11;
|
|
||||||
|
|
||||||
import com.hbm.render.block.ISBRHUniversal;
|
|
||||||
import com.hbm.render.util.RenderBlocksNT;
|
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKDisplay;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKDisplay;
|
||||||
|
|
||||||
import api.hbm.block.IToolable;
|
import api.hbm.block.IToolable;
|
||||||
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.RenderBlocks;
|
|
||||||
import net.minecraft.client.renderer.Tessellator;
|
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.MathHelper;
|
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class RBMKDisplay extends BlockContainer implements ISBRHUniversal, IToolable {
|
public class RBMKDisplay extends RBMKMiniPanelBase implements IToolable {
|
||||||
|
|
||||||
public RBMKDisplay() {
|
|
||||||
super(Material.iron);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override public int getRenderType() { return renderID; }
|
|
||||||
@Override public boolean isOpaqueCube() { return false; }
|
|
||||||
@Override public boolean renderAsNormalBlock() { return false; }
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int meta) {
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
return new TileEntityRBMKDisplay();
|
return new TileEntityRBMKDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
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)
|
if(tool != ToolType.SCREWDRIVER)
|
||||||
@ -64,33 +26,4 @@ public class RBMKDisplay extends BlockContainer implements ISBRHUniversal, ITool
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void renderInventoryBlock(Block block, int meta, int modelId, Object renderBlocks) {
|
|
||||||
|
|
||||||
GL11.glPushMatrix();
|
|
||||||
RenderBlocks renderer = (RenderBlocks) renderBlocks;
|
|
||||||
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
|
|
||||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
|
||||||
|
|
||||||
renderer.setRenderBounds(0.25D, 0D, 0D, 1D, 1D, 1D);
|
|
||||||
RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer);
|
|
||||||
GL11.glPopMatrix();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, Object renderBlocks) {
|
|
||||||
RenderBlocksNT renderer = RenderBlocksNT.INSTANCE.setWorld(world);
|
|
||||||
|
|
||||||
Tessellator tessellator = Tessellator.instance;
|
|
||||||
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
|
|
||||||
tessellator.setColorOpaque_F(1, 1, 1);
|
|
||||||
|
|
||||||
int meta = world.getBlockMetadata(x, y, z);
|
|
||||||
|
|
||||||
renderer.setRenderBounds(meta == 4 ? 0.25D : 0D, 0D, meta == 2 ? 0.25D : 0D, meta == 5 ? 0.75D : 1D, 1D, meta == 3 ? 0.75D : 1D);
|
|
||||||
renderer.renderStandardBlock(block, x, y, z);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
25
src/main/java/com/hbm/blocks/machine/rbmk/RBMKGauge.java
Normal file
25
src/main/java/com/hbm/blocks/machine/rbmk/RBMKGauge.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.hbm.blocks.machine.rbmk;
|
||||||
|
|
||||||
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKGauge;
|
||||||
|
|
||||||
|
import api.hbm.block.IToolable;
|
||||||
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class RBMKGauge extends RBMKMiniPanelBase implements IToolable {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
|
return new TileEntityRBMKGauge();
|
||||||
|
}
|
||||||
|
|
||||||
|
@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) return false;
|
||||||
|
if(world.isRemote) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
51
src/main/java/com/hbm/blocks/machine/rbmk/RBMKKeyPad.java
Normal file
51
src/main/java/com/hbm/blocks/machine/rbmk/RBMKKeyPad.java
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
package com.hbm.blocks.machine.rbmk;
|
||||||
|
|
||||||
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKKeyPad;
|
||||||
|
|
||||||
|
import api.hbm.block.IToolable;
|
||||||
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class RBMKKeyPad extends RBMKMiniPanelBase implements IToolable {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
|
return new TileEntityRBMKKeyPad();
|
||||||
|
}
|
||||||
|
|
||||||
|
@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) return false;
|
||||||
|
if(world.isRemote) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||||
|
return 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;
|
||||||
|
if(player.isSneaking()) return false;
|
||||||
|
|
||||||
|
if(hitX != 0 && hitX != 1 && hitZ != 0 && hitZ != 1 && side != 0 && side != 1) {
|
||||||
|
|
||||||
|
TileEntityRBMKKeyPad tile = (TileEntityRBMKKeyPad) world.getTileEntity(x, y, z);
|
||||||
|
int meta = world.getBlockMetadata(x, y, z);
|
||||||
|
|
||||||
|
int indexHit = 0;
|
||||||
|
|
||||||
|
if(meta == 2 && hitX < 0.5) indexHit = 1;
|
||||||
|
if(meta == 3 && hitX > 0.5) indexHit = 1;
|
||||||
|
if(meta == 4 && hitZ > 0.5) indexHit = 1;
|
||||||
|
if(meta == 5 && hitZ < 0.5) indexHit = 1;
|
||||||
|
|
||||||
|
if(hitY < 0.5) indexHit += 2;
|
||||||
|
|
||||||
|
if(!tile.keys[indexHit].active) return false;
|
||||||
|
tile.keys[indexHit].click();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
package com.hbm.blocks.machine.rbmk;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.render.block.ISBRHUniversal;
|
||||||
|
import com.hbm.render.util.RenderBlocksNT;
|
||||||
|
|
||||||
|
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.RenderBlocks;
|
||||||
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public abstract class RBMKMiniPanelBase extends BlockContainer implements ISBRHUniversal {
|
||||||
|
|
||||||
|
public RBMKMiniPanelBase() {
|
||||||
|
super(Material.iron);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public int getRenderType() { return renderID; }
|
||||||
|
@Override public boolean isOpaqueCube() { return false; }
|
||||||
|
@Override public boolean renderAsNormalBlock() { return false; }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
|
||||||
|
|
||||||
|
int meta = world.getBlockMetadata(x, y, z);
|
||||||
|
setBlockBounds(0, 0, 0, 1, 1, 1);
|
||||||
|
|
||||||
|
if(meta == Library.POS_X.ordinal()) setBlockBounds(0, 0, 0, 0.75F, 1, 1);
|
||||||
|
if(meta == Library.POS_Z.ordinal()) setBlockBounds(0, 0, 0, 1, 1, 0.75F);
|
||||||
|
if(meta == Library.NEG_X.ordinal()) setBlockBounds(0.25F, 0, 0, 1, 1, 1);
|
||||||
|
if(meta == Library.NEG_Z.ordinal()) setBlockBounds(0, 0, 0.25F, 1, 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderInventoryBlock(Block block, int meta, int modelId, Object renderBlocks) {
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
RenderBlocks renderer = (RenderBlocks) renderBlocks;
|
||||||
|
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
|
||||||
|
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||||
|
|
||||||
|
renderer.setRenderBounds(0.25D, 0D, 0D, 1D, 1D, 1D);
|
||||||
|
RenderBlocksNT.renderStandardInventoryBlock(block, meta, renderer);
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, Object renderBlocks) {
|
||||||
|
RenderBlocksNT renderer = RenderBlocksNT.INSTANCE.setWorld(world);
|
||||||
|
|
||||||
|
Tessellator tessellator = Tessellator.instance;
|
||||||
|
tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z));
|
||||||
|
tessellator.setColorOpaque_F(1, 1, 1);
|
||||||
|
|
||||||
|
int meta = world.getBlockMetadata(x, y, z);
|
||||||
|
|
||||||
|
renderer.setRenderBounds(meta == 4 ? 0.25D : 0D, 0D, meta == 2 ? 0.25D : 0D, meta == 5 ? 0.75D : 1D, 1D, meta == 3 ? 0.75D : 1D);
|
||||||
|
renderer.renderStandardBlock(block, x, y, z);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import com.hbm.items.machine.ItemRBMKLid;
|
|||||||
import com.hbm.items.machine.ItemRBMKRod;
|
import com.hbm.items.machine.ItemRBMKRod;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.RBMKDials;
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod;
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
@ -41,9 +42,9 @@ public class RBMKRod extends RBMKBase {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
public void breakBlock(World world, int x, int y, int z, Block block, int meta) {
|
||||||
if(meta >= this.offset) {
|
if(meta >= this.offset && !RBMKDials.getMeltdownsDisabled(world)) {
|
||||||
TileEntityRBMKRod tile = (TileEntityRBMKRod) world.getTileEntity(x, y, z);
|
TileEntityRBMKRod tile = (TileEntityRBMKRod) world.getTileEntity(x, y, z);
|
||||||
if(tile != null) {
|
if(tile != null && tile.explodeOnBroken) {
|
||||||
if(tile.slots[0] != null && tile.slots[0].getItem() instanceof ItemRBMKRod && ItemRBMKRod.getHullHeat(tile.slots[0]) >= 1500) {
|
if(tile.slots[0] != null && tile.slots[0].getItem() instanceof ItemRBMKRod && ItemRBMKRod.getHullHeat(tile.slots[0]) >= 1500) {
|
||||||
tile.meltdown();
|
tile.meltdown();
|
||||||
}
|
}
|
||||||
@ -81,7 +82,7 @@ public class RBMKRod extends RBMKBase {
|
|||||||
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemRBMKRod && rbmk.slots[0] == null) {
|
if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemRBMKRod && rbmk.slots[0] == null) {
|
||||||
rbmk.slots[0] = player.getHeldItem().copy();
|
rbmk.slots[0] = player.getHeldItem().copy();
|
||||||
rbmk.slots[0].stackSize = 1;
|
rbmk.slots[0].stackSize = 1;
|
||||||
player.getHeldItem().stackSize--;
|
if(!player.capabilities.isCreativeMode) player.getHeldItem().stackSize--;
|
||||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F);
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
package com.hbm.blocks.machine.rbmk;
|
package com.hbm.blocks.machine.rbmk;
|
||||||
|
|
||||||
import com.hbm.tileentity.TileEntityProxyInventory;
|
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRodReaSim;
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRodReaSim;
|
||||||
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
@ -14,13 +14,8 @@ public class RBMKRodReaSim extends RBMKRod {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world, int meta) {
|
public TileEntity createNewTileEntity(World world, int meta) {
|
||||||
|
if(meta >= this.offset) return new TileEntityRBMKRodReaSim();
|
||||||
if(meta >= this.offset)
|
if(hasExtra(meta)) return new TileEntityProxyCombo().inventory();
|
||||||
return new TileEntityRBMKRodReaSim();
|
|
||||||
|
|
||||||
if(hasExtra(meta))
|
|
||||||
return new TileEntityProxyInventory();
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,17 +9,15 @@ import li.cil.oc.api.machine.Arguments;
|
|||||||
import li.cil.oc.api.machine.Callback;
|
import li.cil.oc.api.machine.Callback;
|
||||||
import li.cil.oc.api.machine.Context;
|
import li.cil.oc.api.machine.Context;
|
||||||
import li.cil.oc.api.network.SimpleComponent;
|
import li.cil.oc.api.network.SimpleComponent;
|
||||||
import org.lwjgl.input.Keyboard;
|
|
||||||
|
|
||||||
import com.hbm.blocks.ILookOverlay;
|
import com.hbm.blocks.ILookOverlay;
|
||||||
import com.hbm.interfaces.IControlReceiver;
|
import com.hbm.interfaces.IControlReceiver;
|
||||||
import com.hbm.inventory.fluid.FluidType;
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.inventory.gui.GUIPump;
|
||||||
import com.hbm.items.machine.IItemFluidIdentifier;
|
import com.hbm.items.machine.IItemFluidIdentifier;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
|
||||||
import com.hbm.packet.toserver.NBTControlPacket;
|
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||||
import com.hbm.util.BobMathUtil;
|
import com.hbm.util.BobMathUtil;
|
||||||
@ -35,10 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
|
||||||
import net.minecraft.client.gui.GuiButton;
|
|
||||||
import net.minecraft.client.gui.GuiScreen;
|
|
||||||
import net.minecraft.client.gui.GuiTextField;
|
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
@ -50,7 +44,6 @@ import net.minecraft.util.ChatComponentTranslation;
|
|||||||
import net.minecraft.util.ChatStyle;
|
import net.minecraft.util.ChatStyle;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.util.MathHelper;
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.util.ResourceLocation;
|
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
@ -346,98 +339,4 @@ public class FluidPump extends BlockContainer implements INBTBlockTransformable,
|
|||||||
throw new NoSuchMethodException();
|
throw new NoSuchMethodException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public static class GUIPump extends GuiScreen {
|
|
||||||
|
|
||||||
protected final TileEntityFluidPump pump;
|
|
||||||
|
|
||||||
private GuiTextField textPlacementPriority;
|
|
||||||
private GuiButton buttonPressure;
|
|
||||||
private GuiButton buttonPriority;
|
|
||||||
private int pressure;
|
|
||||||
private int priority;
|
|
||||||
|
|
||||||
public GUIPump(TileEntityFluidPump pump) {
|
|
||||||
this.pump = pump;
|
|
||||||
this.pressure = pump.tank[0].getPressure();
|
|
||||||
this.priority = pump.priority.ordinal();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initGui() {
|
|
||||||
Keyboard.enableRepeatEvents(true);
|
|
||||||
|
|
||||||
textPlacementPriority = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20);
|
|
||||||
textPlacementPriority.setText("" + pump.bufferSize);
|
|
||||||
textPlacementPriority.setMaxStringLength(5);
|
|
||||||
|
|
||||||
buttonPressure = new GuiButton(0, this.width / 2 - 50, 100, 90, 20, pressure + " PU");
|
|
||||||
|
|
||||||
buttonPriority = new GuiButton(1, this.width / 2 + 50, 100, 90, 20, pump.priority.name());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
|
||||||
drawDefaultBackground();
|
|
||||||
|
|
||||||
drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0);
|
|
||||||
drawString(fontRendererObj, "(max. 10,000mB)", this.width / 2 - 150, 90, 0xA0A0A0);
|
|
||||||
textPlacementPriority.drawTextBox();
|
|
||||||
|
|
||||||
drawString(fontRendererObj, "Pressure:", this.width / 2 - 50, 80, 0xA0A0A0);
|
|
||||||
buttonPressure.drawButton(mc, mouseX, mouseY);
|
|
||||||
|
|
||||||
drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0);
|
|
||||||
buttonPriority.drawButton(mc, mouseX, mouseY);
|
|
||||||
|
|
||||||
super.drawScreen(mouseX, mouseY, partialTicks);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onGuiClosed() {
|
|
||||||
Keyboard.enableRepeatEvents(false);
|
|
||||||
|
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
|
||||||
|
|
||||||
data.setByte("pressure", (byte) pressure);
|
|
||||||
data.setByte("priority", (byte) priority);
|
|
||||||
|
|
||||||
try { data.setInteger("capacity", Integer.parseInt(textPlacementPriority.getText())); } catch(Exception ex) {}
|
|
||||||
|
|
||||||
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, pump.xCoord, pump.yCoord, pump.zCoord));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void keyTyped(char typedChar, int keyCode) {
|
|
||||||
super.keyTyped(typedChar, keyCode);
|
|
||||||
if(textPlacementPriority.textboxKeyTyped(typedChar, keyCode)) return;
|
|
||||||
|
|
||||||
if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
|
|
||||||
this.mc.thePlayer.closeScreen();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) {
|
|
||||||
super.mouseClicked(mouseX, mouseY, mouseButton);
|
|
||||||
textPlacementPriority.mouseClicked(mouseX, mouseY, mouseButton);
|
|
||||||
|
|
||||||
if(buttonPressure.mousePressed(mc, mouseX, mouseY)) {
|
|
||||||
this.pressure++;
|
|
||||||
if(pressure > 5) pressure = 0;
|
|
||||||
buttonPressure.displayString = pressure + " PU";
|
|
||||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(buttonPriority.mousePressed(mc, mouseX, mouseY)) {
|
|
||||||
this.priority++;
|
|
||||||
if(priority >= ConnectionPriority.values().length) priority = 0;
|
|
||||||
buttonPriority.displayString = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority).name();
|
|
||||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override public boolean doesGuiPauseGame() { return false; }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,19 +81,16 @@ public class WorldConfig {
|
|||||||
public static boolean enableSulfurCave = true;
|
public static boolean enableSulfurCave = true;
|
||||||
public static boolean enableAsbestosCave = true;
|
public static boolean enableAsbestosCave = true;
|
||||||
|
|
||||||
// public static int radioStructure = 500;
|
|
||||||
public static int antennaStructure = 250;
|
public static int antennaStructure = 250;
|
||||||
public static int atomStructure = 500;
|
public static int atomStructure = 500;
|
||||||
public static int dungeonStructure = 64;
|
public static int dungeonStructure = 64;
|
||||||
public static int relayStructure = 500;
|
|
||||||
public static int satelliteStructure = 500;
|
public static int satelliteStructure = 500;
|
||||||
// public static int factoryStructure = 1000;
|
|
||||||
public static int dudStructure = 500;
|
public static int dudStructure = 500;
|
||||||
public static int spaceshipStructure = 1000;
|
public static int spaceshipStructure = 1000;
|
||||||
public static int barrelStructure = 5000;
|
public static int barrelStructure = 5000;
|
||||||
public static int geyserWater = 3000;
|
public static int geyserWater = 3000;
|
||||||
public static int geyserChlorine = 3000;
|
public static int geyserChlorine = 3000;
|
||||||
public static int geyserVapor = 500;
|
public static int geyserVapor = 250;
|
||||||
public static int capsuleStructure = 100;
|
public static int capsuleStructure = 100;
|
||||||
public static int arcticStructure = 500;
|
public static int arcticStructure = 500;
|
||||||
public static int jungleStructure = 2000;
|
public static int jungleStructure = 2000;
|
||||||
@ -204,13 +201,10 @@ public class WorldConfig {
|
|||||||
enableAsbestosCave = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.C01_enableAsbestosCave", "Toggles asbestos caves", true);
|
enableAsbestosCave = CommonConfig.createConfigBool(config, CATEGORY_OREGEN, "2.C01_enableAsbestosCave", "Toggles asbestos caves", true);
|
||||||
|
|
||||||
final String CATEGORY_DUNGEON = CommonConfig.CATEGORY_DUNGEONS;
|
final String CATEGORY_DUNGEON = CommonConfig.CATEGORY_DUNGEONS;
|
||||||
// radioStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.00_radioSpawn", "Spawn radio station on every nTH chunk", 500);
|
|
||||||
antennaStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.01_antennaSpawn", "Spawn antenna on every nTH chunk", 250);
|
antennaStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.01_antennaSpawn", "Spawn antenna on every nTH chunk", 250);
|
||||||
atomStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.02_atomSpawn", "Spawn power plant on every nTH chunk", 500);
|
atomStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.02_atomSpawn", "Spawn power plant on every nTH chunk", 500);
|
||||||
dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64);
|
dungeonStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.04_dungeonSpawn", "Spawn library dungeon on every nTH chunk", 64);
|
||||||
relayStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.05_relaySpawn", "Spawn relay on every nTH chunk", 500);
|
|
||||||
satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500);
|
satelliteStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.06_satelliteSpawn", "Spawn satellite dish on every nTH chunk", 500);
|
||||||
// factoryStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.09_factorySpawn", "Spawn factory on every nTH chunk", 1000);
|
|
||||||
dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500);
|
dudStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.10_dudSpawn", "Spawn dud on every nTH chunk", 500);
|
||||||
spaceshipStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.11_spaceshipSpawn", "Spawn spaceship on every nTH chunk", 1000);
|
spaceshipStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.11_spaceshipSpawn", "Spawn spaceship on every nTH chunk", 1000);
|
||||||
barrelStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.12_barrelSpawn", "Spawn waste tank on every nTH chunk", 5000);
|
barrelStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.12_barrelSpawn", "Spawn waste tank on every nTH chunk", 5000);
|
||||||
@ -220,7 +214,7 @@ public class WorldConfig {
|
|||||||
vaultfreq = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.16_vaultSpawn", "Spawn locked safe on every nTH chunk", 2500);
|
vaultfreq = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.16_vaultSpawn", "Spawn locked safe on every nTH chunk", 2500);
|
||||||
geyserWater = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.17_geyserWaterSpawn", "Spawn water geyser on every nTH chunk", 3000);
|
geyserWater = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.17_geyserWaterSpawn", "Spawn water geyser on every nTH chunk", 3000);
|
||||||
geyserChlorine = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.18_geyserChlorineSpawn", "Spawn poison geyser on every nTH chunk", 3000);
|
geyserChlorine = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.18_geyserChlorineSpawn", "Spawn poison geyser on every nTH chunk", 3000);
|
||||||
geyserVapor = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.19_geyserVaporSpawn", "Spawn vapor geyser on every nTH chunk", 500);
|
geyserVapor = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.19_geyserVaporSpawn", "Spawn vapor geyser on every nTH chunk", 250);
|
||||||
capsuleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.21_capsuleSpawn", "Spawn landing capsule on every nTH chunk", 100);
|
capsuleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.21_capsuleSpawn", "Spawn landing capsule on every nTH chunk", 100);
|
||||||
arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn arctic code vault on every nTH chunk", 500);
|
arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn arctic code vault on every nTH chunk", 500);
|
||||||
jungleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.23_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk", 2000);
|
jungleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.23_jungleDungeonSpawn", "Spawn jungle dungeon on every nTH chunk", 2000);
|
||||||
@ -245,13 +239,10 @@ public class WorldConfig {
|
|||||||
craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 0.5D);
|
craterBiomeOuterRad = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R02_craterBiomeOuterRad", "RAD/s for the outer crater biome", 0.5D);
|
||||||
craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D);
|
craterBiomeWaterMult = (float) CommonConfig.createConfigDouble(config, CATEGORY_BIOMES, "17.R03_craterBiomeWaterMult", "Multiplier for RAD/s in crater biomes when in water", 5D);
|
||||||
|
|
||||||
// radioStructure = CommonConfig.setDefZero(radioStructure, 1000);
|
|
||||||
antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000);
|
antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000);
|
||||||
atomStructure = CommonConfig.setDefZero(atomStructure, 1000);
|
atomStructure = CommonConfig.setDefZero(atomStructure, 1000);
|
||||||
dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000);
|
dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000);
|
||||||
relayStructure = CommonConfig.setDefZero(relayStructure, 1000);
|
|
||||||
satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000);
|
satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000);
|
||||||
// factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000);
|
|
||||||
dudStructure = CommonConfig.setDefZero(dudStructure, 1000);
|
dudStructure = CommonConfig.setDefZero(dudStructure, 1000);
|
||||||
spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000);
|
spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000);
|
||||||
barrelStructure = CommonConfig.setDefZero(barrelStructure, 1000);
|
barrelStructure = CommonConfig.setDefZero(barrelStructure, 1000);
|
||||||
|
|||||||
@ -174,8 +174,8 @@ public class MineralRecipes {
|
|||||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_neptunium });
|
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 3), new Object[] { ModItems.billet_u238, ModItems.billet_u238, ModItems.billet_neptunium });
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "nuggetNeptunium237", "nuggetNeptunium237", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" }));
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "nuggetNeptunium237", "nuggetNeptunium237", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" }));
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "tinyNp237", "tinyNp237", "tinyU238", "tinyU238", "tinyU238", "tinyU238" }));
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_neptunium_fuel, 1), new Object[] { "tinyNp237", "tinyNp237", "tinyU238", "tinyU238", "tinyU238", "tinyU238" }));
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_mox_fuel, 3), new Object[] { ModItems.billet_uranium_fuel, "billetUranium238", "billetPlutonium239" });
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_mox_fuel, 3), new Object[] { ModItems.billet_uranium_fuel, ModItems.billet_uranium_fuel, "billetPlutonium239" }));
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_mox_fuel, 1), new Object[] { "nuggetPlutonium239", "nuggetPlutonium239", "nuggetUranium238", "nuggetUranium238", ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel }));
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_mox_fuel, 1), new Object[] { "nuggetPlutonium239", "nuggetPlutonium239", ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel, ModItems.nugget_uranium_fuel }));
|
||||||
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 3), new Object[] { ModItems.billet_schrabidium, ModItems.billet_neptunium, ModItems.billet_beryllium });
|
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 3), new Object[] { ModItems.billet_schrabidium, ModItems.billet_neptunium, ModItems.billet_beryllium });
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 1), new Object[] { ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, "nuggetNeptunium237", "nuggetNeptunium237", ModItems.nugget_beryllium, ModItems.nugget_beryllium }));
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 1), new Object[] { ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, "nuggetNeptunium237", "nuggetNeptunium237", ModItems.nugget_beryllium, ModItems.nugget_beryllium }));
|
||||||
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 1), new Object[] { ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, "tinyNp237", "tinyNp237", ModItems.nugget_beryllium, ModItems.nugget_beryllium }));
|
GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.billet_schrabidium_fuel, 1), new Object[] { ModItems.nugget_schrabidium, ModItems.nugget_schrabidium, "tinyNp237", "tinyNp237", ModItems.nugget_beryllium, ModItems.nugget_beryllium }));
|
||||||
|
|||||||
@ -5,12 +5,15 @@ import com.hbm.handler.ArmorModHandler;
|
|||||||
import com.hbm.handler.HbmKeybinds.EnumKeybind;
|
import com.hbm.handler.HbmKeybinds.EnumKeybind;
|
||||||
import com.hbm.items.armor.ItemModShield;
|
import com.hbm.items.armor.ItemModShield;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.toclient.PlayerInformPacket;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
import io.netty.buffer.ByteBuf;
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
@ -86,9 +89,9 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
|
|||||||
this.enableBackpack = !this.enableBackpack;
|
this.enableBackpack = !this.enableBackpack;
|
||||||
|
|
||||||
if(this.enableBackpack)
|
if(this.enableBackpack)
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "Jetpack ON", MainRegistry.proxy.ID_JETPACK, 1000), (EntityPlayerMP) player);
|
||||||
else
|
else
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.RED + "Jetpack OFF", MainRegistry.proxy.ID_JETPACK, 1000), (EntityPlayerMP) player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (key == EnumKeybind.TOGGLE_MAGNET){
|
if (key == EnumKeybind.TOGGLE_MAGNET){
|
||||||
@ -96,9 +99,9 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
|
|||||||
this.enableMagnet = !this.enableMagnet;
|
this.enableMagnet = !this.enableMagnet;
|
||||||
|
|
||||||
if(this.enableMagnet)
|
if(this.enableMagnet)
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "Magnet ON", MainRegistry.proxy.ID_MAGNET);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "Magnet ON", MainRegistry.proxy.ID_MAGNET, 1000), (EntityPlayerMP) player);
|
||||||
else
|
else
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "Magnet OFF", MainRegistry.proxy.ID_MAGNET);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "Magnet ON", MainRegistry.proxy.ID_MAGNET, 1000), (EntityPlayerMP) player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(key == EnumKeybind.TOGGLE_HEAD) {
|
if(key == EnumKeybind.TOGGLE_HEAD) {
|
||||||
@ -107,9 +110,9 @@ public class HbmPlayerProps implements IExtendedEntityProperties {
|
|||||||
this.enableHUD = !this.enableHUD;
|
this.enableHUD = !this.enableHUD;
|
||||||
|
|
||||||
if(this.enableHUD)
|
if(this.enableHUD)
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD, 1000), (EntityPlayerMP) player);
|
||||||
else
|
else
|
||||||
MainRegistry.proxy.displayTooltip(EnumChatFormatting.RED + "HUD OFF", MainRegistry.proxy.ID_HUD);
|
PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(EnumChatFormatting.GREEN + "HUD ON", MainRegistry.proxy.ID_HUD, 1000), (EntityPlayerMP) player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -3,6 +3,9 @@ package com.hbm.handler.nei;
|
|||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.inventory.recipes.AssemblyMachineRecipes;
|
import com.hbm.inventory.recipes.AssemblyMachineRecipes;
|
||||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
|
||||||
public class AssemblyMachineRecipeHandler extends NEIGenericRecipeHandler {
|
public class AssemblyMachineRecipeHandler extends NEIGenericRecipeHandler {
|
||||||
|
|
||||||
@ -10,9 +13,20 @@ public class AssemblyMachineRecipeHandler extends NEIGenericRecipeHandler {
|
|||||||
super(ModBlocks.machine_assembly_machine.getLocalizedName(), AssemblyMachineRecipes.INSTANCE, ModBlocks.machine_assembly_machine);
|
super(ModBlocks.machine_assembly_machine.getLocalizedName(), AssemblyMachineRecipes.INSTANCE, ModBlocks.machine_assembly_machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public AssemblyMachineRecipeHandler(String displayName, GenericRecipes recipeSet, Block... machines) { super(displayName, recipeSet, machines); }
|
||||||
|
|
||||||
@Override public String getRecipeID() { return "ntmAssemblyMachine"; }
|
@Override public String getRecipeID() { return "ntmAssemblyMachine"; }
|
||||||
|
|
||||||
@Override public int getInputXOffset(GenericRecipe recipe, int inputCount) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; }
|
@Override public int getInputXOffset(GenericRecipe recipe, int inputCount) { return inputCount > 12 ? -9 : inputCount > 9 ? 18 : 0; }
|
||||||
@Override public int getOutputXOffset(GenericRecipe recipe, int outputCount) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; }
|
@Override public int getOutputXOffset(GenericRecipe recipe, int outputCount) { return getOffset(recipe); }
|
||||||
@Override public int getMachineXOffset(GenericRecipe recipe) { return recipe.inputItem != null && recipe.inputItem.length > 9 ? 18 : 0; }
|
@Override public int getMachineXOffset(GenericRecipe recipe) { return getOffset(recipe); }
|
||||||
|
|
||||||
|
public int getOffset(GenericRecipe recipe) {
|
||||||
|
int length = 0;
|
||||||
|
if(recipe.inputItem != null) length += recipe.inputItem.length;
|
||||||
|
if(recipe.inputFluid != null) length += recipe.inputFluid.length;
|
||||||
|
if(length > 12) return 27;
|
||||||
|
if(length > 9) return 18;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,13 @@
|
|||||||
|
package com.hbm.handler.nei;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipes;
|
||||||
|
|
||||||
|
public class PlasmaForgeRecipeHandler extends AssemblyMachineRecipeHandler {
|
||||||
|
|
||||||
|
public PlasmaForgeRecipeHandler() {
|
||||||
|
super(ModBlocks.fusion_plasma_forge.getLocalizedName(), PlasmaForgeRecipes.INSTANCE, ModBlocks.fusion_plasma_forge);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public String getRecipeID() { return "ntmPlasmaForge"; }
|
||||||
|
}
|
||||||
@ -271,6 +271,11 @@ public class RecipesCommon {
|
|||||||
public List<ItemStack> extractForNEI() {
|
public List<ItemStack> extractForNEI() {
|
||||||
return Arrays.asList(new ItemStack[] {this.toStack()});
|
return Arrays.asList(new ItemStack[] {this.toStack()});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.stacksize + "x" + (this.item != null ? this.item.getUnlocalizedName() : "null") + "@" + this.meta;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class NBTStack extends ComparableStack {
|
public static class NBTStack extends ComparableStack {
|
||||||
@ -374,6 +379,11 @@ public class RecipesCommon {
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.stacksize + "x" + (this.item != null ? this.item.getUnlocalizedName() : "null") + "@" + this.meta + "?" + this.nbt;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class OreDictStack extends AStack {
|
public static class OreDictStack extends AStack {
|
||||||
@ -490,6 +500,11 @@ public class RecipesCommon {
|
|||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return this.stacksize + "x" + this.name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class MetaBlock {
|
public static class MetaBlock {
|
||||||
|
|||||||
@ -0,0 +1,70 @@
|
|||||||
|
package com.hbm.inventory.container;
|
||||||
|
|
||||||
|
import com.hbm.inventory.SlotCraftingOutput;
|
||||||
|
import com.hbm.inventory.SlotNonRetarded;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.util.InventoryUtil;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IBatteryItem;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class ContainerMachinePlasmaForge extends ContainerBase {
|
||||||
|
|
||||||
|
public ContainerMachinePlasmaForge(InventoryPlayer invPlayer, IInventory assembler) {
|
||||||
|
super(invPlayer, assembler);
|
||||||
|
|
||||||
|
// Battery
|
||||||
|
this.addSlotToContainer(new SlotNonRetarded(assembler, 0, 152, 82));
|
||||||
|
// Schematic
|
||||||
|
this.addSlotToContainer(new SlotNonRetarded(assembler, 1, 35, 81));
|
||||||
|
// Booster
|
||||||
|
this.addSlotToContainer(new SlotNonRetarded(assembler, 2, 98, 116));
|
||||||
|
// Input
|
||||||
|
this.addSlots(assembler, 3, 8, 18, 3, 4);
|
||||||
|
// Output
|
||||||
|
this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, assembler, 15, 116, 36));
|
||||||
|
|
||||||
|
this.playerInv(invPlayer, 8, 162);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||||
|
ItemStack slotOriginal = null;
|
||||||
|
Slot slot = (Slot) this.inventorySlots.get(index);
|
||||||
|
|
||||||
|
if(slot != null && slot.getHasStack()) {
|
||||||
|
ItemStack slotStack = slot.getStack();
|
||||||
|
slotOriginal = slotStack.copy();
|
||||||
|
|
||||||
|
if(index <= tile.getSizeInventory() - 1) {
|
||||||
|
SlotCraftingOutput.checkAchievements(player, slotStack);
|
||||||
|
if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if(slotOriginal.getItem() instanceof IBatteryItem || slotOriginal.getItem() == ModItems.battery_creative) {
|
||||||
|
if(!this.mergeItemStack(slotStack, 0, 1, false)) return null;
|
||||||
|
} else if(slotOriginal.getItem() == ModItems.blueprints) {
|
||||||
|
if(!this.mergeItemStack(slotStack, 1, 2, false)) return null;
|
||||||
|
} else {
|
||||||
|
if(!InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 2, 15, false)) return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(slotStack.stackSize == 0) {
|
||||||
|
slot.putStack(null);
|
||||||
|
} else {
|
||||||
|
slot.onSlotChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
slot.onPickupFromSlot(player, slotStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
return slotOriginal;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -31,7 +31,7 @@ public class ContainerRBMKRod extends Container {
|
|||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) {
|
public ItemStack slotClick(int index, int button, int mode, EntityPlayer player) {
|
||||||
|
|
||||||
if(index == 0) {
|
if(index == 0 && !player.capabilities.isCreativeMode) {
|
||||||
|
|
||||||
if(rbmk.coldEnoughForManual()) {
|
if(rbmk.coldEnoughForManual()) {
|
||||||
return super.slotClick(index, button, mode, player);
|
return super.slotClick(index, button, mode, player);
|
||||||
@ -58,7 +58,7 @@ public class ContainerRBMKRod extends Container {
|
|||||||
var3 = var5.copy();
|
var3 = var5.copy();
|
||||||
|
|
||||||
if(par2 <= rbmk.getSizeInventory() - 1) {
|
if(par2 <= rbmk.getSizeInventory() - 1) {
|
||||||
if(!rbmk.coldEnoughForManual()) return null;
|
if(!rbmk.coldEnoughForManual() && !player.capabilities.isCreativeMode) return null;
|
||||||
if(!this.mergeItemStack(var5, rbmk.getSizeInventory(), this.inventorySlots.size(), true)) {
|
if(!this.mergeItemStack(var5, rbmk.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,66 +1,21 @@
|
|||||||
package com.hbm.inventory.container;
|
package com.hbm.inventory.container;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.inventory.Slot;
|
import net.minecraft.inventory.Slot;
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
|
|
||||||
//@invtweaks.api.container.ChestContainer(rowSize = 5)
|
@invtweaks.api.container.ChestContainer(rowSize = 5, isLargeChest = false)
|
||||||
public class ContainerSafe extends Container {
|
public class ContainerSafe extends ContainerCrateBase {
|
||||||
|
|
||||||
private IInventory diFurnace;
|
public ContainerSafe(InventoryPlayer invPlayer, IInventory te) {
|
||||||
|
super(invPlayer,te);
|
||||||
public ContainerSafe(InventoryPlayer invPlayer, IInventory tedf) {
|
|
||||||
diFurnace = tedf;
|
|
||||||
|
|
||||||
for(int i = 0; i < 3; i++) {
|
for(int i = 0; i < 3; i++) {
|
||||||
for(int j = 0; j < 5; j++) {
|
for(int j = 0; j < 5; j++) {
|
||||||
this.addSlotToContainer(new Slot(tedf, j + i * 5, 8 + j * 18 + 18 * 2, 18 + i * 18));
|
this.addSlotToContainer(new Slot(te, j + i * 5, 8 + j * 18 + 18 * 2, 18 + i * 18));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 3; i++) {
|
this.playerInv(invPlayer, 8, 32 + 18 * 3, 90 + (18 * 3));
|
||||||
for(int j = 0; j < 9; j++) {
|
|
||||||
this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int i = 0; i < 9; i++) {
|
|
||||||
this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 2));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@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 <= diFurnace.getSizeInventory() - 1) {
|
|
||||||
if(!this.mergeItemStack(var5, diFurnace.getSizeInventory(), this.inventorySlots.size(), true)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
} else if(!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var5.stackSize == 0) {
|
|
||||||
var4.putStack((ItemStack) null);
|
|
||||||
} else {
|
|
||||||
var4.onSlotChanged();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var3;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canInteractWith(EntityPlayer player) {
|
|
||||||
return diFurnace.isUseableByPlayer(player);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
140
src/main/java/com/hbm/inventory/gui/GUIMachinePlasmaForge.java
Normal file
140
src/main/java/com/hbm/inventory/gui/GUIMachinePlasmaForge.java
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
package com.hbm.inventory.gui;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.inventory.container.ContainerMachinePlasmaForge;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipe;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipes;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.items.machine.ItemBlueprints;
|
||||||
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.render.util.GaugeUtil;
|
||||||
|
import com.hbm.tileentity.machine.fusion.TileEntityFusionPlasmaForge;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.OpenGlHelper;
|
||||||
|
import net.minecraft.client.resources.I18n;
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class GUIMachinePlasmaForge extends GuiInfoContainer {
|
||||||
|
|
||||||
|
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/reactors/gui_fusion_plasmaforge.png");
|
||||||
|
private TileEntityFusionPlasmaForge forge;
|
||||||
|
|
||||||
|
public GUIMachinePlasmaForge(InventoryPlayer invPlayer, TileEntityFusionPlasmaForge tedf) {
|
||||||
|
super(new ContainerMachinePlasmaForge(invPlayer, tedf));
|
||||||
|
forge = tedf;
|
||||||
|
|
||||||
|
this.xSize = 176;
|
||||||
|
this.ySize = 244;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||||
|
super.drawScreen(mouseX, mouseY, f);
|
||||||
|
|
||||||
|
forge.inputTank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 18, 16, 52);
|
||||||
|
|
||||||
|
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 62, forge.power, forge.maxPower);
|
||||||
|
|
||||||
|
if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 80 < mouseY && guiTop + 80 + 18 >= mouseY) {
|
||||||
|
if(this.forge.plasmaModule.recipe != null && PlasmaForgeRecipes.INSTANCE.recipeNameMap.containsKey(this.forge.plasmaModule.recipe)) {
|
||||||
|
GenericRecipe recipe = (GenericRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(this.forge.plasmaModule.recipe);
|
||||||
|
this.func_146283_a(recipe.print(), mouseX, mouseY);
|
||||||
|
} else {
|
||||||
|
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("gui.recipe.setRecipe"), mouseX, mouseY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(forge.plasmaModule.recipe);
|
||||||
|
|
||||||
|
if(recipe != null) {
|
||||||
|
drawCustomInfoStat(mouseX, mouseY, guiLeft + 25, guiTop + 115, 18, 18, mouseX, mouseY, EnumChatFormatting.GREEN + "-> " + EnumChatFormatting.RESET + BobMathUtil.getShortNumber(forge.plasmaEnergySync) + "KyU / " + BobMathUtil.getShortNumber(recipe.ignitionTemp) + "KyU");
|
||||||
|
} else {
|
||||||
|
drawCustomInfoStat(mouseX, mouseY, guiLeft + 25, guiTop + 115, 18, 18, mouseX, mouseY, "0TU / 0TU");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseClicked(int x, int y, int button) {
|
||||||
|
super.mouseClicked(x, y, button);
|
||||||
|
|
||||||
|
if(this.checkClick(x, y, 7, 80, 18, 18)) GUIScreenRecipeSelector.openSelector(PlasmaForgeRecipes.INSTANCE, forge, forge.plasmaModule.recipe, 0, ItemBlueprints.grabPool(forge.slots[1]), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||||
|
String name = this.forge.hasCustomInventoryName() ? this.forge.getInventoryName() : I18n.format(this.forge.getInventoryName());
|
||||||
|
|
||||||
|
this.fontRendererObj.drawString(name, 70 - 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);
|
||||||
|
|
||||||
|
int p = (int) (forge.power * 61 / forge.maxPower);
|
||||||
|
drawTexturedModalRect(guiLeft + 152, guiTop + 80 - p, 176, 62 - p, 16, p);
|
||||||
|
|
||||||
|
if(forge.plasmaModule.progress > 0) {
|
||||||
|
int j = (int) Math.ceil(70 * forge.plasmaModule.progress);
|
||||||
|
drawTexturedModalRect(guiLeft + 62, guiTop + 81, 176, 62, j, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(forge.plasmaModule.recipe);
|
||||||
|
|
||||||
|
/// LEFT LED
|
||||||
|
if(forge.didProcess) {
|
||||||
|
drawTexturedModalRect(guiLeft + 51, guiTop + 76, 195, 0, 3, 6);
|
||||||
|
} else if(recipe != null) {
|
||||||
|
drawTexturedModalRect(guiLeft + 51, guiTop + 76, 192, 0, 3, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// RIGHT LED
|
||||||
|
if(forge.didProcess) {
|
||||||
|
drawTexturedModalRect(guiLeft + 56, guiTop + 76, 195, 0, 3, 6);
|
||||||
|
} else if(recipe != null && forge.power >= recipe.power) {
|
||||||
|
drawTexturedModalRect(guiLeft + 56, guiTop + 76, 192, 0, 3, 6);
|
||||||
|
}
|
||||||
|
|
||||||
|
double inputGauge = recipe == null ? 0 : Math.min(((double) forge.plasmaEnergySync / (double) recipe.ignitionTemp), 1.5) / 1.5D;
|
||||||
|
double boosterGauge = 0;
|
||||||
|
|
||||||
|
// input energy
|
||||||
|
GaugeUtil.drawSmoothGauge(guiLeft + 34, guiTop + 124, this.zLevel, inputGauge, 5, 2, 1, 0xA00000);
|
||||||
|
// output genergy
|
||||||
|
GaugeUtil.drawSmoothGauge(guiLeft + 70, guiTop + 124, this.zLevel, boosterGauge, 5, 2, 1, 0xA00000);
|
||||||
|
|
||||||
|
this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 81);
|
||||||
|
|
||||||
|
if(recipe != null && recipe.inputItem != null) {
|
||||||
|
for(int i = 0; i < recipe.inputItem.length; i++) {
|
||||||
|
Slot slot = (Slot) this.inventorySlots.inventorySlots.get(forge.plasmaModule.inputSlots[i]);
|
||||||
|
if(!slot.getHasStack()) this.renderItem(recipe.inputItem[i].extractForCyclingDisplay(20), slot.xDisplayPosition, slot.yDisplayPosition, 10F);
|
||||||
|
}
|
||||||
|
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||||
|
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||||
|
GL11.glColor4f(1F, 1F, 1F, 0.5F);
|
||||||
|
GL11.glEnable(GL11.GL_BLEND);
|
||||||
|
this.zLevel = 300F;
|
||||||
|
for(int i = 0; i < recipe.inputItem.length; i++) {
|
||||||
|
Slot slot = (Slot) this.inventorySlots.inventorySlots.get(forge.plasmaModule.inputSlots[i]);
|
||||||
|
if(!slot.getHasStack()) drawTexturedModalRect(guiLeft + slot.xDisplayPosition, guiTop + slot.yDisplayPosition, slot.xDisplayPosition, slot.yDisplayPosition, 16, 16);
|
||||||
|
}
|
||||||
|
this.zLevel = 0F;
|
||||||
|
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||||
|
GL11.glDisable(GL11.GL_BLEND);
|
||||||
|
}
|
||||||
|
|
||||||
|
forge.inputTank.renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52);
|
||||||
|
}
|
||||||
|
}
|
||||||
112
src/main/java/com/hbm/inventory/gui/GUIPump.java
Normal file
112
src/main/java/com/hbm/inventory/gui/GUIPump.java
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
package com.hbm.inventory.gui;
|
||||||
|
|
||||||
|
import org.lwjgl.input.Keyboard;
|
||||||
|
|
||||||
|
import com.hbm.blocks.network.FluidPump.TileEntityFluidPump;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.toserver.NBTControlPacket;
|
||||||
|
import com.hbm.util.EnumUtil;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IEnergyReceiverMK2.ConnectionPriority;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
|
import net.minecraft.client.gui.GuiButton;
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public class GUIPump extends GuiScreen {
|
||||||
|
|
||||||
|
protected final TileEntityFluidPump pump;
|
||||||
|
|
||||||
|
private GuiTextField textPlacementPriority;
|
||||||
|
private GuiButton buttonPressure;
|
||||||
|
private GuiButton buttonPriority;
|
||||||
|
private int pressure;
|
||||||
|
private int priority;
|
||||||
|
|
||||||
|
public GUIPump(TileEntityFluidPump pump) {
|
||||||
|
this.pump = pump;
|
||||||
|
this.pressure = pump.tank[0].getPressure();
|
||||||
|
this.priority = pump.priority.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initGui() {
|
||||||
|
Keyboard.enableRepeatEvents(true);
|
||||||
|
|
||||||
|
textPlacementPriority = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20);
|
||||||
|
textPlacementPriority.setText("" + pump.bufferSize);
|
||||||
|
textPlacementPriority.setMaxStringLength(5);
|
||||||
|
|
||||||
|
buttonPressure = new GuiButton(0, this.width / 2 - 50, 100, 90, 20, pressure + " PU");
|
||||||
|
|
||||||
|
buttonPriority = new GuiButton(1, this.width / 2 + 50, 100, 90, 20, pump.priority.name());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
|
||||||
|
drawDefaultBackground();
|
||||||
|
|
||||||
|
drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0);
|
||||||
|
drawString(fontRendererObj, "(max. 10,000mB)", this.width / 2 - 150, 90, 0xA0A0A0);
|
||||||
|
textPlacementPriority.drawTextBox();
|
||||||
|
|
||||||
|
drawString(fontRendererObj, "Pressure:", this.width / 2 - 50, 80, 0xA0A0A0);
|
||||||
|
buttonPressure.drawButton(mc, mouseX, mouseY);
|
||||||
|
|
||||||
|
drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0);
|
||||||
|
buttonPriority.drawButton(mc, mouseX, mouseY);
|
||||||
|
|
||||||
|
super.drawScreen(mouseX, mouseY, partialTicks);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onGuiClosed() {
|
||||||
|
Keyboard.enableRepeatEvents(false);
|
||||||
|
|
||||||
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
|
||||||
|
data.setByte("pressure", (byte) pressure);
|
||||||
|
data.setByte("priority", (byte) priority);
|
||||||
|
|
||||||
|
try { data.setInteger("capacity", Integer.parseInt(textPlacementPriority.getText())); } catch(Exception ex) {}
|
||||||
|
|
||||||
|
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, pump.xCoord, pump.yCoord, pump.zCoord));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void keyTyped(char typedChar, int keyCode) {
|
||||||
|
super.keyTyped(typedChar, keyCode);
|
||||||
|
if(textPlacementPriority.textboxKeyTyped(typedChar, keyCode)) return;
|
||||||
|
|
||||||
|
if(keyCode == 1 || keyCode == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
|
||||||
|
this.mc.thePlayer.closeScreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) {
|
||||||
|
super.mouseClicked(mouseX, mouseY, mouseButton);
|
||||||
|
textPlacementPriority.mouseClicked(mouseX, mouseY, mouseButton);
|
||||||
|
|
||||||
|
if(buttonPressure.mousePressed(mc, mouseX, mouseY)) {
|
||||||
|
this.pressure++;
|
||||||
|
if(pressure > 5) pressure = 0;
|
||||||
|
buttonPressure.displayString = pressure + " PU";
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(buttonPriority.mousePressed(mc, mouseX, mouseY)) {
|
||||||
|
this.priority++;
|
||||||
|
if(priority >= ConnectionPriority.values().length) priority = 0;
|
||||||
|
buttonPriority.displayString = EnumUtil.grabEnumSafely(ConnectionPriority.class, priority).name();
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public boolean doesGuiPauseGame() { return false; }
|
||||||
|
}
|
||||||
@ -8,6 +8,7 @@ import org.lwjgl.opengl.GL11;
|
|||||||
|
|
||||||
import com.hbm.blocks.generic.BlockBobble.BobbleType;
|
import com.hbm.blocks.generic.BlockBobble.BobbleType;
|
||||||
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
|
import com.hbm.blocks.generic.BlockBobble.TileEntityBobble;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.util.Tuple.Pair;
|
import com.hbm.util.Tuple.Pair;
|
||||||
|
|
||||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
@ -26,7 +27,7 @@ public class GUIScreenBobble extends GuiScreen {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initGui() {
|
public void initGui() {
|
||||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:block.bobble"), 1.0F));
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation(NTMSounds.BLOCK_FALLOUT_3_POPUP), 1.0F));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
175
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKGauge.java
Normal file
175
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKGauge.java
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
package com.hbm.inventory.gui;
|
||||||
|
|
||||||
|
import org.lwjgl.input.Keyboard;
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.toserver.NBTControlPacket;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKGauge;
|
||||||
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class GUIScreenRBMKGauge extends GuiScreen {
|
||||||
|
|
||||||
|
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rbmk_gauge.png");
|
||||||
|
public TileEntityRBMKGauge keypad;
|
||||||
|
protected int xSize = 256;
|
||||||
|
protected int ySize = 204;
|
||||||
|
protected int guiLeft;
|
||||||
|
protected int guiTop;
|
||||||
|
|
||||||
|
protected GuiTextField[] color = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] label = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] rtty = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] min = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] max = new GuiTextField[4];
|
||||||
|
protected boolean[] active = new boolean[4];
|
||||||
|
protected boolean[] polling = new boolean[4];
|
||||||
|
|
||||||
|
public GUIScreenRBMKGauge(TileEntityRBMKGauge keypad) {
|
||||||
|
this.keypad = keypad;
|
||||||
|
|
||||||
|
this.xSize = 256;
|
||||||
|
this.ySize = 204;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initGui() {
|
||||||
|
super.initGui();
|
||||||
|
this.guiLeft = (this.width - this.xSize) / 2;
|
||||||
|
this.guiTop = (this.height - this.ySize) / 2;
|
||||||
|
|
||||||
|
Keyboard.enableRepeatEvents(true);
|
||||||
|
|
||||||
|
int oX = 4;
|
||||||
|
int oY = 4;
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
String col = Integer.toHexString(keypad.gauges[i].color);
|
||||||
|
while(col.length() < 6) col = "0" + col;
|
||||||
|
color[i] = new GuiTextField(this.fontRendererObj, guiLeft + 27 + oX, guiTop + 55 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
GUIScreenRBMKKeyPad.setupTextFieldStandard(color[i], 6, col);
|
||||||
|
label[i] = new GuiTextField(this.fontRendererObj, guiLeft + 175 + oX, guiTop + 55 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
GUIScreenRBMKKeyPad.setupTextFieldStandard(label[i], 15, keypad.gauges[i].label);
|
||||||
|
rtty[i] = new GuiTextField(this.fontRendererObj, guiLeft + 27 + oX, guiTop + 73 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
GUIScreenRBMKKeyPad.setupTextFieldStandard(rtty[i], 10, keypad.gauges[i].rtty);
|
||||||
|
min[i] = new GuiTextField(this.fontRendererObj, guiLeft + 121 + oX, guiTop + 73 + oY + i * 36, 52 - oX * 2, 14);
|
||||||
|
GUIScreenRBMKKeyPad.setupTextFieldStandard(min[i], 32, keypad.gauges[i].min + "");
|
||||||
|
max[i] = new GuiTextField(this.fontRendererObj, guiLeft + 195 + oX, guiTop + 73 + oY + i * 36, 52 - oX * 2, 14);
|
||||||
|
GUIScreenRBMKKeyPad.setupTextFieldStandard(max[i], 32, keypad.gauges[i].max + "");
|
||||||
|
|
||||||
|
active[i] = keypad.gauges[i].active;
|
||||||
|
polling[i] = keypad.gauges[i].polling;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||||
|
this.drawDefaultBackground();
|
||||||
|
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||||
|
GL11.glDisable(GL11.GL_LIGHTING);
|
||||||
|
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawGuiContainerForegroundLayer(int x, int y) {
|
||||||
|
String name = I18nUtil.resolveKey("container.rbmkGauge");
|
||||||
|
this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||||
|
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.active[i]) drawTexturedModalRect(guiLeft + 111, guiTop + i * 36 + 54, 18, 204, 16, 16);
|
||||||
|
if(this.polling[i]) drawTexturedModalRect(guiLeft + 128, guiTop + i * 36 + 53, 0, 204, 18, 18);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
this.color[i].drawTextBox();
|
||||||
|
this.label[i].drawTextBox();
|
||||||
|
this.rtty[i].drawTextBox();
|
||||||
|
this.min[i].drawTextBox();
|
||||||
|
this.max[i].drawTextBox();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseClicked(int x, int y, int b) {
|
||||||
|
super.mouseClicked(x, y, b);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(guiLeft + 111 <= x && guiLeft + 111 + 16 > x && guiTop + i * 36 + 54 < y && guiTop + i * 36 + 54 + 16 >= y) {
|
||||||
|
this.active[i] = !this.active[i];
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.active[i] ? 0.25F : 0F)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(guiLeft + 128 <= x && guiLeft + 128 + 18 > x && guiTop + i * 36 + 53 < y && guiTop + i * 36 + 53 + 18 >= y) {
|
||||||
|
this.polling[i] = !this.polling[i];
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.polling[i] ? 0.25F : 0F)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) {
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||||
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
byte active = 0;
|
||||||
|
byte polling = 0;
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.active[i]) active |= 1 << i;
|
||||||
|
if(this.polling[i]) polling |= 1 << i;
|
||||||
|
}
|
||||||
|
data.setByte("active", active);
|
||||||
|
data.setByte("polling", polling);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
try { data.setInteger("color" + i, Integer.parseInt(this.color[i].getText(), 16)); } catch(Exception ex) { }
|
||||||
|
data.setString("label" + i, this.label[i].getText());
|
||||||
|
data.setString("rtty" + i, this.rtty[i].getText());
|
||||||
|
try { data.setInteger("min" + i, Integer.parseInt(this.min[i].getText())); } catch(Exception ex) { }
|
||||||
|
try { data.setInteger("max" + i, Integer.parseInt(this.max[i].getText())); } catch(Exception ex) { }
|
||||||
|
}
|
||||||
|
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, keypad.xCoord, keypad.yCoord, keypad.zCoord));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
this.color[i].mouseClicked(x, y, b);
|
||||||
|
this.label[i].mouseClicked(x, y, b);
|
||||||
|
this.rtty[i].mouseClicked(x, y, b);
|
||||||
|
this.min[i].mouseClicked(x, y, b);
|
||||||
|
this.max[i].mouseClicked(x, y, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void keyTyped(char c, int b) {
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.color[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.label[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.rtty[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.min[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.max[i].textboxKeyTyped(c, b)) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(b == 1 || b == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
|
||||||
|
this.mc.thePlayer.closeScreen();
|
||||||
|
this.mc.setIngameFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); }
|
||||||
|
@Override public boolean doesGuiPauseGame() { return false; }
|
||||||
|
}
|
||||||
176
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKKeyPad.java
Normal file
176
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKKeyPad.java
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
package com.hbm.inventory.gui;
|
||||||
|
|
||||||
|
import org.lwjgl.input.Keyboard;
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.toserver.NBTControlPacket;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKKeyPad;
|
||||||
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
|
import net.minecraft.client.gui.GuiScreen;
|
||||||
|
import net.minecraft.client.gui.GuiTextField;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
public class GUIScreenRBMKKeyPad extends GuiScreen {
|
||||||
|
|
||||||
|
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rbmk_keypad.png");
|
||||||
|
public TileEntityRBMKKeyPad keypad;
|
||||||
|
protected int xSize = 256;
|
||||||
|
protected int ySize = 204;
|
||||||
|
protected int guiLeft;
|
||||||
|
protected int guiTop;
|
||||||
|
|
||||||
|
protected GuiTextField[] color = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] label = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] rtty = new GuiTextField[4];
|
||||||
|
protected GuiTextField[] cmd = new GuiTextField[4];
|
||||||
|
protected boolean[] active = new boolean[4];
|
||||||
|
protected boolean[] polling = new boolean[4];
|
||||||
|
|
||||||
|
public GUIScreenRBMKKeyPad(TileEntityRBMKKeyPad keypad) {
|
||||||
|
this.keypad = keypad;
|
||||||
|
|
||||||
|
this.xSize = 256;
|
||||||
|
this.ySize = 204;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setupTextFieldStandard(GuiTextField field, int length, String def) {
|
||||||
|
field.setTextColor(0x00ff00);
|
||||||
|
field.setDisabledTextColour(0x00ff00);
|
||||||
|
field.setEnableBackgroundDrawing(false);
|
||||||
|
field.setMaxStringLength(length);
|
||||||
|
field.setText(def != null ? def : "");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initGui() {
|
||||||
|
super.initGui();
|
||||||
|
this.guiLeft = (this.width - this.xSize) / 2;
|
||||||
|
this.guiTop = (this.height - this.ySize) / 2;
|
||||||
|
|
||||||
|
Keyboard.enableRepeatEvents(true);
|
||||||
|
|
||||||
|
int oX = 4;
|
||||||
|
int oY = 4;
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
String col = Integer.toHexString(keypad.keys[i].color);
|
||||||
|
while(col.length() < 6) col = "0" + col;
|
||||||
|
color[i] = new GuiTextField(this.fontRendererObj, guiLeft + 27 + oX, guiTop + 55 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
setupTextFieldStandard(color[i], 6, col);
|
||||||
|
label[i] = new GuiTextField(this.fontRendererObj, guiLeft + 175 + oX, guiTop + 55 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
setupTextFieldStandard(label[i], 15, keypad.keys[i].label);
|
||||||
|
rtty[i] = new GuiTextField(this.fontRendererObj, guiLeft + 27 + oX, guiTop + 73 + oY + i * 36, 72 - oX * 2, 14);
|
||||||
|
setupTextFieldStandard(rtty[i], 10, keypad.keys[i].rtty);
|
||||||
|
cmd[i] = new GuiTextField(this.fontRendererObj, guiLeft + 121 + oX, guiTop + 73 + oY + i * 36, 126 - oX * 2, 14);
|
||||||
|
setupTextFieldStandard(cmd[i], 32, keypad.keys[i].command);
|
||||||
|
|
||||||
|
active[i] = keypad.keys[i].active;
|
||||||
|
polling[i] = keypad.keys[i].polling;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||||
|
this.drawDefaultBackground();
|
||||||
|
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||||
|
GL11.glDisable(GL11.GL_LIGHTING);
|
||||||
|
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawGuiContainerForegroundLayer(int x, int y) {
|
||||||
|
String name = I18nUtil.resolveKey("container.rbmkKeyPad");
|
||||||
|
this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||||
|
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.active[i]) drawTexturedModalRect(guiLeft + 111, guiTop + i * 36 + 54, 18, 204, 16, 16);
|
||||||
|
if(this.polling[i]) drawTexturedModalRect(guiLeft + 128, guiTop + i * 36 + 53, 0, 204, 18, 18);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
this.color[i].drawTextBox();
|
||||||
|
this.label[i].drawTextBox();
|
||||||
|
this.rtty[i].drawTextBox();
|
||||||
|
this.cmd[i].drawTextBox();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseClicked(int x, int y, int b) {
|
||||||
|
super.mouseClicked(x, y, b);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(guiLeft + 111 <= x && guiLeft + 111 + 16 > x && guiTop + i * 36 + 54 < y && guiTop + i * 36 + 54 + 16 >= y) {
|
||||||
|
this.active[i] = !this.active[i];
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.active[i] ? 0.25F : 0F)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(guiLeft + 128 <= x && guiLeft + 128 + 18 > x && guiTop + i * 36 + 53 < y && guiTop + i * 36 + 53 + 18 >= y) {
|
||||||
|
this.polling[i] = !this.polling[i];
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.polling[i] ? 0.25F : 0F)));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) {
|
||||||
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||||
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
|
byte active = 0;
|
||||||
|
byte polling = 0;
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.active[i]) active |= 1 << i;
|
||||||
|
if(this.polling[i]) polling |= 1 << i;
|
||||||
|
}
|
||||||
|
data.setByte("active", active);
|
||||||
|
data.setByte("polling", polling);
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
try { data.setInteger("color" + i, Integer.parseInt(this.color[i].getText(), 16)); } catch(Exception ex) { }
|
||||||
|
data.setString("label" + i, this.label[i].getText());
|
||||||
|
data.setString("rtty" + i, this.rtty[i].getText());
|
||||||
|
data.setString("cmd" + i, this.cmd[i].getText());
|
||||||
|
}
|
||||||
|
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, keypad.xCoord, keypad.yCoord, keypad.zCoord));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
this.color[i].mouseClicked(x, y, b);
|
||||||
|
this.label[i].mouseClicked(x, y, b);
|
||||||
|
this.rtty[i].mouseClicked(x, y, b);
|
||||||
|
this.cmd[i].mouseClicked(x, y, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void keyTyped(char c, int b) {
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
if(this.color[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.label[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.rtty[i].textboxKeyTyped(c, b)) return;
|
||||||
|
if(this.cmd[i].textboxKeyTyped(c, b)) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(b == 1 || b == this.mc.gameSettings.keyBindInventory.getKeyCode()) {
|
||||||
|
this.mc.thePlayer.closeScreen();
|
||||||
|
this.mc.setIngameFocus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); }
|
||||||
|
@Override public boolean doesGuiPauseGame() { return false; }
|
||||||
|
}
|
||||||
@ -71,7 +71,6 @@ public class GUIScreenRadioTorchController extends GuiScreen {
|
|||||||
GL11.glEnable(GL11.GL_LIGHTING);
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void drawGuiContainerForegroundLayer(int x, int y) {
|
private void drawGuiContainerForegroundLayer(int x, int y) {
|
||||||
String name = I18nUtil.resolveKey("container.rttyController");
|
String name = I18nUtil.resolveKey("container.rttyController");
|
||||||
this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752);
|
this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752);
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
import com.hbm.blocks.generic.BlockSnowglobe.TileEntitySnowglobe;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.util.i18n.I18nUtil;
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||||
@ -23,7 +24,7 @@ public class GUIScreenSnowglobe extends GuiScreen {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initGui() {
|
public void initGui() {
|
||||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("hbm:block.bobble"), 1.0F));
|
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation(NTMSounds.BLOCK_FALLOUT_3_POPUP), 1.0F));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -12,9 +12,6 @@ import org.lwjgl.opengl.GL12;
|
|||||||
|
|
||||||
import com.hbm.inventory.recipes.CrucibleRecipes;
|
import com.hbm.inventory.recipes.CrucibleRecipes;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.machine.ItemCassette;
|
|
||||||
import com.hbm.items.machine.ItemStamp;
|
|
||||||
import com.hbm.items.machine.ItemStamp.StampType;
|
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
@ -56,17 +53,7 @@ public class GUIScreenTemplateFolder extends GuiScreen {
|
|||||||
|
|
||||||
this.isJournal = item != ModItems.template_folder;
|
this.isJournal = item != ModItems.template_folder;
|
||||||
|
|
||||||
if(!this.isJournal) {
|
|
||||||
// Stamps
|
|
||||||
for(ItemStack i : ItemStamp.stamps.get(StampType.PLATE)) allStacks.add(i.copy());
|
|
||||||
for(ItemStack i : ItemStamp.stamps.get(StampType.WIRE)) allStacks.add(i.copy());
|
|
||||||
for(ItemStack i : ItemStamp.stamps.get(StampType.CIRCUIT)) allStacks.add(i.copy());
|
|
||||||
|
|
||||||
// Tracks
|
|
||||||
for(int i = 1; i < ItemCassette.TrackType.values().length; i++) {
|
|
||||||
allStacks.add(new ItemStack(ModItems.siren_track, 1, i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!this.isJournal) {
|
if(!this.isJournal) {
|
||||||
|
|
||||||
|
|||||||
@ -140,7 +140,7 @@ public class Mats {
|
|||||||
public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m();
|
public static final NTMMaterial MAT_ALLOY = makeSmeltable(_AS + 2, ALLOY, 0xFF8330, 0x700000, 0xFF7318).setAutogen(WIRE, DUST, DENSEWIRE, PLATE, CASTPLATE, BLOCK).m();
|
||||||
public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x82A59C, 0x06281E, 0x42665C).setAutogen(BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m();
|
public static final NTMMaterial MAT_DURA = makeSmeltable(_AS + 3, DURA, 0x82A59C, 0x06281E, 0x42665C).setAutogen(BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, GRIP).m();
|
||||||
public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m();
|
public static final NTMMaterial MAT_DESH = makeSmeltable(_AS + 12, DESH, 0xFF6D6D, 0x720000, 0xF22929).setAutogen(DUST, CASTPLATE, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, STOCK, GRIP).m();
|
||||||
public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, BLOCK).m();
|
public static final NTMMaterial MAT_STAR = makeSmeltable(_AS + 5, STAR, 0xCCCCEA, 0x11111A, 0xA5A5D3).setAutogen(DUST, DENSEWIRE, CASTPLATE, BLOCK).m();
|
||||||
public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(CASTPLATE, HEAVYBARREL, HEAVYRECEIVER).m();
|
public static final NTMMaterial MAT_FERRO = makeSmeltable(_AS + 7, FERRO, 0xB7B7C9, 0x101022, 0x6B6B8B).setAutogen(CASTPLATE, HEAVYBARREL, HEAVYRECEIVER).m();
|
||||||
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
public static final NTMMaterial MAT_TCALLOY = makeSmeltable(_AS + 6, TCALLOY, 0xD4D6D6, 0x323D3D, 0x9CA6A6).setAutogen(DUST, CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
||||||
public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
public static final NTMMaterial MAT_CDALLOY = makeSmeltable(_AS + 13, CDALLOY, 0xF7DF8F, 0x604308, 0xFBD368).setAutogen(CASTPLATE, WELDEDPLATE, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER).m();
|
||||||
|
|||||||
@ -8,7 +8,6 @@ import static com.hbm.inventory.OreDictManager.*;
|
|||||||
|
|
||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.blocks.generic.BlockCap.EnumCapBlock;
|
import com.hbm.blocks.generic.BlockCap.EnumCapBlock;
|
||||||
import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart;
|
|
||||||
import com.hbm.config.GeneralConfig;
|
import com.hbm.config.GeneralConfig;
|
||||||
import com.hbm.inventory.FluidStack;
|
import com.hbm.inventory.FluidStack;
|
||||||
import com.hbm.inventory.OreDictManager;
|
import com.hbm.inventory.OreDictManager;
|
||||||
@ -83,10 +82,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.inputItems(new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)));
|
.inputItems(new OreDictStack(DESH.ingot(), 4), new OreDictStack(ANY_PLASTIC.dust(), 2), new OreDictStack(DURA.ingot(), 1)));
|
||||||
this.register(new GenericRecipe("ass.platebismuth").setup(200, 100).outputItems(new ItemStack(ModItems.plate_bismuth, 1))
|
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)));
|
.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 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)));
|
|
||||||
|
|
||||||
// expensive parts
|
// expensive parts
|
||||||
this.register(new GenericRecipe("ass.exsteelplating").setup(200, 400).outputItems(new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.STEEL_PLATING.ordinal()))
|
this.register(new GenericRecipe("ass.exsteelplating").setup(200, 400).outputItems(new ItemStack(ModItems.item_expensive, 1, EnumExpensiveType.STEEL_PLATING.ordinal()))
|
||||||
@ -425,32 +420,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
|
.inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 8_000))
|
||||||
.outputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 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.ingot_u238m2),
|
|
||||||
new ComparableStack(ModItems.ingot_cft, 64),
|
|
||||||
new ComparableStack(ModItems.ingot_cft, 64))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64),
|
|
||||||
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(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)));
|
|
||||||
|
|
||||||
// fluid tanks
|
// fluid tanks
|
||||||
this.register(new GenericRecipe("ass.tank").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_fluidtank, 1))
|
this.register(new GenericRecipe("ass.tank").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_fluidtank, 1))
|
||||||
.inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(STEEL.shell(), 4))
|
.inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(STEEL.shell(), 4))
|
||||||
@ -603,55 +572,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded()))
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded()))
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy"));
|
.setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy"));
|
||||||
|
|
||||||
// ICF
|
|
||||||
this.register(new GenericRecipe("ass.icfcell").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal()))
|
|
||||||
.inputItems(new ComparableStack(ModItems.ingot_cft, 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new ComparableStack(ModBlocks.glass_quartz, 16))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfemitter").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal()))
|
|
||||||
.inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(MAGTUNG.wireDense(), 16))
|
|
||||||
.inputItemsEx(new OreDictStack(W.plateWelded(), 8), new OreDictStack(MAGTUNG.wireDense(), 16))
|
|
||||||
.inputFluids(new FluidStack(Fluids.XENON, 16_000))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfcapacitor").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal()))
|
|
||||||
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfturbo").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal()))
|
|
||||||
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new OreDictStack(DNT.wireDense(), 4), new OreDictStack(SBD.wireDense(), 4))
|
|
||||||
.inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfcasing").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal()))
|
|
||||||
.inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfport").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal()))
|
|
||||||
.inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfcontroller").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_controller, 1))
|
|
||||||
.inputItems(new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfscaffold").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 0))
|
|
||||||
.inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plateWelded(), 2))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfvessel").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 1))
|
|
||||||
.inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfstructural").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 3))
|
|
||||||
.inputItems(new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfcore").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.struct_icf_core, 1))
|
|
||||||
.inputItems(new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM))
|
|
||||||
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
this.register(new GenericRecipe("ass.icfpress").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_icf_press, 1))
|
|
||||||
.inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID))
|
|
||||||
.setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
|
||||||
|
|
||||||
// upgrades
|
// upgrades
|
||||||
if(no528) {
|
if(no528) {
|
||||||
this.register(new GenericRecipe("ass.overdrive1").setup(200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_1, 1))
|
this.register(new GenericRecipe("ass.overdrive1").setup(200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_1, 1))
|
||||||
@ -982,22 +902,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))
|
.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"));
|
.setPools528(GenericRecipes.POOL_PREFIX_528 + "controller"));
|
||||||
|
|
||||||
// weapons
|
|
||||||
this.register(new GenericRecipe("ass.schrabhammer").setup(6_000, 100).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1))
|
|
||||||
.inputItems(
|
|
||||||
new OreDictStack(SA326.block(), 35),
|
|
||||||
new ComparableStack(ModItems.billet_yharonite, 64),
|
|
||||||
new ComparableStack(ModItems.billet_yharonite, 64),
|
|
||||||
new ComparableStack(ModItems.coin_ufo, 1),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64),
|
|
||||||
new ComparableStack(ModItems.fragment_meteorite, 64)));
|
|
||||||
|
|
||||||
// ammo
|
// ammo
|
||||||
this.register(new GenericRecipe("ass.50bmgsm").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_standard, 6, EnumAmmo.BMG50_SM.ordinal()))
|
this.register(new GenericRecipe("ass.50bmgsm").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_standard, 6, EnumAmmo.BMG50_SM.ordinal()))
|
||||||
.inputItems(new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE_STEEL), new OreDictStack(ANY_SMOKELESS.dust(), 6), new OreDictStack(STAR.ingot(), 3))
|
.inputItems(new ComparableStack(ModItems.casing, 1, EnumCasingType.LARGE_STEEL), new OreDictStack(ANY_SMOKELESS.dust(), 6), new OreDictStack(STAR.ingot(), 3))
|
||||||
@ -1102,30 +1006,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ComparableStack(ModItems.thruster_small, 1),
|
new ComparableStack(ModItems.thruster_small, 1),
|
||||||
new ComparableStack(ModItems.photo_panel, 12),
|
new ComparableStack(ModItems.photo_panel, 12),
|
||||||
new ComparableStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LITHIUM)));
|
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),
|
|
||||||
new OreDictStack(BSCCO.wireDense(), 64),
|
|
||||||
new OreDictStack(BSCCO.wireDense(), 64),
|
|
||||||
new ComparableStack(ModBlocks.det_nuke, 64),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM),
|
|
||||||
new ComparableStack(ModItems.coin_ufo, 1))
|
|
||||||
.inputItemsEx(new OreDictStack(SBD.plateCast(), 64),
|
|
||||||
new OreDictStack(BSCCO.wireDense(), 64),
|
|
||||||
new ComparableStack(ModBlocks.det_nuke, 64),
|
|
||||||
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
|
||||||
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
|
||||||
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
|
||||||
new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM),
|
|
||||||
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.COMPUTER),
|
|
||||||
new ComparableStack(ModItems.coin_ufo, 1)).setPools(GenericRecipes.POOL_PREFIX_DISCOVER + "gerald"));
|
|
||||||
|
|
||||||
this.register(new GenericRecipe("ass.emptypackage").setup(40, 100).outputItems(new ItemStack(ModItems.fluid_pack_empty, 1))
|
this.register(new GenericRecipe("ass.emptypackage").setup(40, 100).outputItems(new ItemStack(ModItems.fluid_pack_empty, 1))
|
||||||
.inputItems(new OreDictStack(TI.plate(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2)));
|
.inputItems(new OreDictStack(TI.plate(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 2)));
|
||||||
@ -1154,7 +1034,6 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
|||||||
new ComparableStack(ModItems.motor_bismuth, 3)));
|
new ComparableStack(ModItems.motor_bismuth, 3)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static HashMap getRecipes() {
|
public static HashMap getRecipes() {
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
|
||||||
|
public class PlasmaForgeRecipe extends GenericRecipe {
|
||||||
|
|
||||||
|
// minimum plasma energy to perform the recipe
|
||||||
|
public long ignitionTemp;
|
||||||
|
|
||||||
|
public PlasmaForgeRecipe(String name) { super(name); }
|
||||||
|
|
||||||
|
public PlasmaForgeRecipe setInputEnergy(long ignitionTemp) { this.ignitionTemp = ignitionTemp; return this; }
|
||||||
|
|
||||||
|
public List<String> print() {
|
||||||
|
List<String> list = new ArrayList();
|
||||||
|
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
||||||
|
|
||||||
|
duration(list);
|
||||||
|
power(list);
|
||||||
|
list.add(EnumChatFormatting.LIGHT_PURPLE + I18nUtil.resolveKey("gui.recipe.fusionIn") + ": " + BobMathUtil.getShortNumber(ignitionTemp) + "TU/t");
|
||||||
|
input(list);
|
||||||
|
output(list);
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
206
src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java
Normal file
206
src/main/java/com/hbm/inventory/recipes/PlasmaForgeRecipes.java
Normal file
@ -0,0 +1,206 @@
|
|||||||
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
|
import static com.hbm.inventory.OreDictManager.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import com.google.gson.stream.JsonWriter;
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.blocks.machine.BlockICFLaserComponent.EnumICFPart;
|
||||||
|
import com.hbm.inventory.FluidStack;
|
||||||
|
import com.hbm.inventory.RecipesCommon.AStack;
|
||||||
|
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||||
|
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||||
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.items.ItemEnums.EnumExpensiveType;
|
||||||
|
import com.hbm.items.ItemGenericPart.EnumPartType;
|
||||||
|
import com.hbm.items.machine.ItemFluidIcon;
|
||||||
|
import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack;
|
||||||
|
import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class PlasmaForgeRecipes extends GenericRecipes<PlasmaForgeRecipe> {
|
||||||
|
|
||||||
|
public static final PlasmaForgeRecipes INSTANCE = new PlasmaForgeRecipes();
|
||||||
|
|
||||||
|
@Override public int inputItemLimit() { return 12; }
|
||||||
|
@Override public int inputFluidLimit() { return 1; }
|
||||||
|
@Override public int outputItemLimit() { return 1; }
|
||||||
|
@Override public int outputFluidLimit() { return 0; }
|
||||||
|
|
||||||
|
@Override public String getFileName() { return "hbmPlasmaForge.json"; }
|
||||||
|
@Override public PlasmaForgeRecipe instantiateRecipe(String name) { return new PlasmaForgeRecipe(name); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerDefaults() {
|
||||||
|
|
||||||
|
// Plates
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.plateeuphemium").setInputEnergy(1_000_000).setup(600, 10_000_000).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 OreDictStack(OSMIRIDIUM.ingot())));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.platednt").setInputEnergy(1_000_000).setup(600, 10_000_000).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)));
|
||||||
|
|
||||||
|
// ICF
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcell").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal()))
|
||||||
|
.inputItems(new ComparableStack(ModItems.ingot_cft, 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new ComparableStack(ModBlocks.glass_quartz, 16))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfemitter").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal()))
|
||||||
|
.inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(MAGTUNG.wireDense(), 16))
|
||||||
|
.inputItemsEx(new OreDictStack(W.plateWelded(), 8), new OreDictStack(MAGTUNG.wireDense(), 16))
|
||||||
|
.inputFluids(new FluidStack(Fluids.XENON, 16_000))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcapacitor").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal()))
|
||||||
|
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfturbo").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal()))
|
||||||
|
.inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new OreDictStack(DNT.wireDense(), 4), new OreDictStack(SBD.wireDense(), 4))
|
||||||
|
.inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcasing").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal()))
|
||||||
|
.inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfport").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal()))
|
||||||
|
.inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcontroller").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_controller, 1))
|
||||||
|
.inputItems(new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfscaffold").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 0))
|
||||||
|
.inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plateWelded(), 2))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfvessel").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 1))
|
||||||
|
.inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfstructural").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.icf_component, 1, 3))
|
||||||
|
.inputItems(new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfcore").setInputEnergy(1_000_000).setup(1_200, 10_000_000).outputItems(new ItemStack(ModBlocks.struct_icf_core, 1))
|
||||||
|
.inputItems(new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.icfpress").setInputEnergy(1_000_000).setup(200, 10_000_000).outputItems(new ItemStack(ModBlocks.machine_icf_press, 1))
|
||||||
|
.inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID))
|
||||||
|
.setPools528(PlasmaForgeRecipes.POOL_PREFIX_528 + "chlorophyte"));
|
||||||
|
|
||||||
|
// weapons
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.schrabhammer").setInputEnergy(25_000_000).setup(6_000, 10_000_000).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1))
|
||||||
|
.inputItems(
|
||||||
|
new OreDictStack(SA326.block(), 35),
|
||||||
|
new ComparableStack(ModItems.billet_yharonite, 64),
|
||||||
|
new ComparableStack(ModItems.billet_yharonite, 64),
|
||||||
|
new ComparableStack(ModItems.coin_ufo, 1),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64),
|
||||||
|
new ComparableStack(ModItems.fragment_meteorite, 64)));
|
||||||
|
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("ass.fensusan").setInputEnergy(50_000_000).setup(1_200, 50_000_000).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.ingot_u238m2),
|
||||||
|
new ComparableStack(ModItems.ingot_cft, 64),
|
||||||
|
new ComparableStack(ModItems.ingot_cft, 64))
|
||||||
|
.inputItemsEx(new ComparableStack(ModItems.ingot_electronium, 64),
|
||||||
|
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(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)));
|
||||||
|
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.gerald").setInputEnergy(25_000_000).setup(6_000, 50_000_000).outputItems(new ItemStack(ModItems.sat_gerald, 1))
|
||||||
|
.inputItems(new OreDictStack(SBD.plateCast(), 64),
|
||||||
|
new OreDictStack(SBD.plateCast(), 64),
|
||||||
|
new OreDictStack(BSCCO.wireDense(), 64),
|
||||||
|
new OreDictStack(BSCCO.wireDense(), 64),
|
||||||
|
new ComparableStack(ModBlocks.det_nuke, 64),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM),
|
||||||
|
new ComparableStack(ModItems.coin_ufo, 1))
|
||||||
|
.inputItemsEx(new OreDictStack(SBD.plateCast(), 64),
|
||||||
|
new OreDictStack(BSCCO.wireDense(), 64),
|
||||||
|
new ComparableStack(ModBlocks.det_nuke, 64),
|
||||||
|
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
||||||
|
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
||||||
|
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.BRONZE_TUBES),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.part_generic, 64, EnumPartType.HDE),
|
||||||
|
new ComparableStack(ModItems.circuit, 64, EnumCircuitType.CONTROLLER_QUANTUM),
|
||||||
|
new ComparableStack(ModItems.item_expensive, 64, EnumExpensiveType.COMPUTER),
|
||||||
|
new ComparableStack(ModItems.coin_ufo, 1)).setPools(PlasmaForgeRecipes.POOL_PREFIX_DISCOVER + "gerald"));
|
||||||
|
|
||||||
|
// really, really boring fucking temp recipes
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfccore").setInputEnergy(50_000_000).setup(1_200, 100_000_000).outputItems(new ItemStack(ModBlocks.dfc_core)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 12_000))
|
||||||
|
.inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(DNT.wireDense(), 16), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CONTROLLER_QUANTUM), new ComparableStack(ModItems.singularity_spark), new ComparableStack(ModItems.powder_chlorophyte, 64)));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcemitter").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_emitter)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000))
|
||||||
|
.inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(STAR.wireDense(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM)));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcreceiver").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_receiver)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000))
|
||||||
|
.inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(STAR.plateCast(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM)));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcinjector").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_injector)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000))
|
||||||
|
.inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(BIGMT.plateCast(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED)));
|
||||||
|
this.register((PlasmaForgeRecipe) new PlasmaForgeRecipe("plsm.dfcstabilizer").setInputEnergy(50_000_000).setup(600, 10_000_000).outputItems(new ItemStack(ModBlocks.dfc_stabilizer)).inputFluids(new FluidStack(Fluids.STELLAR_FLUX, 4_000))
|
||||||
|
.inputItems(new OreDictStack(OSMIRIDIUM.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 16), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_QUANTUM)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readExtraData(JsonElement element, PlasmaForgeRecipe recipe) {
|
||||||
|
JsonObject obj = (JsonObject) element;
|
||||||
|
recipe.ignitionTemp = obj.get("ignitionTemp").getAsLong();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeExtraData(PlasmaForgeRecipe recipe, JsonWriter writer) throws IOException {
|
||||||
|
writer.name("ignitionTemp").value(recipe.ignitionTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap getRecipes() {
|
||||||
|
HashMap<Object, Object> recipes = new HashMap<Object, Object>();
|
||||||
|
|
||||||
|
for(GenericRecipe recipe : INSTANCE.recipeOrderedList) {
|
||||||
|
List input = new ArrayList();
|
||||||
|
if(recipe.inputItem != null) for(AStack stack : recipe.inputItem) input.add(stack);
|
||||||
|
if(recipe.inputFluid != null) for(FluidStack stack : recipe.inputFluid) input.add(ItemFluidIcon.make(stack));
|
||||||
|
List output = new ArrayList();
|
||||||
|
if(recipe.outputItem != null) for(IOutput stack : recipe.outputItem) output.add(stack.getAllPossibilities());
|
||||||
|
recipes.put(input.toArray(), output.toArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
return recipes;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -274,20 +274,18 @@ public class SILEXRecipes {
|
|||||||
// MOX //
|
// MOX //
|
||||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1)
|
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1)
|
||||||
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)
|
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)
|
||||||
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
|
.addOut(new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 5 + 8 * i) );
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) );
|
|
||||||
|
|
||||||
//TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly
|
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1)
|
||||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon
|
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
|
||||||
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) //To prevent people from taking advantage of differing waste types, conform to the latter
|
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 83 - i * 20)
|
||||||
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
|
.addOut(new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)
|
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 5 + 8 * i) );
|
||||||
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) );
|
|
||||||
|
|
||||||
// LEAUS //
|
// LEAUS //
|
||||||
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2)
|
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2)
|
||||||
|
|||||||
@ -166,7 +166,9 @@ public class AnvilRecipes extends SerializableRecipe {
|
|||||||
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(EMERALD.dust()), new AnvilOutput(new ItemStack(Items.emerald))).setTier(3));
|
constructionRecipes.add(new AnvilConstructionRecipe(new OreDictStack(EMERALD.dust()), new AnvilOutput(new ItemStack(Items.emerald))).setTier(3));
|
||||||
|
|
||||||
registerConstructionRecipes();
|
registerConstructionRecipes();
|
||||||
|
registerConstructionStamps();
|
||||||
registerConstructionAmmo();
|
registerConstructionAmmo();
|
||||||
|
registerConstructionSirens();
|
||||||
registerConstructionUpgrades();
|
registerConstructionUpgrades();
|
||||||
registerConstructionRecycling();
|
registerConstructionRecycling();
|
||||||
}
|
}
|
||||||
@ -578,6 +580,34 @@ public class AnvilRecipes extends SerializableRecipe {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void registerConstructionStamps() {
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_stone_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_stone_plate))).setTier(1));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_stone_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_stone_wire))).setTier(1));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_stone_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_stone_circuit))).setTier(1));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_iron_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_iron_plate))).setTier(1));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_iron_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_iron_wire))).setTier(1));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_iron_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_iron_circuit))).setTier(1));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_steel_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_steel_plate))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_steel_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_steel_wire))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_steel_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_steel_circuit))).setTier(2));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_titanium_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_titanium_plate))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_titanium_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_titanium_wire))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_titanium_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_titanium_circuit))).setTier(2));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_obsidian_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_obsidian_plate))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_obsidian_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_obsidian_wire))).setTier(2));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_obsidian_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_obsidian_circuit))).setTier(2));
|
||||||
|
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_desh_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_desh_plate))).setTier(3));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_desh_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_desh_wire))).setTier(3));
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new ComparableStack(ModItems.stamp_desh_flat, 1),new AnvilOutput(new ItemStack(ModItems.stamp_desh_circuit))).setTier(3));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static void registerConstructionAmmo() {
|
public static void registerConstructionAmmo() {
|
||||||
|
|
||||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2));
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.stamp_iron_flat), new OreDictStack(GUNMETAL.ingot(), 2)}, new AnvilOutput(new ItemStack(ModItems.stamp_9))).setTier(2));
|
||||||
@ -597,6 +627,14 @@ public class AnvilRecipes extends SerializableRecipe {
|
|||||||
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void registerConstructionSirens() {
|
||||||
|
for(int i = 1; i < 21; i++) {
|
||||||
|
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[] {new OreDictStack(STEEL.plate()), new ComparableStack(ModItems.plate_polymer)}, new AnvilOutput(new ItemStack(ModItems.siren_track, 1, i))).setTier(2).setOverlay(OverlayType.CONSTRUCTION));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static void registerConstructionUpgrades() { }
|
public static void registerConstructionUpgrades() { }
|
||||||
|
|
||||||
public static void registerConstructionRecycling() {
|
public static void registerConstructionRecycling() {
|
||||||
|
|||||||
@ -74,17 +74,20 @@ public class GenericRecipe {
|
|||||||
public GenericRecipe setPools528(String... pools) { if(GeneralConfig.enable528) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); } return this; }
|
public GenericRecipe setPools528(String... pools) { if(GeneralConfig.enable528) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); } return this; }
|
||||||
public GenericRecipe setGroup(String autoSwitch, GenericRecipes set) { this.autoSwitchGroup = autoSwitch; set.addToGroup(autoSwitch, this); return this; }
|
public GenericRecipe setGroup(String autoSwitch, GenericRecipes set) { this.autoSwitchGroup = autoSwitch; set.addToGroup(autoSwitch, this); return this; }
|
||||||
|
|
||||||
public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(exceedsStackLimit(stack)) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
|
public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) checkStackLimit(stack); return this; }
|
||||||
public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(exceedsStackLimit(stack)) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
|
public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) checkStackLimit(stack); return this; }
|
||||||
public GenericRecipe inputFluids(FluidStack... input) { this.inputFluid = input; return this; }
|
public GenericRecipe inputFluids(FluidStack... input) { this.inputFluid = input; return this; }
|
||||||
public GenericRecipe inputFluidsEx(FluidStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputFluid = input; return this; }
|
public GenericRecipe inputFluidsEx(FluidStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputFluid = input; return this; }
|
||||||
public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; }
|
public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; }
|
||||||
public GenericRecipe outputFluids(FluidStack... output) { this.outputFluid = output; return this; }
|
public GenericRecipe outputFluids(FluidStack... output) { this.outputFluid = output; return this; }
|
||||||
|
|
||||||
private boolean exceedsStackLimit(AStack stack) {
|
private void checkStackLimit(AStack stack) {
|
||||||
if(stack instanceof ComparableStack && stack.stacksize > ((ComparableStack) stack).item.getItemStackLimit(((ComparableStack) stack).toStack())) return true;
|
int max = 64;
|
||||||
if(stack.stacksize > 64) return true;
|
if(stack instanceof ComparableStack) {
|
||||||
return false;
|
ComparableStack comp = (ComparableStack) stack;
|
||||||
|
max = comp.item.getItemStackLimit(comp.toStack());
|
||||||
|
}
|
||||||
|
if(stack.stacksize > max) throw new IllegalArgumentException("AStack " + stack + " in " + this.name + " exceeds stack limit of " + max + "!");
|
||||||
}
|
}
|
||||||
|
|
||||||
public GenericRecipe outputItems(ItemStack... output) {
|
public GenericRecipe outputItems(ItemStack... output) {
|
||||||
|
|||||||
@ -94,6 +94,7 @@ public abstract class SerializableRecipe {
|
|||||||
recipeHandlers.add(PUREXRecipes.INSTANCE);
|
recipeHandlers.add(PUREXRecipes.INSTANCE);
|
||||||
recipeHandlers.add(FusionRecipes.INSTANCE);
|
recipeHandlers.add(FusionRecipes.INSTANCE);
|
||||||
recipeHandlers.add(PrecAssRecipes.INSTANCE);
|
recipeHandlers.add(PrecAssRecipes.INSTANCE);
|
||||||
|
recipeHandlers.add(PlasmaForgeRecipes.INSTANCE);
|
||||||
|
|
||||||
recipeHandlers.add(new MatDistribution());
|
recipeHandlers.add(new MatDistribution());
|
||||||
recipeHandlers.add(new CustomMachineRecipes());
|
recipeHandlers.add(new CustomMachineRecipes());
|
||||||
|
|||||||
@ -2061,7 +2061,6 @@ public class ModItems {
|
|||||||
public static Item hazmat_grey_kit;
|
public static Item hazmat_grey_kit;
|
||||||
public static Item kit_custom;
|
public static Item kit_custom;
|
||||||
|
|
||||||
public static Item legacy_toolbox;
|
|
||||||
public static Item toolbox;
|
public static Item toolbox;
|
||||||
|
|
||||||
public static Item loot_10;
|
public static Item loot_10;
|
||||||
@ -3956,9 +3955,8 @@ public class ModItems {
|
|||||||
hazmat_kit = new ItemStarterKit().setUnlocalizedName("hazmat_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_kit");
|
hazmat_kit = new ItemStarterKit().setUnlocalizedName("hazmat_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_kit");
|
||||||
hazmat_red_kit = new ItemStarterKit().setUnlocalizedName("hazmat_red_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_red_kit");
|
hazmat_red_kit = new ItemStarterKit().setUnlocalizedName("hazmat_red_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_red_kit");
|
||||||
hazmat_grey_kit = new ItemStarterKit().setUnlocalizedName("hazmat_grey_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_grey_kit");
|
hazmat_grey_kit = new ItemStarterKit().setUnlocalizedName("hazmat_grey_kit").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":hazmat_grey_kit");
|
||||||
kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit");
|
kit_custom = new ItemKitCustom().setUnlocalizedName("kit_custom").setCreativeTab(null).setTextureName(RefStrings.MODID + ":kit");
|
||||||
toolbox = new ItemToolBox().setUnlocalizedName("toolbox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox");
|
toolbox = new ItemToolBox().setUnlocalizedName("toolbox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox");
|
||||||
legacy_toolbox = new ItemKitNBT().setUnlocalizedName("toolbox_legacy").setContainerItem(toolbox).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":kit_toolbox");
|
|
||||||
|
|
||||||
loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10");
|
loot_10 = new ItemLootCrate().setUnlocalizedName("loot_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_10");
|
||||||
loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15");
|
loot_15 = new ItemLootCrate().setUnlocalizedName("loot_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":loot_15");
|
||||||
@ -6671,7 +6669,6 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(hazmat_grey_kit, hazmat_grey_kit.getUnlocalizedName());
|
GameRegistry.registerItem(hazmat_grey_kit, hazmat_grey_kit.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(kit_custom, kit_custom.getUnlocalizedName());
|
GameRegistry.registerItem(kit_custom, kit_custom.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(euphemium_kit, euphemium_kit.getUnlocalizedName());
|
GameRegistry.registerItem(euphemium_kit, euphemium_kit.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(legacy_toolbox, legacy_toolbox.getUnlocalizedName());
|
|
||||||
GameRegistry.registerItem(toolbox, toolbox.getUnlocalizedName());
|
GameRegistry.registerItem(toolbox, toolbox.getUnlocalizedName());
|
||||||
|
|
||||||
//Misile Loot Boxes
|
//Misile Loot Boxes
|
||||||
|
|||||||
@ -2,9 +2,6 @@ package com.hbm.items.machine;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.hbm.items.ModItems;
|
|
||||||
import com.hbm.util.i18n.I18nUtil;
|
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
@ -12,7 +9,6 @@ import net.minecraft.creativetab.CreativeTabs;
|
|||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
|
||||||
import net.minecraft.util.IIcon;
|
import net.minecraft.util.IIcon;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
@ -97,31 +93,22 @@ public class ItemCassette extends Item {
|
|||||||
SOUND;
|
SOUND;
|
||||||
};
|
};
|
||||||
|
|
||||||
public ItemCassette()
|
public ItemCassette() {
|
||||||
{
|
|
||||||
this.setHasSubtypes(true);
|
this.setHasSubtypes(true);
|
||||||
this.setMaxDamage(0);
|
this.setMaxDamage(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void getSubItems(Item item, CreativeTabs tabs, List list)
|
public void getSubItems(Item item, CreativeTabs tabs, List list) {
|
||||||
{
|
for(int i = 1; i < TrackType.values().length; ++i) {
|
||||||
for (int i = 1; i < TrackType.values().length; ++i)
|
|
||||||
{
|
|
||||||
list.add(new ItemStack(item, 1, i));
|
list.add(new ItemStack(item, 1, i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool)
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||||
{
|
if(!(stack.getItem() instanceof ItemCassette)) return;
|
||||||
|
|
||||||
if(!(stack.getItem() instanceof ItemCassette))
|
|
||||||
return;
|
|
||||||
|
|
||||||
list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name")));
|
|
||||||
list.add("");
|
|
||||||
|
|
||||||
list.add("Siren sound cassette:");
|
list.add("Siren sound cassette:");
|
||||||
list.add(" Name: " + TrackType.getEnum(stack.getItemDamage()).getTrackTitle());
|
list.add(" Name: " + TrackType.getEnum(stack.getItemDamage()).getTrackTitle());
|
||||||
@ -138,45 +125,29 @@ public class ItemCassette extends Item {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public boolean requiresMultipleRenderPasses()
|
public boolean requiresMultipleRenderPasses() {
|
||||||
{
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void registerIcons(IIconRegister p_94581_1_)
|
public void registerIcons(IIconRegister p_94581_1_) {
|
||||||
{
|
|
||||||
super.registerIcons(p_94581_1_);
|
super.registerIcons(p_94581_1_);
|
||||||
|
|
||||||
this.overlayIcon = p_94581_1_.registerIcon("hbm:cassette_overlay");
|
this.overlayIcon = p_94581_1_.registerIcon("hbm:cassette_overlay");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int p_77618_2_)
|
public IIcon getIconFromDamageForRenderPass(int meta, int pass) {
|
||||||
{
|
return pass == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(meta, pass);
|
||||||
return p_77618_2_ == 1 ? this.overlayIcon : super.getIconFromDamageForRenderPass(p_77618_1_, p_77618_2_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public int getColorFromItemStack(ItemStack stack, int p_82790_2_)
|
public int getColorFromItemStack(ItemStack stack, int pass) {
|
||||||
{
|
if(pass == 0) return 16777215;
|
||||||
if (p_82790_2_ == 0)
|
|
||||||
{
|
|
||||||
return 16777215;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int j = TrackType.getEnum(stack.getItemDamage()).getColor();
|
int j = TrackType.getEnum(stack.getItemDamage()).getColor();
|
||||||
|
if(j < 0) j = 16777215;
|
||||||
if (j < 0)
|
|
||||||
{
|
|
||||||
j = 16777215;
|
|
||||||
}
|
|
||||||
|
|
||||||
return j;
|
return j;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@ -54,7 +54,9 @@ public class ItemRBMKLid extends Item {
|
|||||||
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.concrete_smooth.stepSound.func_150496_b(), (ModBlocks.concrete_smooth.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.concrete_smooth.stepSound.getPitch() * 0.8F);
|
world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, ModBlocks.concrete_smooth.stepSound.func_150496_b(), (ModBlocks.concrete_smooth.stepSound.getVolume() + 1.0F) / 2.0F, ModBlocks.concrete_smooth.stepSound.getPitch() * 0.8F);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tile.explodeOnBroken = false;
|
||||||
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], meta + RBMKBase.offset, 3);
|
world.setBlockMetadataWithNotify(pos[0], pos[1], pos[2], meta + RBMKBase.offset, 3);
|
||||||
|
tile.explodeOnBroken = true;
|
||||||
stack.stackSize--;
|
stack.stackSize--;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
@ -34,11 +33,7 @@ public class ItemStamp extends Item {
|
|||||||
stamps.put(type, list);
|
stamps.put(type, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
|
||||||
if(this.type == StampType.PLATE || this.type == StampType.WIRE || this.type == StampType.CIRCUIT)
|
|
||||||
list.add("[CREATED USING TEMPLATE FOLDER]");
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Params can't take an ItemStack, for some reason it crashes during init */
|
/** Params can't take an ItemStack, for some reason it crashes during init */
|
||||||
public StampType getStampType(Item item, int meta) {
|
public StampType getStampType(Item item, int meta) {
|
||||||
|
|||||||
@ -130,7 +130,7 @@ public class ItemBedrockOreNew extends Item {
|
|||||||
public static enum BedrockOreType {
|
public static enum BedrockOreType {
|
||||||
// primary sulfuric solvent radsolvent
|
// primary sulfuric solvent radsolvent
|
||||||
LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 6), o(MAT_BAUXITE, 9), o(MAT_CRYOLITE, 3), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)),
|
LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 6), o(MAT_BAUXITE, 9), o(MAT_CRYOLITE, 3), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)),
|
||||||
HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 1), o(MAT_TANTALIUM, 1), o(MAT_GOLD, 6)),
|
HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 2), o(MAT_TANTALIUM, 2), o(MAT_GOLD, 6)),
|
||||||
RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)),
|
RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)),
|
||||||
ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)),
|
ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)),
|
||||||
NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)),
|
NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)),
|
||||||
|
|||||||
@ -68,7 +68,7 @@ public class ItemKitNBT extends Item {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static ItemStack create(ItemStack... contents) {
|
public static ItemStack create(ItemStack... contents) {
|
||||||
ItemStack stack = new ItemStack(ModItems.legacy_toolbox);
|
ItemStack stack = new ItemStack(ModItems.kit_custom);
|
||||||
stack.stackTagCompound = new NBTTagCompound();
|
stack.stackTagCompound = new NBTTagCompound();
|
||||||
ItemStackUtil.addStacksToNBT(stack, contents);
|
ItemStackUtil.addStacksToNBT(stack, contents);
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -16,6 +16,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -53,7 +54,7 @@ public class XFactory10ga {
|
|||||||
ModItems.gun_double_barrel = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
ModItems.gun_double_barrel = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
||||||
.dura(1000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(1000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound("hbm:weapon.fire.shotgun", 1.0F, 0.9F)
|
.dmg(30F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 0.9F)
|
||||||
.mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
.mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL))
|
||||||
@ -63,7 +64,7 @@ public class XFactory10ga {
|
|||||||
ModItems.gun_double_barrel_sacred_dragon = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_double_barrel_sacred_dragon = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(6000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(6000).draw(10).inspect(39).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(45F).spreadAmmo(1.35F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound("hbm:weapon.fire.shotgun", 1.0F, 0.9F)
|
.dmg(45F).spreadAmmo(1.35F).rounds(2).delay(10).reload(41).reloadOnEmpty(true).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 0.9F)
|
||||||
.mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
.mag(new MagazineFullReload(0, 2).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_DOUBLE_BARREL))
|
||||||
@ -74,7 +75,7 @@ public class XFactory10ga {
|
|||||||
ModItems.gun_autoshotgun_heretic = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig()
|
ModItems.gun_autoshotgun_heretic = new ItemGunBaseNT(WeaponQuality.DEBUG, new GunConfig()
|
||||||
.draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(100F).delay(3).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
|
.dmg(100F).delay(3).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound(NTMSounds.GUN_SHREDDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 250).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
.mag(new MagazineFullReload(0, 250).addConfigs(g10, g10_shrapnel, g10_du, g10_slug, g10_explosive))
|
||||||
.offset(0.75, -0.125, -0.25)
|
.offset(0.75, -0.125, -0.25)
|
||||||
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(XFactory12ga.LAMBDA_RECOIL_SEXY))
|
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(XFactory12ga.LAMBDA_RECOIL_SEXY))
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.packet.PacketDispatcher;
|
import com.hbm.packet.PacketDispatcher;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
@ -97,7 +98,7 @@ public class XFactory12ga {
|
|||||||
pippo.posY = mop.hitVec.yCoord + 50;
|
pippo.posY = mop.hitVec.yCoord + 50;
|
||||||
pippo.posZ = mop.hitVec.zCoord;;
|
pippo.posZ = mop.hitVec.zCoord;;
|
||||||
bullet.worldObj.spawnEntityInWorld(pippo);
|
bullet.worldObj.spawnEntityInWorld(pippo);
|
||||||
bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:weapon.boat", 100F, 1F);
|
bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, NTMSounds.GUN_SOLDIER_TF2_BOAT_EXE_WAV_MP3, 100F, 1F);
|
||||||
bullet.setDead();
|
bullet.setDead();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -292,7 +293,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_maresleg = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_maresleg = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(600).draw(10).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(600).draw(10).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F)
|
.dmg(16F).delay(20).reload(22, 10, 13, 0).jam(24).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 6).addConfigs(all))
|
.mag(new MagazineSingleReload(0, 6).addConfigs(all))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
||||||
@ -303,7 +304,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_maresleg_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
ModItems.gun_maresleg_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
||||||
new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(16F).spreadHipfire(0F).spreadAmmo(1.35F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F)
|
.dmg(16F).spreadHipfire(0F).spreadAmmo(1.35F).delay(20).reload(22, 10, 13, 0).jam(24).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 6).addConfigs(all))
|
.mag(new MagazineSingleReload(0, 6).addConfigs(all))
|
||||||
.offset(0.75, -0.0625, 0.1875D)
|
.offset(0.75, -0.0625, 0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
||||||
@ -312,7 +313,7 @@ public class XFactory12ga {
|
|||||||
.anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO),
|
.anim(LAMBDA_MARESLEG_SHORT_ANIMS).orchestra(Orchestras.ORCHESTRA_MARESLEG_AKIMBO),
|
||||||
new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(600).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(16F).spreadHipfire(0F).spreadAmmo(1.35F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F)
|
.dmg(16F).spreadHipfire(0F).spreadAmmo(1.35F).delay(20).reload(22, 10, 13, 0).jam(24).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(1, 6).addConfigs(all))
|
.mag(new MagazineSingleReload(1, 6).addConfigs(all))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
||||||
@ -323,7 +324,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_maresleg_broken = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_maresleg_broken = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(0).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(0).draw(5).inspect(39).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(48F).spreadAmmo(1.15F).delay(20).reload(22, 10, 13, 0).jam(24).sound("hbm:weapon.fire.shotgun", 1.0F, 1.0F)
|
.dmg(48F).spreadAmmo(1.15F).delay(20).reload(22, 10, 13, 0).jam(24).sound(NTMSounds.GUN_SHOTGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 6).addConfigs(g12_equestrian_tkr, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus))
|
.mag(new MagazineSingleReload(0, 6).addConfigs(g12_equestrian_tkr, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG))
|
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_MARESLEG))
|
||||||
@ -334,7 +335,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_liberator = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(200).draw(20).inspect(21).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(16F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound("hbm:weapon.fire.shotgunAlt", 1.0F, 1.0F)
|
.dmg(16F).delay(20).rounds(4).reload(25, 15, 7, 0).jam(45).sound(NTMSounds.GUN_LIBERATOR_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 4).addConfigs(all))
|
.mag(new MagazineSingleReload(0, 4).addConfigs(all))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_LIBERATOR))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_LIBERATOR))
|
||||||
@ -345,7 +346,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_spas12 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_spas12 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(600).draw(20).inspect(39).reloadSequential(true).reloadChangeType(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(600).draw(20).inspect(39).reloadSequential(true).reloadChangeType(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(32F).spreadHipfire(0F).delay(20).reload(5, 10, 10, 10, 0).jam(36).sound("hbm:weapon.shotgunShoot", 1.0F, 1.0F)
|
.dmg(32F).spreadHipfire(0F).delay(20).reload(5, 10, 10, 10, 0).jam(36).sound(NTMSounds.GUN_SPAS_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 8).addConfigs(all))
|
.mag(new MagazineSingleReload(0, 8).addConfigs(all))
|
||||||
.offset(0.75, -0.0625, -0.1875)
|
.offset(0.75, -0.0625, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MARESLEG))
|
||||||
@ -356,7 +357,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_autoshotgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_autoshotgun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(48F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
|
.dmg(48F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound(NTMSounds.GUN_SHREDDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 20).addConfigs(all))
|
.mag(new MagazineFullReload(0, 20).addConfigs(all))
|
||||||
.offset(0.75, -0.125, -0.25)
|
.offset(0.75, -0.125, -0.25)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN))
|
||||||
@ -366,7 +367,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_autoshotgun_shredder = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_autoshotgun_shredder = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(2_000).draw(10).inspect(33).reloadSequential(true).crosshair(Crosshair.L_CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(50F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
|
.dmg(50F).delay(10).auto(true).autoAfterDry(true).dryfireAfterAuto(true).reload(44).jam(19).sound(NTMSounds.GUN_SHREDDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(g12_shredder, g12_shredder_slug, g12_shredder_flechette, g12_shredder_magnum, g12_shredder_explosive, g12_shredder_phosphorus))
|
.mag(new MagazineBelt().addConfigs(g12_shredder, g12_shredder_slug, g12_shredder_flechette, g12_shredder_magnum, g12_shredder_explosive, g12_shredder_phosphorus))
|
||||||
.offset(0.75, -0.125, -0.25)
|
.offset(0.75, -0.125, -0.25)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AUTOSHOTGUN))
|
||||||
@ -377,7 +378,7 @@ public class XFactory12ga {
|
|||||||
ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_autoshotgun_sexy = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(5_000).draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(5_000).draw(20).inspect(65).reloadSequential(true).inspectCancel(false).crosshair(Crosshair.L_CIRCLE).hideCrosshair(false).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound("hbm:weapon.fire.shotgunAuto", 1.0F, 1.0F)
|
.dmg(64F).delay(4).auto(true).dryfireAfterAuto(true).reload(110).jam(19).sound(NTMSounds.GUN_SHREDDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus))
|
.mag(new MagazineFullReload(0, 100).addConfigs(g12_equestrian_bj, g12_bp, g12_bp_magnum, g12_bp_slug, g12, g12_slug, g12_flechette, g12_magnum, g12_explosive, g12_phosphorus))
|
||||||
.offset(0.75, -0.125, -0.25)
|
.offset(0.75, -0.125, -0.25)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_SEXY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_SEXY))
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
@ -49,7 +50,7 @@ public class XFactory22lr {
|
|||||||
ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_am180 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(177 * 25).draw(15).inspect(38).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(2F).delay(1).dry(10).auto(true).spread(0.01F).reload(66).jam(30).sound("hbm:weapon.fire.greaseGun", 1.0F, 1.0F)
|
.dmg(2F).delay(1).dry(10).auto(true).spread(0.01F).reload(66).jam(30).sound(NTMSounds.GUN_GREASEGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
.mag(new MagazineFullReload(0, 177).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AM180))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AM180))
|
||||||
@ -61,7 +62,7 @@ public class XFactory22lr {
|
|||||||
ModItems.gun_star_f = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_star_f = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F)
|
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound(NTMSounds.GUN_STARF_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
.mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
||||||
@ -73,7 +74,7 @@ public class XFactory22lr {
|
|||||||
ModItems.gun_star_f_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
ModItems.gun_star_f_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
||||||
new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F)
|
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound(NTMSounds.GUN_STARF_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
.mag(new MagazineFullReload(0, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
||||||
.offset(1, -0.0625 * 1.5, 0.25D)
|
.offset(1, -0.0625 * 1.5, 0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
||||||
@ -82,7 +83,7 @@ public class XFactory22lr {
|
|||||||
.anim(LAMBDA_STAR_F_ANIMS).orchestra(Orchestras.ORCHESTRA_STAR_F_AKIMBO),
|
.anim(LAMBDA_STAR_F_ANIMS).orchestra(Orchestras.ORCHESTRA_STAR_F_AKIMBO),
|
||||||
new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
new GunConfig().dura(15 * 25).draw(15).inspect(38).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound("hbm:weapon.fire.pistolLight", 1.0F, 1.0F)
|
.dmg(12.5F).delay(5).dry(17).spread(0.01F).reload(40).jam(32).sound(NTMSounds.GUN_STARF_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(1, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
.mag(new MagazineFullReload(1, 15).addConfigs(p22_sp, p22_fmj, p22_jhp, p22_ap))
|
||||||
.offset(1, -0.0625 * 1.5, -0.25D)
|
.offset(1, -0.0625 * 1.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_STAR_F))
|
||||||
|
|||||||
@ -14,6 +14,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
import com.hbm.render.anim.BusAnimationKeyframe.IType;
|
||||||
@ -41,7 +42,7 @@ public class XFactory357 {
|
|||||||
ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_light_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(7.5F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F)
|
.dmg(7.5F).delay(11).reload(55).jam(45).sound(NTMSounds.GUN_PISTOL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS))
|
||||||
@ -51,7 +52,7 @@ public class XFactory357 {
|
|||||||
ModItems.gun_light_revolver_atlas = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_light_revolver_atlas = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(12.5F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F)
|
.dmg(12.5F).delay(11).reload(55).jam(45).sound(NTMSounds.GUN_PISTOL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ATLAS))
|
||||||
@ -61,7 +62,7 @@ public class XFactory357 {
|
|||||||
ModItems.gun_light_revolver_dani = new ItemGunBaseNT(WeaponQuality.LEGENDARY,
|
ModItems.gun_light_revolver_dani = new ItemGunBaseNT(WeaponQuality.LEGENDARY,
|
||||||
new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).spreadHipfire(0F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 1.1F)
|
.dmg(15F).spreadHipfire(0F).delay(11).reload(55).jam(45).sound(NTMSounds.GUN_PISTOL_FIRE, 1.0F, 1.1F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
||||||
.offset(0.75, -0.0625, 0.3125D)
|
.offset(0.75, -0.0625, 0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
||||||
@ -70,7 +71,7 @@ public class XFactory357 {
|
|||||||
.anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI),
|
.anim(LAMBDA_DANI_ANIMS).orchestra(Orchestras.ORCHESTRA_DANI),
|
||||||
new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(30_000).draw(20).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).spreadHipfire(0F).delay(11).reload(55).jam(45).sound("hbm:weapon.fire.pistol", 1.0F, 0.9F)
|
.dmg(15F).spreadHipfire(0F).delay(11).reload(55).jam(45).sound(NTMSounds.GUN_PISTOL_FIRE, 1.0F, 0.9F)
|
||||||
.mag(new MagazineFullReload(1, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
.mag(new MagazineFullReload(1, 6).addConfigs(m357_bp, m357_sp, m357_fmj, m357_jhp, m357_ap, m357_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_DANI))
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -59,7 +60,7 @@ public class XFactory35800 {
|
|||||||
ModItems.gun_aberrator = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig()
|
ModItems.gun_aberrator = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig()
|
||||||
.dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(100F).delay(13).dry(21).reload(51).sound("hbm:weapon.fire.aberrator", 1.0F, 1.0F)
|
.dmg(100F).delay(13).dry(21).reload(51).sound(NTMSounds.GUN_ABERRATOR_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 5).addConfigs(p35800, p35800_bl))
|
.mag(new MagazineFullReload(0, 5).addConfigs(p35800, p35800_bl))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
||||||
@ -70,7 +71,7 @@ public class XFactory35800 {
|
|||||||
ModItems.gun_aberrator_eott = new ItemGunBaseNT(WeaponQuality.SECRET,
|
ModItems.gun_aberrator_eott = new ItemGunBaseNT(WeaponQuality.SECRET,
|
||||||
new GunConfig().dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(100F).spreadHipfire(0F).delay(13).dry(21).reload(51).sound("hbm:weapon.fire.aberrator", 1.0F, 1.0F)
|
.dmg(100F).spreadHipfire(0F).delay(13).dry(21).reload(51).sound(NTMSounds.GUN_ABERRATOR_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 5).addConfigs(p35800, p35800_bl))
|
.mag(new MagazineFullReload(0, 5).addConfigs(p35800, p35800_bl))
|
||||||
.offset(0.75, -0.0625 * 1.5, 0.1875)
|
.offset(0.75, -0.0625 * 1.5, 0.1875)
|
||||||
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
||||||
@ -79,7 +80,7 @@ public class XFactory35800 {
|
|||||||
.anim(LAMBDA_ABERRATOR).orchestra(Orchestras.ORCHESTRA_ABERRATOR),
|
.anim(LAMBDA_ABERRATOR).orchestra(Orchestras.ORCHESTRA_ABERRATOR),
|
||||||
new GunConfig().dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
new GunConfig().dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(100F).spreadHipfire(0F).delay(13).dry(21).reload(51).sound("hbm:weapon.fire.aberrator", 1.0F, 1.0F)
|
.dmg(100F).spreadHipfire(0F).delay(13).dry(21).reload(51).sound(NTMSounds.GUN_ABERRATOR_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(1, 5).addConfigs(p35800, p35800_bl))
|
.mag(new MagazineFullReload(1, 5).addConfigs(p35800, p35800_bl))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
.canFire(Lego.LAMBDA_STANDARD_CAN_FIRE).fire(Lego.LAMBDA_NOWEAR_FIRE).recoil(LAMBDA_RECOIL_ABERRATOR))
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
|||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
@ -156,7 +157,7 @@ public class XFactory40mm {
|
|||||||
ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_flaregun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
.dura(100).draw(7).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(20).reload(28).jam(33).sound("hbm:weapon.hkShoot", 1.0F, 1.0F)
|
.dmg(15F).delay(20).reload(28).jam(33).sound(NTMSounds.GUN_UNDERBARREL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(g26_flare, g26_flare_supply, g26_flare_weapon))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(g26_flare, g26_flare_supply, g26_flare_weapon))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_GL))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_GL))
|
||||||
@ -167,7 +168,7 @@ public class XFactory40mm {
|
|||||||
ModItems.gun_congolake = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_congolake = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(400).draw(7).inspect(39).reloadSequential(true).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
.dura(400).draw(7).inspect(39).reloadSequential(true).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(20F).delay(24).reload(16, 16, 16, 0).jam(0).sound("hbm:weapon.glShoot", 1.0F, 1.0F)
|
.dmg(20F).delay(24).reload(16, 16, 16, 0).jam(0).sound(NTMSounds.GUN_CONGO_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus))
|
.mag(new MagazineSingleReload(0, 4).addConfigs(g40_he, g40_heat, g40_demo, g40_inc, g40_phosphorus))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_GL))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_GL))
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -53,7 +54,7 @@ public class XFactory44 {
|
|||||||
pippo.posY = mop.hitVec.yCoord + 50;
|
pippo.posY = mop.hitVec.yCoord + 50;
|
||||||
pippo.posZ = mop.hitVec.zCoord;;
|
pippo.posZ = mop.hitVec.zCoord;;
|
||||||
bullet.worldObj.spawnEntityInWorld(pippo);
|
bullet.worldObj.spawnEntityInWorld(pippo);
|
||||||
bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, "hbm:alarm.trainHorn", 100F, 1F);
|
bullet.worldObj.playSoundEffect(pippo.posX, pippo.posY + 50, pippo.posZ, NTMSounds.GUN_GO_GO_GADGET_FUCK_EVERYTHING_IN_THIS_GENERAL_DIRECTION, 100F, 1F);
|
||||||
bullet.setDead();
|
bullet.setDead();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -88,7 +89,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_henry = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_henry = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(10F).delay(20).reload(25, 11, 14, 8).jam(45).sound("hbm:weapon.fire.rifle", 1.0F, 1.0F)
|
.dmg(10F).delay(20).reload(25, 11, 14, 8).jam(45).sound(NTMSounds.GUN_RIFLE_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_HENRY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_HENRY))
|
||||||
@ -98,7 +99,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_henry_lincoln = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_henry_lincoln = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(300).draw(15).inspect(23).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(20F).spreadHipfire(0F).delay(20).reload(25, 11, 14, 8).jam(45).sound("hbm:weapon.fire.rifle", 1.0F, 1.25F)
|
.dmg(20F).spreadHipfire(0F).delay(20).reload(25, 11, 14, 8).jam(45).sound(NTMSounds.GUN_RIFLE_FIRE, 1.0F, 1.25F)
|
||||||
.mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineSingleReload(0, 14).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_HENRY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_HENRY))
|
||||||
@ -109,7 +110,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_heavy_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_heavy_revolver = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(600).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(600).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F)
|
.dmg(15F).delay(14).reload(46).jam(23).sound(NTMSounds.GUN_HEAVY_REVOLVER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
||||||
@ -120,7 +121,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_heavy_revolver_lilmac = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_heavy_revolver_lilmac = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).scopeTexture(scope_lilmac).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F)
|
.dmg(30F).delay(14).reload(46).jam(23).sound(NTMSounds.GUN_HEAVY_REVOLVER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_pip, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_pip, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
||||||
@ -130,7 +131,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_heavy_revolver_protege = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_heavy_revolver_protege = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(31_000).draw(10).inspect(23).crosshair(Crosshair.L_CLASSIC).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).delay(14).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 0.8F)
|
.dmg(30F).delay(14).reload(46).jam(23).sound(NTMSounds.GUN_HEAVY_REVOLVER_FIRE, 1.0F, 0.8F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_mn7, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineFullReload(0, 6).addConfigs(m44_equestrian_mn7, m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(0.75, -0.0625, -0.3125D)
|
.offset(0.75, -0.0625, -0.3125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_NOPIP))
|
||||||
@ -141,7 +142,7 @@ public class XFactory44 {
|
|||||||
ModItems.gun_hangman = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_hangman = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(600).draw(10).inspect(31).inspectCancel(false).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(600).draw(10).inspect(31).inspectCancel(false).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(25F).delay(10).reload(46).jam(23).sound("hbm:weapon.44Shoot", 1.0F, 1.0F)
|
.dmg(25F).delay(10).reload(46).jam(23).sound(NTMSounds.GUN_HEAVY_REVOLVER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 8).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
.mag(new MagazineFullReload(0, 8).addConfigs(m44_bp, m44_sp, m44_fmj, m44_jhp, m44_ap, m44_express))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_HANGMAN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_HANGMAN))
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -83,7 +84,7 @@ public class XFactory50 {
|
|||||||
ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_amat = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
.dura(350).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F)
|
.dmg(30F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound(NTMSounds.GUN_AMAT_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he))
|
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he))
|
||||||
.offset(1, -0.0625 * 1.5, -0.25D)
|
.offset(1, -0.0625 * 1.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
||||||
@ -93,7 +94,7 @@ public class XFactory50 {
|
|||||||
ModItems.gun_amat_subtlety = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_amat_subtlety = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(1_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
.dura(1_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(50F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound("hbm:weapon.fire.amat", 1.0F, 1.0F)
|
.dmg(50F).delay(25).dry(25).spreadHipfire(0.05F).reload(51).jam(43).sound(NTMSounds.GUN_AMAT_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_equestrian, bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he))
|
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_equestrian, bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he))
|
||||||
.offset(1, -0.0625 * 1.5, -0.25D)
|
.offset(1, -0.0625 * 1.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
||||||
@ -103,7 +104,7 @@ public class XFactory50 {
|
|||||||
ModItems.gun_amat_penance = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_amat_penance = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(5_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope_thermal).thermalSights(true).smoke(LAMBDA_SMOKE)
|
.dura(5_000).draw(20).inspect(50).crosshair(Crosshair.CIRCLE).scopeTexture(scope_thermal).thermalSights(true).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(45F).delay(25).dry(25).spreadHipfire(0F).reload(51).jam(43).sound("hbm:weapon.silencerShoot", 1.0F, 1.0F)
|
.dmg(45F).delay(25).dry(25).spreadHipfire(0F).reload(51).jam(43).sound(NTMSounds.GUN_AMAT_SILENCER, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he, bmg50_black))
|
.mag(new MagazineFullReload(0, 7).addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_sm, bmg50_he, bmg50_black))
|
||||||
.offset(1, -0.0625 * 1.5, -0.25D)
|
.offset(1, -0.0625 * 1.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_AMAT))
|
||||||
@ -114,7 +115,7 @@ public class XFactory50 {
|
|||||||
ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_m2 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(10).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(7.5F).delay(2).dry(10).auto(true).spread(0.005F).sound("hbm:turret.chekhov_fire", 1.0F, 1.0F)
|
.dmg(7.5F).delay(2).dry(10).auto(true).spread(0.005F).sound(NTMSounds.TURRET_50BMG, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_he))
|
.mag(new MagazineBelt().addConfigs(bmg50_sp, bmg50_fmj, bmg50_jhp, bmg50_ap, bmg50_du, bmg50_he))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_M2))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_M2))
|
||||||
|
|||||||
@ -22,6 +22,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
|||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
@ -75,7 +76,7 @@ public class XFactory556mm {
|
|||||||
ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_g3 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(5F).delay(2).auto(true).dry(15).reload(50).jam(47).sound("hbm:weapon.fire.assault", 1.0F, 1.0F)
|
.dmg(5F).delay(2).auto(true).dry(15).reload(50).jam(47).sound(NTMSounds.GUN_ASSAULT_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_G3))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_G3))
|
||||||
@ -85,7 +86,7 @@ public class XFactory556mm {
|
|||||||
ModItems.gun_g3_zebra = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_g3_zebra = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(6_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE).scopeTexture(scope)
|
.dura(6_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE).scopeTexture(scope)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(7.5F).delay(2).auto(true).dry(15).spreadHipfire(0.01F).reload(50).jam(47).sound("hbm:weapon.fire.silenced", 1.0F, 1.0F)
|
.dmg(7.5F).delay(2).auto(true).dry(15).spreadHipfire(0.01F).reload(50).jam(47).sound(NTMSounds.GUN_RIFLE_SILENCER, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(r556_inc_sp, r556_inc_fmj, r556_inc_jhp, r556_inc_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(r556_inc_sp, r556_inc_fmj, r556_inc_jhp, r556_inc_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ZEBRA))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ZEBRA))
|
||||||
@ -96,7 +97,7 @@ public class XFactory556mm {
|
|||||||
ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_stg77 = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(10).inspect(125).crosshair(Crosshair.CIRCLE).scopeTexture(scope).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(10F).delay(2).dry(15).auto(true).reload(46).jam(0).sound("hbm:weapon.fire.assault", 1.0F, 1.0F)
|
.dmg(10F).delay(2).dry(15).auto(true).reload(46).jam(0).sound(NTMSounds.GUN_ASSAULT_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(r556_sp, r556_fmj, r556_jhp, r556_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_STG))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_STG))
|
||||||
|
|||||||
@ -15,6 +15,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -58,7 +59,7 @@ public class XFactory75Bolt {
|
|||||||
ModItems.gun_bolter = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
ModItems.gun_bolter = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
||||||
.dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(2).auto(true).spread(0.005F).reload(40).jam(55).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
.dmg(15F).delay(2).auto(true).spread(0.005F).reload(40).jam(55).sound(NTMSounds.GUN_POWDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(b75, b75_inc, b75_exp))
|
.mag(new MagazineFullReload(0, 30).addConfigs(b75, b75_inc, b75_exp))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_BOLT))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_BOLT))
|
||||||
|
|||||||
@ -18,6 +18,7 @@ import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -69,7 +70,7 @@ public class XFactory762mm {
|
|||||||
ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_carbine = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(10).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(15F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
.dmg(15F).delay(5).dry(15).spread(0.0F).reload(30, 0, 15, 0).jam(60).sound(NTMSounds.GUN_POWDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
.mag(new MagazineFullReload(0, 14).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE))
|
||||||
@ -80,7 +81,7 @@ public class XFactory762mm {
|
|||||||
ModItems.gun_minigun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_minigun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.calShoot", 1.0F, 1.0F)
|
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound(NTMSounds.GUN_MINIGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
||||||
@ -90,7 +91,7 @@ public class XFactory762mm {
|
|||||||
ModItems.gun_minigun_lacunae = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_minigun_lacunae = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE)
|
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(12F).delay(1).auto(true).dry(15).reload(15).spread(0.01F).sound("hbm:weapon.fire.laserGatling", 1.0F, 1.0F)
|
.dmg(12F).delay(1).auto(true).dry(15).reload(15).spread(0.01F).sound(NTMSounds.GUN_LASER_GATLING_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 200).addConfigs(energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir))
|
.mag(new MagazineFullReload(0, 200).addConfigs(energy_lacunae, energy_lacunae_overcharge, energy_lacunae_ir))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_LACUNAE))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_LACUNAE))
|
||||||
@ -101,7 +102,7 @@ public class XFactory762mm {
|
|||||||
new GunConfig()
|
new GunConfig()
|
||||||
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.calShoot", 1.0F, 1.0F)
|
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound(NTMSounds.GUN_MINIGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
||||||
.offset(1, -0.0625 * 2.5, 0.25D)
|
.offset(1, -0.0625 * 2.5, 0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
||||||
@ -111,7 +112,7 @@ public class XFactory762mm {
|
|||||||
new GunConfig()
|
new GunConfig()
|
||||||
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(50_000).draw(20).inspect(20).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound("hbm:weapon.calShoot", 1.0F, 1.0F)
|
.dmg(6F).delay(1).auto(true).dry(15).spread(0.01F).sound(NTMSounds.GUN_MINIGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
.mag(new MagazineBelt().addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_MINIGUN))
|
||||||
@ -123,7 +124,7 @@ public class XFactory762mm {
|
|||||||
ModItems.gun_mas36 = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_mas36 = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(5_000).draw(20).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(5_000).draw(20).inspect(31).reloadSequential(true).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).delay(25).dry(25).spread(0.0F).reload(43).jam(43).sound("hbm:weapon.fire.rifleHeavy", 1.0F, 1.0F)
|
.dmg(30F).delay(25).dry(25).spread(0.0F).reload(43).jam(43).sound(NTMSounds.GUN_HEAVY_RIFLE_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 7).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
.mag(new MagazineFullReload(0, 7).addConfigs(r762_sp, r762_fmj, r762_jhp, r762_ap, r762_du, r762_he))
|
||||||
.offset(1, -0.0625 * 1.5, -0.25D)
|
.offset(1, -0.0625 * 1.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_CARBINE))
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.hbm.items.weapon.sedna.mags.IMagazine;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.particle.SpentCasing;
|
import com.hbm.particle.SpentCasing;
|
||||||
import com.hbm.particle.SpentCasing.CasingType;
|
import com.hbm.particle.SpentCasing.CasingType;
|
||||||
@ -53,7 +54,7 @@ public class XFactory9mm {
|
|||||||
ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_greasegun = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(20).inspect(31).crosshair(Crosshair.L_CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(3F).delay(4).dry(40).auto(true).spread(0.015F).reload(60).jam(55).sound("hbm:weapon.fire.greaseGun", 1.0F, 1.0F)
|
.dmg(3F).delay(4).dry(40).auto(true).spread(0.015F).reload(60).jam(55).sound(NTMSounds.GUN_GREASEGUN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_GREASEGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_GREASEGUN))
|
||||||
@ -65,7 +66,7 @@ public class XFactory9mm {
|
|||||||
ModItems.gun_lag = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_lag = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(1_700).draw(7).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(1_700).draw(7).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(25F).delay(4).dry(10).spread(0.005F).reload(53).jam(44).sound("hbm:weapon.fire.pistol", 1.0F, 1.0F)
|
.dmg(25F).delay(4).dry(10).spread(0.005F).reload(53).jam(44).sound(NTMSounds.GUN_PISTOL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 17).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
.mag(new MagazineFullReload(0, 17).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().fire(LAMBDA_FIRE_LAG).recoil(LAMBDA_RECOIL_LAG))
|
.setupStandardFire().fire(LAMBDA_FIRE_LAG).recoil(LAMBDA_RECOIL_LAG))
|
||||||
@ -76,7 +77,7 @@ public class XFactory9mm {
|
|||||||
ModItems.gun_uzi = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_uzi = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
.dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F)
|
.dmg(3F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound(NTMSounds.GUN_UZI_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
||||||
@ -87,7 +88,7 @@ public class XFactory9mm {
|
|||||||
ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
ModItems.gun_uzi_akimbo = new ItemGunBaseNT(WeaponQuality.B_SIDE,
|
||||||
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(3F).spreadHipfire(0F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F)
|
.dmg(3F).spreadHipfire(0F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound(NTMSounds.GUN_UZI_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
.mag(new MagazineFullReload(0, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||||
.offset(1, -0.0625 * 2.5, 0.375D)
|
.offset(1, -0.0625 * 2.5, 0.375D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
||||||
@ -96,7 +97,7 @@ public class XFactory9mm {
|
|||||||
.anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO),
|
.anim(LAMBDA_UZI_ANIMS).orchestra(Orchestras.ORCHESTRA_UZI_AKIMBO),
|
||||||
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
new GunConfig().dura(3_000).draw(15).inspect(31).crosshair(Crosshair.CIRCLE).smoke(LAMBDA_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(3F).spreadHipfire(0F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound("hbm:weapon.fire.uzi", 1.0F, 1.0F)
|
.dmg(3F).spreadHipfire(0F).delay(2).dry(25).auto(true).spread(0.005F).reload(55).jam(50).sound(NTMSounds.GUN_UZI_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
.mag(new MagazineFullReload(1, 30).addConfigs(p9_sp, p9_fmj, p9_jhp, p9_ap))
|
||||||
.offset(1, -0.0625 * 2.5, -0.375D)
|
.offset(1, -0.0625 * 2.5, -0.375D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_UZI))
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineInfinite;
|
import com.hbm.items.weapon.sedna.mags.MagazineInfinite;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
@ -121,7 +122,7 @@ public class XFactoryAccelerator {
|
|||||||
ModItems.gun_coilgun = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
ModItems.gun_coilgun = new ItemGunBaseNT(WeaponQuality.SPECIAL, new GunConfig()
|
||||||
.dura(400).draw(5).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX)
|
.dura(400).draw(5).inspect(39).crosshair(Crosshair.L_CIRCUMFLEX)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(35F).delay(5).reload(20).jam(33).sound("hbm:weapon.coilgunShoot", 1.0F, 1.0F)
|
.dmg(35F).delay(5).reload(20).jam(33).sound(NTMSounds.GUN_COIL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(coil_tungsten, coil_ferrouranium))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(coil_tungsten, coil_ferrouranium))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_COILGUN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_COILGUN))
|
||||||
@ -132,7 +133,7 @@ public class XFactoryAccelerator {
|
|||||||
ModItems.gun_n_i_4_n_i = new ItemGunNI4NI(WeaponQuality.SPECIAL, new GunConfig()
|
ModItems.gun_n_i_4_n_i = new ItemGunNI4NI(WeaponQuality.SPECIAL, new GunConfig()
|
||||||
.dura(0).draw(5).inspect(39).crosshair(Crosshair.CIRCLE)
|
.dura(0).draw(5).inspect(39).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(35F).delay(10).sound("hbm:weapon.coilgunShoot", 1.0F, 1.0F)
|
.dmg(35F).delay(10).sound(NTMSounds.GUN_COIL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineInfinite(ni4ni_arc))
|
.mag(new MagazineInfinite(ni4ni_arc))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().fire(Lego.LAMBDA_NOWEAR_FIRE))
|
.setupStandardFire().fire(Lego.LAMBDA_NOWEAR_FIRE))
|
||||||
@ -144,7 +145,7 @@ public class XFactoryAccelerator {
|
|||||||
|
|
||||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> {
|
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_TAU_PRIMARY_RELEASE = (stack, ctx) -> {
|
||||||
if(ctx.getPlayer() == null || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.CYCLE) return;
|
if(ctx.getPlayer() == null || ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.CYCLE) return;
|
||||||
ctx.getPlayer().worldObj.playSoundEffect(ctx.getPlayer().posX, ctx.getPlayer().posY, ctx.getPlayer().posZ, "hbm:weapon.fire.tauRelease", 1F, 1F);
|
ctx.getPlayer().worldObj.playSoundEffect(ctx.getPlayer().posX, ctx.getPlayer().posY, ctx.getPlayer().posZ, NTMSounds.GUN_TAU_STOPFIRE, 1F, 1F);
|
||||||
};
|
};
|
||||||
|
|
||||||
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_TAU_SECONDARY_PRESS = (stack, ctx) -> {
|
public static BiConsumer<ItemStack, LambdaContext> LAMBDA_TAU_SECONDARY_PRESS = (stack, ctx) -> {
|
||||||
@ -200,7 +201,7 @@ public class XFactoryAccelerator {
|
|||||||
coin.setThrower(player);
|
coin.setThrower(player);
|
||||||
player.worldObj.spawnEntityInWorld(coin);
|
player.worldObj.spawnEntityInWorld(coin);
|
||||||
|
|
||||||
player.worldObj.playSoundAtEntity(player, "random.orb", 1.0F, 1F + player.getRNG().nextFloat() * 0.25F);
|
player.worldObj.playSoundAtEntity(player, NTMSounds.VANILLA_ORB, 1.0F, 1F + player.getRNG().nextFloat() * 0.25F);
|
||||||
|
|
||||||
ItemGunNI4NI.setCoinCount(stack, ItemGunNI4NI.getCoinCount(stack) - 1);
|
ItemGunNI4NI.setCoinCount(stack, ItemGunNI4NI.getCoinCount(stack) - 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
@ -32,7 +33,7 @@ public class XFactoryBlackPowder {
|
|||||||
ModItems.gun_pepperbox = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_pepperbox = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
.dura(300).draw(4).inspect(23).crosshair(Crosshair.CIRCLE).smoke(Lego.LAMBDA_STANDARD_SMOKE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(5F).delay(27).reload(67).jam(58).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
.dmg(5F).delay(27).reload(67).jam(58).sound(NTMSounds.GUN_POWDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 6).addConfigs(stone, flint, iron, shot))
|
.mag(new MagazineFullReload(0, 6).addConfigs(stone, flint, iron, shot))
|
||||||
.offset(0.75, -0.0625, -0.1875D)
|
.offset(0.75, -0.0625, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_PEPPERBOX))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_PEPPERBOX))
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
|||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
@ -100,7 +101,7 @@ public class XFactoryCatapult {
|
|||||||
|
|
||||||
incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F);
|
incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 1.5F);
|
||||||
|
|
||||||
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
|
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, NTMSounds.GUN_MINI_NUKE_EXPLOSION, 15.0F, 1.0F);
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
data.setString("type", "muke");
|
data.setString("type", "muke");
|
||||||
data.setBoolean("balefire", true);
|
data.setBoolean("balefire", true);
|
||||||
@ -117,7 +118,7 @@ public class XFactoryCatapult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void spawnMush(EntityBulletBaseMK4 bullet, MovingObjectPosition mop) {
|
public static void spawnMush(EntityBulletBaseMK4 bullet, MovingObjectPosition mop) {
|
||||||
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
|
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, NTMSounds.GUN_MINI_NUKE_EXPLOSION, 15.0F, 1.0F);
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
data.setString("type", "muke");
|
data.setString("type", "muke");
|
||||||
data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0);
|
data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0);
|
||||||
@ -135,7 +136,7 @@ public class XFactoryCatapult {
|
|||||||
vnt.explode();
|
vnt.explode();
|
||||||
|
|
||||||
incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 0.25F);
|
incrementRad(bullet.worldObj, mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, 0.25F);
|
||||||
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, "hbm:weapon.mukeExplosion", 15.0F, 1.0F);
|
bullet.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord + 0.5, mop.hitVec.zCoord, NTMSounds.GUN_MINI_NUKE_EXPLOSION, 15.0F, 1.0F);
|
||||||
NBTTagCompound data = new NBTTagCompound();
|
NBTTagCompound data = new NBTTagCompound();
|
||||||
data.setString("type", "tinytot");
|
data.setString("type", "tinytot");
|
||||||
data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0);
|
data.setBoolean("balefire", MainRegistry.polaroidID == 11 || bullet.worldObj.rand.nextInt(100) == 0);
|
||||||
@ -165,7 +166,7 @@ public class XFactoryCatapult {
|
|||||||
ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_fatman = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
.dura(300).draw(20).inspect(30).reloadChangeType(true).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound("hbm:weapon.fire.fatman", 1.0F, 1.0F)
|
.dmg(100F).spreadHipfire(0F).delay(10).reload(57).jam(40).sound(NTMSounds.GUN_FATMAN_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(nuke_standard, nuke_demo, nuke_high, nuke_tots, nuke_hive, nuke_balefire))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D)
|
.offset(1, -0.0625 * 1.5, -0.1875D).offsetScoped(1, -0.0625 * 1.5, -0.125D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_FATMAN))
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import com.hbm.items.weapon.sedna.impl.ItemGunDrill;
|
|||||||
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineLiquidEngine;
|
import com.hbm.items.weapon.sedna.mags.MagazineLiquidEngine;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
import com.hbm.render.anim.HbmAnimations;
|
import com.hbm.render.anim.HbmAnimations;
|
||||||
@ -89,6 +90,8 @@ public class XFactoryDrill {
|
|||||||
for(int i = -aoe; i <= aoe; i++) for(int j = -aoe; j <= aoe; j++) for(int k = -aoe; k <= aoe; k++) {
|
for(int i = -aoe; i <= aoe; i++) for(int j = -aoe; j <= aoe; j++) for(int k = -aoe; k <= aoe; k++) {
|
||||||
breakExtraBlock(player.worldObj, mop.blockX + i, mop.blockY + j, mop.blockZ + k, player, mop.blockX, mop.blockY, mop.blockZ);
|
breakExtraBlock(player.worldObj, mop.blockX + i, mop.blockY + j, mop.blockZ + k, player, mop.blockX, mop.blockY, mop.blockZ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
didPlink = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +101,8 @@ public class XFactoryDrill {
|
|||||||
if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index), ctx.config.getDurability(stack)));
|
if(calcWear) ItemGunBaseNT.setWear(stack, index, Math.min(ItemGunBaseNT.getWear(stack, index), ctx.config.getDurability(stack)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean didPlink = false;
|
||||||
|
|
||||||
public static void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) {
|
public static void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) {
|
||||||
if(world.isAirBlock(x, y, z)) return;
|
if(world.isAirBlock(x, y, z)) return;
|
||||||
if(!(playerEntity instanceof EntityPlayerMP)) return;
|
if(!(playerEntity instanceof EntityPlayerMP)) return;
|
||||||
@ -107,8 +112,12 @@ public class XFactoryDrill {
|
|||||||
int meta = world.getBlockMetadata(x, y, z);
|
int meta = world.getBlockMetadata(x, y, z);
|
||||||
|
|
||||||
if(!block.canHarvestBlock(player, meta) || (block.getBlockHardness(world, x, y, z) == -1.0F && block.getPlayerRelativeBlockHardness(player, world, x, y, z) == 0.0F) || block == ModBlocks.stone_keyhole) {
|
if(!block.canHarvestBlock(player, meta) || (block.getBlockHardness(world, x, y, z) == -1.0F && block.getPlayerRelativeBlockHardness(player, world, x, y, z) == 0.0F) || block == ModBlocks.stone_keyhole) {
|
||||||
world.playSoundAtEntity(player, "random.break", 0.5F, 0.8F + world.rand.nextFloat() * 0.6F);
|
if(!didPlink) {
|
||||||
|
world.playSoundAtEntity(player, NTMSounds.VANILLA_PLINK, 0.5F, 0.8F + world.rand.nextFloat() * 0.6F);
|
||||||
|
didPlink = true;
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// we are serverside and tryHarvestBlock already invokes the 2001 packet for every player except the user, so we manually send it for the user as well
|
// we are serverside and tryHarvestBlock already invokes the 2001 packet for every player except the user, so we manually send it for the user as well
|
||||||
|
|||||||
@ -25,6 +25,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineBelt;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
@ -77,7 +78,7 @@ public class XFactoryEnergy {
|
|||||||
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
vnt.setPlayerProcessor(new PlayerProcessorStandard());
|
||||||
vnt.explode();
|
vnt.explode();
|
||||||
beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + beam.worldObj.rand.nextFloat() * 0.2F);
|
beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + beam.worldObj.rand.nextFloat() * 0.2F);
|
||||||
beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, "fireworks.blast", 5.0F, 0.5F);
|
beam.worldObj.playSoundEffect(mop.hitVec.xCoord, mop.hitVec.yCoord, mop.hitVec.zCoord, NTMSounds.VANILLA_FIREWORKS_BANG, 5.0F, 0.5F);
|
||||||
|
|
||||||
float yaw = beam.worldObj.rand.nextFloat() * 180F;
|
float yaw = beam.worldObj.rand.nextFloat() * 180F;
|
||||||
for(int i = 0; i < 3; i++) {
|
for(int i = 0; i < 3; i++) {
|
||||||
@ -173,7 +174,7 @@ public class XFactoryEnergy {
|
|||||||
ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_tesla_cannon = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(1_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE)
|
.dura(1_000).draw(10).inspect(33).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(35F).delay(20).spreadHipfire(1.5F).reload(44).jam(19).sound("hbm:weapon.fire.tesla", 1.0F, 1.0F)
|
.dmg(35F).delay(20).spreadHipfire(1.5F).reload(44).jam(19).sound(NTMSounds.GUN_TESLA_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge, energy_tesla_ir))
|
.mag(new MagazineBelt().addConfigs(energy_tesla, energy_tesla_overcharge, energy_tesla_ir))
|
||||||
.offset(0.75, 0, -0.375).offsetScoped(0.75, 0, -0.25)
|
.offset(0.75, 0, -0.375).offsetScoped(0.75, 0, -0.25)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
||||||
@ -184,7 +185,7 @@ public class XFactoryEnergy {
|
|||||||
ModItems.gun_laser_pistol = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_laser_pistol = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
.dura(500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(25F).delay(5).spread(1F).spreadHipfire(1F).reload(45).jam(37).sound("hbm:weapon.fire.laserPistol", 1.0F, 1.0F)
|
.dmg(25F).delay(5).spread(1F).spreadHipfire(1F).reload(45).jam(37).sound(NTMSounds.GUN_LASER_PISTOL_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 30).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
.mag(new MagazineFullReload(0, 30).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
||||||
@ -194,7 +195,7 @@ public class XFactoryEnergy {
|
|||||||
ModItems.gun_laser_pistol_pew_pew = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
ModItems.gun_laser_pistol_pew_pew = new ItemGunBaseNT(WeaponQuality.B_SIDE, new GunConfig()
|
||||||
.dura(500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
.dura(500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(30F).rounds(5).delay(10).spread(0.25F).spreadHipfire(1F).reload(45).jam(37).sound("hbm:weapon.fire.laserPistol", 1.0F, 0.8F)
|
.dmg(30F).rounds(5).delay(10).spread(0.25F).spreadHipfire(1F).reload(45).jam(37).sound(NTMSounds.GUN_LASER_PISTOL_FIRE, 1.0F, 0.8F)
|
||||||
.mag(new MagazineFullReload(0, 10).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
.mag(new MagazineFullReload(0, 10).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
||||||
@ -204,7 +205,7 @@ public class XFactoryEnergy {
|
|||||||
ModItems.gun_laser_pistol_morning_glory = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_laser_pistol_morning_glory = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(1_500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
.dura(1_500).draw(10).inspect(26).crosshair(Crosshair.CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(20F).delay(7).spread(0F).spreadHipfire(0.5F).reload(45).jam(37).sound("hbm:weapon.fire.laserPistol", 1.0F, 1.1F)
|
.dmg(20F).delay(7).spread(0F).spreadHipfire(0.5F).reload(45).jam(37).sound(NTMSounds.GUN_LASER_PISTOL_FIRE, 1.0F, 1.1F)
|
||||||
.mag(new MagazineFullReload(0, 20).addConfigs(energy_emerald, energy_emerald_overcharge, energy_emerald_ir))
|
.mag(new MagazineFullReload(0, 20).addConfigs(energy_emerald, energy_emerald_overcharge, energy_emerald_ir))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
||||||
@ -215,7 +216,7 @@ public class XFactoryEnergy {
|
|||||||
ModItems.gun_lasrifle = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_lasrifle = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna)
|
.dura(2_000).draw(10).inspect(26).crosshair(Crosshair.CIRCLE).scopeTexture(scope_luna)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(50F).delay(8).spreadHipfire(1F).reload(44).jam(36).sound("hbm:weapon.fire.laser", 1.0F, 1.0F)
|
.dmg(50F).delay(8).spreadHipfire(1F).reload(44).jam(36).sound(NTMSounds.GUN_LASER_RIFLE_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
.mag(new MagazineFullReload(0, 24).addConfigs(energy_las, energy_las_overcharge, energy_las_ir))
|
||||||
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
.offset(0.75, -0.0625 * 1.5, -0.1875)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ENERGY))
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import com.hbm.items.weapon.sedna.impl.ItemGunChemthrower;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineFluid;
|
import com.hbm.items.weapon.sedna.mags.MagazineFluid;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.particle.helper.FlameCreator;
|
import com.hbm.particle.helper.FlameCreator;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
@ -160,7 +161,7 @@ public class XFactoryFlamer {
|
|||||||
ModItems.gun_flamer_daybreaker = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
ModItems.gun_flamer_daybreaker = new ItemGunBaseNT(WeaponQuality.LEGENDARY, new GunConfig()
|
||||||
.dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE)
|
.dura(20_000).draw(10).inspect(17).crosshair(Crosshair.L_CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(25F).spreadHipfire(0F).delay(10).auto(true).reload(90).jam(17).sound("hbm:weapon.fire.blackPowder", 1.0F, 1.0F)
|
.dmg(25F).spreadHipfire(0F).delay(10).auto(true).reload(90).jam(17).sound(NTMSounds.GUN_POWDER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 50).addConfigs(flame_daybreaker_diesel, flame_daybreaker_gas, flame_daybreaker_napalm, flame_daybreaker_balefire))
|
.mag(new MagazineFullReload(0, 50).addConfigs(flame_daybreaker_diesel, flame_daybreaker_gas, flame_daybreaker_napalm, flame_daybreaker_balefire))
|
||||||
.offset(0.75, -0.0625, -0.25D)
|
.offset(0.75, -0.0625, -0.25D)
|
||||||
.setupStandardFire())
|
.setupStandardFire())
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT.WeaponQuality;
|
||||||
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
|
||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
import com.hbm.packet.toclient.AuxParticlePacketNT;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
@ -36,6 +37,7 @@ import com.hbm.util.DamageResistanceHandler.DamageClass;
|
|||||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
@ -106,7 +108,7 @@ public class XFactoryFolly {
|
|||||||
ModItems.gun_folly = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig()
|
ModItems.gun_folly = new ItemGunBaseNT(WeaponQuality.SECRET, new GunConfig()
|
||||||
.dura(0).draw(40).crosshair(Crosshair.NONE)
|
.dura(0).draw(40).crosshair(Crosshair.NONE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(1_000F).delay(26).dryfire(false).reload(160).jam(0).sound("hbm:weapon.fire.loudestNoiseOnEarth", 100.0F, 1.0F)
|
.dmg(1_000F).delay(26).dryfire(false).reload(160).jam(0).sound(NTMSounds.GUN_PLEASE_REMOVE_MY_EARDRUMS_THANKS, 100.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(folly_sm, folly_nuke))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(folly_sm, folly_nuke))
|
||||||
.offset(0.75, -0.0625, -0.1875D).offsetScoped(0.75, -0.0625, -0.125D)
|
.offset(0.75, -0.0625, -0.1875D).offsetScoped(0.75, -0.0625, -0.125D)
|
||||||
.canFire(LAMBDA_CAN_FIRE).fire(LAMBDA_FIRE).recoil(LAMBDA_RECOIL_FOLLY))
|
.canFire(LAMBDA_CAN_FIRE).fire(LAMBDA_FIRE).recoil(LAMBDA_RECOIL_FOLLY))
|
||||||
@ -128,9 +130,11 @@ public class XFactoryFolly {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_CAN_FIRE = (stack, ctx) -> {
|
public static BiFunction<ItemStack, LambdaContext, Boolean> LAMBDA_CAN_FIRE = (stack, ctx) -> {
|
||||||
|
if(ctx.entity instanceof EntityPlayer) {
|
||||||
if(!ItemGunBaseNT.getIsAiming(stack)) return false;
|
if(!ItemGunBaseNT.getIsAiming(stack)) return false;
|
||||||
if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.SPINUP) return false;
|
if(ItemGunBaseNT.getLastAnim(stack, ctx.configIndex) != GunAnimation.SPINUP) return false;
|
||||||
if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false;
|
if(ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex) < 100) return false;
|
||||||
|
}
|
||||||
return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0;
|
return ctx.config.getReceivers(stack)[0].getMagazine(stack).getAmount(stack, ctx.inventory) > 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
|||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
/** Power-armor conditional weapons (melee controller and ranged attack remote) */
|
||||||
public class XFactoryPA {
|
public class XFactoryPA {
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
|
|||||||
@ -26,6 +26,7 @@ import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineSingleReload;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
@ -185,7 +186,7 @@ public class XFactoryRocket {
|
|||||||
ModItems.gun_panzerschreck = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_panzerschreck = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX)
|
.dura(300).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(25F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F)
|
.dmg(25F).delay(5).reload(50).jam(40).sound(NTMSounds.GUN_ROCKET_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
||||||
@ -196,7 +197,7 @@ public class XFactoryRocket {
|
|||||||
ModItems.gun_stinger = new ItemGunStinger(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_stinger = new ItemGunStinger(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(300).draw(7).inspect(40).crosshair(Crosshair.L_BOX_OUTLINE)
|
.dura(300).draw(7).inspect(40).crosshair(Crosshair.L_BOX_OUTLINE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(35F).delay(5).reload(50).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F)
|
.dmg(35F).delay(5).reload(50).jam(40).sound(NTMSounds.GUN_ROCKET_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_rpzb))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupLockonFire().recoil(LAMBDA_RECOIL_ROCKET))
|
.setupLockonFire().recoil(LAMBDA_RECOIL_ROCKET))
|
||||||
@ -207,7 +208,7 @@ public class XFactoryRocket {
|
|||||||
ModItems.gun_quadro = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_quadro = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(400).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
.dura(400).draw(7).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(40F).spreadHipfire(0F).delay(10).reload(55).jam(40).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F)
|
.dmg(40F).spreadHipfire(0F).delay(10).reload(55).jam(40).sound(NTMSounds.GUN_ROCKET_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 4).addConfigs(rocket_qd))
|
.mag(new MagazineFullReload(0, 4).addConfigs(rocket_qd))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
||||||
@ -218,7 +219,7 @@ public class XFactoryRocket {
|
|||||||
ModItems.gun_missile_launcher = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
ModItems.gun_missile_launcher = new ItemGunBaseNT(WeaponQuality.A_SIDE, new GunConfig()
|
||||||
.dura(500).draw(20).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
.dura(500).draw(20).inspect(40).crosshair(Crosshair.L_CIRCUMFLEX).hideCrosshair(false)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(50F).spreadHipfire(0F).delay(5).reload(48).jam(33).sound("hbm:weapon.rpgShoot", 1.0F, 1.0F)
|
.dmg(50F).spreadHipfire(0F).delay(5).reload(48).jam(33).sound(NTMSounds.GUN_ROCKET_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_ml))
|
.mag(new MagazineSingleReload(0, 1).addConfigs(rocket_ml))
|
||||||
.offset(1, -0.0625 * 1.5, -0.1875D)
|
.offset(1, -0.0625 * 1.5, -0.1875D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_ROCKET))
|
||||||
|
|||||||
@ -28,6 +28,7 @@ import com.hbm.items.weapon.sedna.impl.ItemGunChargeThrower;
|
|||||||
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
import com.hbm.items.weapon.sedna.mags.MagazineFullReload;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.particle.helper.ExplosionCreator;
|
import com.hbm.particle.helper.ExplosionCreator;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
@ -77,7 +78,7 @@ public class XFactoryTool {
|
|||||||
}
|
}
|
||||||
TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz);
|
TileEntity core = CompatExternal.getCoreFromPos(bullet.worldObj, ix, iy, iz);
|
||||||
if(core instanceof IRepairable) ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.WATER);
|
if(core instanceof IRepairable) ((IRepairable) core).tryExtinguish(bullet.worldObj, ix, iy, iz, EnumExtinguishType.WATER);
|
||||||
if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, NTMSounds.VANILLA_HISS, 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
||||||
bullet.setDead();
|
bullet.setDead();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -133,7 +134,7 @@ public class XFactoryTool {
|
|||||||
else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.block_foam);
|
else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.block_foam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
if(fizz) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, NTMSounds.VANILLA_HISS, 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -171,7 +172,7 @@ public class XFactoryTool {
|
|||||||
if(meta < 6) bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3);
|
if(meta < 6) bullet.worldObj.setBlockMetadataWithNotify(ix, iy, iz, meta + 1, 3);
|
||||||
else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_mix, EnumSandType.BORON.ordinal(), 3);
|
else bullet.worldObj.setBlock(ix, iy, iz, ModBlocks.sand_mix, EnumSandType.BORON.ordinal(), 3);
|
||||||
}
|
}
|
||||||
if(b.getMaterial() == Material.fire) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, "random.fizz", 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
if(b.getMaterial() == Material.fire) bullet.worldObj.playSoundEffect(bullet.posX, bullet.posY, bullet.posZ, NTMSounds.VANILLA_HISS, 1.0F, 1.5F + bullet.worldObj.rand.nextFloat() * 0.5F);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -259,7 +260,7 @@ public class XFactoryTool {
|
|||||||
ModItems.gun_fireext = new ItemGunBaseNT(WeaponQuality.UTILITY, new GunConfig()
|
ModItems.gun_fireext = new ItemGunBaseNT(WeaponQuality.UTILITY, new GunConfig()
|
||||||
.dura(5_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCLE)
|
.dura(5_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCLE)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(0F).delay(1).dry(0).auto(true).spread(0F).spreadHipfire(0F).reload(20).jam(0).sound("hbm:weapon.extinguisher", 1.0F, 1.0F)
|
.dmg(0F).delay(1).dry(0).auto(true).spread(0F).spreadHipfire(0F).reload(20).jam(0).sound(NTMSounds.GUN_EXTINGUISHER_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 300).addConfigs(fext_water, fext_foam, fext_sand))
|
.mag(new MagazineFullReload(0, 300).addConfigs(fext_water, fext_foam, fext_sand))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire())
|
.setupStandardFire())
|
||||||
@ -270,7 +271,7 @@ public class XFactoryTool {
|
|||||||
ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig()
|
ModItems.gun_charge_thrower = new ItemGunChargeThrower(WeaponQuality.UTILITY, new GunConfig()
|
||||||
.dura(3_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX)
|
.dura(3_000).draw(10).inspect(55).reloadChangeType(true).hideCrosshair(false).crosshair(Crosshair.L_CIRCUMFLEX)
|
||||||
.rec(new Receiver(0)
|
.rec(new Receiver(0)
|
||||||
.dmg(10F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(0).sound("hbm:weapon.fire.grenade", 1.0F, 1.0F)
|
.dmg(10F).delay(4).dry(10).auto(true).spread(0F).spreadHipfire(0F).reload(60).jam(0).sound(NTMSounds.GUN_CHARGE_FIRE, 1.0F, 1.0F)
|
||||||
.mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge))
|
.mag(new MagazineFullReload(0, 1).addConfigs(ct_hook, ct_mortar, ct_mortar_charge))
|
||||||
.offset(1, -0.0625 * 2.5, -0.25D)
|
.offset(1, -0.0625 * 2.5, -0.25D)
|
||||||
.setupStandardFire().recoil(LAMBDA_RECOIL_CT))
|
.setupStandardFire().recoil(LAMBDA_RECOIL_CT))
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import com.hbm.items.ICustomizable;
|
|||||||
import com.hbm.items.weapon.sedna.GunConfig;
|
import com.hbm.items.weapon.sedna.GunConfig;
|
||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||||
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
import com.hbm.items.weapon.sedna.mods.XWeaponModManager;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.util.ChatBuilder;
|
import com.hbm.util.ChatBuilder;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
@ -42,7 +43,7 @@ public class ItemGunNI4NI extends ItemGunBaseNT implements ICustomizable {
|
|||||||
this.setCoinCount(stack, newCount);
|
this.setCoinCount(stack, newCount);
|
||||||
|
|
||||||
if(isHeld) {
|
if(isHeld) {
|
||||||
world.playSoundAtEntity(entity, "hbm:item.techBoop", 1.0F, 1F + newCount / (float) maxCoin);
|
world.playSoundAtEntity(entity, NTMSounds.TECH_BOOP, 1.0F, 1F + newCount / (float) maxCoin);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import java.util.List;
|
|||||||
import com.hbm.items.weapon.sedna.GunConfig;
|
import com.hbm.items.weapon.sedna.GunConfig;
|
||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||||
import com.hbm.items.weapon.sedna.hud.IHUDComponent;
|
import com.hbm.items.weapon.sedna.hud.IHUDComponent;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.util.RenderScreenOverlay;
|
import com.hbm.render.util.RenderScreenOverlay;
|
||||||
import com.hbm.util.Vec3NT;
|
import com.hbm.util.Vec3NT;
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ public class ItemGunStinger extends ItemGunBaseNT {
|
|||||||
progressLockon(world, stack);
|
progressLockon(world, stack);
|
||||||
|
|
||||||
if(this.getLockonProgress(stack) >= 60 && !this.getIsLockedOn(stack)) {
|
if(this.getLockonProgress(stack) >= 60 && !this.getIsLockedOn(stack)) {
|
||||||
player.worldObj.playSoundAtEntity(player, "hbm:item.techBleep", 1F, 1F);
|
player.worldObj.playSoundAtEntity(player, NTMSounds.TECH_BLEEP, 1F, 1F);
|
||||||
this.setIsLockedOn(stack, true);
|
this.setIsLockedOn(stack, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.factory.Orchestras;
|
import com.hbm.items.weapon.sedna.factory.Orchestras;
|
||||||
import com.hbm.items.weapon.sedna.factory.XFactory44;
|
import com.hbm.items.weapon.sedna.factory.XFactory44;
|
||||||
import com.hbm.items.weapon.sedna.factory.XFactory762mm;
|
import com.hbm.items.weapon.sedna.factory.XFactory762mm;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
@ -53,7 +54,7 @@ public class WeaponModCarbineBayonet extends WeaponModBase {
|
|||||||
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
||||||
mop.entityHit.motionX *= 2;
|
mop.entityHit.motionX *= 2;
|
||||||
mop.entityHit.motionZ *= 2;
|
mop.entityHit.motionZ *= 2;
|
||||||
entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.stab", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
entity.worldObj.playSoundAtEntity(mop.entityHit, NTMSounds.GUN_STAB_A_FUCKER, 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||||
}
|
}
|
||||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
||||||
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.hbm.items.weapon.sedna.ItemGunBaseNT.LambdaContext;
|
|||||||
import com.hbm.items.weapon.sedna.factory.Orchestras;
|
import com.hbm.items.weapon.sedna.factory.Orchestras;
|
||||||
import com.hbm.items.weapon.sedna.factory.XFactory44;
|
import com.hbm.items.weapon.sedna.factory.XFactory44;
|
||||||
import com.hbm.items.weapon.sedna.factory.XFactory762mm;
|
import com.hbm.items.weapon.sedna.factory.XFactory762mm;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
import com.hbm.render.anim.AnimationEnums.GunAnimation;
|
||||||
import com.hbm.render.anim.BusAnimation;
|
import com.hbm.render.anim.BusAnimation;
|
||||||
import com.hbm.render.anim.BusAnimationSequence;
|
import com.hbm.render.anim.BusAnimationSequence;
|
||||||
@ -53,7 +54,7 @@ public class WeaponModMASBayonet extends WeaponModBase {
|
|||||||
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
mop.entityHit.attackEntityFrom(DamageSource.causePlayerDamage(ctx.getPlayer()), damage);
|
||||||
mop.entityHit.motionX *= 2;
|
mop.entityHit.motionX *= 2;
|
||||||
mop.entityHit.motionZ *= 2;
|
mop.entityHit.motionZ *= 2;
|
||||||
entity.worldObj.playSoundAtEntity(mop.entityHit, "hbm:weapon.fire.stab", 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
entity.worldObj.playSoundAtEntity(mop.entityHit, NTMSounds.GUN_STAB_A_FUCKER, 1F, 0.9F + entity.getRNG().nextFloat() * 0.2F);
|
||||||
}
|
}
|
||||||
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
if(mop.typeOfHit == mop.typeOfHit.BLOCK) {
|
||||||
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
Block b = entity.worldObj.getBlock(mop.blockX, mop.blockY, mop.blockZ);
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.hbm.items.weapon.sedna.mods;
|
|||||||
|
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.weapon.sedna.Receiver;
|
import com.hbm.items.weapon.sedna.Receiver;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
@ -15,8 +16,8 @@ public class WeaponModSilencer extends WeaponModBase {
|
|||||||
public <T> T eval(T base, ItemStack gun, String key, Object parent) {
|
public <T> T eval(T base, ItemStack gun, String key, Object parent) {
|
||||||
|
|
||||||
if(key == Receiver.S_FIRESOUND) {
|
if(key == Receiver.S_FIRESOUND) {
|
||||||
if(gun.getItem() == ModItems.gun_amat) return (T) "hbm:weapon.silencerShoot";
|
if(gun.getItem() == ModItems.gun_amat) return (T) NTMSounds.GUN_AMAT_SILENCER;
|
||||||
return (T) "hbm:weapon.fire.silenced";
|
return (T) NTMSounds.GUN_RIFLE_SILENCER;
|
||||||
}
|
}
|
||||||
|
|
||||||
return base;
|
return base;
|
||||||
|
|||||||
@ -247,18 +247,6 @@ public class HbmWorldGen implements IWorldGenerator {
|
|||||||
new LibraryDungeon().generate(world, rand, x, y, z);
|
new LibraryDungeon().generate(world, rand, x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(biome.temperature == 0.5F || biome.temperature == 2.0F) {
|
|
||||||
if(WorldConfig.relayStructure > 0 && rand.nextInt(WorldConfig.relayStructure) == 0) {
|
|
||||||
for(int a = 0; a < 1; a++) {
|
|
||||||
int x = i + rand.nextInt(16);
|
|
||||||
int z = j + rand.nextInt(16);
|
|
||||||
int y = world.getHeightValue(x, z);
|
|
||||||
|
|
||||||
new Relay().generate(world, rand, x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) {
|
if(WorldConfig.dudStructure > 0 && rand.nextInt(WorldConfig.dudStructure) == 0) {
|
||||||
int x = i + 8 + rand.nextInt(16);
|
int x = i + 8 + rand.nextInt(16);
|
||||||
int z = j + 8 + rand.nextInt(16);
|
int z = j + 8 + rand.nextInt(16);
|
||||||
@ -399,10 +387,13 @@ public class HbmWorldGen implements IWorldGenerator {
|
|||||||
int z = j + rand.nextInt(16);
|
int z = j + rand.nextInt(16);
|
||||||
int y = world.getHeightValue(x, z);
|
int y = world.getHeightValue(x, z);
|
||||||
|
|
||||||
if(world.getBlock(x, y, z) == Blocks.stone)
|
for(int k = 1; k >= -1; k--) {
|
||||||
world.setBlock(x, y, z, ModBlocks.geysir_vapor);
|
if(world.getBlock(x, y + k, z) == Blocks.stone) {
|
||||||
else if(world.getBlock(x, y - 1, z) == Blocks.stone)
|
world.setBlock(x, y + k, z, ModBlocks.geysir_vapor);
|
||||||
world.setBlock(x, y - 1, z, ModBlocks.geysir_vapor);
|
MainRegistry.logger.info("[Debug] Successfully spawned vapor geyser at " + x + " " + z);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rand.nextInt(1000) == 0) {
|
if (rand.nextInt(1000) == 0) {
|
||||||
|
|||||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
|||||||
public class RefStrings {
|
public class RefStrings {
|
||||||
public static final String MODID = "hbm";
|
public static final String MODID = "hbm";
|
||||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||||
public static final String VERSION = "1.0.27 BETA (5628)";
|
public static final String VERSION = "1.0.27 BETA (5634)";
|
||||||
//HBM's Beta Naming Convention:
|
//HBM's Beta Naming Convention:
|
||||||
//V T (X)
|
//V T (X)
|
||||||
//V -> next release version
|
//V -> next release version
|
||||||
|
|||||||
@ -411,6 +411,8 @@ public class ClientProxy extends ServerProxy {
|
|||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCraneConsole.class, new RenderCraneConsole());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCraneConsole.class, new RenderCraneConsole());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKConsole.class, new RenderRBMKConsole());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKDisplay.class, new RenderRBMKDisplay());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKDisplay.class, new RenderRBMKDisplay());
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKKeyPad.class, new RenderRBMKKeyPad());
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKGauge.class, new RenderRBMKGauge());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKFuelChannel());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKFuelChannel());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRodReaSim.class, new RenderRBMKFuelChannel());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRodReaSim.class, new RenderRBMKFuelChannel());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAutoloader.class, new RenderRBMKAutoloader());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAutoloader.class, new RenderRBMKAutoloader());
|
||||||
@ -429,6 +431,7 @@ public class ClientProxy extends ServerProxy {
|
|||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBoiler.class, new RenderFusionBoiler());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionBoiler.class, new RenderFusionBoiler());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionMHDT.class, new RenderFusionMHDT());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionMHDT.class, new RenderFusionMHDT());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCoupler.class, new RenderFusionCoupler());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionCoupler.class, new RenderFusionCoupler());
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFusionPlasmaForge.class, new RenderFusionPlasmaForge());
|
||||||
//Watz
|
//Watz
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatz.class, new RenderWatz());
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityWatzPump.class, new RenderWatzPump());
|
||||||
@ -485,6 +488,7 @@ public class ClientProxy extends ServerProxy {
|
|||||||
double[] tir = new double[] {0, 0, 0};
|
double[] tir = new double[] {0, 0, 0};
|
||||||
double[] sir = new double[] {1, 1, 1};
|
double[] sir = new double[] {1, 1, 1};
|
||||||
|
|
||||||
|
MinecraftForgeClient.registerItemRenderer(ModItems.steel_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.titanium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
MinecraftForgeClient.registerItemRenderer(ModItems.titanium_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.alloy_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
MinecraftForgeClient.registerItemRenderer(ModItems.alloy_sword, new ItemRenderTransformer(rtp, ttp_high, stp, rfp, tfp, sfp, rir, tir, sir));
|
||||||
MinecraftForgeClient.registerItemRenderer(ModItems.desh_sword, new ItemRenderTransformer(rtp, ttp_low, stp, rfp, tfp, sfp, rir, tir, sir));
|
MinecraftForgeClient.registerItemRenderer(ModItems.desh_sword, new ItemRenderTransformer(rtp, ttp_low, stp, rfp, tfp, sfp, rir, tir, sir));
|
||||||
|
|||||||
@ -293,6 +293,8 @@ public class CraftingManager {
|
|||||||
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor, 'W', Blocks.crafting_table });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_autocrafter, 1), new Object[] { "SCS", "MWM", "SCS", 'S', STEEL.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE), 'M', ModItems.motor, 'W', Blocks.crafting_table });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_funnel, 1), new Object[] { "S S", "SRS", " S ", 'S', STEEL.ingot(), 'R', REDSTONE.dust() });
|
||||||
|
addRecipeAuto(new ItemStack(Blocks.hopper, 1), new Object[] { "S S", "S S", " S ", 'S', STEEL.ingot() });
|
||||||
|
addRecipeAuto(new ItemStack(Items.bucket, 1), new Object[] { "S S", " S ", 'S', STEEL.ingot() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_waste_drum, 1), new Object[] { "LRL", "BRB", "LRL", 'L', PB.ingot(), 'B', Blocks.iron_bars, 'R', ModItems.rod_quad_empty });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_press, 1), new Object[] { "IRI", "IPI", "IBI", 'I', IRON.ingot(), 'R', Blocks.furnace, 'B', IRON.block(), 'P', Blocks.piston });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.machine_ammo_press, 1), new Object[] { "IPI", "C C", "SSS", 'I', IRON.ingot(), 'P', Blocks.piston, 'C', CU.ingot(), 'S', Blocks.stone });
|
addRecipeAuto(new ItemStack(ModBlocks.machine_ammo_press, 1), new Object[] { "IPI", "C C", "SSS", 'I', IRON.ingot(), 'P', Blocks.piston, 'C', CU.ingot(), 'S', Blocks.stone });
|
||||||
@ -723,11 +725,6 @@ public class CraftingManager {
|
|||||||
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() });
|
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_euphemium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_dagaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, EUPH.dust(), EUPH.dust(), EUPH.dust(), EUPH.dust() });
|
||||||
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() });
|
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_schrabidium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_dagaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, SA326.dust(), SA326.dust(), SA326.dust(), SA326.dust() });
|
||||||
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() });
|
addShapelessAuto(new ItemStack(ModItems.ams_catalyst_dineutronium, 1), new Object[] { ModItems.ams_catalyst_blank, ModItems.rune_hagalaz, ModItems.rune_hagalaz, ModItems.rune_thurisaz, ModItems.rune_thurisaz, DNT.dust(), DNT.dust(), DNT.dust(), DNT.dust() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_core, 1), new Object[] { "DLD", "LML", "DLD", 'D', ModItems.ingot_bismuth, 'L', DNT.block(), 'M', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BISMOID) });
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()), 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser });
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_QUANTUM.ordinal()), 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() });
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', STEEL.pipe() });
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModBlocks.hadron_coil_alloy, 'L', ModItems.crystal_xen });
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() });
|
addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() });
|
addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() });
|
addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() });
|
||||||
@ -792,7 +789,8 @@ public class CraftingManager {
|
|||||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_inlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', IRON.plate(), 'B', ModItems.tank_steel });
|
addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_inlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', IRON.plate(), 'B', ModItems.tank_steel });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel });
|
addRecipeAuto(new ItemStack(ModBlocks.rbmk_steam_outlet, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.tank_steel });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_display, 1), new Object[] { "B", "C", "D", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
addRecipeAuto(new ItemStack(ModBlocks.rbmk_display, 1), new Object[] { "B", "C", "D", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||||
//addRecipeAuto(new ItemStack(ModBlocks.rbmk_heatex, 1), new Object[] { "SCS", "CBC", "SCS", 'S', STEEL.ingot(), 'C', CU.plate(), 'B', ModItems.pipes_steel });
|
addRecipeAuto(new ItemStack(ModBlocks.rbmk_key_pad, 1), new Object[] { "B", "C", "D", 'B', ModBlocks.radio_torch_sender, 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||||
|
addRecipeAuto(new ItemStack(ModBlocks.rbmk_gauge, 1), new Object[] { "B", "C", "D", 'B', ModBlocks.radio_torch_receiver, 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||||
|
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank });
|
addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk, 8), new Object[] { "R", 'R', ModBlocks.rbmk_blank });
|
||||||
addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk });
|
addRecipeAuto(new ItemStack(ModBlocks.deco_rbmk_smooth, 1), new Object[] { "R", 'R', ModBlocks.deco_rbmk });
|
||||||
|
|||||||
@ -258,7 +258,6 @@ public class MainRegistry {
|
|||||||
polaroidID = rand.nextInt(18) + 1;
|
polaroidID = rand.nextInt(18) + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ShadyUtil.test();
|
|
||||||
loadConfig(PreEvent);
|
loadConfig(PreEvent);
|
||||||
HbmPotion.init();
|
HbmPotion.init();
|
||||||
|
|
||||||
@ -1516,6 +1515,7 @@ public class MainRegistry {
|
|||||||
ignoreMappings.add("hbm:item.tritium_deuterium_cake");
|
ignoreMappings.add("hbm:item.tritium_deuterium_cake");
|
||||||
ignoreMappings.add("hbm:item.redcoil_capacitor");
|
ignoreMappings.add("hbm:item.redcoil_capacitor");
|
||||||
ignoreMappings.add("hbm:item.euphemium_capacitor");
|
ignoreMappings.add("hbm:item.euphemium_capacitor");
|
||||||
|
ignoreMappings.add("hbm:item.toolbox_legacy");
|
||||||
|
|
||||||
/// REMAP ///
|
/// REMAP ///
|
||||||
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);
|
||||||
@ -1523,7 +1523,6 @@ public class MainRegistry {
|
|||||||
remapItems.put("hbm:item.briquette_lignite", ModItems.briquette);
|
remapItems.put("hbm:item.briquette_lignite", ModItems.briquette);
|
||||||
remapItems.put("hbm:item.antiknock", ModItems.fuel_additive);
|
remapItems.put("hbm:item.antiknock", ModItems.fuel_additive);
|
||||||
remapItems.put("hbm:item.kit_toolbox_empty", ModItems.toolbox);
|
remapItems.put("hbm:item.kit_toolbox_empty", ModItems.toolbox);
|
||||||
remapItems.put("hbm:item.kit_toolbox", ModItems.legacy_toolbox);
|
|
||||||
|
|
||||||
for(MissingMapping mapping : event.get()) {
|
for(MissingMapping mapping : event.get()) {
|
||||||
|
|
||||||
|
|||||||
@ -42,6 +42,7 @@ public class NEIRegistry {
|
|||||||
handlers.add(new CrystallizerRecipeHandler());
|
handlers.add(new CrystallizerRecipeHandler());
|
||||||
handlers.add(new BookRecipeHandler());
|
handlers.add(new BookRecipeHandler());
|
||||||
handlers.add(new FusionRecipeHandler());
|
handlers.add(new FusionRecipeHandler());
|
||||||
|
handlers.add(new PlasmaForgeRecipeHandler());
|
||||||
handlers.add(new SILEXRecipeHandler());
|
handlers.add(new SILEXRecipeHandler());
|
||||||
handlers.add(new FuelPoolHandler());
|
handlers.add(new FuelPoolHandler());
|
||||||
handlers.add(new RBMKRodDisassemblyHandler());
|
handlers.add(new RBMKRodDisassemblyHandler());
|
||||||
|
|||||||
112
src/main/java/com/hbm/main/NTMSounds.java
Normal file
112
src/main/java/com/hbm/main/NTMSounds.java
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
package com.hbm.main;
|
||||||
|
|
||||||
|
/** Because having to remember or look up sound names is getting on my nerves. Who has time for this shit. */
|
||||||
|
public class NTMSounds {
|
||||||
|
|
||||||
|
/// RELOADING ///
|
||||||
|
public static final String GUN_REVOLVER_COCK = "hbm:weapon.reload.revolverCock";
|
||||||
|
public static final String GUN_REVOLVER_CLOSE = "hbm:weapon.reload.revolverClose";
|
||||||
|
public static final String GUN_REVOLVER_SPIN = "hbm:weapon.reload.revolverSpin";
|
||||||
|
public static final String GUN_PISTOL_COCK = "hbm:weapon.reload.pistolCock";
|
||||||
|
public static final String GUN_MAG_SMALL_REMOVE = "hbm:weapon.reload.magSmallRemove";
|
||||||
|
public static final String GUN_MAG_SMALL_INSERT = "hbm:weapon.reload.magSmallInsert";
|
||||||
|
public static final String GUN_MAG_REMOVE = "hbm:weapon.reload.magRemove";
|
||||||
|
public static final String GUN_MAG_INSERT = "hbm:weapon.reload.magInsert";
|
||||||
|
public static final String GUN_CANISTER_INSERT = "hbm:weapon.reload.insertCanister";
|
||||||
|
public static final String GUN_ROCKET_INSERT = "hbm:weapon.reload.insertRocket";
|
||||||
|
public static final String GUN_BOLT_OPEN = "hbm:weapon.reload.boltOpen";
|
||||||
|
public static final String GUN_BOLT_CLOSE = "hbm:weapon.reload.boltClose";
|
||||||
|
public static final String GUN_RIFLE_COCK = "hbm:weapon.reload.rifleCock";
|
||||||
|
public static final String GUN_LEVER_COCK = "hbm:weapon.reload.leverCock";
|
||||||
|
public static final String GUN_SHOTGUN_LOAD = "hbm:weapon.reload.shotgunReload";
|
||||||
|
public static final String GUN_SHOTGUN_OPEN = "hbm:weapon.reload.shotgunCockOpen";
|
||||||
|
public static final String GUN_SHOTGUN_CLOSE = "hbm:weapon.reload.shotgunCockClose";
|
||||||
|
public static final String GUN_SHOTGUN_COCK = "hbm:weapon.reload.shotgunCock";
|
||||||
|
public static final String GUN_GRENADE_RELOAD = "hbm:weapon.glReload";
|
||||||
|
public static final String GUN_GRENADE_OPEN = "hbm:weapon.glOpen";
|
||||||
|
public static final String GUN_GRENADE_CLOSE = "hbm:weapon.glClose";
|
||||||
|
public static final String GUN_SCREW = "hbm:weapon.reload.screw";
|
||||||
|
public static final String GUN_COIL_RELOAD = "hbm:weapon.coilgunReload";
|
||||||
|
public static final String GUN_IMPACT = "hbm:weapon.reload.impact"; // when hitting the weapon or dropping a magazine
|
||||||
|
public static final String GUN_LATCH_OPEN = "hbm:weapon.reload.openLatch";
|
||||||
|
public static final String GUN_VALVE = "hbm:weapon.reload.pressureValve";
|
||||||
|
public static final String GUN_FATMAN_RELOAD = "hbm:weapon.reload.fatmanFull";
|
||||||
|
|
||||||
|
/// FOLEY ///
|
||||||
|
public static final String GUN_WHACK = "hbm:weapon.foley.gunWhack";
|
||||||
|
|
||||||
|
/// FIRING ///
|
||||||
|
public static final String GUN_LOCKON = "hbm:weapon.fire.lockon";
|
||||||
|
public static final String GUN_SMACK = "hbm:weapon.fire.smack"; // hitting people with the butt of the gun
|
||||||
|
public static final String GUN_STAB_A_FUCKER = "hbm:weapon.fire.stab"; // stabbing people with a bayonet
|
||||||
|
public static final String GUN_SHREDDER_CYCLE = "hbm:weapon.fire.shredderCycle";
|
||||||
|
public static final String GUN_DRY_FIRE = "hbm:weapon.reload.dryFireClick";
|
||||||
|
public static final String GUN_POWDER_FIRE = "hbm:weapon.fire.blackPowder";
|
||||||
|
public static final String GUN_RIFLE_FIRE = "hbm:weapon.fire.rifle";
|
||||||
|
public static final String GUN_RIFLE_SILENCER = "hbm:weapon.fire.silenced";
|
||||||
|
public static final String GUN_HEAVY_RIFLE_FIRE = "hbm:weapon.fire.rifleHeavy";
|
||||||
|
public static final String GUN_ASSAULT_FIRE = "hbm:weapon.fire.assault";
|
||||||
|
public static final String GUN_HEAVY_REVOLVER_FIRE = "hbm:weapon.44Shoot";
|
||||||
|
public static final String GUN_AMAT_FIRE = "hbm:weapon.fire.amat";
|
||||||
|
public static final String GUN_AMAT_SILENCER = "hbm:weapon.silencerShoot";
|
||||||
|
public static final String GUN_SHOTGUN_FIRE = "hbm:weapon.fire.shotgun";
|
||||||
|
public static final String GUN_SPAS_FIRE = "hbm:weapon.shotgunShoot";
|
||||||
|
public static final String GUN_LIBERATOR_FIRE = "hbm:weapon.fire.shotgunAlt";
|
||||||
|
public static final String GUN_SHREDDER_FIRE = "hbm:weapon.fire.shotgunAuto";
|
||||||
|
public static final String GUN_GREASEGUN_FIRE = "hbm:weapon.fire.greaseGun";
|
||||||
|
public static final String GUN_STARF_FIRE = "hbm:weapon.fire.pistolLight";
|
||||||
|
public static final String GUN_PISTOL_FIRE = "hbm:weapon.fire.pistol";
|
||||||
|
public static final String GUN_UZI_FIRE = "hbm:weapon.fire.uzi";
|
||||||
|
public static final String GUN_ABERRATOR_FIRE = "hbm:weapon.fire.aberrator";
|
||||||
|
public static final String GUN_UNDERBARREL_FIRE = "hbm:weapon.hkShoot";
|
||||||
|
public static final String GUN_CONGO_FIRE = "hbm:weapon.glShoot";
|
||||||
|
public static final String GUN_CHARGE_FIRE = "hbm:weapon.fire.grenade";
|
||||||
|
public static final String GUN_FLAMER_LOOP = "hbm:weapon.fire.flameLoop";
|
||||||
|
public static final String GUN_FATMAN_FIRE = "hbm:weapon.fire.fatman";
|
||||||
|
public static final String GUN_MINIGUN_FIRE = "hbm:weapon.calShoot";
|
||||||
|
public static final String GUN_LASER_GATLING_FIRE = "hbm:weapon.fire.laserGatling";
|
||||||
|
public static final String GUN_LASER_PISTOL_FIRE = "hbm:weapon.fire.laserPistol";
|
||||||
|
public static final String GUN_LASER_RIFLE_FIRE = "hbm:weapon.fire.laser";
|
||||||
|
public static final String GUN_COIL_FIRE = "hbm:weapon.coilgunShoot";
|
||||||
|
public static final String GUN_TAU_FIRE = "hbm:weapon.fire.tau";
|
||||||
|
public static final String GUN_TAU_STOPFIRE = "hbm:weapon.fire.tauRelease"; // spark sound when tau cannon fire stops
|
||||||
|
public static final String GUN_TAU_LOOP = "hbm:weapon.fire.tauLoop";
|
||||||
|
public static final String GUN_TESLA_FIRE = "hbm:weapon.fire.tesla";
|
||||||
|
public static final String GUN_TESLA_BLAST = "hbm:entity.ufoBlast"; // electric crackle sound explosion
|
||||||
|
public static final String GUN_ROCKET_FIRE = "hbm:weapon.rpgShoot";
|
||||||
|
public static final String GUN_EXTINGUISHER_FIRE = "hbm:weapon.extinguisher";
|
||||||
|
public static final String GUN_PLEASE_REMOVE_MY_EARDRUMS_THANKS = "hbm:weapon.fire.loudestNoiseOnEarth"; // folly fires
|
||||||
|
public static final String GUN_VYLET_PONY_CUTIEMARKS_AND_THE_THINGS_THAT_BIND_US_INTRO_JINGLE = "hbm:weapon.fire.vstar"; // you know how we do it
|
||||||
|
|
||||||
|
/// WEAPON SPECIAL EFFECTS ///
|
||||||
|
public static final String GUN_GO_GO_GADGET_FUCK_EVERYTHING_IN_THIS_GENERAL_DIRECTION = "hbm:alarm.trainHorn";
|
||||||
|
public static final String GUN_SOLDIER_TF2_BOAT_EXE_WAV_MP3 = "hbm:weapon.boat";
|
||||||
|
public static final String GUN_MINI_NUKE_EXPLOSION = "hbm:weapon.mukeExplosion";
|
||||||
|
|
||||||
|
/// TURRETS ///
|
||||||
|
public static final String TURRET_50BMG = "hbm:turret.chekhov_fire";
|
||||||
|
public static final String TURRET_CIWS_RELOAD = "hbm:turret.howard_reload";
|
||||||
|
|
||||||
|
/// PEEP NOISES ///
|
||||||
|
public static final String PLAYER_GULP = "hbm:player.gulp";
|
||||||
|
public static final String PLAYER_GROAN = "hbm:player.groan";
|
||||||
|
|
||||||
|
/// BLOCKS ///
|
||||||
|
public static final String BLOCK_PLUSHY = "hbm:block.squeakyToy"; // squee
|
||||||
|
public static final String BLOCK_HUNDUNS_MAGNIFICENT_HOWL = "hbm:block.hunduns_magnificent_howl"; // tragic yuri
|
||||||
|
public static final String BLOCK_FALLOUT_3_POPUP = "hbm:block.bobble";
|
||||||
|
|
||||||
|
/// MACHINE SOUND LOOPS ///
|
||||||
|
public static final String ELECTRIC_ENGINE_LOOP = "hbm:block.engine";
|
||||||
|
public static final String TURBINE_LARGE_LOOP = "hbm:block.largeTurbineRunning";
|
||||||
|
|
||||||
|
/// MISC ///
|
||||||
|
public static final String TECH_BOOP = "hbm:item.techBoop";
|
||||||
|
public static final String TECH_BLEEP = "hbm:item.techBleep";
|
||||||
|
|
||||||
|
/// VANILLA CRAP I CANNOT BE ASSED TO REMEMBER ///
|
||||||
|
public static final String VANILLA_ORB = "random.orb"; // xp orb ping
|
||||||
|
public static final String VANILLA_PLINK = "random.break"; // item breaks
|
||||||
|
public static final String VANILLA_FIREWORKS_BANG = "fireworks.blast";
|
||||||
|
public static final String VANILLA_HISS = "random.fizz"; // fire extinguishes
|
||||||
|
}
|
||||||
@ -249,6 +249,7 @@ public class ResourceManager {
|
|||||||
public static final IModelCustom fusion_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/boiler.obj")).asVBO();
|
public static final IModelCustom fusion_boiler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/boiler.obj")).asVBO();
|
||||||
public static final IModelCustom fusion_mhdt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/mhdt.obj")).asVBO();
|
public static final IModelCustom fusion_mhdt = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/mhdt.obj")).asVBO();
|
||||||
public static final IModelCustom fusion_coupler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/coupler.obj")).asVBO();
|
public static final IModelCustom fusion_coupler = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/coupler.obj")).asVBO();
|
||||||
|
public static final IModelCustom fusion_plasma_forge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/fusion/plasma_forge.obj")).asVBO();
|
||||||
|
|
||||||
//ICF
|
//ICF
|
||||||
public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO();
|
public static final IModelCustom icf = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/reactors/icf.obj")).asVBO();
|
||||||
@ -325,6 +326,8 @@ public class ResourceManager {
|
|||||||
public static final ResourceLocation pheo_fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door.png");
|
public static final ResourceLocation pheo_fire_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door.png");
|
||||||
public static final ResourceLocation pheo_fire_door_black_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_black.png");
|
public static final ResourceLocation pheo_fire_door_black_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_black.png");
|
||||||
public static final ResourceLocation pheo_fire_door_orange_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_orange.png");
|
public static final ResourceLocation pheo_fire_door_orange_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_orange.png");
|
||||||
|
public static final ResourceLocation pheo_fire_door_yellow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_yellow.png");
|
||||||
|
public static final ResourceLocation pheo_fire_door_trefoil_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/fire_door_trefoil.png");
|
||||||
public static IModelCustomNamed pheo_fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/fire_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_fire_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/fire_door.obj")).asVBO();
|
||||||
public static final ResourceLocation pheo_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door.png");
|
public static final ResourceLocation pheo_airlock_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door.png");
|
||||||
public static final ResourceLocation pheo_airlock_door_clean_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door_clean.png");
|
public static final ResourceLocation pheo_airlock_door_clean_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/airlock_door_clean.png");
|
||||||
@ -334,11 +337,14 @@ public class ResourceManager {
|
|||||||
public static IModelCustomNamed pheo_blast_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/blast_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_blast_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/blast_door.obj")).asVBO();
|
||||||
public static final ResourceLocation pheo_containment_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door.png");
|
public static final ResourceLocation pheo_containment_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door.png");
|
||||||
public static final ResourceLocation pheo_containment_door_trefoil_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door_trefoil.png");
|
public static final ResourceLocation pheo_containment_door_trefoil_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door_trefoil.png");
|
||||||
|
public static final ResourceLocation pheo_containment_door_trefoil_yellow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/containment_door_trefoil_yellow.png");
|
||||||
public static IModelCustomNamed pheo_containment_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/containment_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_containment_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/containment_door.obj")).asVBO();
|
||||||
public static final ResourceLocation pheo_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/seal_door.png");
|
public static final ResourceLocation pheo_seal_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/seal_door.png");
|
||||||
public static IModelCustomNamed pheo_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/seal_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_seal_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/seal_door.obj")).asVBO();
|
||||||
public static final ResourceLocation pheo_secure_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door.png");
|
public static final ResourceLocation pheo_secure_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door.png");
|
||||||
public static final ResourceLocation pheo_secure_door_grey_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door_grey.png");
|
public static final ResourceLocation pheo_secure_door_grey_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door_grey.png");
|
||||||
|
public static final ResourceLocation pheo_secure_door_black_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door_black.png");
|
||||||
|
public static final ResourceLocation pheo_secure_door_yellow_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/secure_door_yellow.png");
|
||||||
public static IModelCustomNamed pheo_secure_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/secure_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_secure_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/secure_door.obj")).asVBO();
|
||||||
public static final ResourceLocation pheo_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/sliding_door.png");
|
public static final ResourceLocation pheo_sliding_door_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pheodoors/sliding_door.png");
|
||||||
public static IModelCustomNamed pheo_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/sliding_door.obj")).asVBO();
|
public static IModelCustomNamed pheo_sliding_door = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/pheodoors/sliding_door.obj")).asVBO();
|
||||||
@ -718,6 +724,7 @@ public class ResourceManager {
|
|||||||
public static final ResourceLocation fusion_boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/boiler.png");
|
public static final ResourceLocation fusion_boiler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/boiler.png");
|
||||||
public static final ResourceLocation fusion_mhdt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/mhdt.png");
|
public static final ResourceLocation fusion_mhdt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/mhdt.png");
|
||||||
public static final ResourceLocation fusion_coupler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/coupler.png");
|
public static final ResourceLocation fusion_coupler_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/coupler.png");
|
||||||
|
public static final ResourceLocation fusion_plasma_forge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/fusion/plasma_forge.png");
|
||||||
|
|
||||||
//ICF
|
//ICF
|
||||||
public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png");
|
public static final ResourceLocation icf_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/icf.png");
|
||||||
@ -1613,11 +1620,15 @@ public class ResourceManager {
|
|||||||
public static final HFRWavefrontObjectVBO rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")).asVBO();
|
public static final HFRWavefrontObjectVBO rbmk_crane = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/crane.obj")).asVBO();
|
||||||
public static final HFRWavefrontObjectVBO rbmk_autoloader = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/autoloader.obj")).asVBO();
|
public static final HFRWavefrontObjectVBO rbmk_autoloader = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/autoloader.obj")).asVBO();
|
||||||
public static final HFRWavefrontObjectVBO rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")).asVBO();
|
public static final HFRWavefrontObjectVBO rbmk_console = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/rbmk_console.obj")).asVBO();
|
||||||
|
public static final HFRWavefrontObjectVBO rbmk_button = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/button.obj")).asVBO();
|
||||||
|
public static final HFRWavefrontObjectVBO rbmk_gauge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/gauge.obj")).asVBO();
|
||||||
public static final HFRWavefrontObject rbmk_debris = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")).noSmooth();
|
public static final HFRWavefrontObject rbmk_debris = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")).noSmooth();
|
||||||
public static final ResourceLocation rbmk_crane_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crane_console.png");
|
public static final ResourceLocation rbmk_crane_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crane_console.png");
|
||||||
public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png");
|
public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png");
|
||||||
public static final ResourceLocation rbmk_autoloader_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_autoloader.png");
|
public static final ResourceLocation rbmk_autoloader_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_autoloader.png");
|
||||||
public static final ResourceLocation rbmk_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_control.png");
|
public static final ResourceLocation rbmk_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_control.png");
|
||||||
|
public static final ResourceLocation rbmk_keypad_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/keypad.png");
|
||||||
|
public static final ResourceLocation rbmk_gauge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/gauge.png");
|
||||||
public static final HFRWavefrontObject hev_battery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/battery.obj")).noSmooth();
|
public static final HFRWavefrontObject hev_battery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/battery.obj")).noSmooth();
|
||||||
public static final HFRWavefrontObject anvil = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/anvil.obj")).noSmooth();
|
public static final HFRWavefrontObject anvil = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/anvil.obj")).noSmooth();
|
||||||
public static final HFRWavefrontObject crystal_power = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_power.obj")).noSmooth();
|
public static final HFRWavefrontObject crystal_power = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_power.obj")).noSmooth();
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
package com.hbm.module.machine;
|
||||||
|
|
||||||
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipes;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IEnergyHandlerMK2;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class ModuleMachinePlasma extends ModuleMachineBase {
|
||||||
|
|
||||||
|
public ModuleMachinePlasma(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) {
|
||||||
|
super(index, battery, slots);
|
||||||
|
this.inputSlots = new int[12];
|
||||||
|
this.outputSlots = new int[1];
|
||||||
|
this.inputTanks = new FluidTank[1];
|
||||||
|
this.outputTanks = new FluidTank[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GenericRecipes getRecipeSet() {
|
||||||
|
return PlasmaForgeRecipes.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setupTanks(GenericRecipe recipe) {
|
||||||
|
super.setupTanks(recipe);
|
||||||
|
if(recipe == null) return;
|
||||||
|
for(int i = 0; i < inputTanks.length; i++) if(recipe.inputFluid != null && recipe.inputFluid.length > i) inputTanks[i].changeTankSize(BobMathUtil.max(inputTanks[i].getFill(), recipe.inputFluid[i].fill * 2, 16_000));
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModuleMachinePlasma itemInput(int from) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = from + i; return this; }
|
||||||
|
public ModuleMachinePlasma itemOutput(int a) { outputSlots[0] = a; return this; }
|
||||||
|
public ModuleMachinePlasma fluidInput(FluidTank a) { inputTanks[0] = a; return this; }
|
||||||
|
}
|
||||||
@ -9,6 +9,7 @@ import org.lwjgl.opengl.GL11;
|
|||||||
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
import com.hbm.items.weapon.sedna.ItemGunBaseNT;
|
||||||
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
import com.hbm.items.weapon.sedna.mags.IMagazine;
|
||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
|
import com.hbm.main.NTMSounds;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.render.anim.HbmAnimations;
|
import com.hbm.render.anim.HbmAnimations;
|
||||||
import com.hbm.util.EntityDamageUtil;
|
import com.hbm.util.EntityDamageUtil;
|
||||||
@ -104,7 +105,7 @@ public class ItemRenderFolly extends ItemRenderWeaponBase {
|
|||||||
String splash = getBootSplash();
|
String splash = getBootSplash();
|
||||||
|
|
||||||
if(!jingle && !splash.isEmpty()) {
|
if(!jingle && !splash.isEmpty()) {
|
||||||
MainRegistry.proxy.playSoundClient(player.posX, player.posY, player.posZ, "hbm:weapon.fire.vstar", 0.5F, 1F);
|
MainRegistry.proxy.playSoundClient(player.posX, player.posY, player.posZ, NTMSounds.GUN_VYLET_PONY_CUTIEMARKS_AND_THE_THINGS_THAT_BIND_US_INTRO_JINGLE, 0.5F, 1F);
|
||||||
jingle = true;
|
jingle = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,186 @@
|
|||||||
|
package com.hbm.render.tileentity;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.blocks.BlockDummyable;
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.render.item.ItemRenderBase;
|
||||||
|
import com.hbm.tileentity.machine.fusion.TileEntityFusionPlasmaForge;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.Clock;
|
||||||
|
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraftforge.client.IItemRenderer;
|
||||||
|
|
||||||
|
public class RenderFusionPlasmaForge extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
|
||||||
|
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||||
|
|
||||||
|
switch(tile.getBlockMetadata() - BlockDummyable.offset) {
|
||||||
|
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||||
|
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||||
|
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||||
|
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TileEntityFusionPlasmaForge forge = (TileEntityFusionPlasmaForge) tile;
|
||||||
|
|
||||||
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
|
bindTexture(ResourceManager.fusion_plasma_forge_tex);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Body");
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glRotated(20, 0, 1, 0);
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("SliderStriker");
|
||||||
|
GL11.glTranslated(-2.75, 2.5, 0);
|
||||||
|
GL11.glRotated(-20, 0, 0, 1);
|
||||||
|
GL11.glTranslated(2.75, -2.5, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("ArmLowerStriker");
|
||||||
|
GL11.glTranslated(-2.75, 3.75, 0);
|
||||||
|
GL11.glRotated(30, 0, 0, 1);
|
||||||
|
GL11.glTranslated(2.75, -3.75, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("ArmUpperStriker");
|
||||||
|
GL11.glTranslated(-1.5, 3.75, 0);
|
||||||
|
GL11.glRotated(20, 0, 0, 1);
|
||||||
|
GL11.glTranslated(1.5, -3.75, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("StrikerMount");
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 3.375, 0.5);
|
||||||
|
GL11.glRotated(30, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -3.375, -0.5);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("StrikerRight");
|
||||||
|
GL11.glTranslated(0, -0.5, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("PistonRight");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 3.375, -0.5);
|
||||||
|
GL11.glRotated(-30, 1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -3.375, 0.5);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("StrikerLeft");
|
||||||
|
GL11.glTranslated(0, -0.5, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("PistonLeft");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("SliderJet");
|
||||||
|
GL11.glTranslated(2.75, 2.5, 0);
|
||||||
|
GL11.glRotated(20, 0, 0, 1);
|
||||||
|
GL11.glTranslated(-2.75, -2.5, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("ArmLowerJet");
|
||||||
|
GL11.glTranslated(2.75, 3.75, 0);
|
||||||
|
GL11.glRotated(-20, 0, 0, 1);
|
||||||
|
GL11.glTranslated(-2.75, -3.75, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("ArmUpperJet");
|
||||||
|
GL11.glTranslated(1.5, 3.75, 0);
|
||||||
|
GL11.glRotated(-30, 0, 0, 1);
|
||||||
|
GL11.glTranslated(-1.5, -3.75, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Jet");
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
if(forge.plasmaEnergySync <= 0) {
|
||||||
|
GL11.glColor3f(0F, 0F, 0F);
|
||||||
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Plasma");
|
||||||
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
} else {
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
long time = Clock.get_ms() + forge.timeOffset;
|
||||||
|
float alpha = 0.5F + (float) (Math.sin(time / 500D) * 0.25F);
|
||||||
|
double mainOsc = BobMathUtil.sps(time / 750D) % 1D;
|
||||||
|
double glowOsc = Math.sin(time / 1000D) % 1D;
|
||||||
|
double glowExtra = time / 10000D % 1D;
|
||||||
|
|
||||||
|
GL11.glColor3f(forge.plasmaRed * alpha, forge.plasmaGreen * alpha, forge.plasmaBlue * alpha);
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
bindTexture(ResourceManager.fusion_plasma_tex);
|
||||||
|
GL11.glTranslated(0, mainOsc, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Plasma");
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
||||||
|
|
||||||
|
GL11.glDisable(GL11.GL_ALPHA_TEST);
|
||||||
|
GL11.glEnable(GL11.GL_BLEND);
|
||||||
|
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
|
||||||
|
GL11.glDepthMask(false);
|
||||||
|
|
||||||
|
GL11.glColor3f(forge.plasmaRed * 2, forge.plasmaGreen * 2, forge.plasmaBlue * 2);
|
||||||
|
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
bindTexture(ResourceManager.fusion_plasma_glow_tex);
|
||||||
|
GL11.glTranslated(0, glowOsc + glowExtra, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Plasma");
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
||||||
|
|
||||||
|
glowOsc = Math.sin(time / 600D + 2) % 1D;
|
||||||
|
glowExtra = time / 5000D % 1D;
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
bindTexture(ResourceManager.fusion_plasma_glow_tex);
|
||||||
|
GL11.glTranslated(0, glowOsc + glowExtra, 0);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Plasma");
|
||||||
|
GL11.glMatrixMode(GL11.GL_TEXTURE);
|
||||||
|
GL11.glLoadIdentity();
|
||||||
|
GL11.glMatrixMode(GL11.GL_MODELVIEW);
|
||||||
|
|
||||||
|
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||||
|
GL11.glDisable(GL11.GL_BLEND);
|
||||||
|
GL11.glDepthMask(true);
|
||||||
|
|
||||||
|
RenderArcFurnace.fullbright(false);
|
||||||
|
}
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
|
||||||
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Item getItemForRenderer() {
|
||||||
|
return Item.getItemFromBlock(ModBlocks.fusion_plasma_forge);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IItemRenderer getRenderer() {
|
||||||
|
return new ItemRenderBase() {
|
||||||
|
public void renderInventory() {
|
||||||
|
GL11.glTranslated(0, -1, 0);
|
||||||
|
GL11.glScaled(2.75, 2.75, 2.75);
|
||||||
|
GL11.glRotated(90, 0, 1, 0);
|
||||||
|
}
|
||||||
|
public void renderCommon() {
|
||||||
|
GL11.glScaled(0.5, 0.5, 0.5);
|
||||||
|
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||||
|
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||||
|
bindTexture(ResourceManager.fusion_plasma_forge_tex);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderAllExcept("Plasma");
|
||||||
|
|
||||||
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||||
|
GL11.glColor3f(0F, 0F, 0F);
|
||||||
|
ResourceManager.fusion_plasma_forge.renderPart("Plasma");
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
GL11.glShadeModel(GL11.GL_FLAT);
|
||||||
|
}};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -74,6 +74,8 @@ public class RenderRBMKConsole extends TileEntitySpecialRenderer {
|
|||||||
tess.setColorOpaque_F((float) (color + ((1 - color) * heat)), (float) color, (float) color);
|
tess.setColorOpaque_F((float) (color + ((1 - color) * heat)), (float) color, (float) color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(col.data.getByte("indicator") > 0) tess.setColorOpaque_F(1F, 1F, 0F);
|
||||||
|
|
||||||
drawColumn(tess, kx, ky, kz, 0, 0);
|
drawColumn(tess, kx, ky, kz, 0, 0);
|
||||||
|
|
||||||
switch(col.type) {
|
switch(col.type) {
|
||||||
|
|||||||
@ -61,6 +61,8 @@ public class RenderRBMKDisplay extends TileEntitySpecialRenderer {
|
|||||||
tess.setColorOpaque_F((float) (color + ((1 - color) * heat)), (float) color, (float) color);
|
tess.setColorOpaque_F((float) (color + ((1 - color) * heat)), (float) color, (float) color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(col.data.getByte("indicator") > 0) tess.setColorOpaque_F(1F, 1F, 0F);
|
||||||
|
|
||||||
drawColumn(tess, kx, ky, kz);
|
drawColumn(tess, kx, ky, kz);
|
||||||
|
|
||||||
switch(col.type) {
|
switch(col.type) {
|
||||||
|
|||||||
113
src/main/java/com/hbm/render/tileentity/RenderRBMKGauge.java
Normal file
113
src/main/java/com/hbm/render/tileentity/RenderRBMKGauge.java
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
package com.hbm.render.tileentity;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKGauge;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKGauge.GaugeUnit;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.ColorUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
|
|
||||||
|
public class RenderRBMKGauge extends TileEntitySpecialRenderer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
|
||||||
|
switch(te.getBlockMetadata()) {
|
||||||
|
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||||
|
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||||
|
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||||
|
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TileEntityRBMKGauge gauge = (TileEntityRBMKGauge) te;
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
GaugeUnit unit = gauge.gauges[i];
|
||||||
|
if(!unit.active) continue;
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0.25, (i / 2) * -0.5 + 0.25, (i % 2) * -0.5 + 0.25);
|
||||||
|
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
this.bindTexture(ResourceManager.rbmk_gauge_tex);
|
||||||
|
ResourceManager.rbmk_gauge.renderPart("Gauge");
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glColor3f(ColorUtil.fr(unit.color), ColorUtil.fg(unit.color), ColorUtil.fb(unit.color));
|
||||||
|
|
||||||
|
double value = unit.lastRenderValue + (unit.renderValue - unit.lastRenderValue) * interp;
|
||||||
|
int lower = Math.min(unit.min, unit.max);
|
||||||
|
int upper = Math.max(unit.min, unit.max);
|
||||||
|
if(lower == upper) upper += 1;
|
||||||
|
int range = upper - lower;
|
||||||
|
double angle = (double) (value - lower) / (double) range * 50D;
|
||||||
|
if(unit.min > unit.max) angle = 50 - angle;
|
||||||
|
|
||||||
|
angle = MathHelper.clamp_double(angle, 0, 80);
|
||||||
|
|
||||||
|
GL11.glTranslated(0, 0.4375, -0.125);
|
||||||
|
GL11.glRotated(angle - 85, -1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -0.4375, 0.125);
|
||||||
|
|
||||||
|
GL11.glDisable(GL11.GL_TEXTURE_2D);
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
ResourceManager.rbmk_gauge.renderPart("Needle");
|
||||||
|
RenderArcFurnace.fullbright(false);
|
||||||
|
GL11.glEnable(GL11.GL_TEXTURE_2D);
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
int height = font.FONT_HEIGHT;
|
||||||
|
|
||||||
|
double lineScale = 0.0025D;
|
||||||
|
String lineLower = unit.min <= 10_000 ? unit.min + "" : BobMathUtil.getShortNumber(unit.min);
|
||||||
|
String lineUpper = unit.max <= 10_000 ? unit.max + "" : BobMathUtil.getShortNumber(unit.max);
|
||||||
|
|
||||||
|
for(int j = 0; j < 2; j++) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0, 0.4375, -0.125);
|
||||||
|
GL11.glRotated(10 + j * 50, -1, 0, 0);
|
||||||
|
GL11.glTranslated(0, -0.4375, 0.125);
|
||||||
|
|
||||||
|
GL11.glTranslated(0.032, 0.4375, 0.125);
|
||||||
|
GL11.glScaled(lineScale, -lineScale, lineScale);
|
||||||
|
GL11.glNormal3f(0.0F, 0.0F, -1.0F);
|
||||||
|
GL11.glRotatef(90, 0, 1, 0);
|
||||||
|
font.drawString(j == 0 ? lineLower : lineUpper, 0, -height / 2, 0x000000);
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(unit.label != null && !unit.label.isEmpty()) {
|
||||||
|
|
||||||
|
GL11.glTranslated(0.01, 0.3125, 0);
|
||||||
|
int width = font.getStringWidth(unit.label);
|
||||||
|
float f3 = Math.min(0.0125F, 0.4F / Math.max(width, 1));
|
||||||
|
GL11.glScalef(f3, -f3, f3);
|
||||||
|
GL11.glNormal3f(0.0F, 0.0F, -1.0F);
|
||||||
|
GL11.glRotatef(90, 0, 1, 0);
|
||||||
|
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
font.drawString(unit.label, - width / 2, - height / 2, 0x00ff00);
|
||||||
|
RenderArcFurnace.fullbright(false);
|
||||||
|
}
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,81 @@
|
|||||||
|
package com.hbm.render.tileentity;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
import com.hbm.main.ResourceManager;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKKeyPad;
|
||||||
|
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKKeyPad.KeyUnit;
|
||||||
|
import com.hbm.util.ColorUtil;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
|
public class RenderRBMKKeyPad extends TileEntitySpecialRenderer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||||
|
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
|
|
||||||
|
switch(te.getBlockMetadata()) {
|
||||||
|
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||||
|
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||||
|
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||||
|
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||||
|
}
|
||||||
|
|
||||||
|
TileEntityRBMKKeyPad keypad = (TileEntityRBMKKeyPad) te;
|
||||||
|
|
||||||
|
for(int i = 0; i < 4; i++) {
|
||||||
|
KeyUnit key = keypad.keys[i];
|
||||||
|
if(!key.active) continue;
|
||||||
|
|
||||||
|
boolean glow = key.isPressed;
|
||||||
|
float mult = glow ? 1F : 0.65F;
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(0.25, (i / 2) * -0.5 + 0.25, (i % 2) * -0.5 + 0.25);
|
||||||
|
|
||||||
|
GL11.glColor3f(1F, 1F, 1F);
|
||||||
|
this.bindTexture(ResourceManager.rbmk_keypad_tex);
|
||||||
|
ResourceManager.rbmk_button.renderPart("Socket");
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslated(key.isPressed ? -0.03125 : 0, 0, 0);
|
||||||
|
GL11.glColor3f(ColorUtil.fr(key.color) * mult, ColorUtil.fg(key.color) * mult, ColorUtil.fb(key.color) * mult);
|
||||||
|
|
||||||
|
if(glow) {
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
GL11.glEnable(GL11.GL_LIGHTING); // we want a glow, but normal lighting should still apply
|
||||||
|
}
|
||||||
|
ResourceManager.rbmk_button.renderPart("Button");
|
||||||
|
if(glow) RenderArcFurnace.fullbright(false);
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
|
||||||
|
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
||||||
|
int height = font.FONT_HEIGHT;
|
||||||
|
if(key.label != null && !key.label.isEmpty()) {
|
||||||
|
|
||||||
|
GL11.glTranslated(0.01, 0.3125, 0);
|
||||||
|
int width = font.getStringWidth(key.label);
|
||||||
|
float f3 = Math.min(0.0125F, 0.4F / Math.max(width, 1));
|
||||||
|
GL11.glScalef(f3, -f3, f3);
|
||||||
|
GL11.glNormal3f(0.0F, 0.0F, -1.0F);
|
||||||
|
GL11.glRotatef(90, 0, 1, 0);
|
||||||
|
|
||||||
|
RenderArcFurnace.fullbright(true);
|
||||||
|
font.drawString(key.label, - width / 2, - height / 2, 0x00ff00);
|
||||||
|
RenderArcFurnace.fullbright(false);
|
||||||
|
}
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -38,6 +38,7 @@ public class MissilePart {
|
|||||||
MissilePart.registerPart(ModItems.mp_thruster_10_xenon, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_xenon, ResourceManager.mp_t_10_xenon_tex);
|
MissilePart.registerPart(ModItems.mp_thruster_10_xenon, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_xenon, ResourceManager.mp_t_10_xenon_tex);
|
||||||
//
|
//
|
||||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene, PartType.THRUSTER, 1.5, 1.5, ResourceManager.mp_t_15_kerosene, ResourceManager.mp_t_15_kerosene_tex);
|
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene, PartType.THRUSTER, 1.5, 1.5, ResourceManager.mp_t_15_kerosene, ResourceManager.mp_t_15_kerosene_tex);
|
||||||
|
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_dual, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_dual, ResourceManager.mp_t_15_kerosene_dual_tex);
|
||||||
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_triple, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_triple, ResourceManager.mp_t_15_kerosene_dual_tex);
|
MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_triple, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_triple, ResourceManager.mp_t_15_kerosene_dual_tex);
|
||||||
MissilePart.registerPart(ModItems.mp_thruster_15_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid, ResourceManager.mp_t_15_solid_tex);
|
MissilePart.registerPart(ModItems.mp_thruster_15_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid, ResourceManager.mp_t_15_solid_tex);
|
||||||
MissilePart.registerPart(ModItems.mp_thruster_15_solid_hexdecuple, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid_hexdecuple, ResourceManager.mp_t_15_solid_hexdecuple_tex);
|
MissilePart.registerPart(ModItems.mp_thruster_15_solid_hexdecuple, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid_hexdecuple, ResourceManager.mp_t_15_solid_hexdecuple_tex);
|
||||||
|
|||||||
@ -179,11 +179,13 @@ public abstract class DoorDecl {
|
|||||||
ResourceManager.pheo_fire_door_tex,
|
ResourceManager.pheo_fire_door_tex,
|
||||||
ResourceManager.pheo_fire_door_black_tex,
|
ResourceManager.pheo_fire_door_black_tex,
|
||||||
ResourceManager.pheo_fire_door_orange_tex,
|
ResourceManager.pheo_fire_door_orange_tex,
|
||||||
|
ResourceManager.pheo_fire_door_yellow_tex,
|
||||||
|
ResourceManager.pheo_fire_door_trefoil_tex
|
||||||
};
|
};
|
||||||
return skins;
|
return skins;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSkinCount() { return 3; }
|
public int getSkinCount() { return 5; }
|
||||||
|
|
||||||
@Override public int timeToOpen() { return 160; }
|
@Override public int timeToOpen() { return 160; }
|
||||||
@Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, 0, 0, 3, 4, 1 } }; }
|
@Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, 0, 0, 3, 4, 1 } }; }
|
||||||
@ -311,12 +313,14 @@ public abstract class DoorDecl {
|
|||||||
@Override public ResourceLocation[] getSEDNASkins() {
|
@Override public ResourceLocation[] getSEDNASkins() {
|
||||||
if(skins == null) skins = new ResourceLocation[] {
|
if(skins == null) skins = new ResourceLocation[] {
|
||||||
ResourceManager.pheo_secure_door_tex,
|
ResourceManager.pheo_secure_door_tex,
|
||||||
ResourceManager.pheo_secure_door_grey_tex
|
ResourceManager.pheo_secure_door_grey_tex,
|
||||||
|
ResourceManager.pheo_secure_door_black_tex,
|
||||||
|
ResourceManager.pheo_secure_door_yellow_tex
|
||||||
};
|
};
|
||||||
return skins;
|
return skins;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSkinCount() { return 2; }
|
public int getSkinCount() { return 4; }
|
||||||
};
|
};
|
||||||
|
|
||||||
public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() {
|
public static final DoorDecl ROUND_AIRLOCK_DOOR = new DoorDecl() {
|
||||||
@ -423,12 +427,13 @@ public abstract class DoorDecl {
|
|||||||
@SideOnly(Side.CLIENT) @Override public ResourceLocation[] getSEDNASkins() {
|
@SideOnly(Side.CLIENT) @Override public ResourceLocation[] getSEDNASkins() {
|
||||||
if(skins == null) skins = new ResourceLocation[] {
|
if(skins == null) skins = new ResourceLocation[] {
|
||||||
ResourceManager.pheo_containment_door_tex,
|
ResourceManager.pheo_containment_door_tex,
|
||||||
ResourceManager.pheo_containment_door_trefoil_tex
|
ResourceManager.pheo_containment_door_trefoil_tex,
|
||||||
|
ResourceManager.pheo_containment_door_trefoil_yellow_tex
|
||||||
};
|
};
|
||||||
return skins;
|
return skins;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public int getSkinCount() { return 2; }
|
@Override public int getSkinCount() { return 3; }
|
||||||
|
|
||||||
@Override public int timeToOpen() { return 160; };
|
@Override public int timeToOpen() { return 160; };
|
||||||
@Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, 0, 0, 3, 3, 1 } }; }
|
@Override public int[][] getDoorOpenRanges() { return new int[][] { { -1, 0, 0, 3, 3, 1 } }; }
|
||||||
|
|||||||
@ -403,6 +403,8 @@ public class TileMappings {
|
|||||||
put(TileEntityCraneConsole.class, "tileentity_rbmk_crane_console");
|
put(TileEntityCraneConsole.class, "tileentity_rbmk_crane_console");
|
||||||
put(TileEntityRBMKConsole.class, "tileentity_rbmk_console");
|
put(TileEntityRBMKConsole.class, "tileentity_rbmk_console");
|
||||||
put(TileEntityRBMKDisplay.class, "tileentity_rbmk_display");
|
put(TileEntityRBMKDisplay.class, "tileentity_rbmk_display");
|
||||||
|
put(TileEntityRBMKKeyPad.class, "tileentity_rbmk_keypad");
|
||||||
|
put(TileEntityRBMKGauge.class, "tileentity_rbmk_gauge");
|
||||||
put(TileEntityRBMKInlet.class, "tileentity_rbmk_inlet");
|
put(TileEntityRBMKInlet.class, "tileentity_rbmk_inlet");
|
||||||
put(TileEntityRBMKOutlet.class, "tileentity_rbmk_outlet");
|
put(TileEntityRBMKOutlet.class, "tileentity_rbmk_outlet");
|
||||||
put(TileEntityRBMKAutoloader.class, "tileentity_rbmk_autoloader");
|
put(TileEntityRBMKAutoloader.class, "tileentity_rbmk_autoloader");
|
||||||
@ -418,6 +420,7 @@ public class TileMappings {
|
|||||||
put(TileEntityFusionBoiler.class, "tileentity_fusion_boiler");
|
put(TileEntityFusionBoiler.class, "tileentity_fusion_boiler");
|
||||||
put(TileEntityFusionMHDT.class, "tileentity_fusion_mhdt");
|
put(TileEntityFusionMHDT.class, "tileentity_fusion_mhdt");
|
||||||
put(TileEntityFusionCoupler.class, "tileentity_fusion_coupler");
|
put(TileEntityFusionCoupler.class, "tileentity_fusion_coupler");
|
||||||
|
put(TileEntityFusionPlasmaForge.class, "tileentity_fusion_plasma_forge");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void putNetwork() {
|
private static void putNetwork() {
|
||||||
|
|||||||
@ -12,5 +12,5 @@ public interface IFusionPowerReceiver {
|
|||||||
* fusionPower is the per-port output adjusted for the amount of connected receivers (i.e. when boilers share output energy)
|
* fusionPower is the per-port output adjusted for the amount of connected receivers (i.e. when boilers share output energy)
|
||||||
* neutronPower is a fixed value provided by the recipe
|
* neutronPower is a fixed value provided by the recipe
|
||||||
*/
|
*/
|
||||||
public void receiveFusionPower(long fusionPower, double neutronPower);
|
public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,7 +87,7 @@ public class TileEntityFusionBoiler extends TileEntityLoadedBase implements IFlu
|
|||||||
@Override public boolean receivesFusionPower() { return true; }
|
@Override public boolean receivesFusionPower() { return true; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receiveFusionPower(long fusionPower, double neutronPower) {
|
public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) {
|
||||||
this.plasmaEnergy = fusionPower;
|
this.plasmaEnergy = fusionPower;
|
||||||
|
|
||||||
int waterCycles = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill());
|
int waterCycles = Math.min(tanks[0].getFill(), tanks[1].getMaxFill() - tanks[1].getFill());
|
||||||
|
|||||||
@ -267,7 +267,7 @@ public class TileEntityFusionBreeder extends TileEntityMachineBase implements IF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean receivesFusionPower() { return false; }
|
@Override public boolean receivesFusionPower() { return false; }
|
||||||
@Override public void receiveFusionPower(long fusionPower, double neutronPower) { this.neutronEnergy = neutronPower; doProgress(); }
|
@Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { this.neutronEnergy = neutronPower; doProgress(); }
|
||||||
|
|
||||||
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; }
|
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {tanks[0]}; }
|
||||||
@Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; }
|
@Override public FluidTank[] getSendingTanks() { return new FluidTank[] {tanks[1]}; }
|
||||||
|
|||||||
@ -62,7 +62,7 @@ public class TileEntityFusionCoupler extends TileEntityLoadedBase implements IFu
|
|||||||
@Override public boolean receivesFusionPower() { return true; }
|
@Override public boolean receivesFusionPower() { return true; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void receiveFusionPower(long fusionPower, double neutronPower) {
|
public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) {
|
||||||
|
|
||||||
// more copy pasted crap code ! ! !
|
// more copy pasted crap code ! ! !
|
||||||
if(klystronNode != null && klystronNode.net != null) {
|
if(klystronNode != null && klystronNode.net != null) {
|
||||||
|
|||||||
@ -159,7 +159,7 @@ public class TileEntityFusionMHDT extends TileEntityLoadedBase implements IEnerg
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean receivesFusionPower() { return true; }
|
@Override public boolean receivesFusionPower() { return true; }
|
||||||
@Override public void receiveFusionPower(long fusionPower, double neutronPower) { this.plasmaEnergy = fusionPower; }
|
@Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) { this.plasmaEnergy = fusionPower; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(ByteBuf buf) {
|
public void serialize(ByteBuf buf) {
|
||||||
|
|||||||
@ -0,0 +1,268 @@
|
|||||||
|
package com.hbm.tileentity.machine.fusion;
|
||||||
|
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.IControlReceiver;
|
||||||
|
import com.hbm.inventory.container.ContainerMachinePlasmaForge;
|
||||||
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.inventory.gui.GUIMachinePlasmaForge;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipe;
|
||||||
|
import com.hbm.inventory.recipes.PlasmaForgeRecipes;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
import com.hbm.lib.Library;
|
||||||
|
import com.hbm.module.machine.ModuleMachinePlasma;
|
||||||
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
|
import com.hbm.tileentity.TileEntityMachineBase;
|
||||||
|
import com.hbm.uninos.GenNode;
|
||||||
|
import com.hbm.uninos.INetworkProvider;
|
||||||
|
import com.hbm.uninos.UniNodespace;
|
||||||
|
import com.hbm.uninos.networkproviders.PlasmaNetworkProvider;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||||
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||||
|
import api.hbm.fluidmk2.IFluidStandardReceiverMK2;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
|
public class TileEntityFusionPlasmaForge extends TileEntityMachineBase implements IFusionPowerReceiver, IEnergyReceiverMK2, IFluidStandardReceiverMK2, IControlReceiver, IGUIProvider {
|
||||||
|
|
||||||
|
public FluidTank inputTank;
|
||||||
|
|
||||||
|
public long power;
|
||||||
|
public long maxPower = 10_000_000;
|
||||||
|
public boolean didProcess;
|
||||||
|
|
||||||
|
public float plasmaRed;
|
||||||
|
public float plasmaGreen;
|
||||||
|
public float plasmaBlue;
|
||||||
|
public long plasmaEnergy;
|
||||||
|
public long plasmaEnergySync;
|
||||||
|
protected GenNode receiverNode;
|
||||||
|
protected GenNode providerNode;
|
||||||
|
|
||||||
|
public int timeOffset = -1;
|
||||||
|
|
||||||
|
public ModuleMachinePlasma plasmaModule;
|
||||||
|
|
||||||
|
public TileEntityFusionPlasmaForge() {
|
||||||
|
super(16);
|
||||||
|
this.inputTank = new FluidTank(Fluids.NONE, 16_000);
|
||||||
|
|
||||||
|
this.plasmaModule = new ModuleMachinePlasma(0, this, slots)
|
||||||
|
.itemInput(3).itemOutput(15).fluidInput(inputTank);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return "container.machinePlasmaForge";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public boolean receivesFusionPower() { return true; }
|
||||||
|
@Override public void receiveFusionPower(long fusionPower, double neutronPower, float r, float g, float b) {
|
||||||
|
this.plasmaEnergy = fusionPower;
|
||||||
|
this.plasmaRed = r;
|
||||||
|
this.plasmaGreen = g;
|
||||||
|
this.plasmaBlue = b;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity() {
|
||||||
|
|
||||||
|
if(maxPower <= 0) this.maxPower = 1_000_000;
|
||||||
|
|
||||||
|
if(!worldObj.isRemote) {
|
||||||
|
|
||||||
|
this.plasmaEnergySync = this.plasmaEnergy;
|
||||||
|
this.plasmaEnergy = 0;
|
||||||
|
|
||||||
|
ForgeDirection rot = ForgeDirection.getOrientation(this.getBlockMetadata() - 10).getRotation(ForgeDirection.UP);
|
||||||
|
if(receiverNode == null || receiverNode.expired) receiverNode = this.createNode(PlasmaNetworkProvider.THE_PROVIDER, rot);
|
||||||
|
if(providerNode == null || providerNode.expired) providerNode = this.createNode(PlasmaNetworkProvider.THE_PROVIDER, rot.getOpposite());
|
||||||
|
|
||||||
|
if(receiverNode != null && receiverNode.hasValidNet()) receiverNode.net.addReceiver(this);
|
||||||
|
if(providerNode != null && providerNode.hasValidNet()) providerNode.net.addProvider(this); // technically unused, but good to have when we do something else with the plasma nets
|
||||||
|
|
||||||
|
PlasmaForgeRecipe recipe = (PlasmaForgeRecipe) PlasmaForgeRecipes.INSTANCE.recipeNameMap.get(plasmaModule.recipe);
|
||||||
|
if(recipe != null) this.maxPower = recipe.power * 100;
|
||||||
|
|
||||||
|
this.maxPower = BobMathUtil.max(this.power, this.maxPower, 100_000);
|
||||||
|
this.power = Library.chargeTEFromItems(slots, 0, power, maxPower);
|
||||||
|
|
||||||
|
for(DirPos pos : getConPos()) {
|
||||||
|
this.trySubscribe(worldObj, pos);
|
||||||
|
if(inputTank.getTankType() != Fluids.NONE) this.trySubscribe(inputTank.getTankType(), worldObj, pos);
|
||||||
|
}
|
||||||
|
|
||||||
|
double speed = 1D;
|
||||||
|
double pow = 1D;
|
||||||
|
|
||||||
|
boolean ignition = recipe != null ? recipe.ignitionTemp <= this.plasmaEnergySync : true;
|
||||||
|
|
||||||
|
this.plasmaModule.update(speed, pow, ignition, slots[1]);
|
||||||
|
this.didProcess = this.plasmaModule.didProcess;
|
||||||
|
if(this.plasmaModule.markDirty) this.markDirty();
|
||||||
|
|
||||||
|
if(providerNode != null && providerNode.hasValidNet()) {
|
||||||
|
|
||||||
|
for(Object o : providerNode.net.receiverEntries.entrySet()) {
|
||||||
|
Entry<Object, Long> entry = (Entry<Object, Long>) o;
|
||||||
|
|
||||||
|
if(entry.getKey() instanceof IFusionPowerReceiver) {
|
||||||
|
long powerReceived = (long) Math.ceil(this.plasmaEnergySync * 0.75);
|
||||||
|
((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, 0, plasmaRed, plasmaGreen, plasmaBlue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.networkPackNT(100);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if(timeOffset == -1) this.timeOffset = worldObj.rand.nextInt(30_000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public GenNode createNode(INetworkProvider provider, ForgeDirection dir) {
|
||||||
|
GenNode node = UniNodespace.getNode(worldObj, xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5, provider);
|
||||||
|
if(node != null) return node;
|
||||||
|
|
||||||
|
node = new GenNode(provider,
|
||||||
|
new BlockPos(xCoord + dir.offsetX * 5, yCoord + 2, zCoord + dir.offsetZ * 5))
|
||||||
|
.setConnections(new DirPos(xCoord + dir.offsetX * 6, yCoord + 2, zCoord + dir.offsetZ * 6, dir));
|
||||||
|
|
||||||
|
UniNodespace.createNode(worldObj, node);
|
||||||
|
|
||||||
|
return node;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DirPos[] getConPos() {
|
||||||
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10);
|
||||||
|
ForgeDirection rot = dir.getRotation(ForgeDirection.UP);
|
||||||
|
|
||||||
|
return new DirPos[] {
|
||||||
|
new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ * 2, dir),
|
||||||
|
new DirPos(xCoord + dir.offsetX * 6 - rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 6 - rot.offsetZ * 1, dir),
|
||||||
|
new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 0, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 0, dir),
|
||||||
|
new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 1, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 1, dir),
|
||||||
|
new DirPos(xCoord + dir.offsetX * 6 + rot.offsetX * 2, yCoord, zCoord + dir.offsetZ * 6 + rot.offsetZ * 2, dir),
|
||||||
|
new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ * 2, dir.getOpposite()),
|
||||||
|
new DirPos(xCoord - dir.offsetX * 6 - rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 6 - rot.offsetZ * 1, dir.getOpposite()),
|
||||||
|
new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 0, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 0, dir.getOpposite()),
|
||||||
|
new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 1, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 1, dir.getOpposite()),
|
||||||
|
new DirPos(xCoord - dir.offsetX * 6 + rot.offsetX * 2, yCoord, zCoord - dir.offsetZ * 6 + rot.offsetZ * 2, dir.getOpposite()),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(ByteBuf buf) {
|
||||||
|
super.serialize(buf);
|
||||||
|
this.inputTank.serialize(buf);
|
||||||
|
buf.writeFloat(plasmaRed);
|
||||||
|
buf.writeFloat(plasmaGreen);
|
||||||
|
buf.writeFloat(plasmaBlue);
|
||||||
|
buf.writeLong(plasmaEnergySync);
|
||||||
|
buf.writeLong(power);
|
||||||
|
buf.writeLong(maxPower);
|
||||||
|
buf.writeBoolean(didProcess);
|
||||||
|
this.plasmaModule.serialize(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserialize(ByteBuf buf) {
|
||||||
|
super.deserialize(buf);
|
||||||
|
this.inputTank.deserialize(buf);
|
||||||
|
this.plasmaRed = buf.readFloat();
|
||||||
|
this.plasmaGreen = buf.readFloat();
|
||||||
|
this.plasmaBlue = buf.readFloat();
|
||||||
|
this.plasmaEnergySync = buf.readLong();
|
||||||
|
this.power = buf.readLong();
|
||||||
|
this.maxPower = buf.readLong();
|
||||||
|
this.didProcess = buf.readBoolean();
|
||||||
|
this.plasmaModule.deserialize(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
|
super.readFromNBT(nbt);
|
||||||
|
this.inputTank.readFromNBT(nbt, "i");
|
||||||
|
this.power = nbt.getLong("power");
|
||||||
|
this.maxPower = nbt.getLong("maxPower");
|
||||||
|
this.plasmaModule.readFromNBT(nbt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
|
super.writeToNBT(nbt);
|
||||||
|
this.inputTank.writeToNBT(nbt, "i");
|
||||||
|
nbt.setLong("power", power);
|
||||||
|
nbt.setLong("maxPower", maxPower);
|
||||||
|
this.plasmaModule.writeToNBT(nbt);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValidForSlot(int slot, ItemStack stack) {
|
||||||
|
if(slot == 0) return true; // battery
|
||||||
|
if(slot == 1 && stack.getItem() == ModItems.blueprints) return true;
|
||||||
|
// TODO booster material
|
||||||
|
if(this.plasmaModule.isItemValid(slot, stack)) return true; // recipe input crap
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
|
||||||
|
return i == 15 || this.plasmaModule.isSlotClogged(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getAccessibleSlotsFromSide(int side) {
|
||||||
|
return new int[] {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public long getPower() { return power; }
|
||||||
|
@Override public void setPower(long power) { this.power = power; }
|
||||||
|
@Override public long getMaxPower() { return maxPower; }
|
||||||
|
|
||||||
|
@Override public FluidTank[] getReceivingTanks() { return new FluidTank[] {inputTank}; }
|
||||||
|
@Override public FluidTank[] getAllTanks() { return new FluidTank[] {inputTank}; }
|
||||||
|
|
||||||
|
@Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); }
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void receiveControl(NBTTagCompound data) {
|
||||||
|
if(data.hasKey("index") && data.hasKey("selection")) {
|
||||||
|
int index = data.getInteger("index");
|
||||||
|
String selection = data.getString("selection");
|
||||||
|
if(index == 0) {
|
||||||
|
this.plasmaModule.recipe = selection;
|
||||||
|
this.markChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AxisAlignedBB bb = null;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AxisAlignedBB getRenderBoundingBox() {
|
||||||
|
if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 5, yCoord, zCoord - 5, xCoord + 5, yCoord + 6, zCoord + 6);
|
||||||
|
return bb;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public double getMaxRenderDistanceSquared() {
|
||||||
|
return 65536.0D;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachinePlasmaForge(player.inventory, this); }
|
||||||
|
@Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachinePlasmaForge(player.inventory, this); }
|
||||||
|
}
|
||||||
@ -169,6 +169,9 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP
|
|||||||
|
|
||||||
boolean ignition = recipe != null ? recipe.ignitionTemp <= this.klystronEnergy : true;
|
boolean ignition = recipe != null ? recipe.ignitionTemp <= this.klystronEnergy : true;
|
||||||
|
|
||||||
|
float r = 0F;
|
||||||
|
float g = 0F;
|
||||||
|
float b = 0F;
|
||||||
this.plasmaEnergy = 0;
|
this.plasmaEnergy = 0;
|
||||||
this.fuelConsumption = 0;
|
this.fuelConsumption = 0;
|
||||||
this.fusionModule.preUpdate(factor, collectors * 0.5D);
|
this.fusionModule.preUpdate(factor, collectors * 0.5D);
|
||||||
@ -178,6 +181,9 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP
|
|||||||
if(didProcess && recipe != null) {
|
if(didProcess && recipe != null) {
|
||||||
this.plasmaEnergy = (long) Math.ceil(recipe.outputTemp * factor);
|
this.plasmaEnergy = (long) Math.ceil(recipe.outputTemp * factor);
|
||||||
this.fuelConsumption = factor;
|
this.fuelConsumption = factor;
|
||||||
|
r = recipe.r;
|
||||||
|
g = recipe.g;
|
||||||
|
b = recipe.b;
|
||||||
}
|
}
|
||||||
|
|
||||||
double outputIntensity = this.getOuputIntensity(receiverCount);
|
double outputIntensity = this.getOuputIntensity(receiverCount);
|
||||||
@ -192,7 +198,7 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP
|
|||||||
|
|
||||||
if(entry.getKey() instanceof IFusionPowerReceiver) {
|
if(entry.getKey() instanceof IFusionPowerReceiver) {
|
||||||
long powerReceived = (long) Math.ceil(this.plasmaEnergy * outputIntensity);
|
long powerReceived = (long) Math.ceil(this.plasmaEnergy * outputIntensity);
|
||||||
((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, outputFlux);
|
((IFusionPowerReceiver) entry.getKey()).receiveFusionPower(powerReceived, outputFlux, r, g, b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -52,24 +52,48 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
public double lastPosLeft = 0;
|
public double lastPosLeft = 0;
|
||||||
public double posFront = 0;
|
public double posFront = 0;
|
||||||
public double posLeft = 0;
|
public double posLeft = 0;
|
||||||
|
public double syncFront = 0;
|
||||||
|
public double syncLeft = 0;
|
||||||
private static final double speed = 0.05D;
|
private static final double speed = 0.05D;
|
||||||
|
|
||||||
private boolean goesDown = false;
|
private boolean goesDown = false;
|
||||||
public double lastProgress = 1D;
|
public double lastProgress = 1D;
|
||||||
public double progress = 1D;
|
public double progress = 1D;
|
||||||
|
public double syncProgress = 1D;
|
||||||
|
|
||||||
private ItemStack loadedItem;
|
private ItemStack loadedItem;
|
||||||
private boolean hasLoaded = false;
|
private boolean hasLoaded = false;
|
||||||
public double loadedHeat;
|
public double loadedHeat;
|
||||||
public double loadedEnrichment;
|
public double loadedEnrichment;
|
||||||
|
|
||||||
|
private int turnProgress;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
|
|
||||||
if(worldObj.isRemote) {
|
if(worldObj.isRemote) {
|
||||||
lastTiltFront = tiltFront;
|
lastTiltFront = tiltFront;
|
||||||
lastTiltLeft = tiltLeft;
|
lastTiltLeft = tiltLeft;
|
||||||
|
|
||||||
|
lastPosFront = posFront;
|
||||||
|
lastPosLeft = posLeft;
|
||||||
|
lastProgress = progress;
|
||||||
|
|
||||||
|
if(this.turnProgress > 0) {
|
||||||
|
this.posFront = this.posFront + ((this.syncFront - this.posFront) / (double) this.turnProgress);
|
||||||
|
this.posLeft = this.posLeft + ((this.syncLeft - this.posLeft) / (double) this.turnProgress);
|
||||||
|
this.progress = this.progress + ((this.syncProgress - this.progress) / (double) this.turnProgress);
|
||||||
|
--this.turnProgress;
|
||||||
|
} else {
|
||||||
|
this.posFront = this.syncFront;
|
||||||
|
this.posLeft = this.syncLeft;
|
||||||
|
this.progress = this.syncProgress;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!worldObj.isRemote) {
|
||||||
|
TileEntityRBMKBase aboveColumn = this.getColumnAtPos();
|
||||||
|
if(aboveColumn != null) aboveColumn.craneIndicator = 10;
|
||||||
|
|
||||||
if(goesDown) {
|
if(goesDown) {
|
||||||
|
|
||||||
@ -79,8 +103,8 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
progress = 0;
|
progress = 0;
|
||||||
goesDown = false;
|
goesDown = false;
|
||||||
|
|
||||||
if(!worldObj.isRemote && this.canTargetInteract()) {
|
if(aboveColumn instanceof IRBMKLoadable && this.canTargetInteract((IRBMKLoadable) aboveColumn)) {
|
||||||
IRBMKLoadable column = getColumnAtPos();
|
IRBMKLoadable column = (IRBMKLoadable) aboveColumn;
|
||||||
if(column != null) { // canTargetInteract already assumes this, but there seems to be some freak race conditions that cause the column to be null anyway
|
if(column != null) { // canTargetInteract already assumes this, but there seems to be some freak race conditions that cause the column to be null anyway
|
||||||
if(this.loadedItem != null) {
|
if(this.loadedItem != null) {
|
||||||
column.load(this.loadedItem);
|
column.load(this.loadedItem);
|
||||||
@ -103,6 +127,7 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
progress = 1D;
|
progress = 1D;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
|
||||||
ForgeDirection side = dir.getRotation(ForgeDirection.UP);
|
ForgeDirection side = dir.getRotation(ForgeDirection.UP);
|
||||||
@ -181,12 +206,10 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAboveValidTarget() {
|
public boolean isAboveValidTarget() {
|
||||||
return getColumnAtPos() != null;
|
return getLoadableAtPos() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canTargetInteract() {
|
public boolean canTargetInteract(IRBMKLoadable column) {
|
||||||
|
|
||||||
IRBMKLoadable column = getColumnAtPos();
|
|
||||||
|
|
||||||
if(column == null)
|
if(column == null)
|
||||||
return false;
|
return false;
|
||||||
@ -198,7 +221,7 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IRBMKLoadable getColumnAtPos() {
|
public TileEntityRBMKBase getColumnAtPos() {
|
||||||
|
|
||||||
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
|
ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - BlockDummyable.offset);
|
||||||
ForgeDirection left = dir.getRotation(ForgeDirection.DOWN);
|
ForgeDirection left = dir.getRotation(ForgeDirection.DOWN);
|
||||||
@ -214,15 +237,19 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
int[] pos = ((BlockDummyable)b).findCore(worldObj, x, y, z);
|
int[] pos = ((BlockDummyable)b).findCore(worldObj, x, y, z);
|
||||||
if(pos != null) {
|
if(pos != null) {
|
||||||
TileEntityRBMKBase column = (TileEntityRBMKBase)worldObj.getTileEntity(pos[0], pos[1], pos[2]);
|
TileEntityRBMKBase column = (TileEntityRBMKBase)worldObj.getTileEntity(pos[0], pos[1], pos[2]);
|
||||||
if(column instanceof IRBMKLoadable) {
|
return column;
|
||||||
return (IRBMKLoadable) column;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IRBMKLoadable getLoadableAtPos() {
|
||||||
|
TileEntityRBMKBase column = this.getColumnAtPos();
|
||||||
|
if(column instanceof IRBMKLoadable) return (IRBMKLoadable) column;
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(ByteBuf buf) {
|
public void serialize(ByteBuf buf) {
|
||||||
buf.writeBoolean(this.setUpCrane);
|
buf.writeBoolean(this.setUpCrane);
|
||||||
@ -239,6 +266,7 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
buf.writeInt(this.height);
|
buf.writeInt(this.height);
|
||||||
buf.writeDouble(this.posFront);
|
buf.writeDouble(this.posFront);
|
||||||
buf.writeDouble(this.posLeft);
|
buf.writeDouble(this.posLeft);
|
||||||
|
buf.writeDouble(this.progress);
|
||||||
buf.writeBoolean(this.hasItemLoaded());
|
buf.writeBoolean(this.hasItemLoaded());
|
||||||
buf.writeDouble(this.loadedHeat);
|
buf.writeDouble(this.loadedHeat);
|
||||||
buf.writeDouble(this.loadedEnrichment);
|
buf.writeDouble(this.loadedEnrichment);
|
||||||
@ -247,10 +275,6 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deserialize(ByteBuf buf) {
|
public void deserialize(ByteBuf buf) {
|
||||||
lastPosFront = posFront;
|
|
||||||
lastPosLeft = posLeft;
|
|
||||||
lastProgress = progress;
|
|
||||||
|
|
||||||
this.setUpCrane = buf.readBoolean();
|
this.setUpCrane = buf.readBoolean();
|
||||||
if (this.setUpCrane) {
|
if (this.setUpCrane) {
|
||||||
this.craneRotationOffset = buf.readInt();
|
this.craneRotationOffset = buf.readInt();
|
||||||
@ -262,8 +286,9 @@ public class TileEntityCraneConsole extends TileEntityLoadedBase implements Simp
|
|||||||
this.spanL = buf.readInt();
|
this.spanL = buf.readInt();
|
||||||
this.spanR = buf.readInt();
|
this.spanR = buf.readInt();
|
||||||
this.height = buf.readInt();
|
this.height = buf.readInt();
|
||||||
this.posFront = buf.readDouble();
|
this.syncFront = buf.readDouble();
|
||||||
this.posLeft = buf.readDouble();
|
this.syncLeft = buf.readDouble();
|
||||||
|
this.syncProgress = buf.readDouble();
|
||||||
this.hasLoaded = buf.readBoolean();
|
this.hasLoaded = buf.readBoolean();
|
||||||
this.loadedHeat = buf.readDouble();
|
this.loadedHeat = buf.readDouble();
|
||||||
this.loadedEnrichment = buf.readDouble();
|
this.loadedEnrichment = buf.readDouble();
|
||||||
|
|||||||
@ -56,6 +56,9 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
|
|||||||
public static final int maxWater = 16000;
|
public static final int maxWater = 16000;
|
||||||
public int reasimSteam;
|
public int reasimSteam;
|
||||||
public static final int maxSteam = 16000;
|
public static final int maxSteam = 16000;
|
||||||
|
public int craneIndicator;
|
||||||
|
|
||||||
|
public static boolean explodeOnBroken = true;
|
||||||
|
|
||||||
public boolean hasLid() {
|
public boolean hasLid() {
|
||||||
|
|
||||||
@ -104,6 +107,8 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
|
|||||||
|
|
||||||
if(!worldObj.isRemote) {
|
if(!worldObj.isRemote) {
|
||||||
|
|
||||||
|
if(this.craneIndicator > 0) this.craneIndicator--;
|
||||||
|
|
||||||
this.worldObj.theProfiler.startSection("rbmkBase_heat_movement");
|
this.worldObj.theProfiler.startSection("rbmkBase_heat_movement");
|
||||||
moveHeat();
|
moveHeat();
|
||||||
if(RBMKDials.getReasimBoilers(worldObj)) {
|
if(RBMKDials.getReasimBoilers(worldObj)) {
|
||||||
@ -286,6 +291,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
|
|||||||
buf.writeDouble(this.heat);
|
buf.writeDouble(this.heat);
|
||||||
buf.writeInt(this.reasimWater);
|
buf.writeInt(this.reasimWater);
|
||||||
buf.writeInt(this.reasimSteam);
|
buf.writeInt(this.reasimSteam);
|
||||||
|
buf.writeByte((byte) this.craneIndicator);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -293,6 +299,7 @@ public abstract class TileEntityRBMKBase extends TileEntityLoadedBase {
|
|||||||
this.heat = buf.readDouble();
|
this.heat = buf.readDouble();
|
||||||
this.reasimWater = buf.readInt();
|
this.reasimWater = buf.readInt();
|
||||||
this.reasimSteam = buf.readInt();
|
this.reasimSteam = buf.readInt();
|
||||||
|
this.craneIndicator = buf.readByte();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getDiagData(NBTTagCompound nbt) {
|
public void getDiagData(NBTTagCompound nbt) {
|
||||||
|
|||||||
@ -100,6 +100,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon
|
|||||||
columns[index] = new RBMKColumn(rbmk.getConsoleType(), rbmk.getNBTForConsole());
|
columns[index] = new RBMKColumn(rbmk.getConsoleType(), rbmk.getNBTForConsole());
|
||||||
columns[index].data.setDouble("heat", rbmk.heat);
|
columns[index].data.setDouble("heat", rbmk.heat);
|
||||||
columns[index].data.setDouble("maxHeat", rbmk.maxHeat());
|
columns[index].data.setDouble("maxHeat", rbmk.maxHeat());
|
||||||
|
columns[index].data.setByte("indicator", (byte) rbmk.craneIndicator);
|
||||||
if(rbmk.isModerated()) columns[index].data.setBoolean("moderated", true); //false is the default anyway and not setting it when we don't need to reduces cruft
|
if(rbmk.isModerated()) columns[index].data.setBoolean("moderated", true); //false is the default anyway and not setting it when we don't need to reduces cruft
|
||||||
|
|
||||||
if(te instanceof TileEntityRBMKRod) {
|
if(te instanceof TileEntityRBMKRod) {
|
||||||
@ -136,8 +137,7 @@ public class TileEntityRBMKConsole extends TileEntityMachineBase implements ICon
|
|||||||
|
|
||||||
RBMKColumn col = this.columns[i];
|
RBMKColumn col = this.columns[i];
|
||||||
|
|
||||||
if(col == null)
|
if(col == null) continue;
|
||||||
continue;
|
|
||||||
|
|
||||||
switch(screen.type) {
|
switch(screen.type) {
|
||||||
case COL_TEMP:
|
case COL_TEMP:
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user