blob: e806ea5b933ffddf57f0f31ba4204a396539bb58 (
plain)
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
|
package jp.plusplus.fbs.storage;
import jp.plusplus.fbs.FBS;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
/**
* Created by plusplus_F on 2016/03/08.
*/
public class InventoryTerminal implements IInventory {
public ItemStack[] allItem;
public ItemStack[] itemStacks=new ItemStack[54];
public TileEntityMeal meal;
public float scroll;
public boolean dontUpdate;
public InventoryTerminal(TileEntityMeal meal){
this.meal=meal;
}
public void updateItemList(){
if(!dontUpdate){
allItem=meal.getAllItemStacks();
if(allItem.length<=54){
for(int i=0;i<itemStacks.length;i++) itemStacks[i]=null;
for(int i=0;i<allItem.length;i++) itemStacks[i]=allItem[i];
}
else{
//スクロールに合わせて変更
int shift=(int)(((allItem.length-54)/9+1)*scroll);
for(int i=0;i<54;i++){
int index=i+shift*9;
if(index<allItem.length) itemStacks[i]=allItem[index];
else itemStacks[i]=null;
}
}
}
}
@Override
public int getSizeInventory() {
return 54;
}
@Override
public ItemStack getStackInSlot(int p_70301_1_) {
return itemStacks[p_70301_1_];
}
@Override
public ItemStack decrStackSize(int index, int stackSize) {
if (this.itemStacks[index] != null) {
ItemStack itemstack;
if (this.itemStacks[index].stackSize <= stackSize) {
itemstack = this.itemStacks[index].copy();
this.itemStacks[index] = null;
this.markDirty();
return itemstack;
} else {
itemstack = this.itemStacks[index].splitStack(stackSize);
if (this.itemStacks[index].stackSize == 0) {
this.itemStacks[index] = null;
}
this.markDirty();
return itemstack;
}
}
return null;
}
@Override
public ItemStack getStackInSlotOnClosing(int p_70304_1_) {
return null;
}
@Override
public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) {
//meal.insertItemStack(p_70299_2_);
itemStacks[p_70299_1_]=p_70299_2_;
markDirty();
}
@Override
public String getInventoryName() {
return "fbs.terminal";
}
@Override
public boolean hasCustomInventoryName() {
return false;
}
@Override
public int getInventoryStackLimit() {
return Integer.MAX_VALUE;
}
@Override
public void markDirty() {
updateItemList();
}
@Override
public boolean isUseableByPlayer(EntityPlayer p_70300_1_) {
return true;
}
@Override
public void openInventory() {
updateItemList();
}
@Override
public void closeInventory() {
}
@Override
public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) {
return true;
}
}
|