public override void OnBlockRemoved() { if (renderer != null) { renderer.Dispose(); renderer = null; } Circuit?.Remove(); base.OnBlockRemoved(); }
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); } }