mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-23 07:38:34 +01:00
Added keep data recipes, made batteries keep their power, drills keep their upgrades and storage crates keep their content when crafted into further items
This commit is contained in:
parent
f7d52a7178
commit
2a9a8ccbcc
8 changed files with 106 additions and 134 deletions
|
@ -174,7 +174,7 @@ public final class InitBooklet{
|
||||||
new BookletChapter("itemFilter", ActuallyAdditionsAPI.entryFunctionalNonRF, new ItemStack(InitItems.itemFilter), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeFilter).setNoText()).setImportant();
|
new BookletChapter("itemFilter", ActuallyAdditionsAPI.entryFunctionalNonRF, new ItemStack(InitItems.itemFilter), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeFilter).setNoText()).setImportant();
|
||||||
|
|
||||||
//RF Using Items
|
//RF Using Items
|
||||||
new BookletChapter("drill", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemDrill, 1, TheColoredLampColors.LIGHT_BLUE.ordinal()), new PageTextOnly(1), new PageTextOnly(2), new PageCrafting(3, ItemCrafting.recipeDrill).setNoText().setPageStacksWildcard(), new PageCrafting(4, ItemCrafting.recipeDrillCore).setNoText(), new PageCrafting(5, ItemCrafting.recipeDrillSpeedI).setNoText(), new PageCrafting(6, ItemCrafting.recipeDrillSpeedII).setNoText(), new PageCrafting(7, ItemCrafting.recipeDrillSpeedIII).setNoText(), new PageCrafting(8, ItemCrafting.recipeDrillFortuneI).setNoText(), new PageCrafting(9, ItemCrafting.recipeDrillFortuneII).setNoText(), new PageCrafting(10, ItemCrafting.recipeDrillSilk).setNoText(), new PageCrafting(11, ItemCrafting.recipeDrillThree).setNoText(), new PageCrafting(12, ItemCrafting.recipeDrillFive).setNoText(), new PageCrafting(13, ItemCrafting.recipeDrillPlacing).setNoText()).setSpecial();
|
new BookletChapter("drill", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemDrill, 1, TheColoredLampColors.LIGHT_BLUE.ordinal()), new PageTextOnly(1), new PageTextOnly(2), new PageCrafting(3, ItemCrafting.recipeDrill).setNoText(), new PageCrafting(4, ItemCrafting.RECIPES_DRILL_COLORING), new PageCrafting(4, ItemCrafting.recipeDrillCore).setNoText(), new PageCrafting(5, ItemCrafting.recipeDrillSpeedI).setNoText(), new PageCrafting(6, ItemCrafting.recipeDrillSpeedII).setNoText(), new PageCrafting(7, ItemCrafting.recipeDrillSpeedIII).setNoText(), new PageCrafting(8, ItemCrafting.recipeDrillFortuneI).setNoText(), new PageCrafting(9, ItemCrafting.recipeDrillFortuneII).setNoText(), new PageCrafting(10, ItemCrafting.recipeDrillSilk).setNoText(), new PageCrafting(11, ItemCrafting.recipeDrillThree).setNoText(), new PageCrafting(12, ItemCrafting.recipeDrillFive).setNoText(), new PageCrafting(13, ItemCrafting.recipeDrillPlacing).setNoText()).setSpecial();
|
||||||
new BookletChapter("staff", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemTeleStaff), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeStaff).setNoText()).setImportant();
|
new BookletChapter("staff", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemTeleStaff), new PageTextOnly(1), new PageCrafting(2, ItemCrafting.recipeStaff).setNoText()).setImportant();
|
||||||
new BookletChapter("magnetRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemMagnetRing), new PageCrafting(1, ItemCrafting.recipeMagnetRing));
|
new BookletChapter("magnetRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemMagnetRing), new PageCrafting(1, ItemCrafting.recipeMagnetRing));
|
||||||
new BookletChapter("growthRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemGrowthRing), new PageCrafting(1, ItemCrafting.recipeGrowthRing));
|
new BookletChapter("growthRing", ActuallyAdditionsAPI.entryItemsRF, new ItemStack(InitItems.itemGrowthRing), new PageCrafting(1, ItemCrafting.recipeGrowthRing));
|
||||||
|
|
|
@ -715,14 +715,14 @@ public final class BlockCrafting{
|
||||||
'W', "plankWood"));
|
'W', "plankWood"));
|
||||||
recipeCrate = RecipeUtil.lastIRecipe();
|
recipeCrate = RecipeUtil.lastIRecipe();
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockGiantChestMedium),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitBlocks.blockGiantChestMedium), new ItemStack(InitBlocks.blockGiantChest),
|
||||||
"CWC", "WDW", "CWC",
|
"CWC", "WDW", "CWC",
|
||||||
'C', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.COAL.ordinal()),
|
'C', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.COAL.ordinal()),
|
||||||
'D', new ItemStack(InitBlocks.blockGiantChest),
|
'D', new ItemStack(InitBlocks.blockGiantChest),
|
||||||
'W', "plankWood"));
|
'W', "plankWood"));
|
||||||
recipeCrateMedium = RecipeUtil.lastIRecipe();
|
recipeCrateMedium = RecipeUtil.lastIRecipe();
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitBlocks.blockGiantChestLarge),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitBlocks.blockGiantChestLarge), new ItemStack(InitBlocks.blockGiantChestMedium),
|
||||||
"CWC", "WDW", "CWC",
|
"CWC", "WDW", "CWC",
|
||||||
'C', new ItemStack(InitBlocks.blockCrystalEmpowered, 1, TheCrystals.COAL.ordinal()),
|
'C', new ItemStack(InitBlocks.blockCrystalEmpowered, 1, TheCrystals.COAL.ordinal()),
|
||||||
'D', new ItemStack(InitBlocks.blockGiantChestMedium),
|
'D', new ItemStack(InitBlocks.blockGiantChestMedium),
|
||||||
|
|
|
@ -16,7 +16,6 @@ import de.ellpeck.actuallyadditions.mod.items.metalists.TheMiscItems;
|
||||||
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
|
import de.ellpeck.actuallyadditions.mod.util.ModUtil;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraftforge.fml.common.registry.GameRegistry;
|
|
||||||
import net.minecraftforge.oredict.RecipeSorter;
|
import net.minecraftforge.oredict.RecipeSorter;
|
||||||
|
|
||||||
public final class InitCrafting{
|
public final class InitCrafting{
|
||||||
|
@ -33,8 +32,8 @@ public final class InitCrafting{
|
||||||
ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemMisc, 10, TheMiscItems.MASHED_FOOD.ordinal()), Blocks.LEAVES, new ItemStack(InitItems.itemFertilizer, 10), Blocks.DIRT);
|
ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemMisc, 10, TheMiscItems.MASHED_FOOD.ordinal()), Blocks.LEAVES, new ItemStack(InitItems.itemFertilizer, 10), Blocks.DIRT);
|
||||||
ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemCanolaSeed, 20), Blocks.DIRT, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BIOMASS.ordinal()), Blocks.SOUL_SAND);
|
ActuallyAdditionsAPI.addCompostRecipe(new ItemStack(InitItems.itemCanolaSeed, 20), Blocks.DIRT, new ItemStack(InitItems.itemMisc, 1, TheMiscItems.BIOMASS.ordinal()), Blocks.SOUL_SAND);
|
||||||
|
|
||||||
RecipeSorter.register(ModUtil.MOD_ID+":drillColoring", RecipeDrillColor.class, RecipeSorter.Category.SHAPELESS, "");
|
RecipeSorter.register(ModUtil.MOD_ID+":recipeKeepDataShaped", RecipeKeepDataShaped.class, RecipeSorter.Category.SHAPED, "after:minecraft:shaped");
|
||||||
GameRegistry.addRecipe(new RecipeDrillColor());
|
RecipeSorter.register(ModUtil.MOD_ID+":recipeKeepDataShapeless", RecipeKeepDataShapeless.class, RecipeSorter.Category.SHAPELESS, "after:minecraft:shapeless");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,7 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
public static final ArrayList<IRecipe> RECIPES_MASHED_FOOD = new ArrayList<IRecipe>();
|
public static final ArrayList<IRecipe> RECIPES_MASHED_FOOD = new ArrayList<IRecipe>();
|
||||||
public static final ArrayList<IRecipe> RECIPES_POTION_RINGS = new ArrayList<IRecipe>();
|
public static final ArrayList<IRecipe> RECIPES_POTION_RINGS = new ArrayList<IRecipe>();
|
||||||
|
public static final ArrayList<IRecipe> RECIPES_DRILL_COLORING = new ArrayList<IRecipe>();
|
||||||
public static IRecipe recipePhantomConnector;
|
public static IRecipe recipePhantomConnector;
|
||||||
public static IRecipe recipeCoil;
|
public static IRecipe recipeCoil;
|
||||||
public static IRecipe recipeCoilAdvanced;
|
public static IRecipe recipeCoilAdvanced;
|
||||||
|
@ -236,13 +237,21 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
//Drill
|
//Drill
|
||||||
if(ConfigCrafting.DRILL.isEnabled()){
|
if(ConfigCrafting.DRILL.isEnabled()){
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemDrill, 1, TheColoredLampColors.LIGHT_BLUE.ordinal()),
|
ItemStack lightBlueDrill = new ItemStack(InitItems.itemDrill, 1, TheColoredLampColors.LIGHT_BLUE.ordinal());
|
||||||
|
GameRegistry.addRecipe(new ShapedOreRecipe(lightBlueDrill.copy(),
|
||||||
"DDD", "CRC", "III",
|
"DDD", "CRC", "III",
|
||||||
'D', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.DIAMOND.ordinal()),
|
'D', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.DIAMOND.ordinal()),
|
||||||
'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()),
|
'C', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.COIL_ADVANCED.ordinal()),
|
||||||
'R', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DRILL_CORE.ordinal()),
|
'R', new ItemStack(InitItems.itemMisc, 1, TheMiscItems.DRILL_CORE.ordinal()),
|
||||||
'I', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.IRON.ordinal())));
|
'I', new ItemStack(InitBlocks.blockCrystal, 1, TheCrystals.IRON.ordinal())));
|
||||||
recipeDrill = RecipeUtil.lastIRecipe();
|
recipeDrill = RecipeUtil.lastIRecipe();
|
||||||
|
|
||||||
|
for(int i = 0; i < 16; i++){
|
||||||
|
if(i != TheColoredLampColors.LIGHT_BLUE.ordinal()){
|
||||||
|
GameRegistry.addRecipe(new RecipeKeepDataShapeless(new ItemStack(InitItems.itemDrill, 1, i), new ItemStack(InitItems.itemDrill, 1, Util.WILDCARD), lightBlueDrill.copy(), "dye"+TheColoredLampColors.values()[i].name));
|
||||||
|
RECIPES_DRILL_COLORING.add(RecipeUtil.lastIRecipe());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Drill Core
|
//Drill Core
|
||||||
|
@ -357,7 +366,7 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
//Double Battery
|
//Double Battery
|
||||||
if(ConfigCrafting.DOUBLE_BATTERY.isEnabled()){
|
if(ConfigCrafting.DOUBLE_BATTERY.isEnabled()){
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemBatteryDouble),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitItems.itemBatteryDouble), new ItemStack(InitItems.itemBattery),
|
||||||
" R ", "ICI", "III",
|
" R ", "ICI", "III",
|
||||||
'R', new ItemStack(InitItems.itemBattery),
|
'R', new ItemStack(InitItems.itemBattery),
|
||||||
'I', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.IRON.ordinal()),
|
'I', new ItemStack(InitItems.itemCrystal, 1, TheCrystals.IRON.ordinal()),
|
||||||
|
@ -398,7 +407,7 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
//Triple Battery
|
//Triple Battery
|
||||||
if(ConfigCrafting.TRIPLE_BATTERY.isEnabled()){
|
if(ConfigCrafting.TRIPLE_BATTERY.isEnabled()){
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemBatteryTriple),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitItems.itemBatteryTriple), new ItemStack(InitItems.itemBatteryDouble),
|
||||||
" R ", "ICI", "III",
|
" R ", "ICI", "III",
|
||||||
'R', new ItemStack(InitItems.itemBatteryDouble),
|
'R', new ItemStack(InitItems.itemBatteryDouble),
|
||||||
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.IRON.ordinal()),
|
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.IRON.ordinal()),
|
||||||
|
@ -408,7 +417,7 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
//Quadruple Battery
|
//Quadruple Battery
|
||||||
if(ConfigCrafting.QUADRUPLE_BATTERY.isEnabled()){
|
if(ConfigCrafting.QUADRUPLE_BATTERY.isEnabled()){
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemBatteryQuadruple),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitItems.itemBatteryQuadruple), new ItemStack(InitItems.itemBatteryTriple),
|
||||||
" R ", "ICI", "III",
|
" R ", "ICI", "III",
|
||||||
'R', new ItemStack(InitItems.itemBatteryTriple),
|
'R', new ItemStack(InitItems.itemBatteryTriple),
|
||||||
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.IRON.ordinal()),
|
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.IRON.ordinal()),
|
||||||
|
@ -418,7 +427,7 @@ public final class ItemCrafting{
|
||||||
|
|
||||||
//Quintuple Battery
|
//Quintuple Battery
|
||||||
if(ConfigCrafting.QUINTUPLE_BATTERY.isEnabled()){
|
if(ConfigCrafting.QUINTUPLE_BATTERY.isEnabled()){
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(InitItems.itemBatteryQuintuple),
|
GameRegistry.addRecipe(new RecipeKeepDataShaped(new ItemStack(InitItems.itemBatteryQuintuple), new ItemStack(InitItems.itemBatteryQuadruple),
|
||||||
" R ", "ICI", "III",
|
" R ", "ICI", "III",
|
||||||
'R', new ItemStack(InitItems.itemBatteryQuadruple),
|
'R', new ItemStack(InitItems.itemBatteryQuadruple),
|
||||||
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.DIAMOND.ordinal()),
|
'I', new ItemStack(InitItems.itemCrystalEmpowered, 1, TheCrystals.DIAMOND.ordinal()),
|
||||||
|
|
|
@ -1,121 +0,0 @@
|
||||||
/*
|
|
||||||
* This file ("RecipeDrillColor.java") is part of the Actually Additions mod for Minecraft.
|
|
||||||
* It is created and owned by Ellpeck and distributed
|
|
||||||
* under the Actually Additions License to be found at
|
|
||||||
* http://ellpeck.de/actaddlicense
|
|
||||||
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
|
||||||
*
|
|
||||||
* © 2015-2016 Ellpeck
|
|
||||||
*/
|
|
||||||
|
|
||||||
package de.ellpeck.actuallyadditions.mod.crafting;
|
|
||||||
|
|
||||||
import de.ellpeck.actuallyadditions.mod.blocks.metalists.TheColoredLampColors;
|
|
||||||
import de.ellpeck.actuallyadditions.mod.items.ItemDrill;
|
|
||||||
import net.minecraft.inventory.InventoryCrafting;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.item.crafting.IRecipe;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import net.minecraftforge.common.ForgeHooks;
|
|
||||||
import net.minecraftforge.oredict.OreDictionary;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
public class RecipeDrillColor implements IRecipe{
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(InventoryCrafting inv, World worldIn){
|
|
||||||
boolean hasDrill = false;
|
|
||||||
boolean hasColor = false;
|
|
||||||
|
|
||||||
for(int i = 0; i < inv.getSizeInventory(); i++){
|
|
||||||
ItemStack stack = inv.getStackInSlot(i);
|
|
||||||
if(stack != null && stack.getItem() != null){
|
|
||||||
if(stack.getItem() instanceof ItemDrill){
|
|
||||||
if(!hasDrill){
|
|
||||||
hasDrill = true;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
int[] ids = OreDictionary.getOreIDs(stack);
|
|
||||||
if(ids != null){
|
|
||||||
for(int id : ids){
|
|
||||||
String name = OreDictionary.getOreName(id);
|
|
||||||
if(name != null){
|
|
||||||
TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name);
|
|
||||||
if(color != null){
|
|
||||||
if(!hasColor){
|
|
||||||
hasColor = true;
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return hasDrill && hasColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public ItemStack getCraftingResult(InventoryCrafting inv){
|
|
||||||
ItemStack drillStack = null;
|
|
||||||
ItemStack colorStack = null;
|
|
||||||
|
|
||||||
for(int i = 0; i < inv.getSizeInventory(); i++){
|
|
||||||
ItemStack stack = inv.getStackInSlot(i);
|
|
||||||
if(stack != null && stack.getItem() != null){
|
|
||||||
if(stack.getItem() instanceof ItemDrill){
|
|
||||||
drillStack = stack.copy();
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
colorStack = stack.copy();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(drillStack != null && colorStack != null){
|
|
||||||
int[] ids = OreDictionary.getOreIDs(colorStack);
|
|
||||||
if(ids != null){
|
|
||||||
for(int id : ids){
|
|
||||||
String name = OreDictionary.getOreName(id);
|
|
||||||
if(name != null){
|
|
||||||
TheColoredLampColors color = TheColoredLampColors.getColorFromDyeName(name);
|
|
||||||
if(color != null){
|
|
||||||
if(color.ordinal() != drillStack.getItemDamage()){
|
|
||||||
drillStack.setItemDamage(color.ordinal());
|
|
||||||
return drillStack;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRecipeSize(){
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public ItemStack getRecipeOutput(){
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack[] getRemainingItems(InventoryCrafting inv){
|
|
||||||
return ForgeHooks.defaultRecipeGetRemainingItems(inv);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* This file ("RecipeKeepNBT.java") is part of the Actually Additions mod for Minecraft.
|
||||||
|
* It is created and owned by Ellpeck and distributed
|
||||||
|
* under the Actually Additions License to be found at
|
||||||
|
* http://ellpeck.de/actaddlicense
|
||||||
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||||
|
*
|
||||||
|
* © 2015-2016 Ellpeck
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.ellpeck.actuallyadditions.mod.crafting;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
|
||||||
|
import net.minecraft.inventory.InventoryCrafting;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||||
|
|
||||||
|
public class RecipeKeepDataShaped extends ShapedOreRecipe{
|
||||||
|
|
||||||
|
private final ItemStack nbtCopyStack;
|
||||||
|
|
||||||
|
public RecipeKeepDataShaped(ItemStack result, ItemStack nbtCopyStack, Object... recipe){
|
||||||
|
super(result, recipe);
|
||||||
|
this.nbtCopyStack = nbtCopyStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getCraftingResult(InventoryCrafting inventory){
|
||||||
|
ItemStack stack = super.getCraftingResult(inventory);
|
||||||
|
if(stack != null){
|
||||||
|
for(int i = 0; i < inventory.getSizeInventory(); i++){
|
||||||
|
ItemStack input = inventory.getStackInSlot(i);
|
||||||
|
if(ItemUtil.areItemsEqual(this.nbtCopyStack, input, true)){
|
||||||
|
stack.setTagCompound(input.getTagCompound());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* This file ("RecipeKeepNBTShapeless.java") is part of the Actually Additions mod for Minecraft.
|
||||||
|
* It is created and owned by Ellpeck and distributed
|
||||||
|
* under the Actually Additions License to be found at
|
||||||
|
* http://ellpeck.de/actaddlicense
|
||||||
|
* View the source code at https://github.com/Ellpeck/ActuallyAdditions
|
||||||
|
*
|
||||||
|
* © 2015-2016 Ellpeck
|
||||||
|
*/
|
||||||
|
|
||||||
|
package de.ellpeck.actuallyadditions.mod.crafting;
|
||||||
|
|
||||||
|
import de.ellpeck.actuallyadditions.mod.util.ItemUtil;
|
||||||
|
import net.minecraft.inventory.InventoryCrafting;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraftforge.oredict.ShapelessOreRecipe;
|
||||||
|
|
||||||
|
public class RecipeKeepDataShapeless extends ShapelessOreRecipe{
|
||||||
|
|
||||||
|
private final ItemStack nbtCopyStack;
|
||||||
|
|
||||||
|
public RecipeKeepDataShapeless(ItemStack result, ItemStack nbtCopyStack, Object... recipe){
|
||||||
|
super(result, recipe);
|
||||||
|
this.nbtCopyStack = nbtCopyStack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getCraftingResult(InventoryCrafting inventory){
|
||||||
|
ItemStack stack = super.getCraftingResult(inventory);
|
||||||
|
if(stack != null){
|
||||||
|
for(int i = 0; i < inventory.getSizeInventory(); i++){
|
||||||
|
ItemStack input = inventory.getStackInSlot(i);
|
||||||
|
if(ItemUtil.areItemsEqual(this.nbtCopyStack, input, true)){
|
||||||
|
stack.setTagCompound(input.getTagCompound());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -781,7 +781,7 @@ booklet.actuallyadditions.chapter.compost.text.3=<item>Bio-Mash<r> can be crafte
|
||||||
|
|
||||||
booklet.actuallyadditions.chapter.crate.name=Storage Crates
|
booklet.actuallyadditions.chapter.crate.name=Storage Crates
|
||||||
booklet.actuallyadditions.chapter.crate.text.1=<item>Storage Crates<r> are big. <imp>Really big<r>. They hold tons of items, more than 4 chests worth of them. <n>Not only that, but they can be <imp>upgraded in size<r>! View the following pages to get information on that and some other items regarding crates!
|
booklet.actuallyadditions.chapter.crate.text.1=<item>Storage Crates<r> are big. <imp>Really big<r>. They hold tons of items, more than 4 chests worth of them. <n>Not only that, but they can be <imp>upgraded in size<r>! View the following pages to get information on that and some other items regarding crates!
|
||||||
booklet.actuallyadditions.chapter.crate.text.4=Placing a <item>Storage Crate Keeper<r> inside the Storage Crate before breaking it will cause it to <imp>keep all of its items<r>, however the Keeper will be destroyed in the process. <n>Also note that using a filled crate for crafting will <imp>destroy its contents<r>.
|
booklet.actuallyadditions.chapter.crate.text.4=Placing a <item>Storage Crate Keeper<r> inside the Storage Crate before breaking it will cause it to <imp>keep all of its items<r>, however the Keeper will be destroyed in the process. <n>Once upgraded via crafting, they will not lose their contents either.
|
||||||
booklet.actuallyadditions.chapter.crate.text.5=The <item>Chest To Storage Crate Upgrade<r> allows you to <imp>convert any chest into a Storage Crate<r>, retaining its items! <n>Just <imp>shift-right-click<r> onto the chest to apply it.
|
booklet.actuallyadditions.chapter.crate.text.5=The <item>Chest To Storage Crate Upgrade<r> allows you to <imp>convert any chest into a Storage Crate<r>, retaining its items! <n>Just <imp>shift-right-click<r> onto the chest to apply it.
|
||||||
booklet.actuallyadditions.chapter.crate.text.6=Similar to the <item>Chest To Storage Crate Upgrade<r>, the <item>Small To Medium Storage Crate Upgrade<r> will convert any <imp>Small Storage Crate<r> into a <imp>Medium Storage Crate<r> by simply shift-right-clicking it. It will retain its items.
|
booklet.actuallyadditions.chapter.crate.text.6=Similar to the <item>Chest To Storage Crate Upgrade<r>, the <item>Small To Medium Storage Crate Upgrade<r> will convert any <imp>Small Storage Crate<r> into a <imp>Medium Storage Crate<r> by simply shift-right-clicking it. It will retain its items.
|
||||||
booklet.actuallyadditions.chapter.crate.text.7=Similar to the <item>Chest To Storage Crate Upgrade<r>, the <item>Medium To Large Storage Crate Upgrade<r> will convert any <imp>Medium Storage Crate<r> into a <imp>Large Storage Crate<r> by simply shift-right-clicking it. It will retain its items.
|
booklet.actuallyadditions.chapter.crate.text.7=Similar to the <item>Chest To Storage Crate Upgrade<r>, the <item>Medium To Large Storage Crate Upgrade<r> will convert any <imp>Medium Storage Crate<r> into a <imp>Large Storage Crate<r> by simply shift-right-clicking it. It will retain its items.
|
||||||
|
@ -843,7 +843,8 @@ booklet.actuallyadditions.chapter.potionRings.text.1=The <item>Potion Rings<r> h
|
||||||
|
|
||||||
booklet.actuallyadditions.chapter.drill.name=Drills
|
booklet.actuallyadditions.chapter.drill.name=Drills
|
||||||
booklet.actuallyadditions.chapter.drill.text.1=The <item>Drill<r> works like a Pickaxe and a Shovel. It uses <imp>RF<r> per block. It can be <imp>charged in an Energizer<r> and upgraded by <imp>right-clicking<r> with it in your hand. There is <imp>a lot of upgrades<r>, but here is an explanation of some of them: <n>The <item>Mining Uprgades<r> enlarge the hole which the Drill digs. <n>The <item>Placement Upgrade<r>, after you right-click it in any slot of your hotbar, will make the Drill able to <imp>place a block from that slot by right-clicking<r>. You can also put a <item>Battery<r> inside the Drill to give it more charge.
|
booklet.actuallyadditions.chapter.drill.text.1=The <item>Drill<r> works like a Pickaxe and a Shovel. It uses <imp>RF<r> per block. It can be <imp>charged in an Energizer<r> and upgraded by <imp>right-clicking<r> with it in your hand. There is <imp>a lot of upgrades<r>, but here is an explanation of some of them: <n>The <item>Mining Uprgades<r> enlarge the hole which the Drill digs. <n>The <item>Placement Upgrade<r>, after you right-click it in any slot of your hotbar, will make the Drill able to <imp>place a block from that slot by right-clicking<r>. You can also put a <item>Battery<r> inside the Drill to give it more charge.
|
||||||
booklet.actuallyadditions.chapter.drill.text.2=It should be noted that, in fact, the <item>Speed<r>, <item>Mining<r> and <item>Fortune Upgrades<r> <imp>need their previous tiers to be installed<r> for them to work. <n>This means that, if you want Speed III in the Drill, it needs Speed II and Speed I inside it as well. <n><n>Additionally, the <item>Drill<r> can also be <imp>dyed<r> in Minecraft's 16 colors by crafting it together with one. <n>It's only cosmetic and won't have any effect other than it looking different, however.
|
booklet.actuallyadditions.chapter.drill.text.2=It should be noted that, in fact, the <item>Speed<r>, <item>Mining<r> and <item>Fortune Upgrades<r> <imp>need their previous tiers to be installed<r> for them to work. <n>This means that, if you want Speed III in the Drill, it needs Speed II and Speed I inside it as well.
|
||||||
|
booklet.actuallyadditions.chapter.drill.text.4=The <item>Drill<r> can also be <imp>dyed<r> in Minecraft's 16 colors. <n>It's only cosmetic and won't have any effect other than it looking different, however.
|
||||||
|
|
||||||
booklet.actuallyadditions.chapter.staff.name=Staff
|
booklet.actuallyadditions.chapter.staff.name=Staff
|
||||||
booklet.actuallyadditions.chapter.staff.text.1=The <item>Teleport Staff<r>, when charged in an Energizer, can be <imp>right-clicked<r> to <imp>teleport you to where you're looking<r>. When you are looking at a block, it will teleport you there, however, when you aren't looking at a block, you can only be looking upwards up to <imp>5 degrees<r>, otherwise the teleport will fail.
|
booklet.actuallyadditions.chapter.staff.text.1=The <item>Teleport Staff<r>, when charged in an Energizer, can be <imp>right-clicked<r> to <imp>teleport you to where you're looking<r>. When you are looking at a block, it will teleport you there, however, when you aren't looking at a block, you can only be looking upwards up to <imp>5 degrees<r>, otherwise the teleport will fail.
|
||||||
|
|
Loading…
Reference in a new issue