mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-20 23:30:29 +00:00
work on inventory stuff
This commit is contained in:
@@ -2,12 +2,15 @@ package com.dfsek.terra.api.platform.block;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.math.vector.Location;
|
import com.dfsek.terra.api.math.vector.Location;
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.platform.Handle;
|
||||||
|
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||||
|
|
||||||
public interface Block extends Handle {
|
public interface Block extends Handle {
|
||||||
void setBlockData(BlockData data, boolean physics);
|
void setBlockData(BlockData data, boolean physics);
|
||||||
|
|
||||||
BlockData getBlockData();
|
BlockData getBlockData();
|
||||||
|
|
||||||
|
BlockState getState();
|
||||||
|
|
||||||
Block getRelative(BlockFace face);
|
Block getRelative(BlockFace face);
|
||||||
|
|
||||||
Block getRelative(BlockFace face, int len);
|
Block getRelative(BlockFace face, int len);
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
package com.dfsek.terra.api.platform.block.state;
|
package com.dfsek.terra.api.platform.block.state;
|
||||||
|
|
||||||
public interface BlockState {
|
import com.dfsek.terra.api.platform.Handle;
|
||||||
|
import com.dfsek.terra.api.platform.block.Block;
|
||||||
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
|
|
||||||
|
public interface BlockState extends Handle {
|
||||||
|
Block getBlock();
|
||||||
|
|
||||||
|
int getX();
|
||||||
|
|
||||||
|
int getY();
|
||||||
|
|
||||||
|
int getZ();
|
||||||
|
|
||||||
|
BlockData getBlockData();
|
||||||
|
|
||||||
|
boolean update(boolean applyPhysics);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.dfsek.terra.api.platform.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.inventory.BlockInventoryHolder;
|
||||||
|
|
||||||
|
public interface Container extends BlockState, BlockInventoryHolder {
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.dfsek.terra.api.platform.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.block.Block;
|
||||||
|
|
||||||
|
public interface BlockInventoryHolder extends InventoryHolder {
|
||||||
|
Block getBlock();
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.dfsek.terra.api.platform.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.Handle;
|
||||||
|
|
||||||
|
public interface InventoryHolder extends Handle {
|
||||||
|
Inventory getInventory();
|
||||||
|
}
|
||||||
@@ -2,9 +2,10 @@ package com.dfsek.terra.api.platform.inventory.item;
|
|||||||
|
|
||||||
import com.dfsek.terra.api.platform.Handle;
|
import com.dfsek.terra.api.platform.Handle;
|
||||||
|
|
||||||
public interface Damageable extends Handle, Cloneable {
|
public interface Damageable extends Handle {
|
||||||
Damageable clone();
|
|
||||||
int getDamage();
|
int getDamage();
|
||||||
|
|
||||||
void setDamage(int damage);
|
void setDamage(int damage);
|
||||||
|
|
||||||
boolean hasDamage();
|
boolean hasDamage();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.dfsek.terra.api.platform.block.MaterialData;
|
|||||||
import com.dfsek.terra.api.platform.inventory.ItemHandle;
|
import com.dfsek.terra.api.platform.inventory.ItemHandle;
|
||||||
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
||||||
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
||||||
|
import com.dfsek.terra.bukkit.world.inventory.BukkitItemStack;
|
||||||
|
|
||||||
public class BukkitItemHandle implements ItemHandle {
|
public class BukkitItemHandle implements ItemHandle {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package com.dfsek.terra.bukkit;
|
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
|
|
||||||
|
|
||||||
public class BukkitItemMeta implements ItemMeta {
|
|
||||||
private final org.bukkit.inventory.meta.ItemMeta delegate;
|
|
||||||
|
|
||||||
public BukkitItemMeta(org.bukkit.inventory.meta.ItemMeta delegate) {
|
|
||||||
this.delegate = delegate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public org.bukkit.inventory.meta.ItemMeta getHandle() {
|
|
||||||
return delegate;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,6 +5,7 @@ import com.dfsek.terra.api.platform.block.Block;
|
|||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
|
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||||
import com.dfsek.terra.bukkit.BukkitWorld;
|
import com.dfsek.terra.bukkit.BukkitWorld;
|
||||||
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
||||||
import com.dfsek.terra.bukkit.world.block.data.BukkitEnumAdapter;
|
import com.dfsek.terra.bukkit.world.block.data.BukkitEnumAdapter;
|
||||||
@@ -26,6 +27,11 @@ public class BukkitBlock implements Block {
|
|||||||
return BukkitBlockData.newInstance(delegate.getBlockData());
|
return BukkitBlockData.newInstance(delegate.getBlockData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getState() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Block getRelative(BlockFace face) {
|
public Block getRelative(BlockFace face) {
|
||||||
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face)));
|
return new BukkitBlock(delegate.getRelative(BukkitEnumAdapter.adapt(face)));
|
||||||
@@ -72,7 +78,7 @@ public class BukkitBlock implements Block {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Object getHandle() {
|
public org.bukkit.block.Block getHandle() {
|
||||||
return delegate;
|
return delegate;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.block.Block;
|
||||||
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
|
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||||
|
import com.dfsek.terra.bukkit.world.block.BukkitBlock;
|
||||||
|
import com.dfsek.terra.bukkit.world.block.data.BukkitBlockData;
|
||||||
|
|
||||||
|
public class BukkitBlockState implements BlockState {
|
||||||
|
private final org.bukkit.block.BlockState delegate;
|
||||||
|
|
||||||
|
protected BukkitBlockState(org.bukkit.block.BlockState block) {
|
||||||
|
this.delegate = block;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BukkitBlockState newInstance(org.bukkit.block.BlockState block) {
|
||||||
|
return new BukkitBlockState(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public org.bukkit.block.BlockState getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Block getBlock() {
|
||||||
|
return new BukkitBlock(delegate.getBlock());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getX() {
|
||||||
|
return delegate.getX();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getY() {
|
||||||
|
return delegate.getY();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getZ() {
|
||||||
|
return delegate.getZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockData getBlockData() {
|
||||||
|
return BukkitBlockData.newInstance(delegate.getBlockData());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean update(boolean applyPhysics) {
|
||||||
|
return delegate.update(true, applyPhysics);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.block.state;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.block.state.Container;
|
||||||
|
import com.dfsek.terra.api.platform.inventory.Inventory;
|
||||||
|
import com.dfsek.terra.bukkit.world.inventory.BukkitInventory;
|
||||||
|
|
||||||
|
public class BukkitContainer extends BukkitBlockState implements Container {
|
||||||
|
protected BukkitContainer(org.bukkit.block.Container block) {
|
||||||
|
super(block);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Inventory getInventory() {
|
||||||
|
return new BukkitInventory(((org.bukkit.block.Container) getHandle()).getInventory());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.inventory.Inventory;
|
||||||
|
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
||||||
|
|
||||||
|
public class BukkitInventory implements Inventory {
|
||||||
|
private final org.bukkit.inventory.Inventory delegate;
|
||||||
|
|
||||||
|
public BukkitInventory(org.bukkit.inventory.Inventory delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getSize() {
|
||||||
|
return delegate.getSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getItem(int slot) {
|
||||||
|
return new BukkitItemStack(delegate.getItem(slot));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setItem(int slot, ItemStack newStack) {
|
||||||
|
delegate.setItem(slot, ((BukkitItemStack) newStack).getHandle());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public org.bukkit.inventory.Inventory getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.inventory;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
|
||||||
|
import com.dfsek.terra.bukkit.world.inventory.meta.BukkitDamageable;
|
||||||
|
import org.bukkit.inventory.meta.Damageable;
|
||||||
|
|
||||||
|
public class BukkitItemMeta implements ItemMeta {
|
||||||
|
private final org.bukkit.inventory.meta.ItemMeta delegate;
|
||||||
|
|
||||||
|
protected BukkitItemMeta(org.bukkit.inventory.meta.ItemMeta delegate) {
|
||||||
|
this.delegate = delegate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BukkitItemMeta newInstance(org.bukkit.inventory.meta.ItemMeta delegate) {
|
||||||
|
if(delegate instanceof Damageable) return new BukkitDamageable((Damageable) delegate);
|
||||||
|
return new BukkitItemMeta(delegate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public org.bukkit.inventory.meta.ItemMeta getHandle() {
|
||||||
|
return delegate;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.dfsek.terra.bukkit;
|
package com.dfsek.terra.bukkit.world.inventory;
|
||||||
|
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
import com.dfsek.terra.api.platform.inventory.ItemStack;
|
||||||
@@ -6,7 +6,7 @@ import com.dfsek.terra.api.platform.inventory.item.ItemMeta;
|
|||||||
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
import com.dfsek.terra.bukkit.world.block.BukkitMaterialData;
|
||||||
|
|
||||||
public class BukkitItemStack implements ItemStack {
|
public class BukkitItemStack implements ItemStack {
|
||||||
protected org.bukkit.inventory.ItemStack delegate;
|
private org.bukkit.inventory.ItemStack delegate;
|
||||||
|
|
||||||
public BukkitItemStack(org.bukkit.inventory.ItemStack delegate) {
|
public BukkitItemStack(org.bukkit.inventory.ItemStack delegate) {
|
||||||
this.delegate = delegate;
|
this.delegate = delegate;
|
||||||
@@ -41,7 +41,7 @@ public class BukkitItemStack implements ItemStack {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemMeta getItemMeta() {
|
public ItemMeta getItemMeta() {
|
||||||
return new BukkitItemMeta(delegate.getItemMeta());
|
return BukkitItemMeta.newInstance(delegate.getItemMeta());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.dfsek.terra.bukkit.world.inventory.meta;
|
||||||
|
|
||||||
|
import com.dfsek.terra.api.platform.inventory.item.Damageable;
|
||||||
|
import com.dfsek.terra.bukkit.world.inventory.BukkitItemMeta;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
public class BukkitDamageable extends BukkitItemMeta implements Damageable {
|
||||||
|
public BukkitDamageable(org.bukkit.inventory.meta.Damageable delegate) {
|
||||||
|
super((ItemMeta) delegate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getDamage() {
|
||||||
|
return ((org.bukkit.inventory.meta.Damageable) getHandle()).getDamage();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setDamage(int damage) {
|
||||||
|
((org.bukkit.inventory.meta.Damageable) getHandle()).setDamage(damage);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean hasDamage() {
|
||||||
|
return ((org.bukkit.inventory.meta.Damageable) getHandle()).hasDamage();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ import com.dfsek.terra.api.platform.block.Block;
|
|||||||
import com.dfsek.terra.api.platform.block.BlockData;
|
import com.dfsek.terra.api.platform.block.BlockData;
|
||||||
import com.dfsek.terra.api.platform.block.BlockFace;
|
import com.dfsek.terra.api.platform.block.BlockFace;
|
||||||
import com.dfsek.terra.api.platform.block.MaterialData;
|
import com.dfsek.terra.api.platform.block.MaterialData;
|
||||||
|
import com.dfsek.terra.api.platform.block.state.BlockState;
|
||||||
import com.dfsek.terra.fabric.world.FabricAdapters;
|
import com.dfsek.terra.fabric.world.FabricAdapters;
|
||||||
import com.dfsek.terra.fabric.world.handles.world.FabricWorldAccess;
|
import com.dfsek.terra.fabric.world.handles.world.FabricWorldAccess;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
@@ -27,6 +28,11 @@ public class FabricBlock implements Block {
|
|||||||
return new FabricBlockData(delegate.worldAccess.getBlockState(delegate.position));
|
return new FabricBlockData(delegate.worldAccess.getBlockState(delegate.position));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getState() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Block getRelative(BlockFace face) {
|
public Block getRelative(BlockFace face) {
|
||||||
return getRelative(face, 1);
|
return getRelative(face, 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user