Esempio n. 1
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);
            }
        }
Esempio n. 2
0
        public override void Draw(SpriteBatch sb)
        {
            base.Draw(sb);

            HologramDefinition def = this.CreateHologramDefinition();

            def.CurrentFrame             = this.CachedHologramDef?.CurrentFrame ?? 0;
            def.CurrentFrameElapsedTicks = this.CachedHologramDef?.CurrentFrameElapsedTicks ?? 0;

            this.CachedHologramDef = def;

            var mouseScr = new Vector2(Main.mouseX + 12, Main.mouseY);

            mouseScr = UIZoomHelpers.ApplyZoomFromScreenCenter(mouseScr, false, true, null, null);
            var mouseWld = mouseScr + Main.screenPosition;

            if (def.AnimateHologram(mouseWld, true))
            {
                try {
                    def.DrawHologram(sb, mouseWld, true);
                } catch (Exception e) {
                    LogHelpers.AlertOnce(e.ToString());
                }
            }
        }
        private HologramPlacementProtocol(int fromWho, HologramDefinition def, ushort tileX, ushort tileY)
        {
            HologramMode       mode;
            HologramShaderMode shaderMode;

            def.Output(
                type: out this.Type,
                mode: out mode,
                scale: out this.Scale,
                colorR: out this.ColorR,
                colorG: out this.ColorG,
                colorB: out this.ColorB,
                alpha: out this.Alpha,
                direction: out this.Direction,
                rotation: out this.Rotation,
                offsetX: out this.OffsetX,
                offsetY: out this.OffsetY,
                frameStart: out this.FrameStart,
                frameEnd: out this.FrameEnd,
                frameRateTicks: out this.FrameRateTicks,
                worldLight: out this.WorldLight,
                shaderMode: out shaderMode,
                shaderTime: out this.ShaderTime,
                shaderType: out this.ShaderType,
                isActivated: out this.IsActivated
                );

            this.Mode       = (int)mode;
            this.ShaderMode = (int)shaderMode;

            this.FromWho = fromWho;
            this.TileX   = tileX;
            this.TileY   = tileY;
        }
Esempio n. 4
0
        protected override void ReceiveOnServer(int fromWho)
        {
            var myworld            = ModContent.GetInstance <EmittersWorld>();
            HologramDefinition def = myworld.GetHologram(this.TileX, this.TileY);

            def.Activate(this.IsActivated);
        }
        ////////////////

        public void AddHologram(HologramDefinition def, ushort tileX, ushort tileY)
        {
            if ((tileX < 0 || tileX >= Main.maxTilesX) || (tileY < 0 || tileY >= Main.maxTilesY))
            {
                throw new ModHelpersException("Cannot place hologram outside of world.");
            }
            //Main.NewText( def.ToString() );
            this.Holograms.Set2D(tileX, tileY, def);
        }
        public static void BroadcastFromClient(HologramDefinition def, ushort tileX, ushort tileY)
        {
            if (Main.netMode != NetmodeID.MultiplayerClient)
            {
                throw new ModHelpersException("Not client.");
            }

            var protocol = new HologramPlacementProtocol(Main.myPlayer, def, tileX, tileY);

            protocol.SendToServer(true);
        }
        ////

        public void ApplySettingsToCurrentItem()
        {
            if (this.HologramItem == null)
            {
                throw new ModHelpersException("Missing item.");
            }

            var myitem = this.HologramItem.modItem as HologramItem;

            if (myitem == null)
            {
                Main.NewText("No hologram item selected. Changes not saved.", Color.Red);
                return;
            }

            HologramDefinition def = this.CreateHologramDefinition();

            myitem.SetDefinition(def);
        }
 private void InitializeWidgetsForType(UIThemedPanel container, ref float yOffset)
 {
     this.InitializeTitle(container, "Type:", false, ref yOffset);
     this.TypeSlider = new UISlider(
         theme: UITheme.Vanilla,
         hoverText: "",
         isInt: true,
         ticks: 0,
         minRange: 1f,
         maxRange: Main.npcTexture.Length - 1);
     this.TypeSlider.Top.Set(yOffset, 0f);
     this.TypeSlider.Left.Set(64f, 0f);
     this.TypeSlider.Width.Set(-64f, 1f);
     this.TypeSlider.SetValue(1f);
     this.TypeSlider.PreOnChange += (value) => {
         var mode = (HologramMode)this.CurrentMode;
         this.FrameStartSlider.SetRange(0f, (float)(HologramDefinition.GetFrameCount(mode, (int)value) - 1));
         this.FrameEndSlider.SetRange(0f, (float)(HologramDefinition.GetFrameCount(mode, (int)value) - 1));
         return(value);
     };
     yOffset += 28f;
     container.Append((UIElement)this.TypeSlider);
 }