public bool OnInteract(IPlayer byPlayer) { BEBehaviorMPTransmission be = Api.World.BlockAccessor.GetBlockEntity(transmissionPos)?.GetBehavior <BEBehaviorMPTransmission>(); if (!Engaged && be != null && be.engaged) { return(true); } Engaged = !Engaged; Api.World.PlaySoundAt(new AssetLocation("sounds/effect/woodswitch.ogg"), Pos.X + 0.5, Pos.Y + 0.5, Pos.Z + 0.5, byPlayer); if (be != null) { be.CheckEngaged(Api.World.BlockAccessor, true); } MarkDirty(true); return(true); }
public override void OnNeighbourBlockChange(IWorldAccessor world, BlockPos pos, BlockPos neibpos) { BEBehaviorMPTransmission be = world.BlockAccessor.GetBlockEntity(pos)?.GetBehavior <BEBehaviorMPTransmission>(); be?.CheckEngaged(world.BlockAccessor, true); }