Пример #1
0
 public static float GetField(string Name, UrbComponentData Data)
 {
     for (int i = 0; i < Data.Fields.Length; i++)
     {
         if (Data.Fields[i].Name.CompareTo(Name) == 0)
         {
             return(Data.Fields[i].Value);
         }
     }
     return(0.0f);
 }
Пример #2
0
    public virtual UrbComponentData GetComponentData()
    {
        s_UrbBaseGetCompData_p.Begin(this);

        UrbComponentData Data = new UrbComponentData
        {
            Type = GetType().ToString(),
        };

        s_UrbBaseGetCompData_p.End();
        return(Data);
    }
Пример #3
0
 public override bool SetComponentData(UrbComponentData Data)
 {
     EnergyDebt = UrbEncoder.GetField("EnergyDebt", Data);
     BodyEnergyReserveStorage = UrbEncoder.GetEnum <UrbSubstanceTag>("BodyEnergyReserveStorage", Data);
     BodyGrowthRecipe         = UrbEncoder.GetSubstancesFromArray("BodyGrowthRecipe", Data);
     InitializeGrowthRecipes();
     if (IsEater)
     {
         InitializeReserveRecipes();
     }
     return(true);
 }
Пример #4
0
    public override UrbComponentData GetComponentData()
    {
        UrbComponentData Data = new UrbComponentData
        {
            Type = this.GetType().ToString(),
        };

        Data.Strings = new UrbStringData[]
        {
            new UrbStringData{Name= "PerceptionPrintString", Value = PerceptionPrintString},
            new UrbStringData{Name= "ContactPrintString", Value = ContactPrintString}
        };
        return Data;
    }
Пример #5
0
    public static UrbObjectData Read(GameObject Target)
    {
        UrbObjectData ObjectData = new UrbObjectData();

        ObjectData.Name = Target.name;
        UrbBase[] cs = Target.GetComponents <UrbBase>();

        ObjectData.Components = new UrbComponentData[cs.Length];

        for (int c = 0; c < cs.Length; c++)
        {
            UrbComponentData ComponentData = cs[c].GetComponentData();
            ObjectData.Components[c] = ComponentData;
        }

        return(ObjectData);
    }
Пример #6
0
    public override UrbComponentData GetComponentData()
    {
        UrbComponentData Data = base.GetComponentData();

        //SmellStrength is (currently) computed based on MassPerTile.
        // Data.Fields = new UrbFieldData[]
        // {
        //     new UrbFieldData{ Name = "SmellStrength", Value = SmellStrength}
        // };

        //SmellTag is (currently) computed based on the Body
        // Data.StringArrays = new UrbStringArrayData[]
        // {
        //     UrbEncoder.EnumsToArray<UrbScentTag>("SmellTag",SmellTag)
        // };

        return(Data);
    }
Пример #7
0
    public static UrbObjectData[] GetObjectDataArray(string Name, UrbComponentData Data)
    {
        for (int i = 0; i < Data.StringArrays.Length; i++)
        {
            if (Data.StringArrays[i].Name.CompareTo(Name) == 0)
            {
                UrbObjectData[] Output = new UrbObjectData[Data.StringArrays[i].Value.Length];

                for (int o = 0; o < Data.StringArrays[i].Value.Length; o++)
                {
                    Output[o] = JsonUtility.FromJson <UrbObjectData>(Data.StringArrays[i].Value[o]);
                }

                return(Output);
            }
        }

        return(new UrbObjectData[0]);
    }
Пример #8
0
    public static T[] GetEnumArray <T>(string Name, UrbComponentData Data)
    {
        for (int i = 0; i < Data.StringArrays.Length; i++)
        {
            if (Data.StringArrays[i].Name.CompareTo(Name) == 0)
            {
                T[] Output = new T[Data.StringArrays[i].Value.Length];

                for (int a = 0; a < Data.StringArrays[i].Value.Length; a++)
                {
                    Output[a] = (T)Enum.Parse(typeof(T), Data.StringArrays[i].Value[a]);
                }

                return(Output);
            }
        }

        return(new T[0]);
    }
Пример #9
0
    public override UrbComponentData GetComponentData()
    {
        UrbComponentData Data = base.GetComponentData();


        UrbSubstance[] StomachContents = (Stomach == null)? new UrbSubstance[0] : Stomach.GetCompositionIngredients();

        Data.FieldArrays = new UrbFieldArrayData[]
        {
            UrbEncoder.GetArrayFromSubstances("StomachContents", StomachContents),
        };

        Data.StringArrays = new UrbStringArrayData[]
        {
            UrbEncoder.EnumsToArray("FoodSubstances", FoodSubstances),
            UrbEncoder.EnumsToArray("FoodScents", FoodScents)
        };

        return(Data);
    }
Пример #10
0
    public override bool SetComponentData(UrbComponentData Data)
    {
        MateRequirement        = (int)UrbEncoder.GetField("MateRequirement", Data);
        MateCrowding           = (int)UrbEncoder.GetField("MateCrowding", Data);
        OffspringCount         = (int)UrbEncoder.GetField("OffspringCount", Data);
        OffspringRequiredSpace = UrbEncoder.GetField("OffspringRequiredSpace", Data);

        DispersalDistance = (int)UrbEncoder.GetField("DispersalDistance", Data);
        Gestation         = UrbEncoder.GetField("Gestation", Data);
        Gestating         = (UrbEncoder.GetField("Gestating", Data) > 0.0f);

        BreedType = UrbEncoder.GetEnum <UrbBreedTag>("BreedType", Data);
        RequiredOffspringTerrain = UrbEncoder.GetEnum <UrbPathTerrain>("RequiredOffspringTerrain", Data);
        OffspringData            = UrbEncoder.GetObjectDataArray("OffspringData", Data);

        MateScents  = UrbEncoder.GetEnumArray <UrbScentTag>("MateScents", Data);
        RivalScents = UrbEncoder.GetEnumArray <UrbScentTag>("RivalScents", Data);

        GestationRecipe = UrbEncoder.GetSubstancesFromArray("GestationRecipe", Data);

        return(true);
    }
Пример #11
0
    public override UrbComponentData GetComponentData()
    {
        UrbComponentData Data = base.GetComponentData();

        Data.Strings = new UrbStringData[]
        {
            new UrbStringData {
                Name = "GoalTag", Value = GoalTag.ToString()
            },
            new UrbStringData {
                Name = "PassableTerrain", Value = PassableTerrain.ToString()
            }
        };

        Data.Fields = new UrbFieldData[]
        {
            new UrbFieldData {
                Name = "Size", Value = Size
            }
        };
        return(Data);
    }
Пример #12
0
    public override UrbComponentData GetComponentData()
    {
        UrbComponentData Data = base.GetComponentData();

        Data.Fields = new UrbFieldData[]
        {
            new UrbFieldData {
                Name = "BirthTime", Value = BirthTime
            }
        };

        Data.Strings = new UrbStringData[]
        {
            new UrbStringData {
                Name = "Name", Value = gameObject.name
            },
            new UrbStringData {
                Name = "TileprintString", Value = TileprintString
            }
        };
        return(Data);
    }
Пример #13
0
 public static UrbObjectData GetObjectData(string Name, UrbComponentData Data)
 {
     return(JsonUtility.FromJson <UrbObjectData>(GetString(Name, Data)));
 }
Пример #14
0
 public override bool SetComponentData(UrbComponentData Data)
 {
     //TODO: Load the rule data
     return(base.SetComponentData(Data));
 }
Пример #15
0
 public override bool SetComponentData(UrbComponentData Data)
 {
     PerceptionPrintString = UrbEncoder.GetString("PerceptionPrintString", Data);
     ContactPrintString = UrbEncoder.GetString("ContactPrintString", Data);
     return true;
 }
Пример #16
0
 public virtual bool SetComponentData(UrbComponentData Data)
 {
     //Debug.Log(this.GetType() + " Using Base SetComponentData");
     return(true);
 }
Пример #17
0
 public static T GetEnum <T>(string Name, UrbComponentData Data)
 {
     return((T)Enum.Parse(typeof(T), GetString(Name, Data)));
 }