コード例 #1
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("ObjectColor");

            so.SetColor("Color", Color);
            return(so);
        }
コード例 #2
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("Grid");

            so.Set("SnapToGrid", SnapToGrid);
            return(so);
        }
コード例 #3
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("VisgroupID");

            so.Set("ID", ID);
            return(so);
        }
コード例 #4
0
        public async Task <Change> Perform(MapDocument document)
        {
            var ch = new Change(document);

            var obj  = document.Map.Root.FindByID(_id);
            var data = obj?.Data.GetOne <EntityData>();

            if (data != null)
            {
                _beforeState = data.ToSerialisedObject();
                foreach (var kv in _valuesToSet)
                {
                    if (kv.Value == null)
                    {
                        data.Properties.Remove(kv.Key);
                    }
                    else
                    {
                        data.Properties[kv.Key] = kv.Value;
                    }
                }
                ch.Update(obj);
            }

            return(ch);
        }
コード例 #5
0
ファイル: EntitySprite.cs プロジェクト: vaulthunter/sledge
 public EntitySprite(SerialisedObject obj)
 {
     Name  = obj.Get <string>("Name");
     Scale = obj.Get <float>("Scale");
     Color = obj.GetColor("Color");
     Size  = new SizeF(obj.Get <float>("Width"), obj.Get <float>("Height"));
 }
コード例 #6
0
        public VmfEditor(SerialisedObject obj)
        {
            if (obj == null)
            {
                obj = new SerialisedObject("editor");
            }

            Color       = obj.GetColor("color");
            ParentID    = GroupID = obj.Get("groupid", 0);
            Properties  = new Dictionary <string, string>();
            VisgroupIDs = new List <int>();

            foreach (KeyValuePair <string, string> kv in obj.Properties)
            {
                switch (kv.Key.ToLower())
                {
                case "visgroupid":
                    if (int.TryParse(kv.Value, out int id))
                    {
                        VisgroupIDs.Add(id);
                    }
                    break;

                case "color":
                case "groupid":
                    break;

                default:
                    Properties[kv.Key] = kv.Value;
                    break;
                }
            }
        }
コード例 #7
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("ActiveTexture");

            so.Set("Name", Name);
            return(so);
        }
コード例 #8
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("Origin");

            so.Set("Location", Location);
            return(so);
        }
コード例 #9
0
            public VmfSide(SerialisedObject obj)
            {
                ID              = obj.Get("ID", 0L);
                LightmapScale   = obj.Get("lightmapscale", 0);
                SmoothingGroups = obj.Get("smoothing_groups", "");

                if (ParseDoubleArray(obj.Get("plane", ""), new[] { ' ', '(', ')' }, 9, out double[] pl))
コード例 #10
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("HideFaceMask");

            so.Set("Hidden", Hidden);
            return(so);
        }
コード例 #11
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("SelectionOptions");

            so.Set("IgnoreGrouping", IgnoreGrouping);
            return(so);
        }
コード例 #12
0
        private void SaveCameras(Map map, List <SerialisedObject> list)
        {
            var cams = map.Data.OfType <Camera>().ToList();

            if (!cams.Any())
            {
                return;
            }

            var so = new SerialisedObject("cameras");

            for (var i = 0; i < cams.Count; i++)
            {
                var camera = cams[i];
                if (camera.IsActive)
                {
                    so.Set("activecamera", i);
                }

                var vgo = new SerialisedObject("camera");
                vgo.Set("position", $"[{FormatVector3(camera.EyePosition)}]");
                vgo.Set("look", $"[{FormatVector3(camera.LookPosition)}]");
                so.Children.Add(vgo);
            }

            list.Add(so);
        }
コード例 #13
0
        private void SerialiseWorldspawnChildren(Worldspawn worldspawn, SerialisedObject worldObj, Dictionary <MapObject, int> idMap, int groupId, List <MapObject> list)
        {
            foreach (var c in list)
            {
                var cid = idMap[c];
                switch (c)
                {
                case Entity _:
                    // Ignore everything underneath an entity
                    break;

                case Group g:
                    var sg = new VmfGroup(g, cid);
                    if (groupId != 0)
                    {
                        sg.Editor.GroupID = groupId;
                    }
                    worldObj.Children.Add(sg.ToSerialisedObject());
                    SerialiseWorldspawnChildren(worldspawn, worldObj, idMap, cid, g.Children);
                    break;

                case Solid s:
                    var ss = new VmfSolid(s, cid);
                    if (groupId != 0)
                    {
                        ss.Editor.GroupID = groupId;
                    }
                    worldObj.Children.Add(ss.ToSerialisedObject());
                    break;
                }
            }
        }
