Esempio n. 1
0
        public bool CanAddChild(object child)
        {
            if (child.Is <IGameObject>() || child.Is <IGameObjectFolder>())
            {
                return(false);
            }

            var domNode = child as DomNode;

            if (domNode != null)
            {
                foreach (var type in domNode.Type.Lineage)
                {
                    if (type == Schema.placementsFolderType.Type)
                    {
                        return(true);
                    }
                    if (type == Schema.envSettingsFolderType.Type)
                    {
                        return(true);
                    }
                }
            }

            return(PlacementsFolder.CanAddChild(child)
                   | EnvSettingsFolder.CanAddChild(child));
        }
Esempio n. 2
0
        void ICommandClient.DoCommand(object commandTag)
        {
            if (!(commandTag is Command))
            {
                return;
            }

            switch ((Command)commandTag)
            {
            case Command.CreateTerrain:
            {
                if (DomNode.GetChild(Schema.xleGameType.terrainChild) == null)
                {
                    var newNode = LevelEditorXLE.Terrain.XLETerrainGob.CreateWithConfigure();
                    if (newNode != null)
                    {
                        DomNode.SetChild(Schema.xleGameType.terrainChild, newNode);
                    }
                }
                break;
            }

            case Command.CreatePlacementsFolder:
            {
                if (DomNode.GetChild(Schema.xleGameType.placementsChild) == null)
                {
                    var newNode = PlacementsFolder.CreateWithConfigure();
                    if (newNode != null)
                    {
                        DomNode.SetChild(Schema.xleGameType.placementsChild, newNode);
                    }
                }
                break;
            }

            case Command.CreateEnvironmentSetting:
            {
                var envFolder = EnvSettingsFolder;
                envFolder.AddChild(
                    XLEEnvSettings.Create(envFolder.GetNameForNewChild()));
                break;
            }

            case Command.CreateTriMeshMarker:
            {
                this.As <IGame>().RootGameObjectFolder.As <IHierarchical>().AddChild(Markers.TriMeshMarker.Create());
                break;
            }
            }
        }
Esempio n. 3
0
        public bool AddChild(object child)
        {
            if (child.Is <IGameObject>() || child.Is <IGameObjectFolder>())
            {
                return(false);
            }

            if (EnvSettingsFolder.AddChild(child))
            {
                return(true);
            }

            if (PlacementsFolder.AddChild(child))
            {
                return(true);
            }

            var domNode = child.As <DomNode>();

            if (domNode != null)
            {
                foreach (var type in domNode.Type.Lineage)
                {
                    if (domNode.Type == Schema.placementsFolderType.Type)
                    {
                        SetChild(Schema.xleGameType.placementsChild, domNode);
                        return(true);
                    }

                    if (domNode.Type == Schema.envSettingsFolderType.Type)
                    {
                        SetChild(Schema.xleGameType.environmentChild, domNode);
                        return(true);
                    }
                }
            }

            return(false);
        }