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.minecraftforge.common.Configuration;
8 import net.minecraftforge.common.MinecraftForge;
9 import pcc.addon.crops.blocks.BlockChemicalCrops1;
10 import pcc.addon.crops.util.MultiBlockDataStream;
11 import pcc.addon.crops.util.WorldEventHandler;
12 import cpw.mods.fml.common.Mod;
13 import cpw.mods.fml.common.Mod.Init;
14 import cpw.mods.fml.common.Mod.Instance;
15 import cpw.mods.fml.common.Mod.PreInit;
16 import cpw.mods.fml.common.SidedProxy;
17 import cpw.mods.fml.common.event.FMLInitializationEvent;
18 import cpw.mods.fml.common.event.FMLPreInitializationEvent;
19 import cpw.mods.fml.common.network.NetworkMod;
20 import cpw.mods.fml.common.registry.GameRegistry;
22 @Mod(modid="ChemiCraft|Crops", name="ChemicalCrops(ChemiCraft-Addon)", version="v1.0.0")
23 @NetworkMod(clientSideRequired = true, serverSideRequired = false)
24 public class ChemicalCrops {
26 @Instance("ChemiCraft|Crops")
27 public static ChemicalCrops instance;
29 @SidedProxy(clientSide = "pcc.addon.crops.ClientProxy", serverSide = "pcc.addon.crops.CommonProxy")
30 public static CommonProxy proxy;
38 * ChemicalCropsの変数。<br>
39 * ここに入るインスタンスはBlockChemicalCropsと保証されます。
41 private Block blockCrops1;
44 * プラントデータ書き込み&読み込みのストリーム
46 public static final MultiBlockDataStream dataStream = new MultiBlockDataStream(System.getProperty("user.dir") + "/saves/", "ChemicalCrops.dat");
51 public static final String TEXTURE = "ChemicalCrops:";
56 private Thread thread;
58 public ChemicalCrops() {
59 this.thread = new Thread() {
64 dataStream.createDataOutputStream();
66 } catch (IOException e1) {
71 } catch (InterruptedException e) {
81 public void preInit(FMLPreInitializationEvent event) {
82 Configuration cfg = new Configuration(event.getSuggestedConfigurationFile());
84 this.crops1ID = cfg.getBlock("CropsID", 2700).getInt();
89 public void init(FMLInitializationEvent event) {
91 MinecraftForge.EVENT_BUS.register(new WorldEventHandler());
94 this.blockCrops1 = new BlockChemicalCrops1(this.crops1ID, Material.plants).setUnlocalizedName("BlockCrops");
97 GameRegistry.registerBlock(this.blockCrops1, "BlockCrops");
101 * プラントデータ自動セーブを開始します。<br>
102 * すでに停止している場合はNullPointerExceptionをスローします。
104 public void startAutoSave() {
107 } catch (IllegalThreadStateException e) {
112 * プラントデータ自動セーブを停止します。<br>
113 * 開始していない、もしくはすでに停止している場合はNullPointerExceptionをスローします。
115 public void stopAutoSave() {