protected override void ReceiveOnServer(int fromWho)
        {
            var myworld = ModContent.GetInstance <EmittersWorld>();
            SoundEmitterDefinition def = myworld.GetSoundEmitter(this.TileX, this.TileY);

            def.Activate(this.IsActivated);
        }
Exemple #2
0
        ////////////////

        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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;
        }
Exemple #6
0
        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);
        }