It compiles!!!

All compasses work except the Nether Fortress Compass!
TODO
 - Fix the Nether portal compass
 - Add igloo compass
 - Add temple compass
 - add witch hut compass
This commit is contained in:
Yavin7
2019-07-01 02:16:12 -05:00
parent d737b57983
commit 921a997cef
194 changed files with 398 additions and 941 deletions

View File

@@ -13,9 +13,9 @@ apply plugin: 'net.minecraftforge.gradle'
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
version = '1.0'
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'modid'
version = '2.0.0-beta'
group = 'net.yavin.findyourway' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'findyourway'
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
@@ -97,12 +97,12 @@ dependencies {
jar {
manifest {
attributes([
"Specification-Title": "examplemod",
"Specification-Vendor": "examplemodsareus",
"Specification-Version": "1", // We are version 1 of ourselves
"Specification-Title": "findyourway",
"Specification-Vendor": "Yavin7",
"Specification-Version": "2.0.0-beta",
"Implementation-Title": project.name,
"Implementation-Version": "${version}",
"Implementation-Vendor" :"examplemodsareus",
"Implementation-Vendor" :"Yavin7",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}

View File

@@ -1,5 +1,6 @@
#Fri Jun 28 08:25:56 CDT 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip

View File

@@ -1,84 +0,0 @@
package com.example.examplemod;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.stream.Collectors;
// The value here should match an entry in the META-INF/mods.toml file
@Mod("examplemod")
public class ExampleMod
{
// Directly reference a log4j logger.
private static final Logger LOGGER = LogManager.getLogger();
public ExampleMod() {
// Register the setup method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
// Register the enqueueIMC method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
// Register the processIMC method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
// Register the doClientStuff method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);
// Register ourselves for server and other game events we are interested in
MinecraftForge.EVENT_BUS.register(this);
}
private void setup(final FMLCommonSetupEvent event)
{
// some preinit code
LOGGER.info("HELLO FROM PREINIT");
LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());
}
private void doClientStuff(final FMLClientSetupEvent event) {
// do something that can only be done on the client
LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().gameSettings);
}
private void enqueueIMC(final InterModEnqueueEvent event)
{
// some example code to dispatch IMC to another mod
InterModComms.sendTo("examplemod", "helloworld", () -> { LOGGER.info("Hello world from the MDK"); return "Hello world";});
}
private void processIMC(final InterModProcessEvent event)
{
// some example code to receive and process InterModComms from other mods
LOGGER.info("Got IMC {}", event.getIMCStream().
map(m->m.getMessageSupplier().get()).
collect(Collectors.toList()));
}
// You can use SubscribeEvent and let the Event Bus discover methods to call
@SubscribeEvent
public void onServerStarting(FMLServerStartingEvent event) {
// do something when the server starts
LOGGER.info("HELLO from server starting");
}
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
// Event bus for receiving Registry Events)
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
@SubscribeEvent
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
// register a new block here
LOGGER.info("HELLO from Register Block");
}
}
}

View File

