mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
pellet stats
This commit is contained in:
parent
6c234df753
commit
ed79ad396e
61
changelog
61
changelog
@ -1,61 +0,0 @@
|
||||
## Added
|
||||
* New meteorite ores
|
||||
* All previous meteorite ores have been removed (each took up an entire block ID...) which have been replaced with a single block that uses metadata
|
||||
* There's now only five variants with the contents chosen to be especially useful in earlygame: iron, copper, aluminium, rare earth and cobalt
|
||||
* Each ore smelts into 16 items, except for cobalt which yields only 4 ingots
|
||||
* All meteorite ores are now equally likely to spawn
|
||||
* The new ores can only be smelted, shredding or other processing is not possible
|
||||
* ICF (WIP!)
|
||||
* A new tier of fusion reactor that replaces the FWatz
|
||||
* Powered by external lasers which are dynamic multiblocks, using fuel pellets
|
||||
* Construction of lasers: Place a controller, then a straight line of cells behind it, surround those with flash tubes, those with capacitors and optionally those with turbochargers (not recommended as of now)
|
||||
* Stuff left unfinished:
|
||||
* Pellet creation and recycling
|
||||
* Final balancing (especially for lasers and cooling)
|
||||
* Uses for stellar flux
|
||||
* Crafting and assembling
|
||||
* Cooling this reactor is exceedingly difficult due to the limitations of heat exchangers and the relatively low heat capacitor of most available coolants, there will most likely be more powerful ICF-exclusive coolants in the future (liquid lead? sodium compounds?)
|
||||
|
||||
## Changed
|
||||
* Updated russian localization
|
||||
* Added italian localization
|
||||
* The Souyz' recipe is now available in the standard template folder
|
||||
* Removed some unused crap
|
||||
* UV lamps (2 IDs)
|
||||
* AMS (9 IDs)
|
||||
* Rotary engine (1 ID)
|
||||
* FWatz (8 IDs)
|
||||
* Meteorite ores (10 IDs)
|
||||
* Tiny nuclear rector (1 ID)
|
||||
* The small oil heaters are no longer craftable and the NEI handler has been removed, however existing ones can still be used
|
||||
* The loot pool for meteorite treasure blocks has been updated
|
||||
* Treasures are no longer senselessly progression breaking, radioactive or plain stupid (whole-ass machines inside meteorites)
|
||||
* The treasure now consists of mainly some rarer earlygame ingots, circuits, some gear, a small selection of armor mods and alexandrite (rare)
|
||||
* Schraranium processing now yields neptunium as a byproduct instead of plutonium, making neptunium easier to automate outside of the cyclotron
|
||||
* Using the guide book now opens a link to the new wiki
|
||||
* Certain earlygame things can now be recycled like stirling engines and gears
|
||||
* Antenna part recycling has been moved to the anvil
|
||||
* NTM's pickaxes now have a break speed bonus for glass
|
||||
* Renamed the foundry slag outlet to foundry spill outlet because people always assume it's for slag and only slag (it is not)
|
||||
* The description for heatable/coolable fluid tags is now written in the same line as the label
|
||||
* Rubber can now be made from acidizing latex with sour gas (requires just 25mB)
|
||||
* Heating oil can now be reformed into naphtha
|
||||
* Coker naphtha can now also be reformed like the other naphtha types (yields refgas instead of petgas as a byproduct)
|
||||
* Drainage pipes will now violently explode when voiding antimatter
|
||||
* Seeding slurry can now place grass over dead grass
|
||||
* Added an extra digit to the heat exchanger's configuration panel, allowing effective utilization of all 24,000mB per tick
|
||||
* Biomass can now also be made from cactii
|
||||
|
||||
## Fixed
|
||||
* Fixed DFC receivers not outputting power
|
||||
* Fixed the custom machine NEI handlers not working
|
||||
* Fixed a potential crash caused by invalid assembly templates
|
||||
* Fixed general weirdness with the schrabidium transmutator item IO
|
||||
* Fixed certain tooltips using the backslash escape character despite not needing them
|
||||
* Hopefully fixed the immense lag caused by tom post impact mechanics, burning grass will now only spread 20% of the time (instead of 100) and the world destruction handler will only process half the blocks per chunk
|
||||
* Hopefully fixed an issue where substations would not reliably connect to cable blocks
|
||||
* Fixed assembler rendering bugging out with Angelica installed and a door template loaded
|
||||
* Fixed medium pylon localizations
|
||||
* Fixed crash related to spotlights
|
||||
* Fixed RBMK auto rod recycling yielding the wrong items
|
||||
* Fixed the bobblehead and snowglobe breaking behavior being weird, causing them to drop in creative mode when broken and allowing shredded plastic to be duped using the auto shredder ability
|
||||
@ -1,27 +1,87 @@
|
||||
package com.hbm.items.machine;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.EnumUtil;
|
||||
import com.hbm.util.I18nUtil;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.IIcon;
|
||||
|
||||
public class ItemICFPellet extends Item {
|
||||
|
||||
protected IIcon iconBG;
|
||||
|
||||
public static enum EnumICFFuel {
|
||||
|
||||
HYDROGEN( 0x4040FF, 1.0D, 1.0D, 1.0D),
|
||||
DEUTERIUM( 0x2828CB, 1.0D, 1.0D, 1.0D),
|
||||
TRITIUM( 0x000092, 1.0D, 1.0D, 1.0D),
|
||||
HELIUM3( 0xFFF09F, 1.0D, 1.0D, 1.0D), //hey you
|
||||
HELIUM4( 0xFF9B60, 1.0D, 1.0D, 1.0D), //yes you
|
||||
LITHIUM( 0xE9E9E9, 1.0D, 1.0D, 1.0D), //fuck off
|
||||
BERYLLIUM( 0xA79D80, 1.0D, 1.0D, 1.0D),
|
||||
BORON( 0x697F89, 1.0D, 1.0D, 1.0D),
|
||||
CARBON( 0x454545, 1.0D, 1.0D, 1.0D),
|
||||
OXYGEN( 0xB4E2FF, 1.0D, 1.0D, 1.0D),
|
||||
SODIUM( 0xDFE4E7, 1.0D, 1.0D, 1.0D),
|
||||
//aluminium, silicon, phosphorus
|
||||
CHLORINE( 0xDAE598, 1.0D, 1.0D, 1.0D),
|
||||
CALCIUM( 0xD2C7A9, 1.0D, 1.0D, 1.0D),
|
||||
//titanium
|
||||
;
|
||||
|
||||
public int color;
|
||||
public double reactionMult;
|
||||
public double depletionSpeed;
|
||||
public double fusingDifficulty;
|
||||
|
||||
private EnumICFFuel(int color, double react, double depl, double laser) {
|
||||
this.color = color;
|
||||
this.reactionMult = react;
|
||||
this.depletionSpeed = depl;
|
||||
this.fusingDifficulty = laser;
|
||||
}
|
||||
}
|
||||
|
||||
public ItemICFPellet() {
|
||||
this.setMaxStackSize(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(Item item, CreativeTabs tab, List list) {
|
||||
list.add(this.setup(EnumICFFuel.DEUTERIUM, EnumICFFuel.TRITIUM, false));
|
||||
list.add(this.setup(EnumICFFuel.HELIUM3, EnumICFFuel.HELIUM4, false));
|
||||
list.add(this.setup(EnumICFFuel.LITHIUM, EnumICFFuel.OXYGEN, false));
|
||||
list.add(this.setup(EnumICFFuel.SODIUM, EnumICFFuel.CHLORINE, true));
|
||||
list.add(this.setup(EnumICFFuel.BERYLLIUM, EnumICFFuel.CALCIUM, true));
|
||||
}
|
||||
|
||||
public static long getMaxDepletion(ItemStack stack) {
|
||||
if(!stack.hasTagCompound()) return 10_000_000_000L;
|
||||
//TODO: type-dependent
|
||||
return 50_000_000_000L;
|
||||
long base = 50_000_000_000L;
|
||||
base /= getType(stack, true).depletionSpeed;
|
||||
base /= getType(stack, false).depletionSpeed;
|
||||
return base;
|
||||
}
|
||||
|
||||
public static long getFusingDifficulty(ItemStack stack) {
|
||||
long base = 10_000_000L;
|
||||
base *= getType(stack, true).fusingDifficulty * getType(stack, false).fusingDifficulty;
|
||||
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon")) base /= 4;
|
||||
return base;
|
||||
}
|
||||
|
||||
public static long getDepletion(ItemStack stack) {
|
||||
@ -31,9 +91,25 @@ public class ItemICFPellet extends Item {
|
||||
|
||||
public static long react(ItemStack stack, long heat) {
|
||||
if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound();
|
||||
//TODO: type-dependent
|
||||
stack.stackTagCompound.setLong("depletion", stack.stackTagCompound.getLong("depletion") + heat);
|
||||
return heat * 2;
|
||||
return (long) (heat * getType(stack, true).reactionMult * getType(stack, false).reactionMult);
|
||||
}
|
||||
|
||||
public static ItemStack setup(EnumICFFuel type1, EnumICFFuel type2, boolean muon) {
|
||||
return setup(new ItemStack(ModItems.icf_pellet), type1, type2, muon);
|
||||
}
|
||||
|
||||
public static ItemStack setup(ItemStack stack, EnumICFFuel type1, EnumICFFuel type2, boolean muon) {
|
||||
if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound();
|
||||
stack.stackTagCompound.setByte("type1", (byte) type1.ordinal());
|
||||
stack.stackTagCompound.setByte("type2", (byte) type2.ordinal());
|
||||
stack.stackTagCompound.setBoolean("muon", muon);
|
||||
return stack;
|
||||
}
|
||||
|
||||
public static EnumICFFuel getType(ItemStack stack, boolean first) {
|
||||
if(!stack.hasTagCompound()) return first ? EnumICFFuel.DEUTERIUM : EnumICFFuel.TRITIUM;
|
||||
return EnumUtil.grabEnumSafely(EnumICFFuel.class, stack.stackTagCompound.getByte("type" + (first ? 1 : 2)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -68,7 +144,22 @@ public class ItemICFPellet extends Item {
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public int getColorFromItemStack(ItemStack stack, int pass) {
|
||||
if(pass == 0) return 0x4040ff;
|
||||
if(pass == 0) {
|
||||
EnumICFFuel type1 = this.getType(stack, true);
|
||||
EnumICFFuel type2 = this.getType(stack, false);
|
||||
int r = (((type1.color & 0xff0000) >> 16) + ((type2.color & 0xff0000) >> 16)) / 2;
|
||||
int g = (((type1.color & 0x00ff00) >> 8) + ((type2.color & 0x00ff00) >> 8)) / 2;
|
||||
int b = ((type1.color & 0x0000ff) + (type2.color & 0x0000ff)) / 2;
|
||||
return r << 16 | g << 8 | b;
|
||||
}
|
||||
return 0xffffff;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
|
||||
list.add(EnumChatFormatting.GREEN + "Depletion: " + String.format(Locale.US, "%.1f", getDurabilityForDisplay(stack) * 100D) + "%");
|
||||
list.add(EnumChatFormatting.YELLOW + "Fuel: " + I18nUtil.resolveKey("icffuel." + getType(stack, true).name().toLowerCase(Locale.US)) + " / " + I18nUtil.resolveKey("icffuel." + getType(stack, false).name().toLowerCase(Locale.US)));
|
||||
list.add(EnumChatFormatting.YELLOW + "Heat required: " + BobMathUtil.getShortNumber(this.getFusingDifficulty(stack)) + "TU");
|
||||
if(stack.hasTagCompound() && stack.stackTagCompound.getBoolean("muon")) list.add(EnumChatFormatting.DARK_AQUA + "Muon catalyzed!");
|
||||
}
|
||||
}
|
||||
|
||||
@ -894,6 +894,20 @@ matshape.nuggets=%s Nuggets
|
||||
matshape.quantum=%s Quantum
|
||||
matshape.quanta=%s Quanta
|
||||
|
||||
icffuel.beryllium=Beryllium
|
||||
icffuel.boron=Bor
|
||||
icffuel.carbon=Kohlenstoff
|
||||
icffuel.calcium=Kalzium
|
||||
icffuel.chlorine=Chlor
|
||||
icffuel.deuterium=Deuterium
|
||||
icffuel.helium3=Helium-3
|
||||
icffuel.helium4=Helium-4
|
||||
icffuel.hydrogen=Wasserstoff
|
||||
icffuel.lithium=Lithium
|
||||
icffuel.oxygen=Sauerstoff
|
||||
icffuel.sodium=Natrium
|
||||
icffuel.tritium=Tritium
|
||||
|
||||
info.asbestos=Meine Lunge brennt.
|
||||
info.coaldust=Das Atmen fällt mir schwer.
|
||||
info.coil=Spulenstärke
|
||||
|
||||
@ -1596,6 +1596,20 @@ matshape.nuggets=%s Nuggets
|
||||
matshape.quantum=%s Quantum
|
||||
matshape.quanta=%s Quanta
|
||||
|
||||
icffuel.beryllium=Beryllium
|
||||
icffuel.boron=Boron
|
||||
icffuel.carbon=Carbon
|
||||
icffuel.calcium=Calcium
|
||||
icffuel.chlorine=Chlorine
|
||||
icffuel.deuterium=Deuterium
|
||||
icffuel.helium3=Helium-3
|
||||
icffuel.helium4=Helium-4
|
||||
icffuel.hydrogen=Hydrogen
|
||||
icffuel.lithium=Lithium
|
||||
icffuel.oxygen=Oxygen
|
||||
icffuel.sodium=Sodium
|
||||
icffuel.tritium=Tritium
|
||||
|
||||
info.asbestos=My lungs are burning.
|
||||
info.coaldust=It's hard to breathe here.
|
||||
info.coil=Coil Strength
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.6 KiB |
Loading…
x
Reference in New Issue
Block a user