From dffc8c1bb771eab0ff9ccde167165c7f95f5de79 Mon Sep 17 00:00:00 2001 From: kitsushadow Date: Thu, 24 Nov 2016 01:02:39 -0500 Subject: [PATCH] Updating with more base classes --- .../forgecraft/api/ForgeCraftBlocks.java | 310 +----------------- .../forgecraft/client/gui/GuiFactory.java | 30 ++ .../forgecraft/client/gui/GuiHandler.java | 47 +++ .../client/models/MeshDefinitionFix.java | 37 +++ 4 files changed, 115 insertions(+), 309 deletions(-) create mode 100644 src/main/java/nmd/primal/forgecraft/client/gui/GuiFactory.java create mode 100644 src/main/java/nmd/primal/forgecraft/client/gui/GuiHandler.java create mode 100644 src/main/java/nmd/primal/forgecraft/client/models/MeshDefinitionFix.java diff --git a/src/main/java/nmd/primal/forgecraft/api/ForgeCraftBlocks.java b/src/main/java/nmd/primal/forgecraft/api/ForgeCraftBlocks.java index 0b0c210e..34455b57 100644 --- a/src/main/java/nmd/primal/forgecraft/api/ForgeCraftBlocks.java +++ b/src/main/java/nmd/primal/forgecraft/api/ForgeCraftBlocks.java @@ -8,313 +8,5 @@ import net.minecraft.block.Block; public class ForgeCraftBlocks { - public static Block WORKTABLE_MUD; - public static Block WORKTABLE_MUD_SLAB; - public static Block WORKTABLE_END; - public static Block WORKTABLE_NETHERSTONE; - public static Block WORKTABLE_SANDSTONE; - - public static Block WORKTABLE_ACACIA_LOG; - public static Block WORKTABLE_BIGOAK_LOG; - public static Block WORKTABLE_BIRCH_LOG; - public static Block WORKTABLE_JUNGLE_LOG; - public static Block WORKTABLE_OAK_LOG; - public static Block WORKTABLE_SPRUCE_LOG; - public static Block WORKTABLE_IRONWOOD_LOG; - - public static Block WORKTABLE_ACACIA; - public static Block WORKTABLE_BIGOAK; - public static Block WORKTABLE_BIRCH; - public static Block WORKTABLE_JUNGLE; - public static Block WORKTABLE_OAK; - public static Block WORKTABLE_SPRUCE; - public static Block WORKTABLE_NETHERPALM; - public static Block WORKTABLE_IRONWOOD; - - public static Block SHELF_FULL_ACACIA; - public static Block SHELF_FULL_BIGOAK; - public static Block SHELF_FULL_BIRCH; - public static Block SHELF_FULL_END; - public static Block SHELF_FULL_IRONWOOD; - public static Block SHELF_FULL_JUNGLE; - public static Block SHELF_FULL_MUD; - public static Block SHELF_FULL_NETHERPALM; - public static Block SHELF_FULL_NETHERRACK; - public static Block SHELF_FULL_NETHERSTONE; - public static Block SHELF_FULL_OAK; - public static Block SHELF_FULL_SANDSTONE; - public static Block SHELF_FULL_SPRUCE; - public static Block SHELF_FULL_STONE; - - public static Block SHELF_HALF_ACACIA; - public static Block SHELF_HALF_BIGOAK; - public static Block SHELF_HALF_BIRCH; - public static Block SHELF_HALF_END; - public static Block SHELF_HALF_IRONWOOD; - public static Block SHELF_HALF_JUNGLE; - public static Block SHELF_HALF_MUD; - public static Block SHELF_HALF_NETHERPALM; - public static Block SHELF_HALF_NETHERRACK; - public static Block SHELF_HALF_NETHERSTONE; - public static Block SHELF_HALF_OAK; - public static Block SHELF_HALF_SANDSTONE; - public static Block SHELF_HALF_SPRUCE; - - public static Block DRYING_RACK_ACACIA; - public static Block DRYING_RACK_BIGOAK; - public static Block DRYING_RACK_BIRCH; - public static Block DRYING_RACK_IRONWOOD; - public static Block DRYING_RACK_JUNGLE; - public static Block DRYING_RACK_NETHERPALM; - public static Block DRYING_RACK_OAK; - public static Block DRYING_RACK_SPRUCE; - - public static Block FISH_TRAP_ACACIA; - public static Block FISH_TRAP_BIGOAK; - public static Block FISH_TRAP_BIRCH; - public static Block FISH_TRAP_IRONWOOD; - public static Block FISH_TRAP_JUNGLE; - public static Block FISH_TRAP_NETHERPALM; - public static Block FISH_TRAP_OAK; - public static Block FISH_TRAP_SPRUCE; - - public static Block SLAT_ACACIA; - public static Block SLAT_BIGOAK; - public static Block SLAT_BIRCH; - public static Block SLAT_JUNGLE; - public static Block SLAT_OAK; - public static Block SLAT_SPRUCE; - public static Block SLAT_IRON; - public static Block SLAT_NETHERPALM; - public static Block SLAT_IRONWOOD; - - public static Block SLAB_ENDBRICK; - public static Block SLAB_ENDSTONE; - public static Block SLAB_NETHERRACK; - public static Block SLAB_NETHERSTONE; - public static Block SLAB_MUD; - public static Block SLAB_CARBONATE_BRICK; - public static Block SLAB_CARBONATE_FLAG; - public static Block SLAB_FERRO_BRICK; - public static Block SLAB_FERRO_FLAG; - public static Block SLAB_GLASS; - public static Block SLAB_NETHERPALM; - public static Block SLAB_IRONWOOD; - public static Block SLAB_SOULSTONE; - public static Block SLAB_STONEBRICK_MOSSY; - - public static Block THIN_SLAB_ACACIA; - public static Block THIN_SLAB_BIGOAK; - public static Block THIN_SLAB_BIRCH; - public static Block THIN_SLAB_CARBONATE_BRICK; - public static Block THIN_SLAB_CARBONATE_FLAG; - public static Block THIN_SLAB_ENDBRICK; - public static Block THIN_SLAB_ENDSTONE; - public static Block THIN_SLAB_FERRO_BRICK; - public static Block THIN_SLAB_FERRO_FLAG; - public static Block THIN_SLAB_GLASS; - public static Block THIN_SLAB_IRONWOOD; - public static Block THIN_SLAB_JUNGLE; - public static Block THIN_SLAB_MUD; - public static Block THIN_SLAB_NETHERBRICK; - public static Block THIN_SLAB_NETHERPALM; - public static Block THIN_SLAB_NETHERRACK; - public static Block THIN_SLAB_NETHERSTONE; - public static Block THIN_SLAB_OAK; - public static Block THIN_SLAB_SANDSTONE; - public static Block THIN_SLAB_SOULSTONE; - public static Block THIN_SLAB_SPRUCE; - public static Block THIN_SLAB_STONEBRICK; - public static Block THIN_SLAB_STONEBRICK_MOSSY; - public static Block THIN_SLAB_THATCH; - - public static Block GRATE_ACACIA; - public static Block GRATE_BIGOAK; - public static Block GRATE_BIRCH; - public static Block GRATE_CARBONATE_BRICK; - public static Block GRATE_CARBONATE_FLAG; - public static Block GRATE_ENDBRICK; - public static Block GRATE_ENDSTONE; - public static Block GRATE_FERRO_BRICK; - public static Block GRATE_FERRO_FLAG; - public static Block GRATE_IRONWOOD; - public static Block GRATE_JUNGLE; - public static Block GRATE_MUD; - public static Block GRATE_NETHERBRICK; - public static Block GRATE_NETHERPALM; - public static Block GRATE_NETHERRACK; - public static Block GRATE_NETHERSTONE; - public static Block GRATE_OAK; - public static Block GRATE_SANDSTONE; - public static Block GRATE_SOULSTONE; - public static Block GRATE_SPRUCE; - public static Block GRATE_STONEBRICK; - public static Block GRATE_STONEBRICK_MOSSY; - public static Block GRATE_THATCH; - - public static Block DRAIN_CARBONATE_BRICK; - public static Block DRAIN_CARBONATE_FLAG; - public static Block DRAIN_ENDSTONE; - public static Block DRAIN_ENDBRICK; - public static Block DRAIN_FERRO_BRICK; - public static Block DRAIN_FERRO_FLAG; - public static Block DRAIN_MUD; - public static Block DRAIN_NETHERBRICK; - public static Block DRAIN_NETHERRACK; - public static Block DRAIN_NETHERSTONE; - public static Block DRAIN_STONE; - public static Block DRAIN_STONEBRICK; - public static Block DRAIN_STONEBRICK_MOSSY; - public static Block DRAIN_THATCH; - - public static Block LANTERN_EMPTY; - public static Block LANTERN_TORCH; - public static Block LANTERN_NETHER; - public static Block LANTERN_REDSTONE; - public static Block LANTERN_IGNIS; - - public static Block TORCH_WOOD; - public static Block TORCH_NETHER; - public static Block TORCH_SMOKER; - public static Block JACK_O_LANTERN; - public static Block IGNIS_FATUUS; - - public static Block LEVER_WOOD; - public static Block LEVER_NETHER; - //public static Block NETHER_REDSTONE_TORCH; - - public static Block NETHERSTONE; - public static Block NETHERPALM_LOG; - public static Block NETHERPALM_PLANK; - public static Block IRONWOOD_LEAVES; - public static Block IRONWOOD_LOG; - public static Block IRONWOOD_PLANK; - public static Block SOULSTONE_NORMAL; - public static Block SOULSTONE_SMOOTH; - public static Block SOULSTONE_CHISELED; - public static Block SOULSTONE_FLAGSTONE; - - public static Block CARBONATE_STONE; - public static Block CARBONATE_FLAG; - public static Block CARBONATE_BRICK; - - public static Block FERRO_STONE; - public static Block FERRO_FLAG; - public static Block FERRO_BRICK; - - - public static Block TERRACOTTA_BRICK; - public static Block CINISCOTTA_BRICK; - public static Block DIRT_BRICK; - public static Block MUD_BRICK_DRY; - public static Block MUD_BRICK_WET; - public static Block MUD_BLOCK_DRY; - public static Block MUD_BLOCK_WET; - public static Block LOAM_BLOCK; - public static Block THATCH; - public static Block THATCH_WET; - - - /// - // ores, condensed blocks, metals, alloys - /// - public static Block ASH_BLOCK; - public static Block ASH_LAYER; - public static Block ASH_STABILIZED; - public static Block EARTHWAX_BLOCK; - public static Block TERRACLAY_BLOCK; - public static Block CINISCLAY_BLOCK; - - public static Block ORE_IRON; - - public static Block BRASS_BLOCK; - public static Block BRONZE_BLOCK; - public static Block COPPER_BLOCK; - public static Block LEAD_BLOCK; - public static Block PIGIRON_BLOCK; - public static Block SILVER_BLOCK; - public static Block TIN_BLOCK; - public static Block VANADIUM_BLOCK; - public static Block WOOTZ_BLOCK; - public static Block ZINC_BLOCK; - - public static Block SALT_HALITE_BLOCK; - public static Block SALT_NETJRY_BLOCK; - public static Block SALT_FIRE_BLOCK; - public static Block SALT_VOID_BLOCK; - - public static Block GRATED_GRAVEL; - public static Block NETHER_WOOL; - - /// - // Plants - /// - public static Block RUSHES; - public static Block CORN_STALK; - public static Block STRANGLE_WEED; - public static Block NETHER_GRASS; - public static Block NETHER_GRASS_GROWING; - public static Block SEARING_LACE_GROWING; - public static Block SEARING_LACE; - - /// - // sub-blocks - // stairs, walls, fences, slabs - /// - /// - public static Block STAIRS_DIRT; - public static Block STAIRS_GRASS; - public static Block STAIRS_NETHERRACK; - public static Block STAIRS_NETHERSTONE; - public static Block STAIRS_MUD; - public static Block STAIRS_NETHERPALM; - public static Block STAIRS_IRONWOOD; - public static Block STAIRS_CARBONATE_FLAG; - public static Block STAIRS_CARBONATE_BRICK; - public static Block STAIRS_FERRO_FLAG; - public static Block STAIRS_FERRO_BRICK; - public static Block STAIRS_COBBLESTONE_MOSSY; - public static Block STAIRS_STONEBRICK_MOSSY; - - public static Block WALL_NETHERRACK; - public static Block WALL_NETHERSTONE; - public static Block WALL_CARBONATE_FLAG; - public static Block WALL_CARBONATE_BRICK; - public static Block WALL_FERRO_FLAG; - public static Block WALL_FERRO_BRICK; - - public static Block FENCE_IRONWOOD; - public static Block FENCE_NETHERPALM; - - public static Block GATE_IRONWOOD; - public static Block GATE_NETHERPALM; - - public static Block PRESSPLATE_DIRT; - public static Block PRESSPLATE_GRASS; - public static Block PRESSPLATE_GLASS; - public static Block PRESSPLATE_SANDSTONE; - public static Block PRESSPLATE_NETHERRACK; - public static Block PRESSPLATE_NETHERSTONE; - public static Block PRESSPLATE_NETHERPALM; - public static Block PRESSPLATE_IRONWOOD; - public static Block PRESSPLATE_THATCH; - public static Block PRESSPLATE_CARBONATE_FLAG; - public static Block PRESSPLATE_FERRO_FLAG; - - public static Block STOCKADE_ACACIA; - public static Block STOCKADE_BIGOAK; - public static Block STOCKADE_BIRCH; - public static Block STOCKADE_IRONWOOD; - public static Block STOCKADE_JUNGLE; - public static Block STOCKADE_NETHERPALM; - public static Block STOCKADE_OAK; - public static Block STOCKADE_SPRUCE; - - public static Block CLEAN_OAK; - public static Block CLEAN_BIRCH; - public static Block CLEAN_SPRUCE; - public static Block CLEAN_JUNGLE; - public static Block CLEAN_BIG_OAK; - public static Block CLEAN_ACACIA; - public static Block CLEAN_IRONWOOD; + public static Block FIREBOX; } \ No newline at end of file diff --git a/src/main/java/nmd/primal/forgecraft/client/gui/GuiFactory.java b/src/main/java/nmd/primal/forgecraft/client/gui/GuiFactory.java new file mode 100644 index 00000000..8cc172a9 --- /dev/null +++ b/src/main/java/nmd/primal/forgecraft/client/gui/GuiFactory.java @@ -0,0 +1,30 @@ +package nmd.primal.forgecraft.client.gui; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.fml.client.IModGuiFactory; + +import java.util.Set; + +/** + * Created by kitsu on 11/24/2016. + +public class GuiFactory implements IModGuiFactory +{ + @Override + public void initialize(Minecraft minecraftInstance) { } + + /*@Override + public Class mainConfigGuiClass() + { + //return GuiWorkTableBasic.class; + } + + @Override + public Set runtimeGuiCategories() { return null; } + + @Override + public IModGuiFactory.RuntimeOptionGuiHandler getHandlerFor(IModGuiFactory.RuntimeOptionCategoryElement element) { return null; } + +} +*/ \ No newline at end of file diff --git a/src/main/java/nmd/primal/forgecraft/client/gui/GuiHandler.java b/src/main/java/nmd/primal/forgecraft/client/gui/GuiHandler.java new file mode 100644 index 00000000..7513894d --- /dev/null +++ b/src/main/java/nmd/primal/forgecraft/client/gui/GuiHandler.java @@ -0,0 +1,47 @@ +package nmd.primal.forgecraft.client.gui; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.fml.common.network.IGuiHandler; + +/** + * Created by kitsu on 11/24/2016. + */ +public class GuiHandler implements IGuiHandler +{ + /** + * Returns a Server side Container to be displayed to the user. + */ + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) + { + TileEntity tile = world.getTileEntity(new BlockPos(x, y, z)); + switch (ID) + { + //case ModInfo.WORKTABLE_BASIC: return new ContainerWorkTableBasic(player.inventory, (TileWorkTableBasic)tile, world); + //case ModInfo.WORKTABLE_SHELF: return new ContainerWorkTableShelf(player.inventory, (TileWorkTableShelf)tile, world); + //case ModInfo.WORKTABLE_CHEST: return new ContainerWorkTableChest(player.inventory, (TileWorkTableChest)tile, world); + default: return null; + } + } + + /** + * Returns a Container to be displayed to the user. On the client side, this + * needs to return a instance of GuiScreen On the server side, this needs to + * return a instance of Container + */ + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) + { + TileEntity tile = world.getTileEntity(new BlockPos(x, y, z)); + switch (ID) + { + //case ModInfo.WORKTABLE_BASIC: return new GuiWorkTableBasic(player.inventory, (TileWorkTableBasic) tile, world); + //case ModInfo.WORKTABLE_SHELF: return new GuiWorkTableShelf(player.inventory, (TileWorkTableShelf) tile, world); + //case ModInfo.WORKTABLE_CHEST: return new GuiWorkTableBasic(player.inventory, (TileWorkTableChest) tile, world); + default: return null; + } + } +} \ No newline at end of file diff --git a/src/main/java/nmd/primal/forgecraft/client/models/MeshDefinitionFix.java b/src/main/java/nmd/primal/forgecraft/client/models/MeshDefinitionFix.java new file mode 100644 index 00000000..500b9541 --- /dev/null +++ b/src/main/java/nmd/primal/forgecraft/client/models/MeshDefinitionFix.java @@ -0,0 +1,37 @@ +package nmd.primal.forgecraft.client.models; + +/** + * Created by kitsu on 11/24/2016. + */ + +import net.minecraft.client.renderer.ItemMeshDefinition; +import net.minecraft.client.renderer.block.model.ModelResourceLocation; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +/** + * A hackish adapter that allows lambdas to be used as {@link ItemMeshDefinition} implementations without breaking ForgeGradle's + * reobfuscation and causing {@link AbstractMethodError}s. + *

+ * Written by diesieben07 in this thread: + * http://www.minecraftforge.net/forum/index.php/topic,34034.0.html + * + * @author diesieben07 + */ +/* +@SideOnly(Side.CLIENT) +public interface MeshDefinitionFix extends ItemMeshDefinition +{ + ModelResourceLocation getLocation(ItemStack stack); + + // Helper method to easily create lambda instances of this class + static ItemMeshDefinition create(MeshDefinitionFix lambda) { + return lambda; + } + + default ModelResourceLocation getModelLocation(ItemStack stack) { + return getLocation(stack); + } +} +*/ \ No newline at end of file