/
ToughAsNailsPlugin.java
129 lines (115 loc) · 4.81 KB
/
ToughAsNailsPlugin.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package knightminer.inspirations.plugins.tan;
import com.google.common.eventbus.Subscribe;
import knightminer.inspirations.Inspirations;
import knightminer.inspirations.common.Config;
import knightminer.inspirations.common.PulseBase;
import knightminer.inspirations.library.InspirationsRegistry;
import knightminer.inspirations.plugins.tan.recipes.FillCanteenRecipe;
import knightminer.inspirations.recipes.InspirationsRecipes;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
import net.minecraftforge.oredict.OreDictionary;
import slimeknights.mantle.pulsar.pulse.Pulse;
@Pulse(
id = ToughAsNailsPlugin.pulseID,
description = "Adds support between TAN thirst and the cauldron overrides",
modsRequired = "toughasnails",
pulsesRequired = InspirationsRecipes.pulseID)
public class ToughAsNailsPlugin extends PulseBase {
public static final String pulseID = "ToughAsNailsPlugin";
@ObjectHolder(value = "toughasnails:purified_water_bottle")
public static final Item waterBottle = null;
@ObjectHolder(value = "toughasnails:charcoal_filter")
public static final Item charcoalFilter = null;
@ObjectHolder(value = "toughasnails:fruit_juice")
public static final Item fruitJuice = null;
@ObjectHolder(value = "toughasnails:canteen")
public static final Item canteen = null;
// fluids
public static Fluid sweetenedWater;
public static Fluid[] juices;
@Subscribe
public void preInit(FMLPreInitializationEvent event) {
if(!Config.enableExtendedCauldron) {
return;
}
// juice types
if(Config.tanJuiceInCauldron) {
sweetenedWater = registerColoredFluid("sweetened_water", 0x35ACF2);//0xA0E2FF);
juices = new Fluid[] {
registerColoredFluid("apple_juice", 0xFBBA44),
registerColoredFluid("beetroot_juice", 0xAA1226),
registerColoredFluid("cactus_juice", 0x7FB33D),
registerColoredFluid("carrot_juice", 0xD5632C),
registerColoredFluid("chorus_fruit_juice", 0xA361B3),
registerColoredFluid("glistering_melon_juice", 0xFF4747),
registerColoredFluid("golden_apple_juice", 0xFF9D49),
registerColoredFluid("golden_carrot_juice", 0xFF6E56),
registerColoredFluid("melon_juice", 0xCD3833),
registerColoredFluid("pumpkin_juice", 0xCE8431)
};
}
}
@Subscribe
public void init(FMLInitializationEvent event) {
// we need cauldron fluids for this to work
if(!Config.enableExtendedCauldron) {
return;
}
// allow water to be purified in the cauldron, then used to make juices
Fluid purifiedWater = FluidRegistry.getFluid("purified_water");
if(purifiedWater != null) {
InspirationsRegistry.addCauldronWater(purifiedWater);
// add recipe to fill purified bottle
if(waterBottle != null) {
InspirationsRegistry.addCauldronFluidItem(new ItemStack(waterBottle, 1), new ItemStack(Items.GLASS_BOTTLE), purifiedWater);
}
// filter water in a cauldron
if(charcoalFilter != null) {
InspirationsRegistry.addCauldronScaledTransformRecipe(new ItemStack(charcoalFilter), FluidRegistry.WATER, purifiedWater, null);
}
// fill canteen from a cauldron
if(canteen != null) {
for(int i = 0; i < 3; i++) {
// normal water canteen starts at 1
InspirationsRegistry.addCauldronRecipe(new FillCanteenRecipe(canteen, i, 1, FluidRegistry.WATER));
// purified water starts at 2
InspirationsRegistry.addCauldronRecipe(new FillCanteenRecipe(canteen, i, 2, purifiedWater));
}
InspirationsRegistry.addCauldronBlacklist(canteen, OreDictionary.WILDCARD_VALUE);
}
// make juice in the cauldron
if(Config.tanJuiceInCauldron && fruitJuice != null) {
InspirationsRegistry.addCauldronScaledTransformRecipe(new ItemStack(Items.SUGAR), purifiedWater, sweetenedWater, null);
Item[] items = {
Items.APPLE,
Items.BEETROOT,
Item.getItemFromBlock(Blocks.CACTUS),
Items.CARROT,
Items.CHORUS_FRUIT,
Items.SPECKLED_MELON,
Items.GOLDEN_APPLE,
Items.GOLDEN_CARROT,
Items.MELON,
Item.getItemFromBlock(Blocks.PUMPKIN)
};
for(int i = 0; i < items.length; i++) {
addJuiceRecipe(juices[i], i, items[i]);
}
}
} else {
Inspirations.log.error("Unable to find Tough as Nails purified water fluid, skipping recipes");
}
}
private static void addJuiceRecipe(Fluid fluid, int meta, Item ingredient) {
InspirationsRegistry.addCauldronScaledTransformRecipe(new ItemStack(ingredient), sweetenedWater, fluid, null);
InspirationsRegistry.addCauldronFluidItem(new ItemStack(fruitJuice, 1, meta), new ItemStack(Items.GLASS_BOTTLE), fluid);
}
}