@@ -1,121 +0,0 @@
package net.yseven.findyourway.Client;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItemFrame;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.item.IItemPropertyGetter;
import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.yseven.findyourway.setup.ClientProxy;
import net.yseven.findyourway.setup.ServerProxy;
import javax.annotation.Nullable;
import javax.annotation.ParametersAreNonnullByDefault;
public class AngleGetter implements IItemPropertyGetter {
@SideOnly(Side.CLIENT)
private double prevAngle = 0.0D;
@SideOnly(Side.CLIENT)
private double prevWobble = 0.0D;
@SideOnly(Side.CLIENT)
private long prevWorldTime = 0L;
@SideOnly(Side.CLIENT)
private BlockPos blockPos;
@Override
@ParametersAreNonnullByDefault
@SideOnly(Side.CLIENT)
public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) {
boolean isLiving = entityIn != null;
Entity errorChicken = new EntityChicken(Minecraft.getMinecraft().world);
Entity entity;
if(isLiving) {
entity = entityIn;
} else if(stack.getItemFrame() != null) {
entity = stack.getItemFrame();
} else {
entity = errorChicken;
}
if (worldIn == null) worldIn = entity.world;
double angle;
setBlockPos(stack);
if(blockPos != null) {
if (blockPos.getY() == 0) return 0.0F;
double entityAngle;
if(isLiving) {
entityAngle = entity.rotationYaw;
} else if(stack.getItemFrame() != null) {
entityAngle = getFrameAngle((EntityItemFrame) entity);
} else {
return 0.0F;
}
entityAngle /= 360.0D;
entityAngle = MathHelper.positiveModulo(entityAngle, 1.0D);
double posAngle = getAngle(blockPos, entity);
posAngle /= Math.PI * 2D;
angle = 0.5D - (entityAngle - 0.25D - posAngle);
} else {
if(!ClientProxy.hasAngleErrrored()) {
System.out.println("Compass angle is random due to an unexpected error");
ClientProxy.AngleHasErrored();
}
angle = 0.0D;
}
if(isLiving) {
angle = wobble(worldIn, angle);
}
return MathHelper.positiveModulo((float) angle, 1.0F);
}
@SideOnly(Side.CLIENT)
private double wobble(World world, double angle) {
long worldTime = world.getTotalWorldTime();
if (worldTime != prevWorldTime) {
prevWorldTime = worldTime;
double angleDifference = angle - prevAngle;
angleDifference = MathHelper.positiveModulo(angleDifference + 0.5D, 1.0D) - 0.5D;
prevWobble += angleDifference * 0.1D;
prevWobble *= 0.8D;
prevAngle = MathHelper.positiveModulo(prevAngle + prevWobble, 1.0D);
}
return prevAngle;
}
@SideOnly(Side.CLIENT)
private void setBlockPos(ItemStack stack) {
for (int i = 0; i < ServerProxy.compassList.size(); i++) {
if (stack.getItem().getUnlocalizedName().equals(ServerProxy.compassList.get(i).getUnlocalizedName())) {
blockPos = ServerProxy.compassList.get(i).getStructurePos();
} else {
if (!ClientProxy.hasAngleErrrored()) {
System.out.println("unable to get blockPos from compassList in AngleGetter class");
}
}
}
}
@SideOnly(Side.CLIENT)
private double getAngle(BlockPos pos, Entity ent) {
return MathHelper.atan2(pos.getZ() - ent.posZ, pos.getX() - ent.posX);
}
@SideOnly(Side.CLIENT)
private double getFrameAngle(EntityItemFrame entity) {
return (double) MathHelper.wrapDegrees(180 + (entity.facingDirection.getHorizontalIndex() * 90));
}
}

View File

@@ -1,9 +1,7 @@
package net.yseven.findyourway;
import net.minecraftforge.common.config.Configuration;
import net.yseven.findyourway.setup.ServerProxy;
public class Config {
/*
private static final String CATEGORY_GENERAL = "ggeneral";
public static boolean useEnderCompass = true;
@@ -34,4 +32,6 @@ public class Config {
useMonumentCompass = cfg.getBoolean("monumentCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Monument Compass");
useVillageCompass = cfg.getBoolean("villageCompass", CATEGORY_GENERAL, useEnderCompass, "Leave as true to enable Village Compass");
}
*/
}

View File

@@ -2,42 +2,71 @@ package net.yseven.findyourway;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.DistExecutor;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.network.simple.SimpleChannel;
import net.yseven.findyourway.item.ItemCompassBase;
import net.yseven.findyourway.item.ModItems;
import net.yseven.findyourway.network.PacketHandler;
import net.yseven.findyourway.setup.ClientProxy;
import net.yseven.findyourway.setup.IProxy;
import net.yseven.findyourway.setup.ModSetup;
import net.yseven.findyourway.setup.ServerProxy;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.util.ArrayList;
@Mod("findyourway")
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public class FindYourWay {
//TODO Fix the ServerProxy and ClientProxy and add both to the setup package
public static IProxy proxy = DistExecutor.runForDist(() -> () -> new ClientProxy(), () -> () -> new ServerProxy())
public static final String MOD_NAME = "Find Your Way";
public static final String MODID = "findyourway";
public static final String VERSION = "2.0.0-beta";
public static IProxy proxy = DistExecutor.runForDist(() -> () -> new ClientProxy(), () -> () -> new ServerProxy());
public static final Logger LOGGER = LogManager.getLogger();
public static ModSetup setup = new ModSetup();
public static ItemGroup creativeTab = new ItemGroup("FindYourWay") {
@Override
public ItemStack createIcon() {
return new ItemStack(ModItems.ENDER_COMPASS);
}
};
public static ArrayList<ItemCompassBase> compassList = new ArrayList<ItemCompassBase>();
public static SimpleChannel networkHandler;
public FindYourWay() {
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
MinecraftForge.EVENT_BUS.register(this);
}
private void setup(final FMLCommonSetupEvent event) {
setup.init();
proxy.init();
PacketHandler.registerMessages(FindYourWay.MODID);
proxy.init(event);
}
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
@SubscribeEvent
public static void onItemsRegistry(final RegistryEvent.Register<Item> event) {
Item.Properties properties = new Item.Properties().group(setup.itemGroup);
}
ModItems.init();
LOGGER.log(Level.INFO, "Registering items");
event.getRegistry().register(ModItems.ENDER_COMPASS);
event.getRegistry().register(ModItems.FORTRESS_COMPASS);
event.getRegistry().register(ModItems.MANSION_COMPASS);
event.getRegistry().register(ModItems.MONUMENT_COMPASS);
event.getRegistry().register(ModItems.VILLAGE_COMPASS);
}
}

