//////////////// 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); } }
protected override void ReceiveOnServer(int fromWho) { var myworld = ModContent.GetInstance <EmittersWorld>(); EmitterDefinition def = myworld.GetEmitter(this.TileX, this.TileY); def.Activate(this.IsActivated); }
public void AddEmitter(EmitterDefinition def, ushort tileX, ushort tileY) { if ((tileX < 0 || tileX >= Main.maxTilesX) || (tileY < 0 || tileY >= Main.maxTilesY)) { throw new ModHelpersException("Cannot place emitter outside of world."); } //Main.NewText( def.ToString() ); this.Emitters.Set2D(tileX, tileY, def); }
public static void BroadcastFromClient(EmitterDefinition def, ushort tileX, ushort tileY) { if (Main.netMode != NetmodeID.MultiplayerClient) { throw new ModHelpersException("Not client."); } var protocol = new EmitterPlacementProtocol(Main.myPlayer, def, tileX, tileY); protocol.SendToServer(true); }
public override void Draw(SpriteBatch sb) { base.Draw(sb); EmitterDefinition def = this.CreateEmitterDefinition(); def.Timer = this.CachedEmitterDef?.Timer ?? 0; this.CachedEmitterDef = 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.AnimateEmitter(pos); }
private EmitterPlacementProtocol(int fromWho, EmitterDefinition def, ushort tileX, ushort tileY) { def.Output( out this.IsGoreMode, out this.Type, out this.Scale, out this.Delay, out this.SpeedX, out this.SpeedY, out this.ColorR, out this.ColorG, out this.ColorB, out this.Transparency, out this.Scatter, out this.HasGravity, out this.HasLight, out this.IsActivated ); this.FromWho = fromWho; this.TileX = tileX; this.TileY = tileY; }