2019-07-11 09:03:08 +02:00
|
|
|
package com.simibubi.create;
|
|
|
|
|
2019-07-11 19:55:11 +02:00
|
|
|
import org.apache.logging.log4j.LogManager;
|
2019-07-11 09:03:08 +02:00
|
|
|
import org.apache.logging.log4j.Logger;
|
|
|
|
|
2020-02-07 19:25:38 +01:00
|
|
|
import com.simibubi.create.config.AllConfigs;
|
2020-03-23 17:04:09 +01:00
|
|
|
import com.simibubi.create.foundation.advancement.AllTriggers;
|
2020-01-26 23:58:55 +01:00
|
|
|
import com.simibubi.create.foundation.command.CreateCommand;
|
|
|
|
import com.simibubi.create.foundation.command.ServerLagger;
|
2020-05-13 21:56:46 +02:00
|
|
|
import com.simibubi.create.foundation.registrate.CreateRegistrate;
|
2020-03-22 01:10:21 +01:00
|
|
|
import com.simibubi.create.foundation.world.AllWorldFeatures;
|
2019-11-01 01:09:38 +01:00
|
|
|
import com.simibubi.create.modules.contraptions.TorquePropagator;
|
2020-01-05 19:41:38 +01:00
|
|
|
import com.simibubi.create.modules.logistics.RedstoneLinkNetworkHandler;
|
2020-05-13 01:11:07 +02:00
|
|
|
import com.simibubi.create.modules.palettes.AllPaletteBlocks;
|
2020-05-12 14:06:50 +02:00
|
|
|
import com.simibubi.create.modules.palettes.PalettesItemGroup;
|
2019-07-23 12:54:53 +02:00
|
|
|
import com.simibubi.create.modules.schematics.ServerSchematicLoader;
|
2020-04-26 06:58:38 +02:00
|
|
|
import com.tterrag.registrate.util.NonNullLazyValue;
|
2019-07-11 09:03:08 +02:00
|
|
|
|
2019-10-05 19:00:43 +02:00
|
|
|
import net.minecraft.entity.EntityType;
|
2019-10-15 22:22:19 +02:00
|
|
|
import net.minecraft.inventory.container.ContainerType;
|
2019-07-11 09:03:08 +02:00
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemGroup;
|
2019-07-28 10:08:49 +02:00
|
|
|
import net.minecraft.item.crafting.IRecipeSerializer;
|
2019-12-05 23:42:01 +01:00
|
|
|
import net.minecraft.particles.ParticleType;
|
2019-10-15 22:22:19 +02:00
|
|
|
import net.minecraft.tileentity.TileEntityType;
|
2020-05-13 01:11:07 +02:00
|
|
|
import net.minecraft.util.ResourceLocation;
|
2020-03-23 17:04:09 +01:00
|
|
|
import net.minecraft.util.SoundEvent;
|
2020-01-26 23:58:55 +01:00
|
|
|
import net.minecraftforge.common.MinecraftForge;
|
2019-10-15 22:22:19 +02:00
|
|
|
import net.minecraftforge.eventbus.api.IEventBus;
|
2019-07-11 09:03:08 +02:00
|
|
|
import net.minecraftforge.fml.common.Mod;
|
|
|
|
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
2020-01-26 23:58:55 +01:00
|
|
|
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
|
2019-10-15 22:22:19 +02:00
|
|
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
2019-07-11 09:03:08 +02:00
|
|
|
|
|
|
|
@Mod(Create.ID)
|
|
|
|
public class Create {
|
|
|
|
|
|
|
|
public static final String ID = "create";
|
|
|
|
public static final String NAME = "Create";
|
2020-05-13 21:56:46 +02:00
|
|
|
public static final String VERSION = "0.2.3";
|
2019-07-11 09:03:08 +02:00
|
|
|
|
2019-07-11 19:55:11 +02:00
|
|
|
public static Logger logger = LogManager.getLogger();
|
2020-05-12 14:06:50 +02:00
|
|
|
public static ItemGroup baseCreativeTab = new CreateItemGroup();
|
|
|
|
public static ItemGroup palettesCreativeTab = new PalettesItemGroup();
|
|
|
|
|
2019-09-03 08:34:02 +02:00
|
|
|
public static ServerSchematicLoader schematicReceiver;
|
2020-01-05 19:41:38 +01:00
|
|
|
public static RedstoneLinkNetworkHandler redstoneLinkNetworkHandler;
|
2019-11-01 01:09:38 +01:00
|
|
|
public static TorquePropagator torquePropagator;
|
2019-12-15 01:13:36 +01:00
|
|
|
public static ServerLagger lagger;
|
2020-05-12 14:06:50 +02:00
|
|
|
|
2020-04-26 06:58:38 +02:00
|
|
|
private static final NonNullLazyValue<CreateRegistrate> registrate = CreateRegistrate.lazy(ID);
|
2019-07-28 10:08:49 +02:00
|
|
|
|
2019-09-10 22:51:26 +02:00
|
|
|
public Create() {
|
2019-10-15 22:22:19 +02:00
|
|
|
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
|
|
|
modEventBus.addListener(Create::init);
|
2019-12-05 23:42:01 +01:00
|
|
|
|
2019-12-15 01:13:36 +01:00
|
|
|
MinecraftForge.EVENT_BUS.addListener(Create::serverStarting);
|
|
|
|
|
2020-05-22 20:12:53 +02:00
|
|
|
AllBlocks.register();
|
2020-05-13 01:11:07 +02:00
|
|
|
AllPaletteBlocks.register();
|
2020-04-13 08:58:57 +02:00
|
|
|
// modEventBus.addGenericListener(Block.class, AllBlocks::register);
|
2019-12-05 23:42:01 +01:00
|
|
|
modEventBus.addGenericListener(Item.class, AllItems::register);
|
|
|
|
modEventBus.addGenericListener(IRecipeSerializer.class, AllRecipes::register);
|
|
|
|
modEventBus.addGenericListener(TileEntityType.class, AllTileEntities::register);
|
|
|
|
modEventBus.addGenericListener(ContainerType.class, AllContainers::register);
|
|
|
|
modEventBus.addGenericListener(EntityType.class, AllEntities::register);
|
|
|
|
modEventBus.addGenericListener(ParticleType.class, AllParticles::register);
|
2020-02-15 01:57:16 +01:00
|
|
|
modEventBus.addGenericListener(SoundEvent.class, AllSoundEvents::register);
|
2019-12-05 23:42:01 +01:00
|
|
|
|
2020-02-07 19:25:38 +01:00
|
|
|
modEventBus.addListener(AllConfigs::onLoad);
|
|
|
|
modEventBus.addListener(AllConfigs::onReload);
|
2019-10-15 22:22:19 +02:00
|
|
|
CreateClient.addListeners(modEventBus);
|
2020-05-08 12:55:52 +02:00
|
|
|
AllConfigs.registerClientCommon();
|
2019-09-10 22:51:26 +02:00
|
|
|
}
|
|
|
|
|
2019-09-03 08:34:02 +02:00
|
|
|
public static void init(final FMLCommonSetupEvent event) {
|
|
|
|
schematicReceiver = new ServerSchematicLoader();
|
2020-01-05 19:41:38 +01:00
|
|
|
redstoneLinkNetworkHandler = new RedstoneLinkNetworkHandler();
|
2019-11-01 01:09:38 +01:00
|
|
|
torquePropagator = new TorquePropagator();
|
2019-12-15 01:13:36 +01:00
|
|
|
lagger = new ServerLagger();
|
2019-10-11 05:56:32 +02:00
|
|
|
|
2019-07-19 17:50:23 +02:00
|
|
|
AllPackets.registerPackets();
|
2020-03-06 01:09:10 +01:00
|
|
|
AllTriggers.register();
|
2020-04-13 08:58:57 +02:00
|
|
|
|
|
|
|
AllWorldFeatures.reload();
|
2020-05-08 12:55:52 +02:00
|
|
|
AllConfigs.registerServer();
|
2019-07-11 19:55:11 +02:00
|
|
|
}
|
2019-07-28 10:08:49 +02:00
|
|
|
|
2020-02-07 19:25:38 +01:00
|
|
|
public static void serverStarting(FMLServerStartingEvent event) {
|
2019-12-15 01:13:36 +01:00
|
|
|
new CreateCommand(event.getCommandDispatcher());
|
|
|
|
}
|
|
|
|
|
2019-09-03 08:34:02 +02:00
|
|
|
public static void tick() {
|
2019-09-13 20:07:27 +02:00
|
|
|
if (schematicReceiver == null)
|
|
|
|
schematicReceiver = new ServerSchematicLoader();
|
2019-09-03 08:34:02 +02:00
|
|
|
schematicReceiver.tick();
|
2019-12-15 01:13:36 +01:00
|
|
|
|
|
|
|
lagger.tick();
|
2019-07-11 09:03:08 +02:00
|
|
|
}
|
|
|
|
|
2019-09-03 08:34:02 +02:00
|
|
|
public static void shutdown() {
|
|
|
|
schematicReceiver.shutdown();
|
2019-07-11 09:03:08 +02:00
|
|
|
}
|
2019-09-03 08:34:02 +02:00
|
|
|
|
2020-04-26 06:58:38 +02:00
|
|
|
public static CreateRegistrate registrate() {
|
2020-04-13 08:58:57 +02:00
|
|
|
return registrate.get();
|
|
|
|
}
|
2020-05-13 01:11:07 +02:00
|
|
|
|
|
|
|
public static ResourceLocation asResource(String path) {
|
|
|
|
return new ResourceLocation(ID, path);
|
|
|
|
}
|
|
|
|
|
2019-07-11 09:03:08 +02:00
|
|
|
}
|