View File

@@ -1,31 +0,0 @@
package net.yseven.findyourway.Network;
import net.minecraft.client.Minecraft;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.yseven.findyourway.item.ItemCompassBase;
public class MessageHandlerOnClient implements IMessageHandler<MessageToClient, IMessage> {
public IMessage onMessage(final MessageToClient message, MessageContext ctx) {
if (ctx.side != Side.CLIENT) {
System.err.println("MessageToClient received on wrong side: " + ctx.side);
return null;
}
if(!message.isMessageIsValid()) {
System.err.println("MessageToClient is not valid: " + message.toString());
return null;
}
Minecraft minecraft = Minecraft.getMinecraft();
minecraft.addScheduledTask(() -> processMessage(message.getCompass(), message.getStructurePos()));
return null;
}
private void processMessage(ItemCompassBase compass, BlockPos pos) {
compass.setStructurePos(pos);
}
}

View File

@@ -1,49 +0,0 @@
package net.yseven.findyourway.Network;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.WorldServer;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
import net.minecraftforge.fml.relauncher.Side;
import net.yseven.findyourway.setup.ServerProxy;
public class MessageHandlerOnServer implements IMessageHandler<MessageToServer, IMessage> {
public IMessage onMessage(final MessageToServer message, MessageContext ctx) {
if(ctx.side != Side.SERVER) {
System.err.println("MessageToServer received on wrong side: " + ctx.side);
return null;
}
if(!message.isMessageIsValid()) {
System.err.println("MessageToServer is not valid: " + message.toString());
}
final EntityPlayerMP sendingPlayer = ctx.getServerHandler().player;
if(sendingPlayer == null) {
System.err.println("EntityPlayerMP was null MessageToServer was received!");
return null;
}
final WorldServer playerWorldServer = sendingPlayer.getServerWorld();
playerWorldServer.addScheduledTask(() -> processMessage(message, sendingPlayer));
return null;
}
private void processMessage(MessageToServer message, EntityPlayerMP sendingPlayer) {
int dimension = sendingPlayer.dimension;
WorldServer world = (WorldServer)sendingPlayer.world;
BlockPos structurePos;
if(world.getChunkProvider().getNearestStructurePos(world, message.getStructureType(), sendingPlayer.getPosition(), true) != null) {
structurePos = world.getChunkProvider().getNearestStructurePos(world, message.getStructureType(), sendingPlayer.getPosition(), true);
} else {
structurePos = new BlockPos(0, 0, 0);
}
MessageToClient msg = new MessageToClient(structurePos, message.getCompass());
if (dimension == sendingPlayer.dimension) {
ServerProxy.simpleNetworkWrapper.sendTo(msg, sendingPlayer);
}
}
}

View File

@@ -1,12 +0,0 @@
package net.yseven.findyourway.Network;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
public class MessageHandlerOnServerDummy implements IMessageHandler<MessageToClient, IMessage> {
public IMessage onMessage(final MessageToClient message, MessageContext ctx) {
System.err.println("TargetEffectMessageToClient received on wrong side:" + ctx.side);
return null;
}
}

View File

@@ -1,63 +0,0 @@
package net.yseven.findyourway.Network;
import io.netty.buffer.ByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.yseven.findyourway.item.ItemCompassBase;
public class MessageToClient implements IMessage {
private ItemCompassBase compass;
private BlockPos structurePos;
private boolean messageIsValid;
public boolean isMessageIsValid() {
return messageIsValid;
}
public ItemCompassBase getCompass() {
return compass;
}
public BlockPos getStructurePos() {
return structurePos;
}
public MessageToClient() {
messageIsValid = false;
}
public MessageToClient(BlockPos pos, ItemCompassBase compassBase) {
structurePos = pos;
compass = compassBase;
messageIsValid = true;
}
@Override
public void fromBytes(ByteBuf buf) {
try {
double x = buf.readDouble();
double y = buf.readDouble();
double z = buf.readDouble();
structurePos = new BlockPos(x, y, z);
compass = ItemCompassBase.fromBytes(buf);
} catch (IndexOutOfBoundsException ioe) {
System.err.println("Error while reading MessageToClient: " + ioe);
return;
}
messageIsValid = true;
}
@Override
public void toBytes(ByteBuf buf) {
if(!isMessageIsValid()) return;
buf.writeDouble(structurePos.getX());
buf.writeDouble(structurePos.getY());
buf.writeDouble(structurePos.getZ());
compass.toBytes(buf);
}
@Override
public String toString() {
return "Structure Position is: " + structurePos.toString() + "!";
}
}

