示例#1
0
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);
        if (contents != null)
        {
            contents.ResolveBlockOrItem(api.World);
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), 0);
        }

        if (api is ICoreClientAPI)
        {
            ICoreClientAPI capi = (ICoreClientAPI)api;
            capi.Event.RegisterRenderer(renderer = new TFForgeContentsRenderer(Pos, capi), EnumRenderStage.Opaque, "tfforge");
            renderer.SetContents(contents, burning, true);

            RegisterGameTickListener(OnClientTick, 500);
        }

        consume = MyMiniLib.GetAttributeInt(Block, "consume", 500);

        wsys = api.ModLoader.GetModSystem <WeatherSystemBase>();

        if (api.Side.IsServer())
        {
            RegisterGameTickListener(OnCommonTick, 250);
        }
    }
示例#2
0
    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);

        contents           = tree.GetItemstack("contents");
        burning            = tree.GetInt("burning") > 0;
        lastTickTotalHours = tree.GetDouble("lastTickTotalHours");

        if (Api != null)
        {
            if (contents != null)
            {
                contents.ResolveBlockOrItem(Api.World);
            }
        }
        if (renderer != null)
        {
            renderer.SetContents(contents, burning, true);
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), 0);
        }
        energyStorage.setEnergy(tree.GetFloat("energy"));
    }
示例#3
0
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);
        Api = api;

        pvBh = GetBehavior <BEBehaviorTFRotaryGenerator>();

        if (api.World.Side == EnumAppSide.Server)
        {
            RegisterGameTickListener(tick, 100);
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), 0, MyMiniLib.GetAttributeInt(Block, "output", 500));
        }

        maxgenerate = MyMiniLib.GetAttributeInt(Block, "maxgenerate", 200);
        maxspeed    = MyMiniLib.GetAttributeInt(Block, "maxspeed", 5);

        Facing = BlockFacing.FromCode(Block.Variant["side"]);
        if (Facing == null)
        {
            Facing = BlockFacing.NORTH;
        }
    }
示例#4
0
    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 10000), 0);
        }
        energyStorage.setEnergy(tree.GetFloat("energy", 0));
    }
示例#5
0
文件: Relay.cs 项目: Niker323/VS-mods
    //public override void GetBlockInfo(IPlayer forPlayer, StringBuilder dsc)
    //{
    //    base.GetBlockInfo(forPlayer, dsc);
    //    if (energyStorage != null)
    //    {
    //        dsc.AppendLine(energyStorage.GetFluxStorageInfo());
    //    }
    //}

    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "transfer", 10000), MyMiniLib.GetAttributeInt(Block, "transfer", 10000), MyMiniLib.GetAttributeInt(Block, "transfer", 10000));
        }
        energyStorage.setEnergy(tree.GetFloat("energy"));
        state = tree.GetBool("state", false);
    }
示例#6
0
    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), 0, MyMiniLib.GetAttributeInt(Block, "output", 500));
        }
        energyStorage.setEnergy(tree.GetFloat("energy"));
        if (Api != null && Api.World.Side == EnumAppSide.Client)
        {
            generation = tree.GetFloat("gen");
        }
    }
示例#7
0
文件: Relay.cs 项目: Niker323/VS-mods
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);
        Api  = api;
        face = BlockFacing.FromCode(Block.Variant["side"]);

        if (api.World.Side == EnumAppSide.Server)
        {
            RegisterGameTickListener(tick, 250);
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "transfer", 10000), MyMiniLib.GetAttributeInt(Block, "transfer", 10000), MyMiniLib.GetAttributeInt(Block, "transfer", 10000));
        }
        if (sideConfig.Count == 0)
        {
            string[] splitedPath = Block.Code.ToString().Split('-');
            if (splitedPath.Length >= 6)
            {
                foreach (BlockFacing f in BlockFacing.ALLFACES)
                {
                    if (splitedPath[splitedPath.Length - 6 + f.Index] == IOEnergySideConfig.INPUT.toString())
                    {
                        sideConfig.Add(f, IOEnergySideConfig.INPUT);
                    }
                    else if (splitedPath[splitedPath.Length - 6 + f.Index] == IOEnergySideConfig.OUTPUT.toString())
                    {
                        sideConfig.Add(f, IOEnergySideConfig.OUTPUT);
                    }
                    else
                    {
                        sideConfig.Add(f, IOEnergySideConfig.NONE);
                    }
                }
            }
            else
            {
                foreach (BlockFacing f in BlockFacing.ALLFACES)
                {
                    sideConfig.Add(f, IOEnergySideConfig.NONE);
                }
            }
        }
        if (face != null)
        {
            sideConfig[face] = IOEnergySideConfig.NONE;
        }
    }
示例#8
0
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), 0);
        }

        inventory.pos = Pos;
        inventory.LateInitialize("smelting-" + Pos.X + "/" + Pos.Y + "/" + Pos.Z, api);

        RegisterGameTickListener(OnBurnTick, 250);
        RegisterGameTickListener(On500msTick, 500);
    }
示例#9
0
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 10000), 0);
        }

        consume = MyMiniLib.GetAttributeInt(Block, "consume", 1000);

        if (Api.Side.IsServer())
        {
            RegisterGameTickListener(OnServerTick, 250);
        }
    }
示例#10
0
    public override void Initialize(ICoreAPI api)
    {
        base.Initialize(api);

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), MyMiniLib.GetAttributeInt(Block, "output", 1000));
        }

        inventory.LateInitialize("charger-" + Pos.ToString(), api);
        inventory.ResolveBlocksOrItems();

        if (api is ICoreClientAPI)
        {
            loadToolMeshes();
        }
        else
        {
            RegisterGameTickListener(OnTick, 250);
        }
    }
示例#11
0
    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);
        inventory.FromTreeAttributes(tree.GetTreeAttribute("inventory"));
        if (Api != null)
        {
            inventory.Api = Api;
            inventory.ResolveBlocksOrItems();
        }

        if (Api is ICoreClientAPI)
        {
            loadToolMeshes();
            Api.World.BlockAccessor.MarkBlockDirty(Pos);
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), MyMiniLib.GetAttributeInt(Block, "output", 1000));
        }
        energyStorage.setEnergy(tree.GetFloat("energy"));
    }
示例#12
0
    public override void FromTreeAttributes(ITreeAttribute tree, IWorldAccessor worldForResolving)
    {
        base.FromTreeAttributes(tree, worldForResolving);
        Inventory.FromTreeAttributes(tree.GetTreeAttribute("inventory"));

        if (Api != null)
        {
            Inventory.AfterBlocksLoaded(Api.World);
        }


        furnaceTemperature    = tree.GetFloat("furnaceTemperature");
        inputStackCookingTime = tree.GetFloat("oreCookingTime");

        if (Api != null)
        {
            if (Api.Side == EnumAppSide.Client)
            {
                if (clientDialog != null)
                {
                    SetDialogValues(clientDialog.Attributes);
                }
            }


            if (Api.Side == EnumAppSide.Client && clientSidePrevBurning != IsBurning)
            {
                clientSidePrevBurning = IsBurning;
                MarkDirty(true);
            }
        }

        if (energyStorage == null)
        {
            energyStorage = new FluxStorage(MyMiniLib.GetAttributeInt(Block, "storage", 10000), MyMiniLib.GetAttributeInt(Block, "input", 1000), 0);
        }
        energyStorage.setEnergy(tree.GetFloat("energy"));
    }
示例#13
0
 public EnergyDuctCore(int io)
 {
     storage = new FluxStorage(io, io, io);
 }