protected override void ReceiveOnServer(int fromWho) { var myworld = ModContent.GetInstance <EmittersWorld>(); SoundEmitterDefinition def = myworld.GetSoundEmitter(this.TileX, this.TileY); def.Activate(this.IsActivated); }
//////////////// public void WireHit(int i, int j) { var myworld = ModContent.GetInstance <EmittersWorld>(); var x = (ushort)i; var y = (ushort)j; EmitterDefinition edef = myworld.GetEmitter(x, y); SoundEmitterDefinition sdef = myworld.GetSoundEmitter(x, y); HologramDefinition hdef = myworld.GetHologram(x, y); if (edef != null) { if (EmittersConfig.Instance.DebugModeInfo) { Main.NewText("Toggling emitter at " + x + ", " + y + " " + (edef.IsActivated?"off":"on")); } edef.Activate(!edef.IsActivated); } if (sdef != null) { if (EmittersConfig.Instance.DebugModeInfo) { Main.NewText("Toggling sound emitter at " + x + ", " + y + " " + (sdef.IsActivated?"off":"on")); } sdef.Activate(!sdef.IsActivated); } if (hdef != null) { if (EmittersConfig.Instance.DebugModeInfo) { Main.NewText("Toggling hologram at " + x + ", " + y + " " + (hdef.IsActivated?"off":"on")); } hdef.Activate(!hdef.IsActivated); } }
//////////////// public void AddSoundEmitter(SoundEmitterDefinition def, ushort tileX, ushort tileY) { if ((tileX < 0 || tileX >= Main.maxTilesX) || (tileY < 0 || tileY >= Main.maxTilesY)) { throw new ModHelpersException("Cannot place sound emitter outside of world."); } //Main.NewText( def.ToString() ); this.SoundEmitters.Set2D(tileX, tileY, def); }
public static void BroadcastFromClient(SoundEmitterDefinition def, ushort tileX, ushort tileY) { if (Main.netMode != NetmodeID.MultiplayerClient) { throw new ModHelpersException("Not client."); } var protocol = new SoundEmitterPlacementProtocol(Main.myPlayer, def, tileX, tileY); protocol.SendToServer(true); }
private SoundEmitterPlacementProtocol(int fromWho, SoundEmitterDefinition def, ushort tileX, ushort tileY) { def.Output( out this.Type, out this.Style, out this.Volume, out this.Pitch, out this.Delay, out this.IsActivated ); this.FromWho = fromWho; this.TileX = tileX; this.TileY = tileY; }
public override void Draw(SpriteBatch sb) { base.Draw(sb); SoundEmitterDefinition def = this.CreateSoundEmitterDefinition(); def.Timer = this.CachedSoundEmitterDef?.Timer ?? 0; this.CachedSoundEmitterDef = def; Vector2 scrCenter = Main.screenPosition + (new Vector2(Main.screenWidth, Main.screenHeight) * 0.5f); Vector2 pos = Main.screenPosition + (new Vector2(Main.mouseX, Main.mouseY) * Main.UIScale); pos = (pos - scrCenter) / Main.GameZoomTarget; pos += scrCenter; def.AnimateSoundEmitter(pos); }