View File

@@ -1,55 +0,0 @@
package net.yseven.findyourway.Network;
import io.netty.buffer.ByteBuf;
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
import net.yseven.findyourway.item.ItemCompassBase;
public class MessageToServer implements IMessage {
private ItemCompassBase compass;
private String structureType;
private boolean messageIsValid;
public MessageToServer(ItemCompassBase compassItem) {
compass = compassItem;
messageIsValid = true;
}
public String getStructureType() {
return structureType;
}
public ItemCompassBase getCompass() {
return compass;
}
public boolean isMessageIsValid() {
return messageIsValid;
}
public MessageToServer() {
messageIsValid = false;
}
@Override
public void fromBytes(ByteBuf buf) {
try {
compass = ItemCompassBase.fromBytes(buf);
} catch (IndexOutOfBoundsException ioe) {
System.err.println("Exception while reading MessageToServer: " + ioe);
return;
}
structureType = compass.getStructureType();
messageIsValid = true;
}
@Override
public void toBytes(ByteBuf buf){
if(!isMessageIsValid()) return;
compass.toBytes(buf);
}
@Override
public String toString() {
return "MessageToServer[compass=" + String.valueOf(compass) + ", structurePos=]";
}
}

View File

@@ -0,0 +1,42 @@
package net.yseven.findyourway.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.ServerWorld;
import net.minecraftforge.common.DimensionManager;
import net.minecraftforge.fml.network.NetworkDirection;
import net.minecraftforge.fml.network.NetworkEvent;
import net.yseven.findyourway.item.ItemCompassBase;
import java.util.function.Supplier;
public class PacketGetCompassBlockPos {
private ItemCompassBase compass;
public PacketGetCompassBlockPos() {
}
public PacketGetCompassBlockPos(ByteBuf buf) {
compass = ItemCompassBase.getCompassFromId(buf.readInt());
}
public void toBytes(ByteBuf buf) {
buf.writeInt(compass.getItemCompassID());
}
public PacketGetCompassBlockPos(ItemCompassBase compass) {
this.compass = compass;
}
public void handle(Supplier<NetworkEvent.Context> ctx) {
ctx.get().enqueueWork(() -> {
ServerWorld world = DimensionManager.getWorld(ctx.get().getSender().server, compass.getStructureDimension(), true, false);
if(world.getDimension().getType() == compass.getStructureDimension()) {
BlockPos structurePos = world.getWorld().getChunkProvider().getChunkGenerator().findNearestStructure(world, compass.getStructureType(), ctx.get().getSender().getPosition(), 10000, true);
PacketHandler.INSTANCE.sendTo(new PacketReturnCompassBlockPos(structurePos, compass), ctx.get().getSender().connection.getNetworkManager(), NetworkDirection.PLAY_TO_CLIENT);
}
});
ctx.get().setPacketHandled(true);
}
}

View File

@@ -0,0 +1,31 @@
package net.yseven.findyourway.network;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.network.NetworkRegistry;
import net.minecraftforge.fml.network.simple.SimpleChannel;
import net.yseven.findyourway.FindYourWay;
public class PacketHandler {
public static SimpleChannel INSTANCE;
private static int ID = 0;
public static int nextPacketId() {
return ID++;
}
public static void registerMessages(String channelName) {
INSTANCE = NetworkRegistry.newSimpleChannel(new ResourceLocation(FindYourWay.MODID, channelName), () -> "1.0", s -> true, s -> true);
//Server Side
INSTANCE.registerMessage(nextPacketId(), PacketReturnCompassBlockPos.class,
PacketReturnCompassBlockPos::toBytes,
PacketReturnCompassBlockPos::new,
PacketReturnCompassBlockPos::handle);
//Client Side
INSTANCE.registerMessage(nextPacketId(), PacketGetCompassBlockPos.class,
PacketGetCompassBlockPos::toBytes,
PacketGetCompassBlockPos::new,
PacketGetCompassBlockPos::handle);
}
}

