Updated to apply custom structure Positions to AngleGetter() class

This commit is contained in:
Yavin7
2018-10-15 15:02:15 -05:00
parent 536e11fa8e
commit b2448139ff
2 changed files with 11 additions and 9 deletions

View File

@@ -10,6 +10,7 @@ import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import net.yseven.findyourway.item.ItemCompassBase;
import net.yseven.findyourway.item.ModItems; import net.yseven.findyourway.item.ModItems;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@@ -23,9 +24,13 @@ public class AngleGetter implements IItemPropertyGetter {
private double prevWobble = 0.0D; private double prevWobble = 0.0D;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private long prevWorldTime = 0L; private long prevWorldTime = 0L;
@SideOnly(Side.CLIENT)
private BlockPos blockPos;
double blockX; @SideOnly(Side.CLIENT)
double blockZ; AngleGetter(ItemCompassBase compassBase) {
blockPos = compassBase.getStructurePos();
}
@Override @Override
@ParametersAreNonnullByDefault @ParametersAreNonnullByDefault
@@ -66,16 +71,11 @@ public class AngleGetter implements IItemPropertyGetter {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private double getAngle(World world, Entity entity, ItemStack stack) { private double getAngle(World world, Entity entity, ItemStack stack) {
return Math.atan2((double) blockZ - entity.posZ, (double) blockX - entity.posX); return Math.atan2((double) blockPos.getZ() - entity.posZ, (double) blockPos.getX() - entity.posX);
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
private double getFrameAngle(EntityItemFrame entity) { private double getFrameAngle(EntityItemFrame entity) {
return (double) MathHelper.wrapDegrees(180 + (entity.facingDirection.getHorizontalIndex() * 90)); return (double) MathHelper.wrapDegrees(180 + (entity.facingDirection.getHorizontalIndex() * 90));
} }
@SideOnly(Side.CLIENT)
private double getPosToAngle(BlockPos pos, Entity entity) {
return Math.atan2((double)pos.getZ() - entity.posZ, (double)pos.getX() - entity.posX);
}
} }

View File

@@ -18,6 +18,7 @@ import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.yseven.findyourway.CommonProxy; import net.yseven.findyourway.CommonProxy;
import net.yseven.findyourway.FindYourWay; import net.yseven.findyourway.FindYourWay;
import net.yseven.findyourway.Network.PacketHandler; import net.yseven.findyourway.Network.PacketHandler;
@@ -82,9 +83,10 @@ public class ClientProxy extends CommonProxy {
ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(FindYourWay.modId + ":" + id, "inventory")); ModelLoader.setCustomModelResourceLocation(item, meta, new ModelResourceLocation(FindYourWay.modId + ":" + id, "inventory"));
} }
@SideOnly(Side.CLIENT)
@SubscribeEvent @SubscribeEvent
public void onModelRegistry(ModelRegistryEvent event) { public void onModelRegistry(ModelRegistryEvent event) {
ModItems.ENDER_COMPASS.addPropertyOverride(new ResourceLocation(ModItems.ENDER_COMPASS.assetTag), new AngleGetter()); ModItems.ENDER_COMPASS.addPropertyOverride(new ResourceLocation(ModItems.ENDER_COMPASS.assetTag), new AngleGetter(ModItems.ENDER_COMPASS));
ModelLoader.setCustomModelResourceLocation(ModItems.ENDER_COMPASS, 0, new ModelResourceLocation("findyourway:ender_compass", "inventory")); ModelLoader.setCustomModelResourceLocation(ModItems.ENDER_COMPASS, 0, new ModelResourceLocation("findyourway:ender_compass", "inventory"));
} }