public override void OnBlockRemoved() { base.OnBlockRemoved(); if (ambientSound != null) { ambientSound.Stop(); ambientSound.Dispose(); } renderer?.Dispose(); renderer = null; }
public override void OnBlockRemoved() { base.OnBlockRemoved(); if (ambientSound != null) { ambientSound.Stop(); ambientSound.Dispose(); } if (renderer != null) { renderer.Unregister(); renderer = null; } }
public override void Initialize(ICoreAPI api) { base.Initialize(api); inventory.LateInitialize("quern-" + Pos.X + "/" + Pos.Y + "/" + Pos.Z, api); RegisterGameTickListener(Every100ms, 100); RegisterGameTickListener(Every500ms, 500); if (ambientSound == null && api.Side == EnumAppSide.Client) { ambientSound = ((IClientWorldAccessor)api.World).LoadSound(new SoundParams() { Location = new AssetLocation("sounds/block/quern.ogg"), ShouldLoop = true, Position = Pos.ToVec3f().Add(0.5f, 0.25f, 0.5f), DisposeOnFinish = false, Volume = 0.75f }); } if (api.Side == EnumAppSide.Client) { renderer = new QuernTopRenderer(api as ICoreClientAPI, Pos, GenMesh("top")); renderer.mechPowerPart = this.mpc; if (automated) { renderer.ShouldRender = true; renderer.ShouldRotateAutomated = true; } (api as ICoreClientAPI).Event.RegisterRenderer(renderer, EnumRenderStage.Opaque, "quern"); if (quernBaseMesh == null) { quernBaseMesh = GenMesh("base"); } if (quernTopMesh == null) { quernTopMesh = GenMesh("top"); } } }
public override void Initialize(ICoreAPI api) { base.Initialize(api); ownBlock = api.World.BlockAccessor.GetBlock(pos); inventory.LateInitialize("quern-1", api); RegisterGameTickListener(Every100ms, 100); RegisterGameTickListener(Every500ms, 500); if (ambientSound == null && api.Side == EnumAppSide.Client) { ambientSound = ((IClientWorldAccessor)api.World).LoadSound(new SoundParams() { Location = new AssetLocation("sounds/block/quern.ogg"), ShouldLoop = true, Position = pos.ToVec3f().Add(0.5f, 0.25f, 0.5f), DisposeOnFinish = false, Volume = SoundLevel }); } if (api is ICoreClientAPI) { renderer = new QuernTopRenderer(api as ICoreClientAPI, pos, GenMesh("top")); (api as ICoreClientAPI).Event.RegisterRenderer(renderer, EnumRenderStage.Opaque); if (quernBaseMesh == null) { quernBaseMesh = GenMesh("base"); } if (quernTopMesh == null) { quernTopMesh = GenMesh("top"); } } }