View File

@@ -0,0 +1,40 @@
package net.yseven.findyourway.network;
import io.netty.buffer.ByteBuf;
import net.minecraft.util.math.BlockPos;
import net.minecraftforge.fml.network.NetworkEvent;
import net.yseven.findyourway.FindYourWay;
import net.yseven.findyourway.item.ItemCompassBase;
import java.util.function.Supplier;
public class PacketReturnCompassBlockPos {
private BlockPos pos;
private ItemCompassBase compass;
public PacketReturnCompassBlockPos() {
}
public PacketReturnCompassBlockPos(BlockPos pos, ItemCompassBase compass) {
this.pos = pos;
this.compass = compass;
}
public PacketReturnCompassBlockPos(ByteBuf buf) {
pos = BlockPos.fromLong(buf.readLong());
compass = ItemCompassBase.getCompassFromId(buf.readInt());
}
public void toBytes(ByteBuf buf) {
buf.writeLong(pos.toLong());
buf.writeInt(compass.getItemCompassID());
}
public void handle(Supplier<NetworkEvent.Context> ctx) {
ctx.get().enqueueWork(() -> {
compass.setStructurePos(pos);
});
ctx.get().setPacketHandled(true);
}
}

View File

@@ -1,104 +1,4 @@
package net.yseven.findyourway.item;
import io.netty.buffer.ByteBuf;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.ActionResult;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.yseven.findyourway.Client.AngleGetter;
import net.yseven.findyourway.setup.ClientProxy;
import net.yseven.findyourway.setup.ServerProxy;
import net.yseven.findyourway.FindYourWay;
import javax.annotation.Nonnull;
public class ItemCompassBase extends Item {
private String structureType;
private BlockPos structurePos;
private World structureWorld;
private final int ItemCompassID;
public ItemCompassBase(String name, String structureName) {
setUnlocalizedName(FindYourWay.modId + "." + name);
setRegistryName(name);
structureType = structureName;
setCreativeTab(CreativeTabs.TOOLS);
setMaxStackSize(1);
ServerProxy.compassList.add(this);
ItemCompassID = ServerProxy.compassList.indexOf(this);
}
public String toString() {
return getUnlocalizedName();
}
//getters
public String getStructureType() {
return structureType;
}
public BlockPos getStructurePos() {
return structurePos;
}
public World getStructureWorld() {
return structureWorld;
}
public int getCompassID() {
return ItemCompassID;
}
//setters
public void setStructureType(String type) {
structureType= type;
}
public void setStructurePos(BlockPos pos) {
structurePos = pos;
}
public void setStructureWorld(World world) {
structureWorld = world;
}
//netcode implementation
public void toBytes(ByteBuf buf) {
if(ServerProxy.compassList.contains(this)) {
buf.writeInt(ItemCompassID);
}
}
public static ItemCompassBase fromBytes(ByteBuf buf) {
int ID = buf.readInt();
for(int i = 0; i <= ServerProxy.compassList.size(); i++) {
if(ID == ServerProxy.compassList.get(i).getCompassID()) return ServerProxy.compassList.get(i);
}
return null;
}
//Client Code (mostly registration)
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void registerItemModel() {
this.addPropertyOverride(new ResourceLocation("angle"), new AngleGetter());
ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(FindYourWay.modId + ":" + this.getUnlocalizedName(), "inventory"));
}
@Override
public ActionResult<ItemStack> onItemRightClick(World world, EntityPlayer player, @Nonnull EnumHand hand) {
if (world.isRemote) {
ClientProxy.resetStructurePos(this);
}
return new ActionResult<>(EnumActionResult.SUCCESS, player.getHeldItem(hand));
}
public class ItemCompassBase {
}

View File

