Moved initialization and storage of registry objects to separate classes.
This commit is contained in:
@@ -4,66 +4,19 @@ import li.cil.ceres.Ceres;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.client.ClientSetup;
|
||||
import li.cil.oc2.common.CommonSetup;
|
||||
import li.cil.oc2.common.block.BusCableBlock;
|
||||
import li.cil.oc2.common.block.ComputerBlock;
|
||||
import li.cil.oc2.common.block.RedstoneInterfaceBlock;
|
||||
import li.cil.oc2.common.block.ScreenBlock;
|
||||
import li.cil.oc2.common.block.entity.BusCableTileEntity;
|
||||
import li.cil.oc2.common.block.entity.ComputerTileEntity;
|
||||
import li.cil.oc2.common.block.entity.RedstoneInterfaceTileEntity;
|
||||
import li.cil.oc2.common.container.ComputerContainer;
|
||||
import li.cil.oc2.common.init.*;
|
||||
import li.cil.sedna.devicetree.DeviceTreeRegistry;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemGroup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraftforge.common.extensions.IForgeContainerType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
@Mod(API.MOD_ID)
|
||||
public final class OpenComputers {
|
||||
public static final ItemGroup ITEM_GROUP = new ItemGroup(API.MOD_ID) {
|
||||
@Override
|
||||
public ItemStack createIcon() {
|
||||
return new ItemStack(COMPUTER_ITEM.get());
|
||||
}
|
||||
};
|
||||
|
||||
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, API.MOD_ID);
|
||||
public static final RegistryObject<Block> COMPUTER_BLOCK = BLOCKS.register(Constants.COMPUTER_BLOCK_NAME, ComputerBlock::new);
|
||||
public static final RegistryObject<Block> BUS_CABLE_BLOCK = BLOCKS.register(Constants.BUS_CABLE_BLOCK_NAME, BusCableBlock::new);
|
||||
public static final RegistryObject<Block> REDSTONE_INTERFACE_BLOCK = BLOCKS.register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, RedstoneInterfaceBlock::new);
|
||||
public static final RegistryObject<Block> SCREEN_BLOCK = BLOCKS.register(Constants.SCREEN_BLOCK_NAME, ScreenBlock::new);
|
||||
|
||||
public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, API.MOD_ID);
|
||||
public static final RegistryObject<Item> COMPUTER_ITEM = ITEMS.register(Constants.COMPUTER_BLOCK_NAME, () -> new BlockItem(COMPUTER_BLOCK.get(), new Item.Properties().group(ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> BUS_CABLE_ITEM = ITEMS.register(Constants.BUS_CABLE_BLOCK_NAME, () -> new BlockItem(BUS_CABLE_BLOCK.get(), new Item.Properties().group(ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> REDSTONE_INTERFACE_ITEM = ITEMS.register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, () -> new BlockItem(REDSTONE_INTERFACE_BLOCK.get(), new Item.Properties().group(ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> SCREEN_ITEM = ITEMS.register(Constants.SCREEN_BLOCK_NAME, () -> new BlockItem(SCREEN_BLOCK.get(), new Item.Properties().group(ITEM_GROUP)));
|
||||
|
||||
public static final RegistryObject<Item> RAM_8M_ITEM = ITEMS.register(Constants.RAM_NAME, () -> new Item(new Item.Properties().group(ITEM_GROUP)));
|
||||
public static final RegistryObject<Item> HDD_ITEM = ITEMS.register(Constants.HDD_NAME, () -> new Item(new Item.Properties().maxStackSize(1).group(ITEM_GROUP)));
|
||||
|
||||
public static final DeferredRegister<TileEntityType<?>> TILES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, API.MOD_ID);
|
||||
public static final RegistryObject<TileEntityType<ComputerTileEntity>> COMPUTER_TILE_ENTITY = TILES.register(Constants.COMPUTER_BLOCK_NAME, () -> TileEntityType.Builder.create(ComputerTileEntity::new, COMPUTER_BLOCK.get()).build(null));
|
||||
public static final RegistryObject<TileEntityType<BusCableTileEntity>> BUS_CABLE_TILE_ENTITY = TILES.register(Constants.BUS_CABLE_BLOCK_NAME, () -> TileEntityType.Builder.create(BusCableTileEntity::new, BUS_CABLE_BLOCK.get()).build(null));
|
||||
public static final RegistryObject<TileEntityType<RedstoneInterfaceTileEntity>> REDSTONE_INTERFACE_TILE_ENTITY = TILES.register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, () -> TileEntityType.Builder.create(RedstoneInterfaceTileEntity::new, REDSTONE_INTERFACE_BLOCK.get()).build(null));
|
||||
|
||||
public static final DeferredRegister<ContainerType<?>> CONTAINERS = DeferredRegister.create(ForgeRegistries.CONTAINERS, API.MOD_ID);
|
||||
public static final RegistryObject<ContainerType<ComputerContainer>> COMPUTER_CONTAINER = CONTAINERS.register(Constants.COMPUTER_BLOCK_NAME, () -> IForgeContainerType.create(ComputerContainer::create));
|
||||
|
||||
public OpenComputers() {
|
||||
ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
TILES.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
CONTAINERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
Items.initialize();
|
||||
Blocks.initialize();
|
||||
TileEntities.initialize();
|
||||
Containers.initialize();
|
||||
Providers.initialize();
|
||||
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(CommonSetup::run);
|
||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(ClientSetup::run);
|
||||
|
||||
@@ -1,16 +1,17 @@
|
||||
package li.cil.oc2.client;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.client.gui.ComputerContainerScreen;
|
||||
import li.cil.oc2.client.render.tile.ComputerTileEntityRenderer;
|
||||
import li.cil.oc2.common.init.Containers;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import net.minecraft.client.gui.ScreenManager;
|
||||
import net.minecraftforge.fml.client.registry.ClientRegistry;
|
||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
|
||||
public final class ClientSetup {
|
||||
public static void run(final FMLClientSetupEvent event) {
|
||||
ScreenManager.registerFactory(OpenComputers.COMPUTER_CONTAINER.get(), ComputerContainerScreen::new);
|
||||
ScreenManager.registerFactory(Containers.COMPUTER_CONTAINER.get(), ComputerContainerScreen::new);
|
||||
|
||||
ClientRegistry.bindTileEntityRenderer(OpenComputers.COMPUTER_TILE_ENTITY.get(), ComputerTileEntityRenderer::new);
|
||||
ClientRegistry.bindTileEntityRenderer(TileEntities.COMPUTER_TILE_ENTITY.get(), ComputerTileEntityRenderer::new);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package li.cil.oc2.common.block;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.common.block.entity.BusCableTileEntity;
|
||||
import li.cil.oc2.common.capabilities.Capabilities;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import li.cil.oc2.common.util.WorldUtils;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
@@ -96,7 +96,7 @@ public final class BusCableBlock extends Block {
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity createTileEntity(final BlockState state, final IBlockReader world) {
|
||||
return OpenComputers.BUS_CABLE_TILE_ENTITY.get().create();
|
||||
return TileEntities.BUS_CABLE_TILE_ENTITY.get().create();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package li.cil.oc2.common.block;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.client.gui.TerminalScreen;
|
||||
import li.cil.oc2.common.block.entity.ComputerTileEntity;
|
||||
import li.cil.oc2.common.container.ComputerContainer;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.HorizontalBlock;
|
||||
@@ -49,7 +49,7 @@ public final class ComputerBlock extends HorizontalBlock {
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity createTileEntity(final BlockState state, final IBlockReader world) {
|
||||
return OpenComputers.COMPUTER_TILE_ENTITY.get().create();
|
||||
return TileEntities.COMPUTER_TILE_ENTITY.get().create();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package li.cil.oc2.common.block;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.common.block.entity.RedstoneInterfaceTileEntity;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.HorizontalBlock;
|
||||
@@ -35,7 +35,7 @@ public final class RedstoneInterfaceBlock extends HorizontalBlock {
|
||||
@Nullable
|
||||
@Override
|
||||
public TileEntity createTileEntity(final BlockState state, final IBlockReader world) {
|
||||
return OpenComputers.REDSTONE_INTERFACE_TILE_ENTITY.get().create();
|
||||
return TileEntities.REDSTONE_INTERFACE_TILE_ENTITY.get().create();
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package li.cil.oc2.common.block.entity;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.common.block.BusCableBlock;
|
||||
import li.cil.oc2.common.bus.TileEntityDeviceBusElement;
|
||||
import li.cil.oc2.common.capabilities.Capabilities;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import li.cil.oc2.common.serialization.NBTSerialization;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
@@ -21,7 +21,7 @@ public class BusCableTileEntity extends AbstractTileEntity {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public BusCableTileEntity() {
|
||||
super(OpenComputers.BUS_CABLE_TILE_ENTITY.get());
|
||||
super(TileEntities.BUS_CABLE_TILE_ENTITY.get());
|
||||
|
||||
busElement = new BusElement();
|
||||
setCapabilityIfAbsent(Capabilities.DEVICE_BUS_ELEMENT_CAPABILITY, busElement);
|
||||
|
||||
@@ -3,7 +3,6 @@ package li.cil.oc2.common.block.entity;
|
||||
import it.unimi.dsi.fastutil.bytes.ByteArrayFIFOQueue;
|
||||
import li.cil.ceres.api.Serialized;
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.api.bus.DeviceBusElement;
|
||||
import li.cil.oc2.api.bus.device.Device;
|
||||
import li.cil.oc2.api.bus.device.vm.VMContext;
|
||||
@@ -13,6 +12,8 @@ import li.cil.oc2.common.bus.AbstractDeviceBusController;
|
||||
import li.cil.oc2.common.bus.TileEntityDeviceBusElement;
|
||||
import li.cil.oc2.common.capabilities.Capabilities;
|
||||
import li.cil.oc2.common.container.DeviceItemStackHandler;
|
||||
import li.cil.oc2.common.init.Items;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import li.cil.oc2.common.network.Network;
|
||||
import li.cil.oc2.common.network.message.ComputerBusStateMessage;
|
||||
import li.cil.oc2.common.network.message.ComputerRunStateMessage;
|
||||
@@ -102,7 +103,7 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public ComputerTileEntity() {
|
||||
super(OpenComputers.COMPUTER_TILE_ENTITY.get());
|
||||
super(TileEntities.COMPUTER_TILE_ENTITY.get());
|
||||
|
||||
busElement = new BusElement();
|
||||
busController = new BusController();
|
||||
@@ -121,11 +122,11 @@ public final class ComputerTileEntity extends AbstractTileEntity implements ITic
|
||||
setCapabilityIfAbsent(Capabilities.DEVICE_BUS_ELEMENT_CAPABILITY, busElement);
|
||||
setCapabilityIfAbsent(Capabilities.DEVICE_BUS_CONTROLLER_CAPABILITY, busController);
|
||||
|
||||
itemHandler.setStackInSlot(0, new ItemStack(OpenComputers.RAM_8M_ITEM.get()));
|
||||
itemHandler.setStackInSlot(1, new ItemStack(OpenComputers.RAM_8M_ITEM.get()));
|
||||
itemHandler.setStackInSlot(2, new ItemStack(OpenComputers.RAM_8M_ITEM.get()));
|
||||
itemHandler.setStackInSlot(0, new ItemStack(Items.RAM_8M_ITEM.get()));
|
||||
itemHandler.setStackInSlot(1, new ItemStack(Items.RAM_8M_ITEM.get()));
|
||||
itemHandler.setStackInSlot(2, new ItemStack(Items.RAM_8M_ITEM.get()));
|
||||
|
||||
final ItemStack hdd = new ItemStack(OpenComputers.HDD_ITEM.get());
|
||||
final ItemStack hdd = new ItemStack(Items.HDD_ITEM.get());
|
||||
final CompoundNBT hddInfo = new CompoundNBT();
|
||||
hddInfo.putString(Constants.HDD_BASE_NBT_TAG_NAME, "linux");
|
||||
hdd.setTagInfo(Constants.HDD_INFO_NBT_TAG_NAME, hddInfo);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package li.cil.oc2.common.block.entity;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.api.bus.device.object.Callback;
|
||||
import li.cil.oc2.api.bus.device.object.DocumentedDevice;
|
||||
import li.cil.oc2.api.bus.device.object.NamedDevice;
|
||||
import li.cil.oc2.api.bus.device.object.Parameter;
|
||||
import li.cil.oc2.common.init.TileEntities;
|
||||
import li.cil.oc2.common.util.HorizontalBlockUtils;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.nbt.CompoundNBT;
|
||||
@@ -36,7 +36,7 @@ public class RedstoneInterfaceTileEntity extends TileEntity implements NamedDevi
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public RedstoneInterfaceTileEntity() {
|
||||
super(OpenComputers.REDSTONE_INTERFACE_TILE_ENTITY.get());
|
||||
super(TileEntities.REDSTONE_INTERFACE_TILE_ENTITY.get());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package li.cil.oc2.common.container;
|
||||
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.common.block.entity.ComputerTileEntity;
|
||||
import li.cil.oc2.common.init.Blocks;
|
||||
import li.cil.oc2.common.init.Containers;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.entity.player.PlayerInventory;
|
||||
import net.minecraft.inventory.container.Container;
|
||||
@@ -31,7 +32,7 @@ public final class ComputerContainer extends Container {
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public ComputerContainer(final int id, @Nullable final ComputerTileEntity tileEntity) {
|
||||
super(OpenComputers.COMPUTER_CONTAINER.get(), id);
|
||||
super(Containers.COMPUTER_CONTAINER.get(), id);
|
||||
this.tileEntity = tileEntity;
|
||||
}
|
||||
|
||||
@@ -40,6 +41,6 @@ public final class ComputerContainer extends Container {
|
||||
if (tileEntity == null) return false;
|
||||
final World world = tileEntity.getWorld();
|
||||
if (world == null) return false;
|
||||
return isWithinUsableDistance(IWorldPosCallable.of(world, tileEntity.getPos()), player, OpenComputers.COMPUTER_BLOCK.get());
|
||||
return isWithinUsableDistance(IWorldPosCallable.of(world, tileEntity.getPos()), player, Blocks.COMPUTER_BLOCK.get());
|
||||
}
|
||||
}
|
||||
|
||||
30
src/main/java/li/cil/oc2/common/init/Blocks.java
Normal file
30
src/main/java/li/cil/oc2/common/init/Blocks.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package li.cil.oc2.common.init;
|
||||
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.block.BusCableBlock;
|
||||
import li.cil.oc2.common.block.ComputerBlock;
|
||||
import li.cil.oc2.common.block.RedstoneInterfaceBlock;
|
||||
import li.cil.oc2.common.block.ScreenBlock;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class Blocks {
|
||||
private static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, API.MOD_ID);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<Block> COMPUTER_BLOCK = BLOCKS.register(Constants.COMPUTER_BLOCK_NAME, ComputerBlock::new);
|
||||
public static final RegistryObject<Block> BUS_CABLE_BLOCK = BLOCKS.register(Constants.BUS_CABLE_BLOCK_NAME, BusCableBlock::new);
|
||||
public static final RegistryObject<Block> REDSTONE_INTERFACE_BLOCK = BLOCKS.register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, RedstoneInterfaceBlock::new);
|
||||
public static final RegistryObject<Block> SCREEN_BLOCK = BLOCKS.register(Constants.SCREEN_BLOCK_NAME, ScreenBlock::new);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
BLOCKS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
25
src/main/java/li/cil/oc2/common/init/Containers.java
Normal file
25
src/main/java/li/cil/oc2/common/init/Containers.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package li.cil.oc2.common.init;
|
||||
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.container.ComputerContainer;
|
||||
import net.minecraft.inventory.container.ContainerType;
|
||||
import net.minecraftforge.common.extensions.IForgeContainerType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class Containers {
|
||||
private static final DeferredRegister<ContainerType<?>> CONTAINERS = DeferredRegister.create(ForgeRegistries.CONTAINERS, API.MOD_ID);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<ContainerType<ComputerContainer>> COMPUTER_CONTAINER = CONTAINERS.register(Constants.COMPUTER_BLOCK_NAME, () -> IForgeContainerType.create(ComputerContainer::create));
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
CONTAINERS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
}
|
||||
48
src/main/java/li/cil/oc2/common/init/Items.java
Normal file
48
src/main/java/li/cil/oc2/common/init/Items.java
Normal file
@@ -0,0 +1,48 @@
|
||||
package li.cil.oc2.common.init;
|
||||
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.item.ItemGroup;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.BlockItem;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public final class Items {
|
||||
private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, API.MOD_ID);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<Item> COMPUTER_ITEM = register(Constants.COMPUTER_BLOCK_NAME, Blocks.COMPUTER_BLOCK);
|
||||
public static final RegistryObject<Item> BUS_CABLE_ITEM = register(Constants.BUS_CABLE_BLOCK_NAME, Blocks.BUS_CABLE_BLOCK);
|
||||
public static final RegistryObject<Item> REDSTONE_INTERFACE_ITEM = register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, Blocks.REDSTONE_INTERFACE_BLOCK);
|
||||
public static final RegistryObject<Item> SCREEN_ITEM = register(Constants.SCREEN_BLOCK_NAME, Blocks.SCREEN_BLOCK);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<Item> HDD_ITEM = register(Constants.HDD_ITEM_NAME);
|
||||
public static final RegistryObject<Item> RAM_8M_ITEM = register(Constants.RAM_ITEM_NAME);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
ITEMS.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
private static RegistryObject<Item> register(final String name) {
|
||||
return ITEMS.register(name, () -> new Item(commonProperties()));
|
||||
}
|
||||
|
||||
private static RegistryObject<Item> register(final String name, final RegistryObject<Block> block) {
|
||||
return ITEMS.register(name, () -> new BlockItem(block.get(), commonProperties()));
|
||||
}
|
||||
|
||||
private static Item.Properties commonProperties() {
|
||||
return new Item.Properties().group(ItemGroup.COMMON);
|
||||
}
|
||||
}
|
||||
38
src/main/java/li/cil/oc2/common/init/TileEntities.java
Normal file
38
src/main/java/li/cil/oc2/common/init/TileEntities.java
Normal file
@@ -0,0 +1,38 @@
|
||||
package li.cil.oc2.common.init;
|
||||
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.block.entity.BusCableTileEntity;
|
||||
import li.cil.oc2.common.block.entity.ComputerTileEntity;
|
||||
import li.cil.oc2.common.block.entity.RedstoneInterfaceTileEntity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.tileentity.TileEntityType;
|
||||
import net.minecraftforge.fml.RegistryObject;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public final class TileEntities {
|
||||
private static final DeferredRegister<TileEntityType<?>> TILES = DeferredRegister.create(ForgeRegistries.TILE_ENTITIES, API.MOD_ID);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static final RegistryObject<TileEntityType<RedstoneInterfaceTileEntity>> REDSTONE_INTERFACE_TILE_ENTITY = register(Constants.REDSTONE_INTERFACE_BLOCK_NAME, Blocks.REDSTONE_INTERFACE_BLOCK, RedstoneInterfaceTileEntity::new);
|
||||
public static final RegistryObject<TileEntityType<BusCableTileEntity>> BUS_CABLE_TILE_ENTITY = register(Constants.BUS_CABLE_BLOCK_NAME, Blocks.BUS_CABLE_BLOCK, BusCableTileEntity::new);
|
||||
public static final RegistryObject<TileEntityType<ComputerTileEntity>> COMPUTER_TILE_ENTITY = register(Constants.COMPUTER_BLOCK_NAME, Blocks.COMPUTER_BLOCK, ComputerTileEntity::new);
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
public static void initialize() {
|
||||
TileEntities.TILES.register(FMLJavaModLoadingContext.get().getModEventBus());
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
private static <T extends TileEntity> RegistryObject<TileEntityType<T>> register(final String name, final RegistryObject<Block> block, final Supplier<T> factory) {
|
||||
return TILES.register(name, () -> TileEntityType.Builder.create(factory, block.get()).build(null));
|
||||
}
|
||||
}
|
||||
15
src/main/java/li/cil/oc2/common/item/ItemGroup.java
Normal file
15
src/main/java/li/cil/oc2/common/item/ItemGroup.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package li.cil.oc2.common.item;
|
||||
|
||||
import li.cil.oc2.Constants;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public final class ItemGroup {
|
||||
public static final net.minecraft.item.ItemGroup COMMON = new net.minecraft.item.ItemGroup(API.MOD_ID + "." + Constants.COMMON_ITEM_GROUP_NAME) {
|
||||
@Override
|
||||
public ItemStack createIcon() {
|
||||
return new ItemStack(Items.COMPUTER_ITEM.get());
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
package li.cil.oc2.data;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import li.cil.oc2.OpenComputers;
|
||||
import li.cil.oc2.api.API;
|
||||
import li.cil.oc2.common.block.BusCableBlock;
|
||||
import li.cil.oc2.common.init.Blocks;
|
||||
import li.cil.oc2.common.init.Items;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
@@ -30,9 +31,9 @@ public class BlockStates extends BlockStateProvider {
|
||||
|
||||
@Override
|
||||
protected void registerStatesAndModels() {
|
||||
horizontalBlock(OpenComputers.COMPUTER_BLOCK, OpenComputers.COMPUTER_ITEM);
|
||||
horizontalBlock(OpenComputers.REDSTONE_INTERFACE_BLOCK, OpenComputers.REDSTONE_INTERFACE_ITEM);
|
||||
horizontalBlock(OpenComputers.SCREEN_BLOCK, OpenComputers.SCREEN_ITEM);
|
||||
horizontalBlock(Blocks.COMPUTER_BLOCK, Items.COMPUTER_ITEM);
|
||||
horizontalBlock(Blocks.REDSTONE_INTERFACE_BLOCK, Items.REDSTONE_INTERFACE_ITEM);
|
||||
horizontalBlock(Blocks.SCREEN_BLOCK, Items.SCREEN_ITEM);
|
||||
|
||||
registerCableStates();
|
||||
}
|
||||
@@ -47,7 +48,7 @@ public class BlockStates extends BlockStateProvider {
|
||||
final ModelFile plugModel = models().getExistingFile(new ResourceLocation(API.MOD_ID, "block/cable_plug"));
|
||||
final ModelFile straightModel = models().getExistingFile(new ResourceLocation(API.MOD_ID, "block/cable_straight"));
|
||||
|
||||
final MultiPartBlockStateBuilder builder = getMultipartBuilder(OpenComputers.BUS_CABLE_BLOCK.get());
|
||||
final MultiPartBlockStateBuilder builder = getMultipartBuilder(Blocks.BUS_CABLE_BLOCK.get());
|
||||
|
||||
// Core element, use straight connections if and only if two opposite ends are
|
||||
// links and there are no other connections. Since there's no "not" condition we
|
||||
@@ -76,7 +77,7 @@ public class BlockStates extends BlockStateProvider {
|
||||
map.put(BusCableBlock.CONNECTION_EAST, BusCableBlock.ConnectionType.LINK);
|
||||
map.put(BusCableBlock.CONNECTION_WEST, BusCableBlock.ConnectionType.LINK);
|
||||
});
|
||||
for (final BlockState state : OpenComputers.BUS_CABLE_BLOCK.get().getStateContainer().getValidStates()) {
|
||||
for (final BlockState state : Blocks.BUS_CABLE_BLOCK.get().getStateContainer().getValidStates()) {
|
||||
final ConfiguredModel.Builder<PartBuilder> model = builder.part();
|
||||
final PartBuilder part;
|
||||
if (doesStateMatches(state, straightX)) {
|
||||
@@ -126,7 +127,7 @@ public class BlockStates extends BlockStateProvider {
|
||||
.end();
|
||||
});
|
||||
|
||||
itemModels().getBuilder(OpenComputers.BUS_CABLE_ITEM.getId().getPath())
|
||||
itemModels().getBuilder(Items.BUS_CABLE_ITEM.getId().getPath())
|
||||
.parent(baseModel);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user