CompoundContainer.java
net.minecraft.world.CompoundContainer
信息
- 全限定名:net.minecraft.world.CompoundContainer
- 类型:public class
- 包:net.minecraft.world
- 源码路径:src/main/java/net/minecraft/world/CompoundContainer.java
- 起始行号:L7
- 实现:Container
- 职责:
TODO
字段/常量
-
container1- 类型:
Container - 修饰符:
private final - 源码定位:
L8 - 说明:
TODO
- 类型:
-
container2- 类型:
Container - 修饰符:
private final - 源码定位:
L9 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public CompoundContainer(Container container1, Container container2) @ L11
- 构造器名:CompoundContainer
- 源码定位:L11
- 修饰符:public
参数:
- container1: Container
- container2: Container
说明:
TODO
方法
下面的方法块按源码顺序生成。
public int getContainerSize() @ L16
- 方法名:getContainerSize
- 源码定位:L16
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean isEmpty() @ L21
- 方法名:isEmpty
- 源码定位:L21
- 返回类型:boolean
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean contains(Container container) @ L26
- 方法名:contains
- 源码定位:L26
- 返回类型:boolean
- 修饰符:public
参数:
- container: Container
说明:
TODO
public ItemStack getItem(int slot) @ L30
- 方法名:getItem
- 源码定位:L30
- 返回类型:ItemStack
- 修饰符:public
参数:
- slot: int
说明:
TODO
public ItemStack removeItem(int slot, int count) @ L35
- 方法名:removeItem
- 源码定位:L35
- 返回类型:ItemStack
- 修饰符:public
参数:
- slot: int
- count: int
说明:
TODO
public ItemStack removeItemNoUpdate(int slot) @ L42
- 方法名:removeItemNoUpdate
- 源码定位:L42
- 返回类型:ItemStack
- 修饰符:public
参数:
- slot: int
说明:
TODO
public void setItem(int slot, ItemStack itemStack) @ L49
- 方法名:setItem
- 源码定位:L49
- 返回类型:void
- 修饰符:public
参数:
- slot: int
- itemStack: ItemStack
说明:
TODO
public int getMaxStackSize() @ L58
- 方法名:getMaxStackSize
- 源码定位:L58
- 返回类型:int
- 修饰符:public
参数:
- 无
说明:
TODO
public void setChanged() @ L63
- 方法名:setChanged
- 源码定位:L63
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
public boolean stillValid(Player player) @ L69
- 方法名:stillValid
- 源码定位:L69
- 返回类型:boolean
- 修饰符:public
参数:
- player: Player
说明:
TODO
public void startOpen(ContainerUser containerUser) @ L74
- 方法名:startOpen
- 源码定位:L74
- 返回类型:void
- 修饰符:public
参数:
- containerUser: ContainerUser
说明:
TODO
public void stopOpen(ContainerUser containerUser) @ L80
- 方法名:stopOpen
- 源码定位:L80
- 返回类型:void
- 修饰符:public
参数:
- containerUser: ContainerUser
说明:
TODO
public boolean canPlaceItem(int slot, ItemStack itemStack) @ L86
- 方法名:canPlaceItem
- 源码定位:L86
- 返回类型:boolean
- 修饰符:public
参数:
- slot: int
- itemStack: ItemStack
说明:
TODO
public void clearContent() @ L93
- 方法名:clearContent
- 源码定位:L93
- 返回类型:void
- 修饰符:public
参数:
- 无
说明:
TODO
代码
public class CompoundContainer implements Container {
private final Container container1;
private final Container container2;
public CompoundContainer(Container container1, Container container2) {
this.container1 = container1;
this.container2 = container2;
}
@Override
public int getContainerSize() {
return this.container1.getContainerSize() + this.container2.getContainerSize();
}
@Override
public boolean isEmpty() {
return this.container1.isEmpty() && this.container2.isEmpty();
}
public boolean contains(Container container) {
return this.container1 == container || this.container2 == container;
}
@Override
public ItemStack getItem(int slot) {
return slot >= this.container1.getContainerSize() ? this.container2.getItem(slot - this.container1.getContainerSize()) : this.container1.getItem(slot);
}
@Override
public ItemStack removeItem(int slot, int count) {
return slot >= this.container1.getContainerSize()
? this.container2.removeItem(slot - this.container1.getContainerSize(), count)
: this.container1.removeItem(slot, count);
}
@Override
public ItemStack removeItemNoUpdate(int slot) {
return slot >= this.container1.getContainerSize()
? this.container2.removeItemNoUpdate(slot - this.container1.getContainerSize())
: this.container1.removeItemNoUpdate(slot);
}
@Override
public void setItem(int slot, ItemStack itemStack) {
if (slot >= this.container1.getContainerSize()) {
this.container2.setItem(slot - this.container1.getContainerSize(), itemStack);
} else {
this.container1.setItem(slot, itemStack);
}
}
@Override
public int getMaxStackSize() {
return this.container1.getMaxStackSize();
}
@Override
public void setChanged() {
this.container1.setChanged();
this.container2.setChanged();
}
@Override
public boolean stillValid(Player player) {
return this.container1.stillValid(player) && this.container2.stillValid(player);
}
@Override
public void startOpen(ContainerUser containerUser) {
this.container1.startOpen(containerUser);
this.container2.startOpen(containerUser);
}
@Override
public void stopOpen(ContainerUser containerUser) {
this.container1.stopOpen(containerUser);
this.container2.stopOpen(containerUser);
}
@Override
public boolean canPlaceItem(int slot, ItemStack itemStack) {
return slot >= this.container1.getContainerSize()
? this.container2.canPlaceItem(slot - this.container1.getContainerSize(), itemStack)
: this.container1.canPlaceItem(slot, itemStack);
}
@Override
public void clearContent() {
this.container1.clearContent();
this.container2.clearContent();
}
}引用的其他类
-
- 引用位置:
参数/字段/实现
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置: