Beispiel #1
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
            YAMLMappingNode node = new YAMLMappingNode();

            node.AddSerializedVersion(GetSerializedVersion(container.ExportVersion));
            node.Add(PatchesName, Patches.ExportYAML(container));
            node.Add(DetailPrototypesName, DetailPrototypes.ExportYAML(container));
            node.Add(PatchCountName, PatchCount);
            node.Add(PatchSamplesName, PatchSamples);
            node.Add(RandomRotationsName, RandomRotations.ExportYAML(container));
            node.Add(WavingGrassTintName, WavingGrassTint.ExportYAML(container));
            node.Add(WavingGrassStrengthName, WavingGrassStrength);
            node.Add(WavingGrassAmountName, WavingGrassAmount);
            node.Add(WavingGrassSpeedName, WavingGrassSpeed);
            if (IsReadDetailBillboardShader(container.ExportVersion))
            {
                node.Add(DetailBillboardShaderName, ExportDetailBillboardShader(container));
                node.Add(DetailMeshLitShaderName, ExportDetailMeshLitShader(container));
                node.Add(DetailMeshGrassShaderName, ExportDetailMeshGrassShader(container));
            }
            node.Add(TreeInstancesName, TreeInstances.ExportYAML(container));
            node.Add(TreePrototypesName, TreePrototypes.ExportYAML(container));
            node.Add(PreloadTextureAtlasDataName, PreloadTextureAtlasData.ExportYAML(container));
            return(node);
        }
Beispiel #2
0
        public void CreateUniqueInstance(uint treeID, string newName, string newDescription = "")
        {
            TreeInfo   oldInfo    = TreeManager.instance.m_trees.m_buffer[treeID].Info;
            UniqueTree uniqueTree = oldInfo.GetImmediateCopy(newName);

            TreeInfos.Add(uniqueTree);
            TreeInstances.Add(treeID, uniqueTree);
        }
Beispiel #3
0
        public void RemoveTreeInstances(System.Predicate <GTreeInstance> condition)
        {
            int removedCount = TreeInstances.RemoveAll(condition);

            if (removedCount > 0)
            {
                TreeAllChanged();
            }
        }
Beispiel #4
0
        public bool RemoveInstance(uint treeID, bool removeInfo = true)
        {
            UniqueTreeInstance instance = TreeInstances.Get(treeID);

            if ((instance.Flags & TreeInstance.Flags.Created) != TreeInstance.Flags.None)
            {
                if (removeInfo)
                {
                    TreeInfos.Remove(instance.UniqueName);
                }
                TreeInstances.Remove(treeID);
                return(true);
            }
            return(false);
        }
Beispiel #5
0
        public YAMLNode ExportYAML(IExportContainer container)
        {
#warning TODO: values acording to read version (current 2017.3.0f3)
            YAMLMappingNode node = new YAMLMappingNode();
            node.AddSerializedVersion(GetSerializedVersion(container.Version));
            node.Add("m_Patches", Patches.ExportYAML(container));
            node.Add("m_DetailPrototypes", DetailPrototypes.ExportYAML(container));
            node.Add("m_PatchCount", PatchCount);
            node.Add("m_PatchSamples", PatchSamples);
            node.Add("m_RandomRotations", RandomRotations.ExportYAML(container));
            node.Add("WavingGrassTint", WavingGrassTint.ExportYAML(container));
            node.Add("m_WavingGrassStrength", WavingGrassStrength);
            node.Add("m_WavingGrassAmount", WavingGrassAmount);
            node.Add("m_WavingGrassSpeed", WavingGrassSpeed);
            node.Add("m_TreeInstances", TreeInstances.ExportYAML(container));
            node.Add("m_TreePrototypes", TreePrototypes.ExportYAML(container));
            node.Add("m_PreloadTextureAtlasData", PreloadTextureAtlasData.ExportYAML(container));
            return(node);
        }
        public void Refresh()
        {
            if (Trees != null)
            {
                List <GTreePrototype> prototypes = Trees.Prototypes;
                for (int i = 0; i < prototypes.Count; ++i)
                {
                    prototypes[i].Refresh();
                }
                TreeInstances.RemoveAll(t => t.PrototypeIndex < 0 || t.PrototypeIndex >= Trees.Prototypes.Count);
            }
            if (Grasses != null)
            {
                for (int i = 0; i < GrassPatches.Length; ++i)
                {
                    GrassPatches[i].Instances.RemoveAll(g => g.PrototypeIndex < 0 || g.PrototypeIndex >= Grasses.Prototypes.Count);
                }
            }

            CalculateEstimatedGrassStorage();
        }
Beispiel #7
0
 public bool ContainsInstance(uint treeID)
 {
     return(TreeInstances.Contains(treeID));
 }
 public void ExportYAML(IExportContainer container, YAMLMappingNode node)
 {
     node.Add(TreeInstancesName, TreeInstances.ExportYAML(container));
     node.Add(TreePrototypesName, TreePrototypes.ExportYAML(container));
 }
 public void Write(AssetWriter writer)
 {
     TreeInstances.Write(writer);
     TreePrototypes.Write(writer);
 }
Beispiel #10
0
 public void ClearTreeInstances()
 {
     TreeInstances.Clear();
     TreeAllChanged();
 }
Beispiel #11
0
 public void AddTreeInstances(IEnumerable <GTreeInstance> newInstances)
 {
     TreeInstances.AddRange(newInstances);
     TreeAllChanged();
 }