@@ -1,74 +1,49 @@
package net.yseven.findyourway.item;
import net.minecraft.item.Item;
import net.minecraft.world.dimension.DimensionType;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.yseven.findyourway.Config;
import net.minecraftforge.registries.ObjectHolder;
import net.yseven.findyourway.FindYourWay;
import org.apache.logging.log4j.Level;
import static net.yseven.findyourway.FindYourWay.modId;
import java.io.Console;
public class ModItems {
@ObjectHolder("findyourway:ender_compass")
public static ItemCompassBase ENDER_COMPASS;
public static ItemCompassBase VILLAGE_COMPASS;
@ObjectHolder("findyourway:fortress_compass")
public static ItemCompassBase FORTRESS_COMPASS;
@ObjectHolder("findyourway:monument_compass")
public static ItemCompassBase MONUMENT_COMPASS;
@ObjectHolder("findyourway:mansion_compass")
public static ItemCompassBase MANSION_COMPASS;
@ObjectHolder("findyourway:village_compass")
public static ItemCompassBase VILLAGE_COMPASS;
public static void init(){
/*
if(Config.useEnderCompass) {
ENDER_COMPASS = new ItemCompassBase("ender_compass", "Stronghold");
ENDER_COMPASS = new ItemCompassBase("ender_compass", "Stronghold", DimensionType.OVERWORLD);
}
if(Config.useFortressCompass) {
FORTRESS_COMPASS = new ItemCompassBase("fortress_compass", "Fortress");
FORTRESS_COMPASS = new ItemCompassBase("fortress_compass", "Fortress", DimensionType.NETHER);
}
if(Config.useMansionCompass) {
MANSION_COMPASS = new ItemCompassBase("mansion_compass", "Mansion");
MANSION_COMPASS = new ItemCompassBase("mansion_compass", "Mansion", DimensionType.OVERWORLD);
}
if(Config.useMonumentCompass) {
MONUMENT_COMPASS = new ItemCompassBase("monument_compass", "Monument");
MONUMENT_COMPASS = new ItemCompassBase("monument_compass", "Monument", DimensionType.OVERWORLD);
}
if(Config.useVillageCompass) {
VILLAGE_COMPASS = new ItemCompassBase("village_compass", "Village");
}
VILLAGE_COMPASS = new ItemCompassBase("village_compass", "Village", DimensionType.OVERWORLD);
}
@SideOnly(Side.CLIENT)
public static void registerModels() {
if(Config.useEnderCompass) {
ENDER_COMPASS.registerItemModel();
}
if(Config.useFortressCompass) {
FORTRESS_COMPASS.registerItemModel();
}
if(Config.useMansionCompass) {
MANSION_COMPASS.registerItemModel();
}
if(Config.useMonumentCompass) {
MONUMENT_COMPASS.registerItemModel();
}
if(Config.useVillageCompass) {
VILLAGE_COMPASS.registerItemModel();
}
}
public static void registerItems(RegistryEvent.Register<Item> event) {
if(Config.useEnderCompass) {
event.getRegistry().register(ENDER_COMPASS);
}
if(Config.useFortressCompass) {
event.getRegistry().register(FORTRESS_COMPASS);
}
if(Config.useMansionCompass) {
event.getRegistry().register(MANSION_COMPASS);
}
if(Config.useMonumentCompass) {
event.getRegistry().register(MONUMENT_COMPASS);
}
if(Config.useVillageCompass) {
event.getRegistry().register(VILLAGE_COMPASS);
}
*/
ENDER_COMPASS = new ItemCompassBase("ender_compass", "Stronghold", DimensionType.OVERWORLD);
FORTRESS_COMPASS = new ItemCompassBase("fortress_compass", "Fortress", DimensionType.NETHER);
MANSION_COMPASS = new ItemCompassBase("mansion_compass", "Mansion", DimensionType.OVERWORLD);
MONUMENT_COMPASS = new ItemCompassBase("monument_compass", "Monument", DimensionType.OVERWORLD);
VILLAGE_COMPASS = new ItemCompassBase("village_compass", "Village", DimensionType.OVERWORLD);
}
}

View File

@@ -1,82 +1,14 @@
package net.yseven.findyourway.setup;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.multiplayer.WorldClient;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.yseven.findyourway.setup.ServerProxy;
import net.yseven.findyourway.Network.MessageHandlerOnClient;
import net.yseven.findyourway.Network.MessageToClient;
import net.yseven.findyourway.Network.MessageToServer;
import net.yseven.findyourway.item.ItemCompassBase;
import net.yseven.findyourway.item.ModItems;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
@Mod.EventBusSubscriber(Side.CLIENT)
public class ClientProxy extends ServerProxy {
//Get information about the player and world
public static Minecraft getMinecraft() {
return FMLClientHandler.instance().getClient();
}
public static WorldClient getWorld() {
return getMinecraft().world;
}
public static EntityPlayerSP getPlayer() {
return getMinecraft().player;
}
private static boolean angleError = false;
public static boolean hasAngleErrrored() {
return angleError;
}
public static void AngleHasErrored() {
angleError = true;
}
public static boolean hasCompass(ItemCompassBase compass) {
return getPlayer() != null && ServerProxy.containsCompass(getPlayer().inventory, compass);
}
public static void resetStructurePos(ItemCompassBase compass) {
compass.setStructurePos(null);
compass.setStructureWorld(getWorld());
ServerProxy.simpleNetworkWrapper.sendToServer(new MessageToServer(compass));
}
//Proxy Info
public class ClientProxy implements IProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
super.preInit(event);
public void init(FMLCommonSetupEvent event) {
MinecraftForge.EVENT_BUS.register(this);
ServerProxy.simpleNetworkWrapper.registerMessage(MessageHandlerOnClient.class, MessageToClient.class, ServerProxy.MESSAGE_TO_CLIENT_ID, Side.CLIENT);
}
@Override
public void init(FMLInitializationEvent event) {
super.init(event);
}
@Override
public void postInit(FMLPostInitializationEvent event) {
super.postInit(event);
}
@SubscribeEvent
public static void registerModels(ModelRegistryEvent event) {
ModItems.registerModels();
}
/*
@SubscribeEvent
public void onClientTick(TickEvent.ClientTickEvent event) {
for(int i = 0; i < ServerProxy.compassList.size(); i++) {
@@ -87,4 +19,5 @@ public class ClientProxy extends ServerProxy {
}
}
}
*/
}