コード例 #14
0
            public VmfEntity(SerialisedObject obj) : base(obj)
            {
                Objects = new List <VmfObject>();
                foreach (var so in obj.Children)
                {
                    var o = Deserialise(so);
                    if (o != null)
                    {
                        Objects.Add(o);
                    }
                }

                var ed = new EntityData();

                foreach (var kv in obj.Properties)
                {
                    if (kv.Key == null || ExcludedKeys.Contains(kv.Key.ToLower()))
                    {
                        continue;
                    }
                    ed.Set(kv.Key, kv.Value);
                }
                ed.Name    = obj.Get("classname", "");
                ed.Flags   = obj.Get("spawnflags", 0);
                EntityData = ed;

                if (obj.Properties.Any(x => x.Key == "origin"))
                {
                    Origin = obj.Get("origin", Vector3.Zero);
                }
            }
コード例 #15
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject(nameof(EntityDecal));

            so.Set(nameof(Name), Name);
            return(so);
        }
コード例 #16
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("Selection");

            so.Set("SelectedObjects", String.Join(",", _selectedObjects.Select(x => Convert.ToString(x.ID, CultureInfo.InvariantCulture))));
            return(so);
        }
コード例 #17
0
        private void LoadVisgroups(MapFile map, SerialisedObject so)
        {
            var vis = new Visgroup();

            LoadVisgroupsRecursive(so, vis);
            map.Visgroups.AddRange(vis.Children);
        }
コード例 #18
0
ファイル: VisgroupHidden.cs プロジェクト: vaulthunter/sledge
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("VisgroupHidden");

            so.Set("IsHidden", IsHidden);
            return(so);
        }
コード例 #19
0
 private void LoadVisgroups(Map map, SerialisedObject visgroups)
 {
     if (visgroups == null)
     {
         return;
     }
     foreach (var vg in visgroups.Children.Where(x => x.Name?.ToLower() == "visgroup"))
     {
         var v = new Visgroup
         {
             Name    = vg.Get("name", ""),
             ID      = vg.Get("visgroupid", -1),
             Colour  = vg.GetColor("color"),
             Visible = true
         };
         if (v.Colour.GetBrightness() < 0.001f)
         {
             v.Colour = Colour.GetRandomBrushColour();
         }
         if (v.ID < 0)
         {
             continue;
         }
         map.Data.Add(v);
     }
 }
コード例 #20
0
        public CordonBounds(SerialisedObject obj)
        {
            Enabled = obj.Get <bool>("Enabled");
            var start = obj.Get <Vector3>("Start");
            var end   = obj.Get <Vector3>("End");

            Box = new Box(start, end);
        }
コード例 #21
0
 public Visgroup(SerialisedObject obj)
 {
     Objects = new ThreadSafeSet <IMapObject>();
     ID      = obj.Get <long>("ID");
     Name    = obj.Get <string>("Name");
     Visible = obj.Get <bool>("Visible");
     Colour  = obj.GetColor("Colour");
 }
コード例 #22
0
ファイル: DisplayFlags.cs プロジェクト: vaulthunter/sledge
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("DisplayFlags");

            so.Set("HideNullTextures", HideNullTextures);
            so.Set("HideDisplacementSolids", HideDisplacementSolids);
            return(so);
        }
コード例 #23
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("TransformationFlags");

            so.Set("TextureLock", TextureLock);
            so.Set("TextureScaleLock", TextureScaleLock);
            return(so);
        }
コード例 #24
0
 public VmfSolid(SerialisedObject obj) : base(obj)
 {
     Sides = new List <VmfSide>();
     foreach (var so in obj.Children.Where(x => x.Name == "side"))
     {
         Sides.Add(new VmfSide(so));
     }
 }
コード例 #25
0
            public override SerialisedObject ToSerialisedObject()
            {
                var so = new SerialisedObject("solid");

                so.Set("id", ID);
                so.Children.AddRange(Sides.Select(x => x.ToSerialisedObject()));
                so.Children.Add(Editor.ToSerialisedObject());
                return(so);
            }
コード例 #26
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("CordonBounds");

            so.Set("Enabled", Enabled);
            so.Set("Start", Box.Start);
            so.Set("End", Box.End);
            return(so);
        }
コード例 #27
0
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("Camera");

            so.Set("EyePosition", EyePosition);
            so.Set("LookPosition", LookPosition);
            so.Set("IsActive", IsActive);
            return(so);
        }
コード例 #28
0
ファイル: Path.cs プロジェクト: vaulthunter/sledge
        public SerialisedObject ToSerialisedObject()
        {
            var so = new SerialisedObject("Path");

            so.Set("Name", Name);
            so.Set("Type", Type);
            so.Set("Direction", Direction);
            so.Children.AddRange(Nodes.Select(x => x.ToSerialisedObject()));
            return(so);
        }
コード例 #29
0
ファイル: Shell.cs プロジェクト: The-Next-Big-Team/ToeKnife
 public LoadedDocument(SerialisedObject pointer)
 {
     Metadata = new Dictionary <string, string>();
     Loader   = pointer.Name;
     foreach (var pp in pointer.Properties)
     {
         Metadata[pp.Key] = pp.Value;
     }
     FileName = pointer.Get <string>("FileName");
 }
コード例 #30
0
            public override SerialisedObject ToSerialisedObject()
            {
                var so = new SerialisedObject("group");

                so.Set("id", ID);

                so.Children.Add(Editor.ToSerialisedObject());

                return(so);
            }