1 package pcc.addon.crops;
3 import java.io.IOException;
5 import net.minecraft.block.Block;
6 import net.minecraft.block.material.Material;
7 import net.minecraft.server.MinecraftServer;
8 import net.minecraftforge.common.Configuration;
9 import net.minecraftforge.common.MinecraftForge;
10 import pcc.addon.crops.blocks.BlockChemicalCrops1;
11 import pcc.addon.crops.util.MultiBlockDataStream;
12 import pcc.addon.crops.util.WorldEventHandler;
13 import cpw.mods.fml.common.Mod;
14 import cpw.mods.fml.common.Mod.Init;
15 import cpw.mods.fml.common.Mod.Instance;
16 import cpw.mods.fml.common.Mod.PreInit;
17 import cpw.mods.fml.common.SidedProxy;
18 import cpw.mods.fml.common.event.FMLInitializationEvent;
19 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
20 import cpw.mods.fml.common.network.NetworkMod;
21 import cpw.mods.fml.common.registry.GameRegistry;
23 @Mod(modid="ChemiCraftCrops", name="ChemicalCrops(ChemiCraft-Addon)", version="v1.0.0")
24 @NetworkMod(clientSideRequired = true, serverSideRequired = false)
25 public class ChemicalCrops {
27 @Instance("ChemiCraftCrops")
28 public static ChemicalCrops instance;
30 @SidedProxy(clientSide = "pcc.addon.crops.ClientProxy", serverSide = "pcc.addon.crops.CommonProxy")
31 public static CommonProxy proxy;
39 * ChemicalCropsの変数。<br>
40 * ここに入るインスタンスはBlockChemicalCropsと保証されます。
42 private Block blockCrops1;
45 * プラントデータ書き込み&読み込みのストリーム
47 private static MultiBlockDataStream dataStream;
52 public static final String TEXTURE = "ChemicalCrops:";
57 private Thread thread;
62 private static String MINECRAFT_DIR;
64 public ChemicalCrops() {
65 this.thread = new Thread() {
70 dataStream.createDataOutputStream();
72 } catch (IOException e1) {
77 } catch (InterruptedException e) {
87 public void preInit(FMLPreInitializationEvent event) {
88 this.MINECRAFT_DIR = event.getModConfigurationDirectory().getAbsolutePath().substring(0, event.getModConfigurationDirectory().getAbsolutePath().length()-6) + "saves/";
89 this.dataStream = new MultiBlockDataStream(MINECRAFT_DIR, "ChemicalCrops.dat");
91 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
93 this.crops1ID = cfg.getBlock("CropsID", 2700).getInt();
98 public void init(FMLInitializationEvent event) {
100 MinecraftForge.EVENT_BUS.register(new WorldEventHandler());
103 this.blockCrops1 = new BlockChemicalCrops1(this.crops1ID, Material.plants).setUnlocalizedName("BlockCrops");
106 GameRegistry.registerBlock(this.blockCrops1, "BlockCrops");
113 public static MultiBlockDataStream getDataStream() {
118 * プラントデータ自動セーブを開始します。<br>
119 * すでに停止している場合はNullPointerExceptionをスローします。
121 public void startAutoSave() {
124 } catch (IllegalThreadStateException e) {
129 * プラントデータ自動セーブを停止します。<br>
130 * 開始していない、もしくはすでに停止している場合はNullPointerExceptionをスローします。
132 public void stopAutoSave() {