Register event listeners directly
This commit is contained in:
parent
8f2f599f38
commit
3771b20563
@ -2,8 +2,10 @@ package ru.dbotthepony.mc.otm;
|
|||||||
|
|
||||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.item.CreativeModeTab;
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.eventbus.api.EventPriority;
|
import net.minecraftforge.eventbus.api.EventPriority;
|
||||||
import net.minecraftforge.fml.ModList;
|
import net.minecraftforge.fml.ModList;
|
||||||
@ -15,10 +17,9 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import ru.dbotthepony.mc.otm.block.entity.blackhole.ExplosionQueue;
|
import ru.dbotthepony.mc.otm.block.entity.blackhole.ExplosionQueue;
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability;
|
import ru.dbotthepony.mc.otm.capability.MatteryPlayerCapability;
|
||||||
import ru.dbotthepony.mc.otm.capability.MatteryCapability;
|
|
||||||
import ru.dbotthepony.mc.otm.capability.drive.DrivePool;
|
import ru.dbotthepony.mc.otm.capability.drive.DrivePool;
|
||||||
|
import ru.dbotthepony.mc.otm.client.ClientEventHandler;
|
||||||
import ru.dbotthepony.mc.otm.client.MatteryGUI;
|
import ru.dbotthepony.mc.otm.client.MatteryGUI;
|
||||||
import ru.dbotthepony.mc.otm.client.EventHandlerKt;
|
|
||||||
import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel;
|
import ru.dbotthepony.mc.otm.client.model.GravitationStabilizerModel;
|
||||||
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel;
|
import ru.dbotthepony.mc.otm.client.model.TritaniumArmorModel;
|
||||||
import ru.dbotthepony.mc.otm.compat.mekanism.QIOKt;
|
import ru.dbotthepony.mc.otm.compat.mekanism.QIOKt;
|
||||||
@ -34,6 +35,8 @@ import ru.dbotthepony.mc.otm.registry.*;
|
|||||||
import ru.dbotthepony.mc.otm.storage.*;
|
import ru.dbotthepony.mc.otm.storage.*;
|
||||||
import ru.dbotthepony.mc.otm.worldgen.OreGen;
|
import ru.dbotthepony.mc.otm.worldgen.OreGen;
|
||||||
|
|
||||||
|
import static net.minecraftforge.common.MinecraftForge.EVENT_BUS;
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
|
||||||
// The value here should match an entry in the META-INF/mods.toml file
|
// The value here should match an entry in the META-INF/mods.toml file
|
||||||
@ -77,31 +80,43 @@ public final class OverdriveThatMatters {
|
|||||||
|
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
|
|
||||||
MRegistry.INSTANCE.initialize(FMLJavaModLoadingContext.get());
|
var modBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||||
|
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(EventPriority.HIGHEST, this::setup);
|
MRegistry.INSTANCE.initialize(modBus);
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setupClient);
|
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register(this);
|
modBus.addListener(EventPriority.HIGHEST, this::setup);
|
||||||
MinecraftForge.EVENT_BUS.register(GlobalEventHandlerKt.class);
|
modBus.addListener(EventPriority.NORMAL, this::setupClient);
|
||||||
MinecraftForge.EVENT_BUS.register(MatteryPlayerCapability.Companion);
|
|
||||||
MinecraftForge.EVENT_BUS.register(MatterRegistryKt.class);
|
|
||||||
MinecraftForge.EVENT_BUS.register(MatterDataKt.class);
|
|
||||||
MinecraftForge.EVENT_BUS.register(ExplosionQueue.Companion);
|
|
||||||
MinecraftForge.EVENT_BUS.register(AbstractWeaponItem.Companion);
|
|
||||||
MinecraftForge.EVENT_BUS.addListener(QuantumBatteryItem.Companion::tick);
|
|
||||||
|
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().register(MatteryCapability.class);
|
|
||||||
|
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().register(MRecipes.class);
|
|
||||||
|
|
||||||
MinecraftForge.EVENT_BUS.register(DrivePool.INSTANCE);
|
|
||||||
MinecraftForge.EVENT_BUS.register(PortableCondensationDriveItem.Companion);
|
|
||||||
|
|
||||||
FMLJavaModLoadingContext.get().getModEventBus().addListener(MatteryPlayerCapability::registerEffects);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setup(final FMLCommonSetupEvent event) {
|
private void setup(final FMLCommonSetupEvent event) {
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, DrivePool.INSTANCE::onServerPostTick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStopEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGHEST, DrivePool.INSTANCE::serverStartEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, DrivePool.INSTANCE::onWorldSave);
|
||||||
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopped);
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStopping);
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGHEST, GlobalEventHandlerKt::onServerStarting);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, GlobalEventHandlerKt::onWorldTick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, GlobalEventHandlerKt::onServerTick);
|
||||||
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onLivingTick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onHurtEvent);
|
||||||
|
EVENT_BUS.addGenericListener(Entity.class, EventPriority.NORMAL, MatteryPlayerCapability.Companion::onAttachCapabilityEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onPlayerChangeDimensionEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, MatteryPlayerCapability.Companion::onPlayerDeath);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryPlayerCapability.Companion::onPlayerCloneEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOW, MatteryPlayerCapability.Companion::onPickupEvent);
|
||||||
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOW, MatterDataKt::serverStartData);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatterRegistryKt::onPlayerJoin);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, ExplosionQueue.Companion::onWorldTick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::tick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, QuantumBatteryItem.Companion::tick);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, PortableCondensationDriveItem.Companion::onPickupEvent);
|
||||||
|
|
||||||
|
MatteryPlayerCapability.Companion.registerEffects(event);
|
||||||
|
|
||||||
MatteryPlayerNetworkChannel.INSTANCE.register();
|
MatteryPlayerNetworkChannel.INSTANCE.register();
|
||||||
MenuNetworkChannel.INSTANCE.register();
|
MenuNetworkChannel.INSTANCE.register();
|
||||||
WeaponNetworkChannel.INSTANCE.register();
|
WeaponNetworkChannel.INSTANCE.register();
|
||||||
@ -112,16 +127,31 @@ public final class OverdriveThatMatters {
|
|||||||
ITEM_STORAGE = StorageRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY, new ImpreciseFraction("3.125"));
|
ITEM_STORAGE = StorageRegistry.register(ItemStackWrapper.class, ItemStackWrapper.EMPTY, new ImpreciseFraction("3.125"));
|
||||||
|
|
||||||
if (ModList.get().isLoaded("mekanism")) {
|
if (ModList.get().isLoaded("mekanism")) {
|
||||||
MinecraftForge.EVENT_BUS.register(QIOKt.class);
|
EVENT_BUS.addGenericListener(BlockEntity.class, EventPriority.NORMAL, QIOKt::attachCapabilities);
|
||||||
MinecraftForge.EVENT_BUS.register(TooltipsKt.class);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
OreGen.INSTANCE.register();
|
OreGen.INSTANCE.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupClient(final FMLClientSetupEvent event) {
|
private void setupClient(final FMLClientSetupEvent event) {
|
||||||
MinecraftForge.EVENT_BUS.register(MatteryGUI.INSTANCE);
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatterRegistryKt::tooltipEvent);
|
||||||
MinecraftForge.EVENT_BUS.register(EventHandlerKt.class);
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::playerRenderHook);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::fovHook);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::clickHook);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, AbstractWeaponItem.Companion::renderViewModel);
|
||||||
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryGUI.INSTANCE::onScreenRender);
|
||||||
|
EVENT_BUS.addListener(EventPriority.LOWEST, MatteryGUI.INSTANCE::onOpenGUIEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, MatteryGUI.INSTANCE::onRenderGuiEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.HIGH, MatteryGUI.INSTANCE::onLayerRenderEvent);
|
||||||
|
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, ClientEventHandler.INSTANCE::inputEvent);
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, ClientEventHandler.INSTANCE::screenOpen);
|
||||||
|
|
||||||
|
if (ModList.get().isLoaded("mekanism")) {
|
||||||
|
EVENT_BUS.addListener(EventPriority.NORMAL, TooltipsKt::tooltipEvent);
|
||||||
|
}
|
||||||
|
|
||||||
event.enqueueWork(GlobalEventHandlerKt::recordClientThread);
|
event.enqueueWork(GlobalEventHandlerKt::recordClientThread);
|
||||||
|
|
||||||
|
@ -49,16 +49,4 @@ public class MatteryCapability {
|
|||||||
@Nonnull
|
@Nonnull
|
||||||
@NotNull
|
@NotNull
|
||||||
public static final Capability<IStrictEnergyHandler> MEKANISM_ENERGY = CapabilityManager.get(new CapabilityToken<>() {});
|
public static final Capability<IStrictEnergyHandler> MEKANISM_ENERGY = CapabilityManager.get(new CapabilityToken<>() {});
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
|
||||||
public static void register(final RegisterCapabilitiesEvent event) {
|
|
||||||
event.register(IMatteryEnergyStorage.class);
|
|
||||||
event.register(MatteryPlayerCapability.class);
|
|
||||||
event.register(IMatterHandler.class);
|
|
||||||
event.register(IPatternStorage.class);
|
|
||||||
event.register(IReplicationTaskProvider.class);
|
|
||||||
event.register(IMatteryDrive.class);
|
|
||||||
event.register(IStorageGraphNode.class);
|
|
||||||
event.register(IMatterGraphNode.class);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
import net.minecraft.world.item.crafting.Recipe;
|
import net.minecraft.world.item.crafting.Recipe;
|
||||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||||
import net.minecraft.world.item.crafting.RecipeType;
|
import net.minecraft.world.item.crafting.RecipeType;
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus;
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import net.minecraftforge.registries.DeferredRegister;
|
import net.minecraftforge.registries.DeferredRegister;
|
||||||
import net.minecraftforge.registries.ForgeRegistries;
|
import net.minecraftforge.registries.ForgeRegistries;
|
||||||
@ -35,8 +36,8 @@ public class MRecipes {
|
|||||||
typesRegistry.register(MNames.PLATE_PRESS, () -> PLATE_PRESS);
|
typesRegistry.register(MNames.PLATE_PRESS, () -> PLATE_PRESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
public static void register(IEventBus bus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
registry.register(bus);
|
||||||
typesRegistry.register(FMLJavaModLoadingContext.get().getModEventBus());
|
typesRegistry.register(bus);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,6 @@ interface IConditionalTickable : ITickable {
|
|||||||
val canTick: Boolean
|
val canTick: Boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onServerTick(event: ServerTickEvent) {
|
fun onServerTick(event: ServerTickEvent) {
|
||||||
if (event.phase === TickEvent.Phase.START) {
|
if (event.phase === TickEvent.Phase.START) {
|
||||||
preServerTickTimers.tick()
|
preServerTickTimers.tick()
|
||||||
@ -255,7 +254,6 @@ fun addPostServerTickerOnce(ticker: ITickable) {
|
|||||||
postServerTickOnce.add(ticker)
|
postServerTickOnce.add(ticker)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onWorldTick(event: LevelTickEvent) {
|
fun onWorldTick(event: LevelTickEvent) {
|
||||||
if (event.phase === TickEvent.Phase.START) {
|
if (event.phase === TickEvent.Phase.START) {
|
||||||
val it = preWorldTick[event.level]
|
val it = preWorldTick[event.level]
|
||||||
@ -355,7 +353,6 @@ private fun clear() {
|
|||||||
postWorldTickOnce.clear()
|
postWorldTickOnce.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
|
||||||
fun onServerStarting(event: ServerAboutToStartEvent) {
|
fun onServerStarting(event: ServerAboutToStartEvent) {
|
||||||
clear()
|
clear()
|
||||||
SERVER_IS_DYING = false
|
SERVER_IS_DYING = false
|
||||||
@ -363,13 +360,11 @@ fun onServerStarting(event: ServerAboutToStartEvent) {
|
|||||||
_serverThread = Thread.currentThread()
|
_serverThread = Thread.currentThread()
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
|
||||||
fun onServerStopping(event: ServerStoppingEvent) {
|
fun onServerStopping(event: ServerStoppingEvent) {
|
||||||
clear()
|
clear()
|
||||||
SERVER_IS_DYING = true
|
SERVER_IS_DYING = true
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
|
||||||
fun onServerStopped(event: ServerStoppedEvent) {
|
fun onServerStopped(event: ServerStoppedEvent) {
|
||||||
if (!SERVER_IS_DYING) {
|
if (!SERVER_IS_DYING) {
|
||||||
LOGGER.fatal("ServerStoppingEvent did not fire. If server has crashed this is normal. However, if server finished it's work 'gracefully' this is a bug.")
|
LOGGER.fatal("ServerStoppingEvent did not fire. If server has crashed this is normal. However, if server finished it's work 'gracefully' this is a bug.")
|
||||||
|
@ -765,10 +765,8 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
companion object {
|
companion object {
|
||||||
@JvmField
|
|
||||||
val UNAFFECTED_EFFECTS = ObjectArraySet<MobEffect>()
|
val UNAFFECTED_EFFECTS = ObjectArraySet<MobEffect>()
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
fun registerEffects(event: FMLCommonSetupEvent) {
|
fun registerEffects(event: FMLCommonSetupEvent) {
|
||||||
UNAFFECTED_EFFECTS.add(MobEffects.CONDUIT_POWER)
|
UNAFFECTED_EFFECTS.add(MobEffects.CONDUIT_POWER)
|
||||||
UNAFFECTED_EFFECTS.add(MobEffects.HEAL)
|
UNAFFECTED_EFFECTS.add(MobEffects.HEAL)
|
||||||
@ -785,7 +783,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
UNAFFECTED_EFFECTS.add(MobEffects.DOLPHINS_GRACE)
|
UNAFFECTED_EFFECTS.add(MobEffects.DOLPHINS_GRACE)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
fun onLivingTick(event: LivingTickEvent) {
|
fun onLivingTick(event: LivingTickEvent) {
|
||||||
val ent = event.entity
|
val ent = event.entity
|
||||||
|
|
||||||
@ -800,7 +797,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onHurtEvent(event: LivingHurtEvent) {
|
fun onHurtEvent(event: LivingHurtEvent) {
|
||||||
if (event.isCanceled) {
|
if (event.isCanceled) {
|
||||||
return
|
return
|
||||||
@ -812,8 +808,7 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
const val CAPABILITY_KEY = "otm_player"
|
const val CAPABILITY_KEY = "otm_player"
|
||||||
val CAPABILITY_LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, CAPABILITY_KEY)
|
val CAPABILITY_LOCATION = ResourceLocation(OverdriveThatMatters.MOD_ID, CAPABILITY_KEY)
|
||||||
|
|
||||||
@SubscribeEvent
|
fun onAttachCapabilityEvent(event: AttachCapabilitiesEvent<Entity>) {
|
||||||
fun onAttachCapabilityEvent(event: AttachCapabilitiesEvent<Entity?>) {
|
|
||||||
val ent = event.`object`
|
val ent = event.`object`
|
||||||
|
|
||||||
if (ent is Player) {
|
if (ent is Player) {
|
||||||
@ -821,18 +816,12 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
fun onPlayerChangeDimensionEvent(event: PlayerEvent.PlayerChangedDimensionEvent) {
|
fun onPlayerChangeDimensionEvent(event: PlayerEvent.PlayerChangedDimensionEvent) {
|
||||||
event.entity.getCapability(MatteryCapability.MATTERY_PLAYER)
|
event.entity.getCapability(MatteryCapability.MATTERY_PLAYER)
|
||||||
.ifPresentK { it.invalidateNetworkState() }
|
.ifPresentK { it.invalidateNetworkState() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onPlayerDeath(event: LivingDeathEvent) {
|
fun onPlayerDeath(event: LivingDeathEvent) {
|
||||||
if (event.isCanceled) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val ply = event.entity as? Player ?: return
|
val ply = event.entity as? Player ?: return
|
||||||
val mattery = ply.matteryPlayer ?: return
|
val mattery = ply.matteryPlayer ?: return
|
||||||
|
|
||||||
@ -859,7 +848,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
fun onPlayerCloneEvent(event: PlayerEvent.Clone) {
|
fun onPlayerCloneEvent(event: PlayerEvent.Clone) {
|
||||||
val it = event.entity.matteryPlayer ?: return
|
val it = event.entity.matteryPlayer ?: return
|
||||||
|
|
||||||
@ -892,7 +880,6 @@ class MatteryPlayerCapability(val ply: Player) : ICapabilityProvider, IMatteryEn
|
|||||||
|
|
||||||
private val itemPickupTicks = WeakHashMap<Player, WeakHashMap<ItemEntity, MutableInt>>()
|
private val itemPickupTicks = WeakHashMap<Player, WeakHashMap<ItemEntity, MutableInt>>()
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOW)
|
|
||||||
fun onPickupEvent(event: EntityItemPickupEvent) {
|
fun onPickupEvent(event: EntityItemPickupEvent) {
|
||||||
if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) {
|
if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) {
|
||||||
return
|
return
|
||||||
|
@ -36,7 +36,6 @@ import java.util.ArrayList
|
|||||||
* 5. Mods which check items for being stack-able even with stack size of 1 gonna compare nbt tag,
|
* 5. Mods which check items for being stack-able even with stack size of 1 gonna compare nbt tag,
|
||||||
* which will be performance tanking due to clause 1.
|
* which will be performance tanking due to clause 1.
|
||||||
*/
|
*/
|
||||||
@Suppress("unused")
|
|
||||||
object DrivePool {
|
object DrivePool {
|
||||||
private val LOGGER = LogManager.getLogger()
|
private val LOGGER = LogManager.getLogger()
|
||||||
private val pool = Object2ObjectAVLTreeMap<UUID, WeakDriveReference>()
|
private val pool = Object2ObjectAVLTreeMap<UUID, WeakDriveReference>()
|
||||||
@ -130,7 +129,6 @@ object DrivePool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onServerPostTick(event: ServerTickEvent) {
|
fun onServerPostTick(event: ServerTickEvent) {
|
||||||
if (event.phase == TickEvent.Phase.END) {
|
if (event.phase == TickEvent.Phase.END) {
|
||||||
if (exception != null) {
|
if (exception != null) {
|
||||||
@ -152,7 +150,6 @@ object DrivePool {
|
|||||||
return Thread.currentThread() === serverThread
|
return Thread.currentThread() === serverThread
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
|
||||||
fun serverStartEvent(event: ServerAboutToStartEvent) {
|
fun serverStartEvent(event: ServerAboutToStartEvent) {
|
||||||
if (thread?.isAlive == true) {
|
if (thread?.isAlive == true) {
|
||||||
LOGGER.error("FMLServerStartedEvent fired twice.")
|
LOGGER.error("FMLServerStartedEvent fired twice.")
|
||||||
@ -172,7 +169,6 @@ object DrivePool {
|
|||||||
thread = Thread(null, this::thread, "Overdrive That Matters DrivePool IO").also { it.start() }
|
thread = Thread(null, this::thread, "Overdrive That Matters DrivePool IO").also { it.start() }
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGHEST)
|
|
||||||
fun serverStopEvent(event: ServerStoppingEvent) {
|
fun serverStopEvent(event: ServerStoppingEvent) {
|
||||||
val thread = thread
|
val thread = thread
|
||||||
|
|
||||||
@ -189,7 +185,6 @@ object DrivePool {
|
|||||||
pool.clear()
|
pool.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
fun onWorldSave(event: LevelEvent.Save) {
|
fun onWorldSave(event: LevelEvent.Save) {
|
||||||
writeBacklog()
|
writeBacklog()
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,53 @@
|
|||||||
|
package ru.dbotthepony.mc.otm.client
|
||||||
|
|
||||||
|
import net.minecraft.client.gui.screens.inventory.InventoryScreen
|
||||||
|
import net.minecraftforge.client.event.MovementInputUpdateEvent
|
||||||
|
import net.minecraftforge.client.event.ScreenEvent
|
||||||
|
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
||||||
|
import ru.dbotthepony.mc.otm.client.screen.ExoSuitInventoryScreen
|
||||||
|
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
||||||
|
|
||||||
|
object ClientEventHandler {
|
||||||
|
fun inputEvent(event: MovementInputUpdateEvent) {
|
||||||
|
val ply = event.entity
|
||||||
|
val input = event.input
|
||||||
|
|
||||||
|
val cap = ply.matteryPlayer ?: return
|
||||||
|
|
||||||
|
if (cap.hasFeature(AndroidFeatures.AIR_BAGS))
|
||||||
|
return
|
||||||
|
|
||||||
|
if (ply.abilities.mayfly) {
|
||||||
|
cap.lastJumpTicks = 14
|
||||||
|
} else {
|
||||||
|
if (ply.isInWater) {
|
||||||
|
if (ply.isOnGround) {
|
||||||
|
cap.lastJumpTicks = 14
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ply.isSwimming) {
|
||||||
|
ply.isSwimming = false
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cap.lastJumpTicks <= 0) {
|
||||||
|
input.jumping = false
|
||||||
|
input.up = false
|
||||||
|
} else {
|
||||||
|
cap.lastJumpTicks--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun screenOpen(event: ScreenEvent.Opening) {
|
||||||
|
if (minecraft.player?.isCreative == true) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
val player = minecraft.player?.matteryPlayer ?: return
|
||||||
|
|
||||||
|
if (player.hasExoSuit && event.newScreen is InventoryScreen) {
|
||||||
|
event.newScreen = ExoSuitInventoryScreen(player.exoSuitMenu)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,56 +0,0 @@
|
|||||||
package ru.dbotthepony.mc.otm.client
|
|
||||||
|
|
||||||
import net.minecraft.client.gui.screens.inventory.InventoryScreen
|
|
||||||
import net.minecraftforge.client.event.MovementInputUpdateEvent
|
|
||||||
import net.minecraftforge.client.event.ScreenEvent
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
|
||||||
import ru.dbotthepony.mc.otm.capability.matteryPlayer
|
|
||||||
import ru.dbotthepony.mc.otm.client.screen.ExoSuitInventoryScreen
|
|
||||||
import ru.dbotthepony.mc.otm.registry.AndroidFeatures
|
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun inputEvent(event: MovementInputUpdateEvent) {
|
|
||||||
val ply = event.entity
|
|
||||||
val input = event.input
|
|
||||||
|
|
||||||
val cap = ply.matteryPlayer ?: return
|
|
||||||
|
|
||||||
if (cap.hasFeature(AndroidFeatures.AIR_BAGS))
|
|
||||||
return
|
|
||||||
|
|
||||||
if (ply.abilities.mayfly) {
|
|
||||||
cap.lastJumpTicks = 14
|
|
||||||
} else {
|
|
||||||
if (ply.isInWater) {
|
|
||||||
if (ply.isOnGround) {
|
|
||||||
cap.lastJumpTicks = 14
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ply.isSwimming) {
|
|
||||||
ply.isSwimming = false
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cap.lastJumpTicks <= 0) {
|
|
||||||
input.jumping = false
|
|
||||||
input.up = false
|
|
||||||
} else {
|
|
||||||
cap.lastJumpTicks--
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun screenOpen(event: ScreenEvent.Opening) {
|
|
||||||
if (minecraft.player?.isCreative == true) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
val player = minecraft.player?.matteryPlayer ?: return
|
|
||||||
|
|
||||||
if (player.hasExoSuit && event.newScreen is InventoryScreen) {
|
|
||||||
event.newScreen = ExoSuitInventoryScreen(player.exoSuitMenu)
|
|
||||||
}
|
|
||||||
}
|
|
@ -39,8 +39,6 @@ object MatteryGUI {
|
|||||||
|
|
||||||
private val button_shaker = Random()
|
private val button_shaker = Random()
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun onScreenRender(event: ScreenEvent.Render.Pre) {
|
fun onScreenRender(event: ScreenEvent.Render.Pre) {
|
||||||
if (knownButtonScreen != null && knownButton == null) {
|
if (knownButtonScreen != null && knownButton == null) {
|
||||||
for (widget in knownButtonScreen!!.renderables) {
|
for (widget in knownButtonScreen!!.renderables) {
|
||||||
@ -87,8 +85,6 @@ object MatteryGUI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
@Suppress("unused")
|
|
||||||
fun onOpenGUIEvent(event: ScreenEvent.Opening) {
|
fun onOpenGUIEvent(event: ScreenEvent.Opening) {
|
||||||
knownButtonX = -1
|
knownButtonX = -1
|
||||||
knownButtonY = -1
|
knownButtonY = -1
|
||||||
@ -198,14 +194,10 @@ object MatteryGUI {
|
|||||||
popScissorRect()
|
popScissorRect()
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun onRenderGuiEvent(event: RenderGuiEvent.Post) {
|
fun onRenderGuiEvent(event: RenderGuiEvent.Post) {
|
||||||
showIteration(event)
|
showIteration(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.HIGH)
|
|
||||||
@Suppress("unused")
|
|
||||||
fun onLayerRenderEvent(event: RenderGuiOverlayEvent.Pre) {
|
fun onLayerRenderEvent(event: RenderGuiOverlayEvent.Pre) {
|
||||||
if (event.overlay != FOOD_LEVEL_ELEMENT && event.overlay != AIR_LEVEL_ELEMENT) {
|
if (event.overlay != FOOD_LEVEL_ELEMENT && event.overlay != AIR_LEVEL_ELEMENT) {
|
||||||
return
|
return
|
||||||
|
@ -9,8 +9,6 @@ import ru.dbotthepony.mc.otm.capability.isMekanismLoaded
|
|||||||
|
|
||||||
private val BLACKHOLE_IMMUNITY = TranslatableComponent("otm.item.blackhole_immunity").withStyle(ChatFormatting.DARK_GRAY)
|
private val BLACKHOLE_IMMUNITY = TranslatableComponent("otm.item.blackhole_immunity").withStyle(ChatFormatting.DARK_GRAY)
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun tooltipEvent(event: ItemTooltipEvent) {
|
fun tooltipEvent(event: ItemTooltipEvent) {
|
||||||
if (!isMekanismLoaded) {
|
if (!isMekanismLoaded) {
|
||||||
throw IllegalStateException("Mekanism is not loaded!")
|
throw IllegalStateException("Mekanism is not loaded!")
|
||||||
|
@ -100,7 +100,6 @@ class PortableCondensationDriveItem(capacity: Int) :
|
|||||||
const val MAX_FILTERS = 4 * 3
|
const val MAX_FILTERS = 4 * 3
|
||||||
const val FILTER_PATH = "filter"
|
const val FILTER_PATH = "filter"
|
||||||
|
|
||||||
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
||||||
fun onPickupEvent(event: EntityItemPickupEvent) {
|
fun onPickupEvent(event: EntityItemPickupEvent) {
|
||||||
if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) {
|
if (event.item.owner != null && event.item.owner != event.entity.uuid && event.item.age < 200 || event.item.item.isEmpty) {
|
||||||
return
|
return
|
||||||
|
@ -18,7 +18,6 @@ import net.minecraftforge.client.event.RenderHandEvent
|
|||||||
import net.minecraftforge.client.event.RenderPlayerEvent
|
import net.minecraftforge.client.event.RenderPlayerEvent
|
||||||
import net.minecraftforge.client.event.ViewportEvent
|
import net.minecraftforge.client.event.ViewportEvent
|
||||||
import net.minecraftforge.event.TickEvent
|
import net.minecraftforge.event.TickEvent
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
|
||||||
import net.minecraftforge.fml.LogicalSide
|
import net.minecraftforge.fml.LogicalSide
|
||||||
import net.minecraftforge.network.NetworkEvent
|
import net.minecraftforge.network.NetworkEvent
|
||||||
import ru.dbotthepony.mc.otm.*
|
import ru.dbotthepony.mc.otm.*
|
||||||
@ -276,8 +275,6 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
private var lastFov = 1.0
|
private var lastFov = 1.0
|
||||||
private var lastFovTime = 0L
|
private var lastFovTime = 0L
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun fovHook(event: ViewportEvent.ComputeFov) {
|
fun fovHook(event: ViewportEvent.ComputeFov) {
|
||||||
val player = event.camera.entity as? Player ?: return
|
val player = event.camera.entity as? Player ?: return
|
||||||
|
|
||||||
@ -309,8 +306,6 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun playerRenderHook(event: RenderPlayerEvent.Pre) {
|
fun playerRenderHook(event: RenderPlayerEvent.Pre) {
|
||||||
if (event.entity.mainHandItem.item is AbstractWeaponItem<*> && event.entity.offhandItem.isEmpty) {
|
if (event.entity.mainHandItem.item is AbstractWeaponItem<*> && event.entity.offhandItem.isEmpty) {
|
||||||
event.renderer.model.rightArmPose = HumanoidModel.ArmPose.BOW_AND_ARROW
|
event.renderer.model.rightArmPose = HumanoidModel.ArmPose.BOW_AND_ARROW
|
||||||
@ -318,8 +313,6 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun clickHook(event: InputEvent.InteractionKeyMappingTriggered) {
|
fun clickHook(event: InputEvent.InteractionKeyMappingTriggered) {
|
||||||
val player = Minecraft.getInstance().player!!
|
val player = Minecraft.getInstance().player!!
|
||||||
|
|
||||||
@ -352,8 +345,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
0.6,
|
0.6,
|
||||||
)
|
)
|
||||||
|
|
||||||
@SubscribeEvent
|
@Suppress("unchecked_cast")
|
||||||
@Suppress("unused", "unchecked_cast")
|
|
||||||
fun renderViewModel(event: RenderHandEvent) {
|
fun renderViewModel(event: RenderHandEvent) {
|
||||||
if (inRender) {
|
if (inRender) {
|
||||||
return
|
return
|
||||||
@ -523,8 +515,7 @@ abstract class AbstractWeaponItem<D : WeaponDataTable>(val tables: KClass<D>, ra
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@Suppress("unchecked_cast")
|
||||||
@Suppress("unused", "unchecked_cast")
|
|
||||||
fun tick(event: TickEvent.PlayerTickEvent) {
|
fun tick(event: TickEvent.PlayerTickEvent) {
|
||||||
if (event.phase != TickEvent.Phase.START)
|
if (event.phase != TickEvent.Phase.START)
|
||||||
return
|
return
|
||||||
|
@ -143,8 +143,6 @@ private enum class ResultType {
|
|||||||
|
|
||||||
private data class Result(val type: ResultType = ResultType.UNKNOWN_VALUE, val tuple: MatterTuple? = null)
|
private data class Result(val type: ResultType = ResultType.UNKNOWN_VALUE, val tuple: MatterTuple? = null)
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun serverStartData(event: ServerStartedEvent) {
|
fun serverStartData(event: ServerStartedEvent) {
|
||||||
rootEntriesAccess.clear()
|
rootEntriesAccess.clear()
|
||||||
derivedEntriesAccess.clear()
|
derivedEntriesAccess.clear()
|
||||||
|
@ -9,7 +9,6 @@ import net.minecraft.world.item.Item
|
|||||||
import net.minecraft.world.item.ItemStack
|
import net.minecraft.world.item.ItemStack
|
||||||
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
import net.minecraftforge.event.entity.player.ItemTooltipEvent
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent
|
import net.minecraftforge.event.entity.player.PlayerEvent
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent
|
|
||||||
import net.minecraftforge.network.NetworkEvent
|
import net.minecraftforge.network.NetworkEvent
|
||||||
import net.minecraftforge.network.PacketDistributor
|
import net.minecraftforge.network.PacketDistributor
|
||||||
import org.lwjgl.glfw.GLFW
|
import org.lwjgl.glfw.GLFW
|
||||||
@ -213,8 +212,6 @@ fun getMatterValue(stack: ItemStack): MatterTuple {
|
|||||||
return getMatterValue(stack, 0)
|
return getMatterValue(stack, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun onPlayerJoin(event: PlayerEvent.PlayerLoggedInEvent) {
|
fun onPlayerJoin(event: PlayerEvent.PlayerLoggedInEvent) {
|
||||||
if (NULLABLE_MINECRAFT_SERVER != null) {
|
if (NULLABLE_MINECRAFT_SERVER != null) {
|
||||||
RegistryNetworkChannel.send(PacketDistributor.PLAYER.with { event.entity as ServerPlayer }, RegistryPacketFullUpdate(MatterRegistryType.ROOT, rootEntries))
|
RegistryNetworkChannel.send(PacketDistributor.PLAYER.with { event.entity as ServerPlayer }, RegistryPacketFullUpdate(MatterRegistryType.ROOT, rootEntries))
|
||||||
@ -222,8 +219,6 @@ fun onPlayerJoin(event: PlayerEvent.PlayerLoggedInEvent) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun tooltipEvent(event: ItemTooltipEvent) {
|
fun tooltipEvent(event: ItemTooltipEvent) {
|
||||||
val window = Minecraft.getInstance().window.window
|
val window = Minecraft.getInstance().window.window
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
import ru.dbotthepony.mc.otm.OverdriveThatMatters
|
||||||
@ -18,7 +19,7 @@ object AndroidFeatures {
|
|||||||
val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::NanobotsArmor) }
|
val NANOBOTS_ARMOR: AndroidFeatureType<*> by registry.register(MNames.NANOBOTS_ARMOR) { AndroidFeatureType(::NanobotsArmor) }
|
||||||
val EXTENDED_REACH: AndroidFeatureType<*> by registry.register(MNames.EXTENDED_REACH) { AndroidFeatureType(::ExtendedReach) }
|
val EXTENDED_REACH: AndroidFeatureType<*> by registry.register(MNames.EXTENDED_REACH) { AndroidFeatureType(::ExtendedReach) }
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.RegistryObject
|
import net.minecraftforge.registries.RegistryObject
|
||||||
@ -76,8 +77,8 @@ object AndroidResearch {
|
|||||||
|
|
||||||
private val registry = DeferredRegister.create(MRegistry.ANDROID_RESEARCH_KEY, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(MRegistry.ANDROID_RESEARCH_KEY, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
}
|
}
|
||||||
|
|
||||||
val AIR_BAGS: AndroidResearchType<*> by registry.register(MNames.AIR_BAGS) {
|
val AIR_BAGS: AndroidResearchType<*> by registry.register(MNames.AIR_BAGS) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package ru.dbotthepony.mc.otm.registry
|
package ru.dbotthepony.mc.otm.registry
|
||||||
|
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
@ -15,7 +16,7 @@ object LootModifiers {
|
|||||||
registry.register("loot_appender_basic") { LootTableBasicAppender.CODEC }
|
registry.register("loot_appender_basic") { LootTableBasicAppender.CODEC }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.registry
|
|||||||
|
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderers
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType
|
import net.minecraft.world.level.block.entity.BlockEntityType
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
@ -53,9 +54,9 @@ object MBlockEntities {
|
|||||||
val DEBUG_EXPLOSION_SMALL: BlockEntityType<*> by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockEntityType.Builder.of(::BlockEntityExplosionDebugger, MBlocks.DEBUG_EXPLOSION_SMALL).build(null) }
|
val DEBUG_EXPLOSION_SMALL: BlockEntityType<*> by registry.register(MNames.DEBUG_EXPLOSION_SMALL) { BlockEntityType.Builder.of(::BlockEntityExplosionDebugger, MBlocks.DEBUG_EXPLOSION_SMALL).build(null) }
|
||||||
val DEBUG_SPHERE_POINTS: BlockEntityType<*> by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockEntityType.Builder.of(::BlockEntitySphereDebugger, MBlocks.DEBUG_SPHERE_POINTS).build(null) }
|
val DEBUG_SPHERE_POINTS: BlockEntityType<*> by registry.register(MNames.DEBUG_SPHERE_POINTS) { BlockEntityType.Builder.of(::BlockEntitySphereDebugger, MBlocks.DEBUG_SPHERE_POINTS).build(null) }
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
bus.addListener(this::registerClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("unchecked_cast")
|
@Suppress("unchecked_cast")
|
||||||
|
@ -11,6 +11,7 @@ import net.minecraft.world.level.block.SoundType
|
|||||||
import net.minecraft.world.level.block.state.BlockBehaviour
|
import net.minecraft.world.level.block.state.BlockBehaviour
|
||||||
import net.minecraft.world.level.material.Material
|
import net.minecraft.world.level.material.Material
|
||||||
import net.minecraft.world.level.material.MaterialColor
|
import net.minecraft.world.level.material.MaterialColor
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
@ -24,9 +25,9 @@ import ru.dbotthepony.mc.otm.block.storage.*
|
|||||||
object MBlocks {
|
object MBlocks {
|
||||||
private val registry = DeferredRegister.create(ForgeRegistries.BLOCKS, OverdriveThatMatters.MOD_ID)
|
private val registry = DeferredRegister.create(ForgeRegistries.BLOCKS, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
bus.addListener(this::registerClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun registerClient(event: FMLClientSetupEvent) {
|
private fun registerClient(event: FMLClientSetupEvent) {
|
||||||
|
@ -5,6 +5,7 @@ import net.minecraft.client.renderer.entity.EntityRenderers
|
|||||||
import net.minecraft.world.entity.Entity
|
import net.minecraft.world.entity.Entity
|
||||||
import net.minecraft.world.entity.EntityType
|
import net.minecraft.world.entity.EntityType
|
||||||
import net.minecraft.world.entity.MobCategory
|
import net.minecraft.world.entity.MobCategory
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
@ -20,9 +21,9 @@ object MEntityTypes {
|
|||||||
EntityType.Builder.of<PlasmaProjectile>({ _, level -> PlasmaProjectile(level) }, MobCategory.MISC).sized(0.4f, 0.4f).build(MNames.PLASMA)
|
EntityType.Builder.of<PlasmaProjectile>({ _, level -> PlasmaProjectile(level) }, MobCategory.MISC).sized(0.4f, 0.4f).build(MNames.PLASMA)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
bus.addListener(this::registerClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("unchecked_cast")
|
@Suppress("unchecked_cast")
|
||||||
|
@ -10,6 +10,7 @@ import net.minecraft.world.item.*
|
|||||||
import net.minecraft.world.item.crafting.Ingredient
|
import net.minecraft.world.item.crafting.Ingredient
|
||||||
import net.minecraft.world.level.Level
|
import net.minecraft.world.level.Level
|
||||||
import net.minecraftforge.common.ForgeTier
|
import net.minecraftforge.common.ForgeTier
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
@ -24,8 +25,8 @@ object MItems {
|
|||||||
private val DEFAULT_PROPERTIES_DECORATIVE = Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE)
|
private val DEFAULT_PROPERTIES_DECORATIVE = Item.Properties().stacksTo(64).tab(OverdriveThatMatters.INSTANCE.CREATIVE_TAB_DECORATIVE)
|
||||||
private val registry: DeferredRegister<Item> = DeferredRegister.create(ForgeRegistries.ITEMS, OverdriveThatMatters.MOD_ID)
|
private val registry: DeferredRegister<Item> = DeferredRegister.create(ForgeRegistries.ITEMS, OverdriveThatMatters.MOD_ID)
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
}
|
}
|
||||||
|
|
||||||
val ANDROID_STATION: Item by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) }
|
val ANDROID_STATION: Item by registry.register(MNames.ANDROID_STATION) { BlockItem(MBlocks.ANDROID_STATION, DEFAULT_PROPERTIES) }
|
||||||
|
@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.registry
|
|||||||
|
|
||||||
import net.minecraft.client.gui.screens.MenuScreens
|
import net.minecraft.client.gui.screens.MenuScreens
|
||||||
import net.minecraft.world.inventory.MenuType
|
import net.minecraft.world.inventory.MenuType
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
@ -36,9 +37,9 @@ object MMenus {
|
|||||||
val STORAGE_IMPORTER: MenuType<*> by registry.register(MNames.STORAGE_IMPORTER) { MenuType(::StorageImporterMenu) }
|
val STORAGE_IMPORTER: MenuType<*> by registry.register(MNames.STORAGE_IMPORTER) { MenuType(::StorageImporterMenu) }
|
||||||
val STORAGE_POWER_SUPPLIER: MenuType<*> by registry.register(MNames.STORAGE_POWER_SUPPLIER) { MenuType(::StoragePowerSupplierMenu) }
|
val STORAGE_POWER_SUPPLIER: MenuType<*> by registry.register(MNames.STORAGE_POWER_SUPPLIER) { MenuType(::StoragePowerSupplierMenu) }
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
FMLJavaModLoadingContext.get().modEventBus.addListener(this::registerClient)
|
bus.addListener(this::registerClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("unchecked_cast")
|
@Suppress("unchecked_cast")
|
||||||
|
@ -15,6 +15,7 @@ import net.minecraft.world.level.block.state.BlockBehaviour
|
|||||||
import net.minecraft.world.level.block.state.BlockState
|
import net.minecraft.world.level.block.state.BlockState
|
||||||
import net.minecraft.world.level.material.Material
|
import net.minecraft.world.level.material.Material
|
||||||
import net.minecraft.world.level.material.MaterialColor
|
import net.minecraft.world.level.material.MaterialColor
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.ForgeRegistry
|
import net.minecraftforge.registries.ForgeRegistry
|
||||||
import net.minecraftforge.registries.IForgeRegistry
|
import net.minecraftforge.registries.IForgeRegistry
|
||||||
@ -205,21 +206,20 @@ object MRegistry {
|
|||||||
.strength(4f))
|
.strength(4f))
|
||||||
})
|
})
|
||||||
|
|
||||||
fun initialize(context: FMLJavaModLoadingContext) {
|
fun initialize(bus: IEventBus) {
|
||||||
context.modEventBus.addListener(this::register)
|
bus.addListener(this::register)
|
||||||
context.modEventBus.register(MStats)
|
bus.addListener(MStats::registerVanilla)
|
||||||
context.modEventBus.register(LootModifiers)
|
|
||||||
|
|
||||||
MBlocks.register()
|
MBlocks.register(bus)
|
||||||
MBlockEntities.register()
|
MBlockEntities.register(bus)
|
||||||
MEntityTypes.register()
|
MEntityTypes.register(bus)
|
||||||
MMenus.register()
|
MMenus.register(bus)
|
||||||
MItems.register()
|
MItems.register(bus)
|
||||||
AndroidFeatures.register()
|
AndroidFeatures.register(bus)
|
||||||
AndroidResearch.register()
|
AndroidResearch.register(bus)
|
||||||
MSoundEvents.register()
|
MSoundEvents.register(bus)
|
||||||
LootModifiers.register()
|
LootModifiers.register(bus)
|
||||||
|
|
||||||
MRecipes.register()
|
MRecipes.register(bus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import net.minecraft.resources.ResourceLocation
|
|||||||
import net.minecraft.sounds.SoundEvent
|
import net.minecraft.sounds.SoundEvent
|
||||||
import net.minecraft.sounds.SoundEvents
|
import net.minecraft.sounds.SoundEvents
|
||||||
import net.minecraft.world.entity.EntityType
|
import net.minecraft.world.entity.EntityType
|
||||||
|
import net.minecraftforge.eventbus.api.IEventBus
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
|
||||||
import net.minecraftforge.registries.DeferredRegister
|
import net.minecraftforge.registries.DeferredRegister
|
||||||
import net.minecraftforge.registries.ForgeRegistries
|
import net.minecraftforge.registries.ForgeRegistries
|
||||||
@ -18,7 +19,7 @@ object MSoundEvents {
|
|||||||
val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat")
|
val PLASMA_WEAPON_OVERHEAT: SoundEvent by make("item.plasma_weapon_overheat")
|
||||||
val PLAYER_BECOME_ANDROID: SoundEvent by make("player_become_android")
|
val PLAYER_BECOME_ANDROID: SoundEvent by make("player_become_android")
|
||||||
|
|
||||||
internal fun register() {
|
internal fun register(bus: IEventBus) {
|
||||||
registry.register(FMLJavaModLoadingContext.get().modEventBus)
|
registry.register(bus)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,8 +10,6 @@ import ru.dbotthepony.mc.otm.registry.StatNames.HEALTH_REGENERATED
|
|||||||
import ru.dbotthepony.mc.otm.registry.StatNames.POWER_CONSUMED
|
import ru.dbotthepony.mc.otm.registry.StatNames.POWER_CONSUMED
|
||||||
|
|
||||||
object MStats {
|
object MStats {
|
||||||
@SubscribeEvent
|
|
||||||
@Suppress("unused")
|
|
||||||
fun registerVanilla(event: FMLCommonSetupEvent) {
|
fun registerVanilla(event: FMLCommonSetupEvent) {
|
||||||
event.enqueueWork {
|
event.enqueueWork {
|
||||||
Registry.register(Registry.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED)
|
Registry.register(Registry.CUSTOM_STAT, DAMAGE_ABSORBED, DAMAGE_ABSORBED)
|
||||||
|
Loading…
Reference in New Issue
Block a user