View File

@@ -1,9 +1,7 @@
package net.yseven.findyourway.setup;
import net.minecraft.world.World;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
public interface IProxy {
void init();
World getClientWorld();
void init(FMLCommonSetupEvent event);
}

View File

@@ -1,18 +0,0 @@
package net.yseven.findyourway.setup;
import net.minecraft.item.ItemGroup;
import net.minecraft.item.ItemStack;
import net.yseven.findyourway.item.ModItems;
public class ModSetup {
public ItemGroup itemGroup = new ItemGroup("findyourway") {
@java.lang.Override
public ItemStack createIcon() {
return new ItemStack(ModItems.ENDER_COMPASS);
}
}
public void init() {
}
}

View File

@@ -1,75 +1,13 @@
package net.yseven.findyourway.setup;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.network.NetworkRegistry;
import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import net.minecraftforge.fml.relauncher.Side;
import net.yseven.findyourway.Config;
import net.yseven.findyourway.FindYourWay;
import net.yseven.findyourway.Network.MessageHandlerOnServer;
import net.yseven.findyourway.Network.MessageHandlerOnServerDummy;
import net.yseven.findyourway.Network.MessageToClient;
import net.yseven.findyourway.Network.MessageToServer;
import net.yseven.findyourway.item.ItemCompassBase;
import net.yseven.findyourway.item.ModItems;
import java.io.File;
import java.util.ArrayList;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
@Mod.EventBusSubscriber
public class ServerProxy {
public class ServerProxy implements IProxy {
public static ArrayList<ItemCompassBase> compassList = new ArrayList<ItemCompassBase>();
public static SimpleNetworkWrapper simpleNetworkWrapper;
public static Configuration config;
@Override
public void init(FMLCommonSetupEvent event) {
public static final byte MESSAGE_TO_SERVER_ID = 71;
public static final byte MESSAGE_TO_CLIENT_ID = 72;
public void preInit(FMLPreInitializationEvent event) {
File directory = event.getModConfigurationDirectory();
config = new Configuration(new File(directory.getPath(), "findyourway.cfg"));
Config.readConfig();
ModItems.init();
simpleNetworkWrapper = NetworkRegistry.INSTANCE.newSimpleChannel(FindYourWay.modId);
simpleNetworkWrapper.registerMessage(MessageHandlerOnServer.class, MessageToServer.class, MESSAGE_TO_SERVER_ID, Side.SERVER);
simpleNetworkWrapper.registerMessage(MessageHandlerOnServerDummy.class, MessageToClient.class, MESSAGE_TO_CLIENT_ID, Side.SERVER);
}
public void init(FMLInitializationEvent event) {
}
public void postInit(FMLPostInitializationEvent event) {
if(config.hasChanged()){
config.save();
}
}
@SubscribeEvent
public static void registerItems(RegistryEvent.Register<Item> event) {
ModItems.registerItems(event);
}
public static boolean containsCompass(IInventory inventory, ItemCompassBase compass) {
for(int slot = 0; slot < inventory.getSizeInventory(); slot++) {
ItemStack stack = inventory.getStackInSlot(slot);
if(!stack.isEmpty() && stack.getItem() == compass) {
return true;
}
}
return false;
}
}

View File

@@ -8,35 +8,42 @@ modLoader="javafml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the forge version
loaderVersion="[26,)" #mandatory (26 is current forge version)
# A URL to refer people to when problems occur with this mod
issueTrackerURL="http://my.issue.tracker/" #optional
#issueTrackerURL="http://my.issue.tracker/" #optional
# A list of mods - how many allowed here is determined by the individual mod loader
[[mods]] #mandatory
# The modid of the mod
modId="examplemod" #mandatory
modId="findyourway" #mandatory
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
version="${file.jarVersion}" #mandatory
version="2.0.0-beta" #mandatory
# A display name for the mod
displayName="Example Mod" #mandatory
displayName="Find Your Way" #mandatory
# A URL to query for updates for this mod. See the JSON update specification <here>
updateJSONURL="http://myurl.me/" #optional
#updateJSONURL="http://myurl.me/" #optional
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="http://example.com/" #optional
displayURL="https://www.curseforge.com/minecraft/mc-mods/find-your-way" #optional
# A file name (in the root of the mod JAR) containing a logo for display
logoFile="examplemod.png" #optional
logoFile="logo.png" #optional
# A text field displayed in the mod UI
credits="Thanks for this example mod goes to Java" #optional
credits="Thank you Nightmali for your love and support" #optional
# A text field displayed in the mod UI
authors="Love, Cheese and small house plants" #optional
authors="Yavin7" #optional
# The description text for the mod (multi line!) (#mandatory)
description='''
This is a long form description of the mod. You can write whatever you want here
Find Your Way provides several compasses to structures generated by Minecraft.
Have some lorem ipsum.
Current compasses include:
- Ender Compass
- Fortress Compass
- Mansion Compass
- Monument Compass
- Village Compass
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magna. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed sagittis luctus odio eu tempus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque volutpat ligula eget lacus auctor sagittis. In hac habitasse platea dictumst. Nunc gravida elit vitae sem vehicula efficitur. Donec mattis ipsum et arcu lobortis, eleifend sagittis sem rutrum. Cras pharetra quam eget posuere fermentum. Sed id tincidunt justo. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
The compasses automatically point to the nearest structure for the world you are in, and always point forwards if the structure does not exist in your world. You can right-click to re-scan for new structures, such as new Villages.
The Stronghold Compass points to the same location as Ender Eyes, so you still need to explore the actual stronghold to find the End Portal.
'''
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
[[dependencies.examplemod]] #optional
[[dependencies.findyourway]] #optional
# the modid of the dependency
modId="forge" #mandatory
# Does this dependency have to exist - if not, ordering below must be specified
@@ -47,10 +54,3 @@ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis lacinia magn
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
side="BOTH"
# Here's another dependency
[[dependencies.examplemod]]
modId="minecraft"
mandatory=true
versionRange="[1.14.2]"
ordering="NONE"
side="BOTH"

View File

@@ -0,0 +1,10 @@
{
"key.categories.findyourway": "Find Your Way",
"item.findyourway.ender_compass": "Ender Compass",
"item.findyourway.village_compass": "Village Compass",
"item.findyourway.fortress_compass": "Fortress Compass",
"item.findyourway.monument_compass": "Monument Compass",
"item.findyourway.mansion_compass": "Mansion Compass",
"itemGroup.FindYourWay": "Find Your Way"
}

View File

@@ -1,6 +0,0 @@
# Items
item.findyourway.ender_compass.name=Ender Compass
item.findyourway.village_compass.name=Village Compass
item.findyourway.fortress_compass.name=Fortress Compass
item.findyourway.monument_compass.name=Monument Compass
item.findyourway.mansion_compass.name=Mansion Compass

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_16"
},

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_16"
},

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_00"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_01"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_02"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_03"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_04"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_05"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_06"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_07"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_08"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_09"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_10"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_11"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_12"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_13"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_14"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_15"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_16"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_17"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_18"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_19"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_20"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_21"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_22"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_23"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_24"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_25"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_26"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_27"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_28"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_29"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_30"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/ender_compass_31"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_00"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_01"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_02"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_03"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_04"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_05"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_06"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_07"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_08"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_09"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_10"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_11"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_12"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_13"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_14"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_15"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_16"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_17"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_18"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_19"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_20"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_21"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_22"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_23"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_24"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_25"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_26"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_27"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_28"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_29"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_30"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/fortress_compass_31"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_00"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_01"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_02"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_03"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_04"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_05"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_06"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_07"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_08"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_09"
}

View File

@@ -1,5 +1,5 @@
{
"parent": "item/generated",
"parent": "item/handheld",
"textures": {
"layer0": "findyourway:items/mansion_compass_10"
}

Some files were not shown because too many files have changed in this diff Show More