finish registry
This commit is contained in:
parent
dabb9b0507
commit
b549142837
|
|
@ -34,10 +34,12 @@ import net.minecraftforge.event.entity.item.ItemTossEvent;
|
|||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
||||
import net.minecraftforge.event.server.ServerStoppingEvent;
|
||||
import net.minecraftforge.event.world.WorldEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
import net.minecraftforge.fml.ModList;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.montoyo.wd.block.BlockKeyboardRight;
|
||||
import net.montoyo.wd.block.BlockPeripheral;
|
||||
import net.montoyo.wd.block.BlockScreen;
|
||||
|
|
@ -45,8 +47,12 @@ import net.montoyo.wd.client.ClientProxy;
|
|||
import net.montoyo.wd.config.ModConfig;
|
||||
import net.montoyo.wd.core.*;
|
||||
import net.montoyo.wd.entity.TileEntityScreen;
|
||||
import net.montoyo.wd.init.BlockInit;
|
||||
import net.montoyo.wd.init.ItemInit;
|
||||
import net.montoyo.wd.init.TileInit;
|
||||
import net.montoyo.wd.item.*;
|
||||
import net.montoyo.wd.miniserv.server.Server;
|
||||
import net.montoyo.wd.net.Messages;
|
||||
import net.montoyo.wd.net.client.CMessageServerInfo;
|
||||
import net.montoyo.wd.utilities.Log;
|
||||
import net.montoyo.wd.utilities.Util;
|
||||
|
|
@ -73,21 +79,6 @@ public class WebDisplays {
|
|||
public static final Gson GSON = new Gson();
|
||||
public static final ResourceLocation CAPABILITY = new ResourceLocation("webdisplays", "customdatacap");
|
||||
|
||||
//Blocks
|
||||
public BlockScreen blockScreen;
|
||||
public BlockPeripheral blockPeripheral;
|
||||
public BlockKeyboardRight blockKbRight;
|
||||
|
||||
//Items
|
||||
public ItemScreenConfigurator itemScreenCfg;
|
||||
public ItemOwnershipThief itemOwnerThief;
|
||||
public ItemLinker itemLinker;
|
||||
public ItemMinePad2 itemMinePad;
|
||||
public ItemUpgrade itemUpgrade;
|
||||
public ItemLaserPointer itemLaserPointer;
|
||||
public ItemCraftComponent itemCraftComp;
|
||||
public ItemMulti itemAdvIcon;
|
||||
|
||||
//Sounds
|
||||
public SoundEvent soundTyping;
|
||||
public SoundEvent soundUpgradeAdd;
|
||||
|
|
@ -162,40 +153,17 @@ public class WebDisplays {
|
|||
padResY = config.main.padHeight;
|
||||
padResX = padResY * PAD_RATIO;
|
||||
|
||||
//Init blocks
|
||||
blockScreen = new BlockScreen();
|
||||
blockScreen.makeItemBlock();
|
||||
|
||||
blockPeripheral = new BlockPeripheral();
|
||||
blockPeripheral.makeItemBlock();
|
||||
|
||||
blockKbRight = new BlockKeyboardRight();
|
||||
|
||||
//Init items
|
||||
itemScreenCfg = new ItemScreenConfigurator();
|
||||
itemOwnerThief = new ItemOwnershipThief();
|
||||
itemLinker = new ItemLinker();
|
||||
itemMinePad = new ItemMinePad2();
|
||||
itemUpgrade = new ItemUpgrade();
|
||||
itemLaserPointer = new ItemLaserPointer();
|
||||
itemCraftComp = new ItemCraftComponent();
|
||||
|
||||
itemAdvIcon = new ItemMulti(AdvancementIcon.class, new Item.Properties());
|
||||
itemAdvIcon.setRegistryName("advicon");
|
||||
|
||||
IEventBus bus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
ItemInit.init(bus);
|
||||
BlockInit.init(bus);
|
||||
PROXY.preInit();
|
||||
MinecraftForge.EVENT_BUS.register(this);
|
||||
|
||||
//Register tile entities
|
||||
Registry.register(Registry.BLOCK_ENTITY_TYPE, TileEntityScreen.class, new ResourceLocation("webdisplays", "screen"));
|
||||
for(DefaultPeripheral dp: DefaultPeripheral.values()) {
|
||||
if(dp.getTEClass() != null)
|
||||
GameRegistry.registerTileEntity(dp.getTEClass(), new ResourceLocation("webdisplays", dp.getName()));
|
||||
}
|
||||
|
||||
//Other things
|
||||
PROXY.init();
|
||||
|
||||
TileInit.registerPeripherals();
|
||||
|
||||
PROXY.postInit();
|
||||
hasOC = ModList.get().isLoaded("opencomputers");
|
||||
hasCC = ModList.get().isLoaded("computercraft");
|
||||
|
|
@ -218,17 +186,6 @@ public class WebDisplays {
|
|||
}
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterBlocks(RegistryEvent.Register<Block> ev) {
|
||||
ev.getRegistry().registerAll(blockScreen, blockPeripheral, blockKbRight);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterItems(RegistryEvent.Register<Item> ev) {
|
||||
ev.getRegistry().registerAll(blockScreen.getItem(), blockPeripheral.getItem());
|
||||
ev.getRegistry().registerAll(itemScreenCfg, itemOwnerThief, itemLinker, itemMinePad, itemUpgrade, itemLaserPointer, itemCraftComp, itemAdvIcon);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void onRegisterSounds(RegistryEvent.Register<SoundEvent> ev) {
|
||||
soundTyping = registerSound(ev, "keyboardType");
|
||||
|
|
@ -298,7 +255,7 @@ public class WebDisplays {
|
|||
if(!ev.getEntityItem().getLevel().isClientSide) {
|
||||
ItemStack is = ev.getEntityItem().getItem();
|
||||
|
||||
if(is.getItem() == itemMinePad) {
|
||||
if(is.getItem() == ItemInit.itemMinePad.get()) {
|
||||
CompoundTag tag = is.getTag();
|
||||
|
||||
if(tag == null) {
|
||||
|
|
@ -316,7 +273,7 @@ public class WebDisplays {
|
|||
|
||||
@SubscribeEvent
|
||||
public void onPlayerCraft(PlayerEvent.ItemCraftedEvent ev) {
|
||||
if(doHardRecipe && ev.getCrafting().getItem() == itemCraftComp && (CraftComponent.EXTENSION_CARD.makeItemStack().is(ev.getCrafting().getItem()))) {
|
||||
if(doHardRecipe && ev.getCrafting().getItem() == ItemInit.itemCraftComp.get() && (CraftComponent.EXTENSION_CARD.makeItemStack().is(ev.getCrafting().getItem()))) {
|
||||
if((ev.getPlayer() instanceof ServerPlayer && !hasPlayerAdvancement((ServerPlayer) ev.getPlayer(), ADV_PAD_BREAK)) || PROXY.hasClientPlayerAdvancement(ADV_PAD_BREAK) != HasAdvancement.YES) {
|
||||
ev.getCrafting().setDamageValue(CraftComponent.BAD_EXTENSION_CARD.ordinal());
|
||||
|
||||
|
|
@ -334,7 +291,7 @@ public class WebDisplays {
|
|||
@SubscribeEvent
|
||||
public void onLogIn(PlayerEvent.PlayerLoggedInEvent ev) {
|
||||
if(!ev.getPlayer().getLevel().isClientSide && ev.getPlayer() instanceof ServerPlayer) {
|
||||
WebDisplays.NET_HANDLER.sendTo(new CMessageServerInfo(miniservPort), (ServerPlayer) ev.getPlayer());
|
||||
Messages.INSTANCE.sendTo(new CMessageServerInfo(miniservPort), (ServerPlayer) ev.getPlayer());
|
||||
IWDDCapability cap = (IWDDCapability) ev.getPlayer().getCapability(WDDCapability.Provider.cap, null);
|
||||
|
||||
if(cap == null)
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ import net.minecraft.util.text.TextFormatting;
|
|||
import net.minecraft.world.Explosion;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||
import net.minecraft.world.level.block.state.properties.Property;
|
||||
import net.minecraftforge.common.property.ExtendedBlockState;
|
||||
|
|
@ -375,26 +377,20 @@ public class BlockScreen extends WDBlockContainer {
|
|||
}
|
||||
|
||||
@Override
|
||||
protected ItemPeripheral createItemBlock() {
|
||||
protected BlockItem createItemBlock() {
|
||||
return new ItemBlockScreen(this);
|
||||
}
|
||||
|
||||
private static class ItemBlockScreen extends ItemBlock implements WDItem {
|
||||
private static class ItemBlockScreen extends BlockItem implements WDItem {
|
||||
|
||||
public ItemBlockScreen(BlockScreen screen) {
|
||||
super(screen);
|
||||
super(screen, new Properties());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public String getWikiName(@Nonnull ItemStack is) {
|
||||
return "Screen";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(@Nullable ItemStack is, @Nullable World world, @Nullable List<String> tt, @Nullable ITooltipFlag ttFlags) {
|
||||
super.addInformation(is, world, tt, ttFlags);
|
||||
WDItem.addInformation(tt);
|
||||
return is.getItem().getName(is).getString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ public abstract class WDBlockContainer extends BaseContainerBlockEntity {
|
|||
// setRegistryName(name);
|
||||
}
|
||||
|
||||
protected abstract ItemPeripheral createItemBlock();
|
||||
protected abstract BlockItem createItemBlock();
|
||||
|
||||
public void makeItemBlock() {
|
||||
if(itemBlock != null)
|
||||
|
|
|
|||
40
src/main/java/net/montoyo/wd/init/BlockInit.java
Normal file
40
src/main/java/net/montoyo/wd/init/BlockInit.java
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
package net.montoyo.wd.init;
|
||||
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.montoyo.wd.block.BlockKeyboardRight;
|
||||
import net.montoyo.wd.block.BlockPeripheral;
|
||||
import net.montoyo.wd.block.BlockScreen;
|
||||
import net.montoyo.wd.core.WDCreativeTab;
|
||||
|
||||
import java.util.function.Function;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class BlockInit {
|
||||
|
||||
public static DeferredRegister<Block> BLOCKS = DeferredRegister.create(Block.class, "webdisplays");
|
||||
|
||||
public static void init(IEventBus bus) {
|
||||
BLOCKS.register(bus);
|
||||
}
|
||||
|
||||
private static RegistryObject<Block> registerBlock(String name, Supplier<Block> blockSupplier) {
|
||||
return registerBlock(name, blockSupplier, b -> () -> new BlockItem(blockSupplier.get(), new Item.Properties().tab(WDCreativeTab.TAB_REDSTONE)));
|
||||
}
|
||||
|
||||
private static RegistryObject<Block> registerBlock(String name, Supplier<Block> block, Function<RegistryObject<Block>, Supplier<? extends BlockItem>> item) {
|
||||
var reg = BLOCKS.register(name, block);
|
||||
ItemInit.ITEMS.register(name, () -> item.apply(reg).get());
|
||||
return reg;
|
||||
}
|
||||
|
||||
public static final RegistryObject<Block> blockScreen = registerBlock("screen_block", () -> new BlockScreen());
|
||||
|
||||
public static final RegistryObject<Block> blockPeripheral = registerBlock("peripheral_block", () -> new BlockPeripheral());
|
||||
|
||||
public static final RegistryObject<Block> blockKbRight = registerBlock("kb_right_block", () -> new BlockKeyboardRight());
|
||||
}
|
||||
35
src/main/java/net/montoyo/wd/init/ItemInit.java
Normal file
35
src/main/java/net/montoyo/wd/init/ItemInit.java
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package net.montoyo.wd.init;
|
||||
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
import net.montoyo.wd.item.*;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public class ItemInit {
|
||||
|
||||
public static DeferredRegister<Item> ITEMS = DeferredRegister.create(Item.class, "webdisplays");
|
||||
|
||||
public static void init(IEventBus bus) {
|
||||
ITEMS.register(bus);
|
||||
}
|
||||
|
||||
public static <T extends Item> RegistryObject<T> register(String name, Supplier<T> item) {
|
||||
return ITEMS.register(name, item);
|
||||
}
|
||||
|
||||
static <T extends Item> RegistryObject<T> register(Supplier<T> c, String id) {
|
||||
return register(id, c);
|
||||
}
|
||||
|
||||
public static final RegistryObject<Item> itemScreenCfg = register("itemScreenConfig", () -> new ItemScreenConfigurator(new Item.Properties()));
|
||||
public static final RegistryObject<Item> itemOwnerThief = register("itemOwnerThief", () -> new ItemOwnershipThief(new Item.Properties()));
|
||||
public static final RegistryObject<Item> itemLinker = register("itemLinker", () -> new ItemLinker(new Item.Properties()));
|
||||
public static final RegistryObject<Item> itemMinePad = register("itemMinePad", () -> new ItemMinePad2(new Item.Properties()));
|
||||
public static final RegistryObject<Item> itemUpgrade = register("itemUpgrade", ItemUpgrade::new);
|
||||
public static final RegistryObject<Item> itemCraftComp = register("itemCraftComp", () -> new ItemCraftComponent(new Item.Properties()));
|
||||
public static final RegistryObject<Item> itemLaserPointer = register("itemLaserPointer", () -> new ItemLaserPointer(new Item.Properties()));
|
||||
|
||||
}
|
||||
28
src/main/java/net/montoyo/wd/init/TileInit.java
Normal file
28
src/main/java/net/montoyo/wd/init/TileInit.java
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
package net.montoyo.wd.init;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraftforge.common.extensions.IForgeBlockEntity;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.montoyo.wd.core.DefaultPeripheral;
|
||||
import net.montoyo.wd.entity.TileEntityScreen;
|
||||
|
||||
public class TileInit {
|
||||
|
||||
public static final DeferredRegister<BlockEntityType<?>> TILE_TYPES = DeferredRegister
|
||||
.create(ForgeRegistries.BLOCK_ENTITIES, "webdisplays");
|
||||
|
||||
//Register tile entities
|
||||
public static final BlockEntityType<TileEntityScreen> SCREEN_BLOCK_ENTITY = TILE_TYPES.register("screen", () -> BlockEntityType.Builder.of(TileEntityScreen::new, BlockInit.blockScreen).build(null));
|
||||
|
||||
public static void registerPeripherals() {
|
||||
for (DefaultPeripheral dp : DefaultPeripheral.values()) {
|
||||
if (dp.getTEClass() != null)
|
||||
TILE_TYPES.register(dp.name(), () -> BlockEntityType.Builder.of(dp.getTEClass(), BlockInit.blockPeripheral.get()).build(null));
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user