finish registry

This commit is contained in:
Mysticpasta1 2022-06-23 06:08:06 -05:00
parent dabb9b0507
commit b549142837
6 changed files with 124 additions and 68 deletions

View File

@ -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)

View File

@ -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();
}
}

View File

@ -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)

View 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());
}

View 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()));
}

View 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));
}
}
}