//////////////// 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 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; }
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); }