Removed liquid storage
This commit is contained in:
@@ -4,7 +4,7 @@ import io.anuke.mindustry.resource.*;
|
||||
|
||||
public class UnitInventory {
|
||||
private final AmmoEntry ammo = new AmmoEntry(AmmoType.getByID(0), 0);
|
||||
private CarryItem item;
|
||||
private ItemStack item;
|
||||
private int capacity;
|
||||
|
||||
public UnitInventory(int capacity) {
|
||||
@@ -15,32 +15,28 @@ public class UnitInventory {
|
||||
return capacity;
|
||||
}
|
||||
|
||||
public boolean isEmpty(){
|
||||
return item == null;
|
||||
}
|
||||
|
||||
public int itemCapacityUsed(Item type){
|
||||
if(canAcceptItem(type)){
|
||||
return !hasItem() ? capacity : (capacity - getItem().amount);
|
||||
return !hasItem() ? capacity : (capacity - item.amount);
|
||||
}else{
|
||||
return capacity;
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canAcceptItem(Item type){
|
||||
return !hasItem() || (getItem().item == type && capacity - getItem().amount > 0);
|
||||
return !hasItem() || (item.item == type && capacity - item.amount > 0);
|
||||
}
|
||||
|
||||
public void clear(){
|
||||
item = null;
|
||||
}
|
||||
|
||||
public boolean hasAnything(){
|
||||
return item != null;
|
||||
}
|
||||
|
||||
public boolean hasLiquid(){
|
||||
return item instanceof LiquidStack;
|
||||
}
|
||||
|
||||
public boolean hasItem(){
|
||||
return item instanceof ItemStack;
|
||||
return item != null;
|
||||
}
|
||||
|
||||
public void addItem(Item item, int amount){
|
||||
@@ -52,22 +48,9 @@ public class UnitInventory {
|
||||
}
|
||||
}
|
||||
|
||||
public void addLiquid(Liquid liquid, float amount){
|
||||
if(hasItem()){
|
||||
getLiquid().liquid = liquid;
|
||||
getLiquid().amount = amount;
|
||||
}else{
|
||||
this.item = new LiquidStack(liquid, amount);
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStack getItem(){
|
||||
if(!hasItem()) throw new RuntimeException("This inventory has no item! Check hasItem() first.");
|
||||
return (ItemStack)item;
|
||||
}
|
||||
|
||||
public LiquidStack getLiquid(){
|
||||
if(!hasItem()) throw new RuntimeException("This inventory has no item! Check hasItem() first.");
|
||||
return (LiquidStack)item;
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ public class DesktopInput extends InputHandler{
|
||||
|
||||
boolean canBeginShoot = Inputs.keyTap("select") && canShoot();
|
||||
|
||||
if(Inputs.keyTap("select") && recipe == null && player.inventory.hasAnything()){
|
||||
if(Inputs.keyTap("select") && recipe == null && player.inventory.hasItem()){
|
||||
Vector2 vec = Graphics.screen(player.x, player.y);
|
||||
if(vec.dst(Gdx.input.getX(), Gdx.graphics.getHeight() - Gdx.input.getY()) <= playerSelectRange){
|
||||
canBeginShoot = false;
|
||||
@@ -112,11 +112,11 @@ public class DesktopInput extends InputHandler{
|
||||
Tile target = cursor == null ? null : cursor.target();
|
||||
boolean showCursor = false;
|
||||
|
||||
if(droppingItem && Inputs.keyRelease("select") && player.inventory.hasAnything() && target != null){
|
||||
if(droppingItem && Inputs.keyRelease("select") && !player.inventory.isEmpty() && target != null){
|
||||
dropItem(target, player.inventory.getItem());
|
||||
}
|
||||
|
||||
if(droppingItem && (!Inputs.keyDown("select") || !player.inventory.hasAnything())){
|
||||
if(droppingItem && (!Inputs.keyDown("select") || player.inventory.isEmpty())){
|
||||
droppingItem = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
package io.anuke.mindustry.ui.fragments;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.Colors;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.math.Interpolation;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.IntSet;
|
||||
import io.anuke.mindustry.content.Liquids;
|
||||
import io.anuke.mindustry.core.GameState.State;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.ui.ItemImage;
|
||||
@@ -18,7 +16,6 @@ import io.anuke.ucore.core.Inputs;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.function.BooleanProvider;
|
||||
import io.anuke.ucore.function.Callable;
|
||||
import io.anuke.ucore.graphics.Draw;
|
||||
import io.anuke.ucore.scene.actions.Actions;
|
||||
import io.anuke.ucore.scene.event.HandCursorListener;
|
||||
import io.anuke.ucore.scene.event.Touchable;
|
||||
@@ -82,6 +79,7 @@ public class BlockInventoryFragment implements Fragment {
|
||||
|
||||
table.margin(3f);
|
||||
table.defaults().size(16 * 2).space(6f);
|
||||
/*
|
||||
|
||||
if(tile.block().hasPower){
|
||||
table.add(new ItemImage(Draw.region("icon-power"), () -> round(tile.entity.power.amount), Colors.get("power")));
|
||||
@@ -101,13 +99,13 @@ public class BlockInventoryFragment implements Fragment {
|
||||
int amount = Inputs.keyDown("item_withdraw") ? items[f] : 1;
|
||||
items[f] -= amount;
|
||||
|
||||
move(item.region, image, () -> player.inventory.addItem(item, amount), Color.WHITE);*/
|
||||
move(item.region, image, () -> player.inventory.addItem(item, amount), Color.WHITE);
|
||||
}
|
||||
});
|
||||
|
||||
table.add(image);
|
||||
if (row++ % cols == cols - 1) table.row();
|
||||
}
|
||||
}*/
|
||||
|
||||
if(tile.block().hasInventory) {
|
||||
int[] items = tile.entity.inventory.items;
|
||||
|
||||
@@ -194,7 +194,7 @@ public class Block extends BaseBlock {
|
||||
public void update(Tile tile){}
|
||||
|
||||
public boolean isAccessible(){
|
||||
return (hasInventory && itemCapacity > 0) || hasLiquids || hasPower;
|
||||
return (hasInventory && itemCapacity > 0);
|
||||
}
|
||||
|
||||
public void onDestroyed(Tile tile){
|
||||
|
||||
Reference in New Issue
Block a user