Drop upgrades when machine is broken, shift right-click to add into machine.
This commit is contained in:
parent
d9af8309b1
commit
1c1f540a26
5 changed files with 71 additions and 2 deletions
|
@ -75,6 +75,7 @@ public class GuiSideConfig extends GuiBase {
|
||||||
protected void actionPerformed(GuiButton button) throws IOException {
|
protected void actionPerformed(GuiButton button) throws IOException {
|
||||||
super.actionPerformed(button);
|
super.actionPerformed(button);
|
||||||
NetworkManager.sendToServer(new PacketSyncSideConfig(slotID, button.id, tileEntity.getPos()));
|
NetworkManager.sendToServer(new PacketSyncSideConfig(slotID, button.id, tileEntity.getPos()));
|
||||||
|
Minecraft.getMinecraft().displayGuiScreen(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -40,9 +40,11 @@ import net.minecraftforge.items.IItemHandler;
|
||||||
import reborncore.api.tile.IUpgrade;
|
import reborncore.api.tile.IUpgrade;
|
||||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||||
import reborncore.common.recipes.RecipeCrafter;
|
import reborncore.common.recipes.RecipeCrafter;
|
||||||
|
import reborncore.common.tile.IMachineSlotProvider;
|
||||||
import reborncore.common.tile.TileLegacyMachineBase;
|
import reborncore.common.tile.TileLegacyMachineBase;
|
||||||
import reborncore.common.util.InventoryHelper;
|
import reborncore.common.util.InventoryHelper;
|
||||||
import reborncore.common.util.ItemNBTHelper;
|
import reborncore.common.util.ItemNBTHelper;
|
||||||
|
import techreborn.Core;
|
||||||
import techreborn.client.TechRebornCreativeTabMisc;
|
import techreborn.client.TechRebornCreativeTabMisc;
|
||||||
import techreborn.client.container.builder.BuiltContainer;
|
import techreborn.client.container.builder.BuiltContainer;
|
||||||
import techreborn.client.container.builder.ContainerBuilder;
|
import techreborn.client.container.builder.ContainerBuilder;
|
||||||
|
@ -102,6 +104,10 @@ public class ItemUpgrades extends ItemTRNoDestroy implements IUpgrade {
|
||||||
super.addInformation(stack, playerIn, tooltip, advanced);
|
super.addInformation(stack, playerIn, tooltip, advanced);
|
||||||
if(stack.getItemDamage() == 4 || stack.getItemDamage() == 5){
|
if(stack.getItemDamage() == 4 || stack.getItemDamage() == 5){
|
||||||
tooltip.add("Facing: " + getFacing(stack).getName());
|
tooltip.add("Facing: " + getFacing(stack).getName());
|
||||||
|
String text = Core.proxy.getUpgradeConfigText();
|
||||||
|
if(!text.isEmpty()){
|
||||||
|
tooltip.add(text);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,8 +141,31 @@ public class ItemUpgrades extends ItemTRNoDestroy implements IUpgrade {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (machineBase instanceof IMachineSlotProvider){
|
||||||
|
IMachineSlotProvider slotProvider = (IMachineSlotProvider) machineBase;
|
||||||
|
for(Integer outSlot : slotProvider.getOuputSlots()){
|
||||||
|
ItemStack outputStack = slotProvider.getMachineInv().getStackInSlot(outSlot);
|
||||||
|
if(!outputStack.isEmpty()){
|
||||||
|
int amount = InventoryHelper.testInventoryInsertion((IInventory) tileEntity, outputStack, dir);
|
||||||
|
if(amount > 0){
|
||||||
|
InventoryHelper.insertItemIntoInventory((IInventory) tileEntity,outputStack);
|
||||||
|
slotProvider.getMachineInv().decrStackSize(outSlot, amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
IInventory inventory = machineBase;
|
||||||
|
for (int outSlot = 0; outSlot < inventory.getSizeInventory(); outSlot++) {
|
||||||
|
ItemStack outputStack = inventory.getStackInSlot(outSlot);
|
||||||
|
if(!outputStack.isEmpty()){
|
||||||
|
int amount = InventoryHelper.testInventoryInsertion((IInventory) tileEntity, outputStack, dir);
|
||||||
|
if(amount > 0){
|
||||||
|
InventoryHelper.insertItemIntoInventory((IInventory) tileEntity,outputStack);
|
||||||
|
inventory.decrStackSize(outSlot, amount);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//TODO fix when crafter is null
|
|
||||||
}
|
}
|
||||||
} else if (stack.getItemDamage() == 5){
|
} else if (stack.getItemDamage() == 5){
|
||||||
if(machineBase.getWorld().getTotalWorldTime() % 10 != 0){
|
if(machineBase.getWorld().getTotalWorldTime() % 10 != 0){
|
||||||
|
|
|
@ -26,6 +26,7 @@ package techreborn.proxies;
|
||||||
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.ItemMeshDefinition;
|
import net.minecraft.client.renderer.ItemMeshDefinition;
|
||||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||||
import net.minecraft.client.renderer.block.statemap.DefaultStateMapper;
|
import net.minecraft.client.renderer.block.statemap.DefaultStateMapper;
|
||||||
|
@ -35,7 +36,9 @@ import net.minecraft.client.renderer.entity.Render;
|
||||||
import net.minecraft.client.renderer.entity.RenderManager;
|
import net.minecraft.client.renderer.entity.RenderManager;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import net.minecraft.util.text.TextFormatting;
|
||||||
import net.minecraftforge.client.model.ModelLoader;
|
import net.minecraftforge.client.model.ModelLoader;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||||
|
@ -44,6 +47,7 @@ import net.minecraftforge.fml.client.registry.RenderingRegistry;
|
||||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||||
import reborncore.RebornCore;
|
import reborncore.RebornCore;
|
||||||
|
import reborncore.api.tile.IUpgradeable;
|
||||||
import reborncore.client.hud.StackInfoHUD;
|
import reborncore.client.hud.StackInfoHUD;
|
||||||
import reborncore.client.multiblock.MultiblockRenderEvent;
|
import reborncore.client.multiblock.MultiblockRenderEvent;
|
||||||
import reborncore.common.blocks.BlockMachineBase;
|
import reborncore.common.blocks.BlockMachineBase;
|
||||||
|
@ -55,6 +59,7 @@ import techreborn.client.ClientMultiBlocks;
|
||||||
import techreborn.client.IconSupplier;
|
import techreborn.client.IconSupplier;
|
||||||
import techreborn.client.RegisterItemJsons;
|
import techreborn.client.RegisterItemJsons;
|
||||||
import techreborn.client.StackToolTipEvent;
|
import techreborn.client.StackToolTipEvent;
|
||||||
|
import techreborn.client.gui.GuiBase;
|
||||||
import techreborn.client.keybindings.KeyBindings;
|
import techreborn.client.keybindings.KeyBindings;
|
||||||
import techreborn.client.render.ModelDynamicCell;
|
import techreborn.client.render.ModelDynamicCell;
|
||||||
import techreborn.client.render.entitys.RenderNukePrimed;
|
import techreborn.client.render.entitys.RenderNukePrimed;
|
||||||
|
@ -227,4 +232,16 @@ public class ClientProxy extends CommonProxy {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUpgradeConfigText() {
|
||||||
|
if(Minecraft.getMinecraft().currentScreen instanceof GuiBase){
|
||||||
|
GuiBase base = (GuiBase) Minecraft.getMinecraft().currentScreen;
|
||||||
|
if(base.tile instanceof IUpgradeable){
|
||||||
|
if(((IUpgradeable) base.tile).canBeUpgraded()){
|
||||||
|
return TextFormatting.LIGHT_PURPLE + "Right click to configure";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getUpgradeConfigText();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,4 +84,9 @@ public class CommonProxy implements ICompatModule {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getUpgradeConfigText(){
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ package techreborn.tiles.teir1;
|
||||||
|
|
||||||
import net.minecraft.block.state.IBlockState;
|
import net.minecraft.block.state.IBlockState;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.crafting.FurnaceRecipes;
|
import net.minecraft.item.crafting.FurnaceRecipes;
|
||||||
import net.minecraft.util.EnumFacing;
|
import net.minecraft.util.EnumFacing;
|
||||||
|
@ -36,6 +37,7 @@ import reborncore.api.tile.IInventoryProvider;
|
||||||
import reborncore.common.IWrenchable;
|
import reborncore.common.IWrenchable;
|
||||||
import reborncore.common.blocks.BlockMachineBase;
|
import reborncore.common.blocks.BlockMachineBase;
|
||||||
import reborncore.common.powerSystem.TilePowerAcceptor;
|
import reborncore.common.powerSystem.TilePowerAcceptor;
|
||||||
|
import reborncore.common.tile.IMachineSlotProvider;
|
||||||
import reborncore.common.util.Inventory;
|
import reborncore.common.util.Inventory;
|
||||||
|
|
||||||
import techreborn.client.container.IContainerProvider;
|
import techreborn.client.container.IContainerProvider;
|
||||||
|
@ -44,7 +46,7 @@ import techreborn.client.container.builder.ContainerBuilder;
|
||||||
import techreborn.init.ModBlocks;
|
import techreborn.init.ModBlocks;
|
||||||
|
|
||||||
public class TileElectricFurnace extends TilePowerAcceptor
|
public class TileElectricFurnace extends TilePowerAcceptor
|
||||||
implements IWrenchable, IInventoryProvider, IContainerProvider {
|
implements IWrenchable, IInventoryProvider, IContainerProvider, IMachineSlotProvider {
|
||||||
|
|
||||||
public Inventory inventory = new Inventory(6, "TileElectricFurnace", 64, this);
|
public Inventory inventory = new Inventory(6, "TileElectricFurnace", 64, this);
|
||||||
public int capacity = 1000;
|
public int capacity = 1000;
|
||||||
|
@ -246,4 +248,19 @@ public class TileElectricFurnace extends TilePowerAcceptor
|
||||||
.tile(this).slot(0, 55, 45).outputSlot(1, 101, 45).syncEnergyValue()
|
.tile(this).slot(0, 55, 45).outputSlot(1, 101, 45).syncEnergyValue()
|
||||||
.syncIntegerValue(this::getBurnTime, this::setBurnTime).addInventory().create();
|
.syncIntegerValue(this::getBurnTime, this::setBurnTime).addInventory().create();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getInputSlots() {
|
||||||
|
return new int[]{input1};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getOuputSlots() {
|
||||||
|
return new int[]{output};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IInventory getMachineInv() {
|
||||||
|
return inventory;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue