1using System.Globalization;
32 public static string fName =
"EggBlock";
40 Guid eggParameterSetGuid =
new(
"300ff557-775f-4c7c-a88a-26655369f00b");
42 where o.EffectiveInheritanceRoot.Guid == eggParameterSetGuid
44 int nestedValue = item.GetNestedValue<
int>(
"EggTypeIndex");
45 if (nestedValue >= 0) {
47 string value = item.GetNestedValue<
string>(
"DisplayName");
48 if (value.StartsWith(
'[')
49 && value.EndsWith(
']')) {
50 string[] lp = value.Substring(1, value.Length - 2).Split([
":"], StringSplitOptions.RemoveEmptyEntries);
54 EggTypeIndex = nestedValue,
55 ShowEgg = item.GetNestedValue<
bool>(
"ShowEgg"),
58 NutritionalValue = item.GetNestedValue<
float>(
"NutritionalValue"),
60 ScaleUV = item.GetNestedValue<
Vector2>(
"ScaleUV"),
61 SwapUV = item.GetNestedValue<
bool>(
"SwapUV"),
62 Scale = item.GetNestedValue<
float>(
"Scale"),
63 TextureSlot = item.GetNestedValue<
int>(
"TextureSlot")
70 if (eggType ==
null) {
75 model.FindMesh(
"Egg").MeshParts[0],
76 boneAbsoluteTransform,
130 return base.GetRotPeriod(value);
139 num = (num & -65537) | ((damage & 1) << 16);
146 EggType[] eggs =
m_eggTypes.OrderBy(pair => pair.Key).Select(pair => pair.Value).ToArray();
147 foreach (
EggType eggType
in eggs) {
148 if (eggType ==
null) {
163 if (eggType ==
null) {
174 RequiredHeatLevel = 1f,
175 Description = description
179 craftingRecipe.
Ingredients[0] = $
"egg:{Terrain.ExtractData(value).ToString(CultureInfo.InvariantCulture)}";
181 yield
return craftingRecipe;
202 int index = (data >> 4) & 0xFFF;
211 return m_eggTypes.FirstOrDefault(pair => pair.Value.TemplateName == templateName).Value;
223 public static bool GetIsLaid(
int data) => (data & 2) != 0;
234 data |= (eggTypeIndex & 0xFFF) << 4;
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
float DefaultSicknessProbability
virtual void TransformTextureCoordinates(Matrix matrix, int facesMask=-1)
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
virtual void AppendModelMeshPart(ModelMeshPart meshPart, Matrix matrix, bool makeEmissive, bool flipWindingOrder, bool doubleSided, bool flipNormals, Color color)
static void DrawMeshBlock(PrimitivesRenderer3D primitivesRenderer, BlockMesh blockMesh, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
static object Get(Type type, string name)
static GameDatabase GameDatabase
override int GetDamageDestructionValue(int value)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
static int SetIsLaid(int data, bool isLaid)
override string GetCategory(int value)
override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
override int GetDamage(int value)
Dictionary< int, EggType > m_eggTypes
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override float GetSicknessProbability(int value)
override float GetNutritionalValue(int value)
EggType GetEggTypeByCreatureTemplateName(string templateName)
override void Initialize()
override int GetRotPeriod(int value)
ReadOnlyList< EggType > EggTypes
EggType GetEggType(int data)
static int SetEggType(int data, int eggTypeIndex)
override IEnumerable< int > GetCreativeValues()
static int SetIsCooked(int data, bool isCooked)
override int SetDamage(int value, int damage)
static bool GetIsLaid(int data)
override IEnumerable< CraftingRecipe > GetProceduralCraftingRecipes()
static bool GetIsCooked(int data)
static string GetDatabase(string name, string prop)
static string Get(string className, int key)
获取在当前语言类名键对应的字符串
static int ReplaceData(int value, int data)
static int MakeBlockValue(int contents)
static int ExtractData(int value)
DatabaseObject NestingParent
static Matrix CreateTranslation(float x, float y, float z)
static readonly Matrix Identity
static Matrix CreateScale(float scale)