Esempio n. 1
0
 public override void OnBlockRemoved()
 {
     if (renderer != null)
     {
         renderer.Dispose();
         renderer = null;
     }
     Circuit?.Remove();
     base.OnBlockRemoved();
 }
Esempio n. 2
0
        public override void Initialize(ICoreAPI api, JsonObject properties)
        {
            base.Initialize(api, properties);
            Circuit.Initialize(api);
            listenerId = Blockentity.RegisterGameTickListener(Update, 50);
            block      = Blockentity.Block;
            Pos        = this.Blockentity.Pos;
            //facing = BlockFacing.FromCode(block?.LastCodePart(0)?.ToString());
            //orientation = BlockFacing.FromCode(block?.LastCodePart(1)?.ToString());
            facing      = BlockFacing.FromCode(properties["side"]?.AsString("down"));
            orientation = BlockFacing.FromCode(properties["orientation"]?.AsString("north"));

            if (api.Side == EnumAppSide.Client)
            {
                ICoreClientAPI capi = (ICoreClientAPI)api;
                capi.Event.RegisterRenderer(renderer = new CircuitBoardRenderer(this.Blockentity.Pos, facing, orientation, capi), EnumRenderStage.Opaque, "circuitboard");
                renderer.RegenCircuitMesh(Circuit);
            }
        }