Skip to content

Commit 47fff86

Browse files
Add the fire battery (#29)
Co-authored-by: UltraProdigy <[email protected]>
1 parent add57d0 commit 47fff86

File tree

10 files changed

+127
-2
lines changed

10 files changed

+127
-2
lines changed

dependencies.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ dependencies {
3939
// TODO: in IItemHandlerModifiable is removed
4040
api("com.github.GTNewHorizons:ModularUI:1.2.20:dev")
4141
api("com.github.GTNewHorizons:ModularUI2:2.2.16-1.7.10:dev")
42+
api('curse.maven:cofh-lib-220333:2388748')
4243
compileOnly("com.github.GTNewHorizons:Baubles-Expanded:2.1.9-GTNH:dev")
4344
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
4445

src/main/java/com/fouristhenumber/utilitiesinexcess/ModBlocks.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public enum ModBlocks {
5454
CURSED_EARTH(CursedEarthConfig.enableCursedEarth, new BlockCursedEarth(), BlockCursedEarth.ItemBlockCursedEarth.class, "cursed_earth"),
5555
LAPIS_AETHERIUS(BlockConfig.enableLapisAetherius, new BlockLapisAetherius(), BlockLapisAetherius.ItemLapisAetherius.class, "lapis_aetherius"),
5656
BEDROCKIUM_BLOCK(ItemConfig.enableBedrockium, new BlockBedrockium(), "bedrockium_block"),
57-
INVERTED_BLOCK(InversionConfig.enableInvertedIngot, new BlockInverted(), "inverted_block")
57+
INVERTED_BLOCK(InversionConfig.enableInvertedIngot, new BlockInverted(), "inverted_block"),
5858
; // leave trailing semicolon
5959
// spotless:on
6060

src/main/java/com/fouristhenumber/utilitiesinexcess/ModItems.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import com.fouristhenumber.utilitiesinexcess.common.items.ItemArchitectsWand;
77
import com.fouristhenumber.utilitiesinexcess.common.items.ItemDisabled;
8+
import com.fouristhenumber.utilitiesinexcess.common.items.ItemFireBattery;
89
import com.fouristhenumber.utilitiesinexcess.common.items.ItemHeavenlyRing;
910
import com.fouristhenumber.utilitiesinexcess.common.items.ItemInversionSigilActive;
1011
import com.fouristhenumber.utilitiesinexcess.common.items.ItemInversionSigilInactive;
@@ -16,6 +17,7 @@
1617
import com.fouristhenumber.utilitiesinexcess.common.items.tools.ItemGluttonsAxe;
1718
import com.fouristhenumber.utilitiesinexcess.common.items.tools.ItemPrecisionShears;
1819
import com.fouristhenumber.utilitiesinexcess.common.items.tools.ItemReversingHoe;
20+
import com.fouristhenumber.utilitiesinexcess.config.items.FireBatteryConfig;
1921
import com.fouristhenumber.utilitiesinexcess.config.items.InversionConfig;
2022
import com.fouristhenumber.utilitiesinexcess.config.items.ItemConfig;
2123
import com.fouristhenumber.utilitiesinexcess.config.items.WateringCanConfig;
@@ -49,7 +51,8 @@ public enum ModItems {
4951
INVERTED_INGOT(InversionConfig.enableInvertedIngot, new Item().setUnlocalizedName("inverted_ingot").setTextureName("utilitiesinexcess:inverted_ingot"), "inverted_ingot"),
5052
DIAMOND_STICK(ItemConfig.enableDiamondStick, new Item().setUnlocalizedName("diamond_stick").setTextureName("utilitiesinexcess:diamond_stick"), "diamond_stick"),
5153
ARCHITECTS_WAND(ItemConfig.enableArchitectsWand, new ItemArchitectsWand(16), "architectsWand"),
52-
BEDROCKIUM_INGOT(ItemConfig.enableBedrockium, new Item().setUnlocalizedName("bedrockium_ingot").setTextureName("utilitiesinexcess:bedrockium_ingot"), "bedrockium_ingot")
54+
BEDROCKIUM_INGOT(ItemConfig.enableBedrockium, new Item().setUnlocalizedName("bedrockium_ingot").setTextureName("utilitiesinexcess:bedrockium_ingot"), "bedrockium_ingot"),
55+
FIRE_BATTERY(FireBatteryConfig.enableFireBattery, new ItemFireBattery(), "fire_battery"),
5356

5457
; // leave trailing semicolon
5558
// spotless:on
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.fouristhenumber.utilitiesinexcess.common.items;
2+
3+
import static com.fouristhenumber.utilitiesinexcess.utils.UIEUtils.formatNumber;
4+
5+
import java.util.List;
6+
7+
import net.minecraft.entity.player.EntityPlayer;
8+
import net.minecraft.item.ItemStack;
9+
import net.minecraft.util.StatCollector;
10+
11+
import com.fouristhenumber.utilitiesinexcess.config.items.FireBatteryConfig;
12+
13+
import cofh.api.energy.ItemEnergyContainer;
14+
import cpw.mods.fml.common.IFuelHandler;
15+
import cpw.mods.fml.common.registry.GameRegistry;
16+
17+
public class ItemFireBattery extends ItemEnergyContainer implements IFuelHandler {
18+
19+
public ItemFireBattery() {
20+
super(
21+
FireBatteryConfig.fireBatteryRFStorage,
22+
FireBatteryConfig.fireBatteryRFCharge,
23+
FireBatteryConfig.fireBatteryRFUsage);
24+
setUnlocalizedName("fire_battery");
25+
setTextureName("utilitiesinexcess:fire_battery");
26+
setMaxStackSize(1);
27+
GameRegistry.registerFuelHandler(this);
28+
}
29+
30+
@Override
31+
public ItemStack getContainerItem(ItemStack itemStack) {
32+
ItemStack drained = itemStack.copy();
33+
drained.stackSize = 1;
34+
extractEnergy(drained, FireBatteryConfig.fireBatteryRFUsage, false);
35+
return drained;
36+
}
37+
38+
@Override
39+
public boolean hasContainerItem(ItemStack stack) {
40+
return true;
41+
}
42+
43+
@Override
44+
public int getBurnTime(ItemStack fuel) {
45+
if (fuel == null) return 0;
46+
return extractEnergy(fuel, FireBatteryConfig.fireBatteryRFUsage, true) / FireBatteryConfig.fireBatteryBurnTime;
47+
}
48+
49+
@Override
50+
public double getDurabilityForDisplay(ItemStack stack) {
51+
return 1.0 - (double) getEnergyStored(stack) / (double) getMaxEnergyStored(stack);
52+
}
53+
54+
@Override
55+
public boolean showDurabilityBar(ItemStack stack) {
56+
return getEnergyStored(stack) < getMaxEnergyStored(stack);
57+
}
58+
59+
@Override
60+
public void addInformation(ItemStack stack, EntityPlayer player, List<String> tooltip, boolean b) {
61+
tooltip.add(
62+
StatCollector.translateToLocalFormatted(
63+
"item.fire_battery.desc",
64+
formatNumber(getEnergyStored(stack)),
65+
formatNumber(getMaxEnergyStored(stack))));
66+
super.addInformation(stack, player, tooltip, b);
67+
}
68+
}

src/main/java/com/fouristhenumber/utilitiesinexcess/config/ItemConfig.java

Whitespace-only changes.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.fouristhenumber.utilitiesinexcess.config.items;
2+
3+
import com.fouristhenumber.utilitiesinexcess.UtilitiesInExcess;
4+
import com.gtnewhorizon.gtnhlib.config.Config;
5+
6+
@Config(modid = UtilitiesInExcess.MODID, category = "items.fire_battery")
7+
public class FireBatteryConfig {
8+
9+
@Config.DefaultBoolean(true)
10+
@Config.RequiresMcRestart
11+
public static boolean enableFireBattery;
12+
13+
@Config.Comment("Maximum RF storage value.")
14+
@Config.DefaultInt(1500000)
15+
@Config.RangeInt(min = 1)
16+
@Config.RequiresMcRestart
17+
public static int fireBatteryRFStorage;
18+
19+
@Config.Comment("Maximum charge rate.")
20+
@Config.DefaultInt(1500000)
21+
@Config.RangeInt(min = 1)
22+
@Config.RequiresMcRestart
23+
public static int fireBatteryRFCharge;
24+
25+
@Config.Comment("Maximum RF consumption.")
26+
@Config.DefaultInt(15000)
27+
@Config.RangeInt(min = 0)
28+
public static int fireBatteryRFUsage;
29+
30+
@Config.Comment("RF consumed per burn tick.")
31+
@Config.DefaultInt(50)
32+
@Config.RangeInt(min = 1)
33+
public static int fireBatteryBurnTime;
34+
}

src/main/java/com/fouristhenumber/utilitiesinexcess/config/items/ItemConfig.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public static void registerConfig() throws ConfigException {
2020
UnstableTools.registerConfig();
2121
ConfigurationManager.registerConfig(WateringCanConfig.class);
2222
ConfigurationManager.registerConfig(InversionConfig.class);
23+
ConfigurationManager.registerConfig(FireBatteryConfig.class);
2324
}
2425

2526
@Config.DefaultBoolean(true)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.fouristhenumber.utilitiesinexcess.utils;
2+
3+
import java.text.DecimalFormat;
4+
5+
public class UIEUtils {
6+
7+
private static final DecimalFormat COMMA_FORMAT = new DecimalFormat("#,###");
8+
9+
public static String formatNumber(int number) {
10+
return COMMA_FORMAT.format(number);
11+
}
12+
13+
public static String formatNumber(long number) {
14+
return COMMA_FORMAT.format(number);
15+
}
16+
}

src/main/resources/assets/utilitiesinexcess/lang/en_US.lang

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ item.watering_can.desc.2=crop growth in a %dx%d area.
120120
item.watering_can.desc.3=Crouch and use to toggle
121121
item.watering_can.desc.4=automatic mode.
122122

123+
item.fire_battery.name=Fire Battery
124+
item.fire_battery.desc=%s / %s
123125

124126
utilitiesinexcess.config.item.watering_can=Watering Can
125127
utilitiesinexcess.config.item.watering_can_tier=Watering Can Tier
216 Bytes
Loading

0 commit comments

Comments
 (0)