4 using Microsoft.Xna.Framework;
5 using Microsoft.Xna.Framework.Graphics;
15 internal sealed
class TestScreen : EditorScreen
17 public override Camera Cam {
get; }
19 private Item? miniMapItem;
22 public static Effect? BlueprintEffect;
23 public TabMenu? TabMenu;
28 BlueprintEffect = GameMain.GameScreen.BlueprintEffect;
30 new GUIButton(
new RectTransform(
new Point(256, 256),
Frame.
RectTransform),
"Reload shader")
32 OnClicked = (button, o) =>
34 BlueprintEffect.Dispose();
35 GameMain.Instance.Content.Unload();
36 BlueprintEffect = EffectLoader.Load(
"Effects/blueprintshader");
37 GameMain.GameScreen.BlueprintEffect = BlueprintEffect;
43 public override void Select()
46 if (dummyCharacter is {
Removed:
false })
48 dummyCharacter.Remove();
51 dummyCharacter =
Character.Create(CharacterPrefab.HumanSpeciesName, Vector2.Zero,
"",
id: Entity.DummyID, hasAi:
false);
52 dummyCharacter.Info.Job =
new Job(JobPrefab.Prefabs.FirstOrDefault(
static jp => jp.Identifier ==
"captain"));
53 dummyCharacter.Info.Name =
"Galldren";
54 dummyCharacter.Inventory.CreateSlots();
55 dummyCharacter.Info.GiveExperience(999999);
57 miniMapItem =
new Item(ItemPrefab.Find(
null,
"circuitbox".ToIdentifier()), Vector2.Zero,
null, 1337,
false);
58 miniMapItem.GetComponent<
Holdable>().AttachToWall();
61 GameMain.World.ProcessChanges();
64 public override void AddToGUIUpdateList()
68 dummyCharacter?.SelectedItem?.AddToGUIUpdateList();
69 TabMenu?.AddToGUIUpdateList();
72 public override void Update(
double deltaTime)
74 base.Update(deltaTime);
75 TabMenu?.Update((
float)deltaTime);
77 if (dummyCharacter is { } dummy && miniMapItem is { } item)
79 if (dummy.SelectedItem != item)
81 dummy.SelectedItem = item;
84 dummy.SelectedItem?.UpdateHUD(Cam, dummy, (
float)deltaTime);
85 item.SendSignal(
"1",
"signal_in1");
86 Vector2 pos = FarseerPhysics.ConvertUnits.ToSimUnits(item.Position);
88 foreach (Limb limb
in dummy.AnimController.Limbs)
90 limb.body.SetTransform(pos, 0.0f);
93 if (dummy.AnimController?.Collider is { } collider)
95 collider.SetTransform(pos, 0);
98 dummy.ControlLocalPlayer((
float)deltaTime, Cam,
false);
99 dummy.Control((
float)deltaTime, Cam);
103 public override void Draw(
double deltaTime, GraphicsDevice graphics, SpriteBatch spriteBatch)
105 base.Draw(deltaTime, graphics, spriteBatch);
106 graphics.Clear(BackgroundColor);
108 spriteBatch.Begin(SpriteSortMode.BackToFront, transformMatrix: Cam.Transform);
109 miniMapItem?.Draw(spriteBatch,
false);
110 if (dummyCharacter is { } dummy)
112 dummyCharacter.DrawFront(spriteBatch, Cam);
113 dummyCharacter.Draw(spriteBatch, Cam);
118 spriteBatch.Begin(SpriteSortMode.Deferred, samplerState: GUI.SamplerState);
120 GUI.Draw(Cam, spriteBatch);
122 dummyCharacter?.DrawHUD(spriteBatch, Cam,
false);
virtual void AddToGUIUpdateList(bool ignoreChildren=false, int order=0)
RectTransform RectTransform