From 5ad5d569c313dc4b2729e4c8293bea428be8360f Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Tue, 1 Jan 2019 18:40:38 -0500 Subject: [PATCH] Add container/view methods for getting the world and pos --- .../container/AbstractContainerBlockEntity.java | 11 +++++++++++ .../container/MultipartContainer.java | 12 ++++++++++++ .../simplemultipart/multipart/MultipartView.java | 16 ++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/src/main/java/net/shadowfacts/simplemultipart/container/AbstractContainerBlockEntity.java b/src/main/java/net/shadowfacts/simplemultipart/container/AbstractContainerBlockEntity.java index 01cbaea..4555bea 100644 --- a/src/main/java/net/shadowfacts/simplemultipart/container/AbstractContainerBlockEntity.java +++ b/src/main/java/net/shadowfacts/simplemultipart/container/AbstractContainerBlockEntity.java @@ -17,6 +17,7 @@ import net.minecraft.util.Tickable; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.World; import net.minecraft.world.loot.context.LootContext; import net.minecraft.world.loot.context.Parameters; import net.shadowfacts.simplemultipart.SimpleMultipart; @@ -42,6 +43,16 @@ public abstract class AbstractContainerBlockEntity extends BlockEntity implement super(type); } + @Override + public World getContainerWorld() { + return world; + } + + @Override + public BlockPos getContainerPos() { + return pos; + } + @Override public Set getParts() { return ImmutableSet.copyOf(parts); diff --git a/src/main/java/net/shadowfacts/simplemultipart/container/MultipartContainer.java b/src/main/java/net/shadowfacts/simplemultipart/container/MultipartContainer.java index 0b366e5..df20729 100644 --- a/src/main/java/net/shadowfacts/simplemultipart/container/MultipartContainer.java +++ b/src/main/java/net/shadowfacts/simplemultipart/container/MultipartContainer.java @@ -1,6 +1,8 @@ package net.shadowfacts.simplemultipart.container; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.world.World; import net.shadowfacts.simplemultipart.multipart.MultipartView; import net.shadowfacts.simplemultipart.multipart.MultipartState; @@ -15,6 +17,16 @@ import java.util.Set; */ public interface MultipartContainer { + /** + * @return The world that this container is in. + */ + World getContainerWorld(); + + /** + * @return The position of this container in the world. + */ + BlockPos getContainerPos(); + /** * Retrieves all the multiparts held by this container. * diff --git a/src/main/java/net/shadowfacts/simplemultipart/multipart/MultipartView.java b/src/main/java/net/shadowfacts/simplemultipart/multipart/MultipartView.java index 775f113..3ce1217 100644 --- a/src/main/java/net/shadowfacts/simplemultipart/multipart/MultipartView.java +++ b/src/main/java/net/shadowfacts/simplemultipart/multipart/MultipartView.java @@ -1,5 +1,7 @@ package net.shadowfacts.simplemultipart.multipart; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; import net.shadowfacts.simplemultipart.container.MultipartContainer; import net.shadowfacts.simplemultipart.multipart.Multipart; import net.shadowfacts.simplemultipart.multipart.MultipartState; @@ -59,4 +61,18 @@ public interface MultipartView { return getState().getMultipart(); } + /** + * @return The world that this part's container is in. + */ + default World getWorld() { + return getContainer().getContainerWorld(); + } + + /** + * @return The position of this part's container. + */ + default BlockPos getPos() { + return getContainer().getContainerPos(); + } + }