Example #1
0
        public override void Initialize(ICoreAPI api)
        {
            base.Initialize(api);

            inv.LateInitialize(InventoryClassName + "-" + Pos, api);

            capi = api as ICoreClientAPI;

            if (api.Side == EnumAppSide.Client)
            {
                RegisterGameTickListener(onClientTick50ms, 50);
            }
            else
            {
                RegisterGameTickListener(onServerTick1s, 1000);
            }


            ms    = Block.Attributes["multiblockStructure"].AsObject <MultiblockStructure>();
            msOpp = Block.Attributes["multiblockStructure"].AsObject <MultiblockStructure>();
            int rotYDeg    = 0;
            int rotYDegOpp = 180;

            if (Block.Variant["side"] == "east")   //BlockStoneCoffin only has a BE on north and east variants
            {
                rotYDeg    = 270;
                rotYDegOpp = 90;
            }

            ms.InitForUse(rotYDeg);
            msOpp.InitForUse(rotYDegOpp);

            blockScs = Block as BlockStoneCoffinSection;
            updateSelectiveElements();



            particlePositions[0] = Pos.DownCopy(2);
            particlePositions[1] = particlePositions[0].AddCopy(blockScs.Orientation.Opposite);

            particlePositions[2] = Pos.AddCopy(blockScs.Orientation.GetCW());
            particlePositions[3] = Pos.AddCopy(blockScs.Orientation.GetCCW());

            particlePositions[4] = Pos.AddCopy(blockScs.Orientation.GetCW()).Add(blockScs.Orientation.Opposite);
            particlePositions[5] = Pos.AddCopy(blockScs.Orientation.GetCCW()).Add(blockScs.Orientation.Opposite);

            particlePositions[6] = Pos.UpCopy(1).Add(blockScs.Orientation.Opposite);

            inv.SetSecondaryPos(Pos.AddCopy(blockScs.Orientation.Opposite));
        }
Example #2
0
        public override void Initialize(ICoreAPI api)
        {
            base.Initialize(api);

            inv.LateInitialize(InventoryClassName + "-" + Pos, api);

            capi = api as ICoreClientAPI;

            structure = Block.Attributes["multiBlockStructure"].AsObject <MultiblockStructure>();
            structure.InitForUse(0);

            if (processing && !processComplete && api.Side == EnumAppSide.Server)
            {
                tickListener = RegisterGameTickListener(onServerTick3s, 3000);
            }
        }