mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2024-11-24 12:51:30 +00:00
9c7b8e4e3c
Thing Edit Form, UDMF: added controls for setting pitch, roll, scale, render style, fill color, alpha, health and score. Visual mode, UDMF: UDMF scale is now applied when rendering sprites. Added Thing Statistics form (Edit -> View Thing Types...), which shows all loaded thing types with some additional info. Visual mode: sprites with negative ScaleX and positive ScaleY were not rendered properly. Classic modes: display was not updated after loading a sprite. Current testing engine change was not saved on closing the program when no other game configuration settings were changed.
54 lines
1.4 KiB
C#
54 lines
1.4 KiB
C#
using System.Collections.Generic;
|
|
using CodeImp.DoomBuilder.Map;
|
|
using CodeImp.DoomBuilder.Geometry;
|
|
|
|
namespace CodeImp.DoomBuilder.GZBuilder.Data {
|
|
public sealed class ThingCopyData {
|
|
// Properties
|
|
private readonly int type;
|
|
private readonly Vector3D pos;
|
|
private readonly int angledoom; // Angle as entered / stored in file
|
|
private readonly Dictionary<string, bool> flags;
|
|
private readonly int tag;
|
|
private readonly int action;
|
|
private readonly int[] args;
|
|
private readonly UniFields fields;
|
|
|
|
public Vector3D Position { get { return pos; } }
|
|
|
|
public ThingCopyData(Thing t) {
|
|
type = t.Type;
|
|
angledoom = t.AngleDoom;
|
|
pos = t.Position;
|
|
flags = new Dictionary<string, bool>(t.Flags);
|
|
tag = t.Tag;
|
|
action = t.Action;
|
|
args = (int[])t.Args.Clone();
|
|
fields = new UniFields(t, t.Fields);
|
|
}
|
|
|
|
public void ApplyTo(Thing t) {
|
|
t.Type = type;
|
|
t.Rotate(angledoom);
|
|
t.Move(pos);
|
|
|
|
foreach(KeyValuePair<string, bool> group in flags)
|
|
t.SetFlag(group.Key, group.Value);
|
|
|
|
t.Tag = tag;
|
|
t.Action = action;
|
|
|
|
for(int i = 0; i < args.Length; i++)
|
|
t.Args[i] = args[i];
|
|
|
|
foreach (KeyValuePair<string, UniValue> group in fields) {
|
|
if (t.Fields.ContainsKey(group.Key))
|
|
t.Fields[group.Key] = group.Value;
|
|
else
|
|
t.Fields.Add(group.Key, group.Value);
|
|
}
|
|
|
|
t.UpdateConfiguration();
|
|
}
|
|
}
|
|
}
|