lunar miner, helium plasma

This commit is contained in:
Boblet 2021-11-03 09:17:53 +01:00
parent 7f4b3e5b89
commit 2471777d04
20 changed files with 75 additions and 9 deletions

View File

@ -343,6 +343,8 @@ public class ModBlocks {
public static Block meteor_pillar;
public static Block meteor_spawner;
public static Block meteor_battery;
public static Block moon_turf;
public static Block brick_jungle;
public static Block brick_jungle_cracked;
@ -1511,7 +1513,8 @@ public class ModBlocks {
meteor_pillar = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":meteor_pillar_top").setBlockName("meteor_pillar").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_pillar");
meteor_spawner = new BlockCybercrab(Material.rock).setBlockName("meteor_spawner").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F);
meteor_battery = new BlockPillar(Material.rock, RefStrings.MODID + ":meteor_power").setBlockName("meteor_battery").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":meteor_spawner_side");
moon_turf = new BlockFalling(Material.sand).setBlockName("moon_turf").setStepSound(Block.soundTypeSand).setCreativeTab(MainRegistry.blockTab).setHardness(0.5F).setBlockTextureName(RefStrings.MODID + ":moon_turf");
brick_jungle = new BlockGeneric(Material.rock).setBlockName("brick_jungle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle");
brick_jungle_cracked = new BlockGeneric(Material.rock).setBlockName("brick_jungle_cracked").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_cracked");
brick_jungle_fragile = new FragileBrick(Material.rock).setBlockName("brick_jungle_fragile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_fragile");
@ -2564,6 +2567,7 @@ public class ModBlocks {
GameRegistry.registerBlock(mush, mush.getUnlocalizedName());
GameRegistry.registerBlock(mush_block, mush_block.getUnlocalizedName());
GameRegistry.registerBlock(mush_block_stem, mush_block_stem.getUnlocalizedName());
GameRegistry.registerBlock(moon_turf, moon_turf.getUnlocalizedName());
//Waste
GameRegistry.registerBlock(waste_earth, waste_earth.getUnlocalizedName());

View File

@ -13,6 +13,8 @@ public class EntityMinerRocket extends Entity {
//0 landing, 1 unloading, 2 lifting
public int timer = 0;
//0 asteroid, 1 moon
public int cargoType = 0;
public EntityMinerRocket(World p_i1582_1_) {
super(p_i1582_1_);
@ -86,6 +88,7 @@ public class EntityMinerRocket extends Entity {
dataWatcher.updateObject(16, nbt.getInteger("mode"));
dataWatcher.updateObject(17, nbt.getInteger("sat"));
timer = nbt.getInteger("timer");
cargoType = nbt.getInteger("type");
}
@Override
@ -93,6 +96,7 @@ public class EntityMinerRocket extends Entity {
nbt.setInteger("mode", dataWatcher.getWatchableObjectInt(16));
nbt.setInteger("sat", dataWatcher.getWatchableObjectInt(17));
nbt.setInteger("timer", timer);
nbt.setInteger("type", cargoType);
}
}

View File

@ -91,7 +91,10 @@ public class FluidTypeHandler {
PLASMA_HD (0xF0ADF4, 9, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID),
PLASMA_HT (0xD1ABF2, 10, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", 3000, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID),
PLASMA_XM (0xC6A5FF, 11, 1, 2, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID),
PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
PLASMA_BF (0xA7F1A3, 12, 1, 2, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID),
PLASMA_DH3 (0xFF83AA, 6, 2, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dh3", 3480, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID),
HELIUM3 (0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3");
//Approximate HEX Color of the fluid, used for pipe rendering

View File

@ -13,6 +13,7 @@ public class FusionRecipes {
switch(plasma) {
case PLASMA_DT: return 1200;
case PLASMA_DH3: return 600;
case PLASMA_HD: return 1200;
case PLASMA_HT: return 1200;
case PLASMA_XM: return 2400;
@ -25,6 +26,7 @@ public class FusionRecipes {
switch(plasma) {
case PLASMA_DT: return 1;
case PLASMA_DH3: return 2;
case PLASMA_HD: return 1;
case PLASMA_HT: return 1;
case PLASMA_XM: return 3;
@ -37,6 +39,7 @@ public class FusionRecipes {
switch(plasma) {
case PLASMA_DT: return new ItemStack(ModItems.pellet_charged);
case PLASMA_DH3: return new ItemStack(ModItems.pellet_charged);
case PLASMA_HD: return new ItemStack(ModItems.pellet_charged);
case PLASMA_HT: return new ItemStack(ModItems.pellet_charged);
case PLASMA_XM: return new ItemStack(ModItems.powder_chlorophyte);
@ -49,6 +52,7 @@ public class FusionRecipes {
switch(plasma) {
case PLASMA_DT: return 30;
case PLASMA_DH3: return 50;
case PLASMA_HD: return 20;
case PLASMA_HT: return 25;
case PLASMA_XM: return 60;
@ -62,6 +66,7 @@ public class FusionRecipes {
HashMap<ItemStack, ItemStack> map = new HashMap();
map.put(new ItemStack(ModItems.fluid_icon, 1, FluidType.PLASMA_DT.ordinal()), getByproduct(FluidType.PLASMA_DT));
map.put(new ItemStack(ModItems.fluid_icon, 1, FluidType.PLASMA_DH3.ordinal()), getByproduct(FluidType.PLASMA_DH3));
map.put(new ItemStack(ModItems.fluid_icon, 1, FluidType.PLASMA_HD.ordinal()), getByproduct(FluidType.PLASMA_HD));
map.put(new ItemStack(ModItems.fluid_icon, 1, FluidType.PLASMA_HT.ordinal()), getByproduct(FluidType.PLASMA_HT));
map.put(new ItemStack(ModItems.fluid_icon, 1, FluidType.PLASMA_XM.ordinal()), getByproduct(FluidType.PLASMA_XM));

View File

@ -1466,6 +1466,9 @@ public class MachineRecipes {
case FRACKSOL:
list.add(new ItemStack(ModItems.sulfur, 1));
break;
case HELIUM3:
list.add(new ItemStack(ModBlocks.moon_turf, 8));
break;
default:
break;
}
@ -2016,6 +2019,8 @@ public class MachineRecipes {
case FRACKSOL:
output[0] = new FluidStack(1000, FluidType.FRACKSOL);
break;
case HELIUM3:
output[0] = new FluidStack(1000, FluidType.HELIUM3);
default:
break;
}

View File

@ -1391,6 +1391,7 @@ public class ModItems {
public static Item sat_foeq;
public static Item sat_resonator;
public static Item sat_miner;
public static Item sat_lunar_miner;
public static Item sat_gerald;
public static Item sat_chip;
public static Item sat_interface;
@ -3814,6 +3815,7 @@ public class ModItems {
sat_foeq = new ItemSatChip().setUnlocalizedName("sat_foeq").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_foeq");
sat_resonator = new ItemSatChip().setUnlocalizedName("sat_resonator").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_resonator");
sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_miner");
sat_lunar_miner = new ItemSatChip().setUnlocalizedName("sat_lunar_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_lunar_miner");
sat_gerald = new ItemSatChip().setUnlocalizedName("sat_gerald").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_gerald");
sat_chip = new ItemSatChip().setUnlocalizedName("sat_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_chip");
sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface");
@ -6819,6 +6821,7 @@ public class ModItems {
GameRegistry.registerItem(sat_foeq, sat_foeq.getUnlocalizedName());
GameRegistry.registerItem(sat_resonator, sat_resonator.getUnlocalizedName());
GameRegistry.registerItem(sat_miner, sat_miner.getUnlocalizedName());
GameRegistry.registerItem(sat_lunar_miner, sat_lunar_miner.getUnlocalizedName());
GameRegistry.registerItem(sat_gerald, sat_gerald.getUnlocalizedName());
GameRegistry.registerItem(sat_chip, sat_chip.getUnlocalizedName());
GameRegistry.registerItem(sat_interface, sat_interface.getUnlocalizedName());

View File

@ -102,7 +102,8 @@ public class ItemChemistryTemplate extends Item {
VIT_GAS,
TEL,
GASOLINE,
FRACKSOL;
FRACKSOL,
HELIUM3;
public static EnumChemistryTemplate getEnum(int i) {
if(i < EnumChemistryTemplate.values().length)
@ -300,6 +301,8 @@ public class ItemChemistryTemplate extends Item {
return 40;
case FRACKSOL:
return 20;
case HELIUM3:
return 200;
default:
return 100;
}

View File

@ -34,6 +34,9 @@ public class ItemSatChip extends Item {
if(this == ModItems.sat_miner)
list.add("Will deliver ore powders to a cargo landing pad.");
if(this == ModItems.sat_lunar_miner)
list.add("Mines moon turf to deliver it to a cargo landing pad.");
if(this == ModItems.sat_radar)
list.add("Shows a map of active entities.");

View File

@ -47,6 +47,7 @@ public abstract class Satellite {
registerSatellite(SatelliteResonator.class, ModItems.sat_resonator);
registerSatellite(SatelliteRelay.class, ModItems.sat_foeq);
registerSatellite(SatelliteMiner.class, ModItems.sat_miner);
registerSatellite(SatelliteLunarMiner.class, ModItems.sat_lunar_miner);
registerSatellite(SatelliteHorizons.class, ModItems.sat_gerald);
}

View File

@ -0,0 +1,7 @@
package com.hbm.saveddata.satellites;
import net.minecraft.nbt.NBTTagCompound;
public class SatelliteLunarMiner extends SatelliteMiner {
}

View File

@ -137,6 +137,10 @@ public class TileEntityMachinePlasmaHeater extends TileEntityMachineBase impleme
plasma.setTankType(FluidType.PLASMA_DT);
return;
}
if(types.contains(FluidType.DEUTERIUM) && types.contains(FluidType.HELIUM3)) {
plasma.setTankType(FluidType.PLASMA_DH3);
return;
}
if(types.contains(FluidType.DEUTERIUM) && types.contains(FluidType.HYDROGEN)) {
plasma.setTankType(FluidType.PLASMA_HD);
return;

View File

@ -10,6 +10,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemSatChip;
import com.hbm.saveddata.SatelliteSavedData;
import com.hbm.saveddata.satellites.Satellite;
import com.hbm.saveddata.satellites.SatelliteLunarMiner;
import com.hbm.saveddata.satellites.SatelliteMiner;
import com.hbm.util.WeightedRandomObject;
@ -212,7 +213,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
int delay = 10 * 60 * 1000;
if(sat != null && sat instanceof SatelliteMiner) {
if(sat instanceof SatelliteMiner) {
SatelliteMiner miner = (SatelliteMiner)sat;
@ -222,6 +223,10 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
rocket.posX = xCoord + 0.5;
rocket.posY = 300;
rocket.posZ = zCoord + 0.5;
if(sat instanceof SatelliteLunarMiner)
rocket.cargoType = 1;
rocket.getDataWatcher().updateObject(17, freq);
worldObj.spawnEntityInWorld(rocket);
miner.lastOp = System.currentTimeMillis();
@ -245,7 +250,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
}
if(rocket.getDataWatcher().getWatchableObjectInt(16) == 1 && rocket.timer == 50) {
unloadCargo();
unloadCargo(rocket.cargoType);
}
}
}
@ -259,11 +264,16 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
static Random rand = new Random();
private void unloadCargo() {
private void unloadCargo(int type) {
int items = rand.nextInt(6) + 10;
rand = new Random();
WeightedRandomObject[] cargo;
if(type == 0)
cargo = this.standardCargo;
else
cargo = this.lunarCargo;
for(int i = 0; i < items; i++) {
@ -272,7 +282,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
}
}
private WeightedRandomObject[] cargo = new WeightedRandomObject[] {
private WeightedRandomObject[] standardCargo = new WeightedRandomObject[] {
new WeightedRandomObject(new ItemStack(ModItems.powder_aluminium, 3), 10),
new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 10),
new WeightedRandomObject(new ItemStack(ModItems.powder_titanium, 2), 8),
@ -302,6 +312,16 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent
new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 2), 4)
};
private WeightedRandomObject[] lunarCargo = new WeightedRandomObject[] {
new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 10), 5),
new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 7), 7),
new WeightedRandomObject(new ItemStack(ModBlocks.moon_turf, 5), 5),
new WeightedRandomObject(new ItemStack(ModItems.powder_lithium, 3), 5),
new WeightedRandomObject(new ItemStack(ModItems.powder_iron, 3), 5),
new WeightedRandomObject(new ItemStack(ModItems.crystal_iron, 1), 1),
new WeightedRandomObject(new ItemStack(ModItems.crystal_lithium, 1), 1),
};
private void addToInv(ItemStack stack) {
for(int i = 0; i < 15; i++) {

View File

@ -301,7 +301,7 @@ public class TileEntitySoyuzLauncher extends TileEntityMachineBase implements IS
if(mode == 1)
return 0;
if(slots[2] != null && slots[2].getItem() == ModItems.sat_gerald) {
if(slots[2] != null && (slots[2].getItem() == ModItems.sat_gerald || slots[2].getItem() == ModItems.sat_lunar_miner)) {
if(slots[3] != null && slots[3].getItem() == ModItems.missile_soyuz_lander)
return 2;
return 1;

View File

@ -139,6 +139,7 @@ chem.FP_SMEAR=Industrieölverarbeitung
chem.FR_PETROIL=Gemischherstellung
chem.FR_REOIL=Öl-Wiederaufbereitung
chem.GASOLINE=Benzinherstellung
chem.HELIUM3=Helium-3-Extraktion aus Mondgestein
chem.KEVLAR=Kevlarverbundherstellung
chem.LPG=Petroleumgasverflüssigung
chem.NITAN=NITAN-Supertreibstoff mischen
@ -3146,6 +3147,7 @@ tile.mine_ap.name=Antipersonenmine
tile.mine_fat.name=Fatmine
tile.mine_he.name=Antipanzermine
tile.mine_shrap.name=Schrapnellmine
tile.moon_turf.name=Mondgestein
tile.mud_block.name=Giftiger Schlamm
tile.muffler.name=Schalldämpfer
tile.mush.name=Leuchtender Pilz

View File

@ -207,6 +207,7 @@ chem.FP_SMEAR=Industrial Oil Processing
chem.FR_PETROIL=Petroil Mixing
chem.FR_REOIL=Oil Reprocessing
chem.GASOLINE=Gasoline Production
chem.HELIUM3=Helium-3 Extraction from Moon Turf
chem.KEVLAR=Kevlar Compound Production
chem.LPG=Petroleum Gas Liquefaction
chem.NITAN=NITAN Super Fuel Mixing
@ -3213,6 +3214,7 @@ tile.mine_ap.name=Anti-Personell Mine
tile.mine_fat.name=Fat Mine
tile.mine_he.name=Anti-Tank Mine
tile.mine_shrap.name=Shrapnel Mine
tile.moon_turf.name=Moon Turf
tile.mud_block.name=Poisonous Mud
tile.muffler.name=Muffler
tile.mush.name=Glowing Mushroom

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB