Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
Block.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public abstract class Block {
6 public int BlockIndex;
7
8 public string DefaultDisplayName = string.Empty;
9
10 public string DefaultDescription = string.Empty;
11
12 public string DefaultCategory = string.Empty;
13
14 public int DisplayOrder;
15
17
19
20 public float DefaultIconViewScale = 1f;
21
22 public float FirstPersonScale = 1f;
23
25
26 [Obsolete("overrode \"IsIndexDynamic\" instead.")]
27 public bool StaticBlockIndex = false;
28#pragma warning disable CS0618
29 public virtual bool IsIndexDynamic => !StaticBlockIndex;
30#pragma warning restore CS0618
31 public bool CanBeBuiltIntoFurniture = false;
32
33 public bool IsCollapsable = false;
34 public virtual Vector3 GetFirstPersonOffset(int value) => FirstPersonOffset;
35
38 public float InHandScale = 1f;
39 public virtual float GetInHandScale(int value) => InHandScale;
41 public virtual Vector3 GetInHandOffset(int value) => InHandOffset;
43
44 public virtual Vector3 GetInHandRotation(int value) => InHandRotation;
45 public string Behaviors = string.Empty;
46
47 public string CraftingId = string.Empty;
48
50
51 public bool IsCollidable = true;
52
53 public bool IsPlaceable = true;
54
56
58
60
61 public bool IsEditable;
62
63 public bool IsNonDuplicable;
64
65 public bool IsGatherable;
66
68
69 public bool KillsWhenStuck;
70
71 public bool IsFluidBlocker = true;
72
73 public bool IsTransparent;
74
76
78
79 public int LightAttenuation;
80
82
84
86
87 public float DefaultDropCount = 1f;
88
90
92
93 public int MaxStacking = 40;
94
95 public float SleepSuitability;
96
97 public float FrictionFactor = 1f;
98
99 public float Density = 4f;
100
101 public bool NoAutoJump;
102
103 public bool NoSmoothRise;
104
106
107 public float DestructionDebrisScale = 1f;
108
109 public float FuelHeatLevel;
110
111 public float FuelFireDuration;
112
114
115 public float ShovelPower = 1f;
116
117 public float QuarryPower = 1f;
118
119 public float HackPower = 1f;
120
121 public float DefaultMeleePower = 1f;
122
123 public float DefaultMeleeHitProbability = 0.66f;
124
125 public float DefaultProjectilePower = 1f;
126
127 public int ToolLevel;
128
129 public int PlayerLevelRequired = 1;
130
131 public int Durability = -1;
132
134
135 public float DigResilience = 1f;
136
137 public float ProjectileResilience = 1f;
138
139 public bool IsAimable;
140
141 public bool IsStickable;
142
143 public bool AlignToVelocity;
144
145 public float ProjectileSpeed = 15f;
146
147 public float ProjectileDamping = 0.8f;
148
150
152
154
155 public float DefaultHeat;
156
157 public float FireDuration;
158
160
162
164
166
168
170
172
174
175 public bool? DefaultIsNonAttachable = null;
176
177 public int PriorityUse = 3000;
178 public int PriorityInteract = 2000;
179 public int PriorityPlace = 1000;
180
181 public Random Random = new();
182
184 public virtual float GetDensity(int value) => Density;
185
186 public virtual float GetFirstPersonScale(int value) => FirstPersonScale;
187
188 public virtual void Initialize() {
189 if (Durability < -1
190 || Durability > 65535) {
191 throw new InvalidOperationException(string.Format(LanguageControl.Get(GetType().Name, 1), DefaultDisplayName));
192 }
193 }
194
196 byte b = (byte)((vertex.Color.R + vertex.Color.G + vertex.Color.B) / 3);
197 vertex.Tx = (short)(vertex.Tx * 16f);
198 vertex.Ty = (short)(vertex.Ty * 16f);
199 vertex.Color = new Color(b, b, b, (byte)128);
200 return vertex;
201 }
202
203 public virtual Texture2D GetDiggingCrackingTexture(ComponentMiner miner, float digProgress, int value, Texture2D[] defaultCrackTextures) {
204 int num2 = Math.Clamp((int)(digProgress * 8f), 0, 7);
205 return defaultCrackTextures[num2];
206 }
207
208 public virtual bool GetIsDiggingTransparent(int value) => IsDiggingTransparent;
209
210 public virtual float GetObjectShadowStrength(int value) => ObjectShadowStrength;
211
212 public virtual float GetFuelHeatLevel(int value) => FuelHeatLevel;
213
214 public virtual float GetExplosionResilience(int value) => ExplosionResilience;
215
216 public virtual float GetExplosionPressure(int value) => DefaultExplosionPressure;
217
218 public virtual int GetMaxStacking(int value) => MaxStacking;
219
220 public virtual float GetFuelFireDuration(int value) => FuelFireDuration;
221
222 public virtual float GetProjectileResilience(int value) => ProjectileResilience;
223 public virtual float GetFireDuration(int value) => FireDuration;
224
226
227 public virtual bool MatchCrafingId(string CraftId) => CraftId == CraftingId;
228
229 public virtual int GetPlayerLevelRequired(int value) => PlayerLevelRequired;
230
231 public virtual bool HasCollisionBehavior_(int value) => HasCollisionBehavior;
232
233 public virtual string GetDisplayName(SubsystemTerrain subsystemTerrain, int value) {
234 int data = Terrain.ExtractData(value);
235 string bn = $"{GetType().Name}:{data}";
236 if (LanguageControl.TryGetBlock(bn, "DisplayName", out string result)) {
237 return result;
238 }
239 return DefaultDisplayName;
240 }
241
246 public virtual int GetTextureSlotCount(int value) => 16;
247
248 public virtual bool IsEditable_(int value) => IsEditable;
249
250 public virtual bool IsAimable_(int value) => IsAimable;
251
252 public virtual bool Eat(ComponentVitalStats vitalStats, int value) => false;
253
254 public virtual bool CanWear(int value) => false;
255
256 public virtual ClothingData GetClothingData(int value) => null;
257
258 public virtual int GetToolLevel(int value) => ToolLevel;
259
260 public virtual bool IsCollidable_(int value) => IsCollidable;
261
262 public virtual bool IsTransparent_(int value) => IsTransparent;
263
265
266 public virtual bool IsFluidBlocker_(int value) => IsFluidBlocker;
267
268 public virtual bool IsGatherable_(int value) => IsGatherable;
269
270 public virtual bool IsNonDuplicable_(int value) => IsNonDuplicable;
271
272 public virtual bool IsPlaceable_(int value) => IsPlaceable;
273
274 public virtual bool IsPlacementTransparent_(int value) => IsPlacementTransparent;
275
276 public virtual bool IsStickable_(int value) => IsStickable;
277
278 public virtual float GetProjectileSpeed(int value) => ProjectileSpeed;
279
280 public virtual float GetProjectileDamping(int value) => ProjectileDamping;
281
282 public virtual string GetDescription(int value) {
283 int data = Terrain.ExtractData(value);
284 string bn = $"{GetType().Name}:{data}";
285 if (LanguageControl.TryGetBlock(bn, "Description", out string r)) {
286 return r;
287 }
288 return DefaultDescription;
289 }
290
291 public virtual FoodType GetFoodType(int value) => FoodType;
292
293 public virtual string GetCategory(int value) => DefaultCategory;
294
295 public virtual float GetDigResilience(int value) => DigResilience;
296
297 public virtual BlockDigMethod GetBlockDigMethod(int value) => DigMethod;
298
299 public virtual float GetShovelPower(int value) => ShovelPower;
300
301 public virtual float GetQuarryPower(int value) => QuarryPower;
302
303 public virtual float GetHackPower(int value) => HackPower;
304
305 public virtual IEnumerable<int> GetCreativeValues() {
306 if (DefaultCreativeData >= 0) {
308 }
309 }
310
311 public virtual bool GetAlignToVelocity(int value) => AlignToVelocity;
312
313 public virtual bool IsInteractive(SubsystemTerrain subsystemTerrain, int value) => DefaultIsInteractive;
314
315 public virtual IEnumerable<CraftingRecipe> GetProceduralCraftingRecipes() {
316 yield break;
317 }
318
320 string[] ingredients,
321 float heatLevel,
322 float playerLevel) => null;
323
324 public virtual bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value) => IsTransparent;
325
326 public virtual bool ShouldGenerateFace(SubsystemTerrain subsystemTerrain,
327 int face,
328 int value,
329 int neighborValue,
330 int x,
331 int y,
332 int z) {
333 int num = Terrain.ExtractContents(neighborValue);
334 return BlocksManager.Blocks[num].IsFaceTransparent(subsystemTerrain, CellFace.OppositeFace(face), neighborValue);
335 }
336
337 public virtual int GetShadowStrength(int value) => DefaultShadowStrength;
338
339 public virtual int GetFaceTextureSlot(int face, int value) => DefaultTextureSlot;
340
341 public virtual string GetSoundMaterialName(SubsystemTerrain subsystemTerrain, int value) => DefaultSoundMaterialName;
342
352 public abstract void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z);
353
354 public virtual void GenerateTerrainVertices(BlockGeometryGenerator generator,
355 TerrainGeometrySubset geometry,
356 int value,
357 int x,
358 int y,
359 int z) { }
360
370 public abstract void DrawBlock(PrimitivesRenderer3D primitivesRenderer,
371 int value,
372 Color color,
373 float size,
374 ref Matrix matrix,
375 DrawBlockEnvironmentData environmentData);
376
381 ComponentMiner componentMiner,
382 int value,
383 TerrainRaycastResult raycastResult) {
384 BlockPlacementData result = default;
385 result.Value = value;
386 result.CellFace = raycastResult.CellFace;
387 return result;
388 }
389
390 public virtual string GetCraftingId(int value) => CraftingId;
391
392 public virtual int GetDisplayOrder(int value) => DisplayOrder;
393
394 public virtual BlockPlacementData GetDigValue(SubsystemTerrain subsystemTerrain,
395 ComponentMiner componentMiner,
396 int value,
397 int toolValue,
398 TerrainRaycastResult raycastResult) {
399 BlockPlacementData result = default;
400 result.Value = 0;
401 result.CellFace = raycastResult.CellFace;
402 return result;
403 }
404
405 public virtual float GetRequiredToolLevel(int value) => RequiredToolLevel;
406
407 public virtual void GetDropValues(SubsystemTerrain subsystemTerrain,
408 int oldValue,
409 int newValue,
410 int toolLevel,
411 List<BlockDropValue> dropValues,
412 out bool showDebris) {
413 showDebris = DestructionDebrisScale > 0f;
414 if (toolLevel < RequiredToolLevel) {
415 return;
416 }
417 BlockDropValue item;
418 if (DefaultDropContent != 0) {
419 int num = (int)DefaultDropCount;
420 if (Random.Bool(DefaultDropCount - num)) {
421 num++;
422 }
423 for (int i = 0; i < num; i++) {
424 item = new BlockDropValue { Value = Terrain.MakeBlockValue(DefaultDropContent), Count = 1 };
425 dropValues.Add(item);
426 }
427 }
428 int num2 = (int)DefaultExperienceCount;
429 if (Random.Bool(DefaultExperienceCount - num2)) {
430 num2++;
431 }
432 for (int j = 0; j < num2; j++) {
433 item = new BlockDropValue { Value = Terrain.MakeBlockValue(248), Count = 1 };
434 dropValues.Add(item);
435 }
436 }
437
438 public virtual int GetDamage(int value) => (Terrain.ExtractData(value) >> 4) & 0xFFF;
439
440 public virtual int SetDamage(int value, int damage) {
441 int num = Terrain.ExtractData(value);
442 num &= 0xF;
443 num |= Math.Clamp(damage, 0, 4095) << 4;
444 return Terrain.ReplaceData(value, num);
445 }
446
447 public virtual int GetDamageDestructionValue(int value) => 0;
448
449 public virtual int GetRotPeriod(int value) => DefaultRotPeriod;
450
451 public virtual float GetSicknessProbability(int value) => DefaultSicknessProbability;
452
453 public virtual float GetMeleePower(int value) => DefaultMeleePower;
454
455 public virtual float GetMeleeHitProbability(int value) => DefaultMeleeHitProbability;
456
457 public virtual float GetProjectilePower(int value) => DefaultProjectilePower;
458
459 public virtual float GetHeat(int value) => DefaultHeat;
460
461 public virtual float GetBlockHealth(int value) {
462 int dur = GetDurability(value);
463 int dag = GetDamage(value);
464 if (dur > 0) {
465 return (dur - dag) / (float)dur;
466 }
467 return -1f;
468 }
469
470 public virtual int GetDurability(int value) => Durability;
471
472 public virtual bool GetExplosionIncendiary(int value) => DefaultExplosionIncendiary;
473
474 public virtual Vector3 GetIconBlockOffset(int value, DrawBlockEnvironmentData environmentData) => DefaultIconBlockOffset;
475
476 public virtual Vector3 GetIconViewOffset(int value, DrawBlockEnvironmentData environmentData) => DefaultIconViewOffset;
477
478 public virtual float GetIconViewScale(int value, DrawBlockEnvironmentData environmentData) => DefaultIconViewScale;
479
481 Vector3 position,
482 int value,
483 float strength) => new(subsystemTerrain, position, strength, DestructionDebrisScale, Color.White, GetFaceTextureSlot(4, value));
484
486
487 public virtual BoundingBox[] GetCustomInteractionBoxes(SubsystemTerrain terrain, int value) => GetCustomCollisionBoxes(terrain, value);
488
489 public virtual int GetEmittedLightAmount(int value) => DefaultEmittedLightAmount;
490
491 public virtual float GetNutritionalValue(int value) => DefaultNutritionalValue;
492
493 public virtual bool ShouldAvoid(int value) => false;
494
495 public virtual bool ShouldAvoid(int value, ComponentPilot componentPilot) => ShouldAvoid(value);
496
497 public virtual bool IsSwapAnimationNeeded(int oldValue, int newValue) => true;
498
499 public virtual bool IsHeatBlocker(int value) => IsCollidable_(value);
500
501 public virtual float? Raycast(Ray3 ray,
502 SubsystemTerrain subsystemTerrain,
503 int value,
504 bool useInteractionBoxes,
505 out int nearestBoxIndex,
506 out BoundingBox nearestBox) {
507 float? result = null;
508 nearestBoxIndex = 0;
509 nearestBox = default;
510 BoundingBox[] array = useInteractionBoxes
511 ? GetCustomInteractionBoxes(subsystemTerrain, value)
512 : GetCustomCollisionBoxes(subsystemTerrain, value);
513 for (int i = 0; i < array.Length; i++) {
514 float? num = ray.Intersection(array[i]);
515 if (num.HasValue
516 && (!result.HasValue || num.Value < result.Value)) {
517 nearestBoxIndex = i;
518 result = num;
519 }
520 }
521 nearestBox = array[nearestBoxIndex];
522 return result;
523 }
524
525 public virtual bool GetIsCollapsable(int value) => IsCollapsable;
526
527 public virtual bool IsCollapseSupportBlock(SubsystemTerrain subsystemTerrain, int value) =>
528 !IsFaceNonAttachable(subsystemTerrain, 4, value, 0);
529
530 public virtual bool IsCollapseDestructibleBlock(int value) => true;
531
532 public virtual bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd) {
533 isEnd = false;
534 if (IsNonDuplicable_(value)) {
535 return false;
536 }
537 if (IsCollidable_(value)) {
538 return true;
539 }
540 return false;
541 }
542
543 public virtual bool IsBlockingPiston(int value) => IsCollidable_(value);
544
545 public virtual bool IsSuitableForPlants(int value, int plantValue) => false;
546
547 public virtual bool IsNonAttachable(int value) {
548 if (DefaultIsNonAttachable.HasValue) {
549 return DefaultIsNonAttachable.Value;
550 }
551 return IsTransparent_(value);
552 }
553
554 public virtual bool IsFaceNonAttachable(SubsystemTerrain subsystemTerrain, int face, int value, int attachBlockValue) {
555 if (!IsCollidable_(value)
556 || IsNonAttachable(value)) {
557 return true;
558 }
559 return false;
560 }
561
562 public virtual bool ShouldBeAddedToProject(SubsystemBlocksManager subsystemBlocksManager) => true;
563
564 public virtual bool CanBlockBeBuiltIntoFurniture(int value) => CanBeBuiltIntoFurniture;
565
566 public virtual int GetPriorityUse(int value, ComponentMiner componentMiner) => PriorityUse;
567
568 public virtual int GetPriorityInteract(int value, ComponentMiner componentMiner) {
569 if (componentMiner.m_subsystemTerrain != null
570 && IsInteractive(componentMiner.m_subsystemTerrain, value)) {
571 return PriorityInteract;
572 }
573 return 0;
574 }
575
576 public virtual int GetPriorityPlace(int value, ComponentMiner componentMiner) {
577 if (!IsPlaceable_(value)) {
578 return 0;
579 }
580 return PriorityPlace;
581 }
582
583 public virtual bool CanBeFiredByDispenser(int value) => true;
584
586
588 }
589}
Engine.Color Color
virtual void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
virtual string GetCategory(int value)
bool CanBeBuiltIntoFurniture
virtual float GetFirstPersonScale(int value)
int BlockIndex
定义 Block.cs:6
float DefaultDropCount
virtual BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
virtual void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometrySubset geometry, int value, int x, int y, int z)
float SleepSuitability
float FrictionFactor
virtual FoodType GetFoodType(int value)
bool StaticBlockIndex
virtual bool CanBlockBeBuiltIntoFurniture(int value)
virtual bool IsTransparent_(int value)
static BoundingBox[] m_defaultCollisionBoxes
virtual bool IsNonAttachable(int value)
virtual float GetDigResilience(int value)
virtual bool GetExplosionIncendiary(int value)
int LightAttenuation
virtual bool IsGatherable_(int value)
virtual Vector3 GetIconBlockOffset(int value, DrawBlockEnvironmentData environmentData)
virtual float GetIconViewScale(int value, DrawBlockEnvironmentData environmentData)
float DigResilience
virtual BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
float InHandScale
virtual float GetProjectileStickProbability(int value)
virtual float GetHackPower(int value)
bool IsCollidable
float ShovelPower
bool? DefaultIsNonAttachable
virtual BoundingBox[] GetCustomInteractionBoxes(SubsystemTerrain terrain, int value)
float DefaultIconViewScale
virtual int GetTextureSlotCount(int value)
设置材质(正方形)单行格子(分割后每个材质)数,对放置后的方块无效
float ProjectileSpeed
string Behaviors
float ExplosionResilience
virtual string GetSoundMaterialName(SubsystemTerrain subsystemTerrain, int value)
bool IsGatherable
virtual bool HasCollisionBehavior_(int value)
virtual int GetToolLevel(int value)
Vector3 InHandOffset
float ProjectileStickProbability
float DefaultHeat
virtual IEnumerable< CraftingRecipe > GetProceduralCraftingRecipes()
int DefaultEmittedLightAmount
int PlayerLevelRequired
virtual bool IsIndexDynamic
virtual bool IsCollapseSupportBlock(SubsystemTerrain subsystemTerrain, int value)
virtual Vector3 GetInHandOffset(int value)
virtual bool IsInteractive(SubsystemTerrain subsystemTerrain, int value)
virtual float GetDensity(int value)
bool IsNonDuplicable
virtual float GetExplosionResilience(int value)
bool IsStickable
virtual float GetMeleePower(int value)
int DefaultDropContent
virtual int GetPriorityPlace(int value, ComponentMiner componentMiner)
virtual bool ShouldAvoid(int value)
virtual bool GetAlignToVelocity(int value)
Vector3 FirstPersonOffset
virtual float GetQuarryPower(int value)
virtual float GetProjectilePower(int value)
Vector3 DefaultIconViewOffset
bool IsFluidBlocker
float DestructionDebrisScale
virtual bool GenerateFacesForSameNeighbors_(int value)
string DefaultSoundMaterialName
virtual RecipaediaRecipesScreen GetBlockRecipeScreen(int value)
bool IsDiggingTransparent
virtual int SetDamage(int value, int damage)
int DefaultCreativeData
virtual float GetProjectileSpeed(int value)
virtual float GetExplosionPressure(int value)
Random Random
void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
生成地形顶点(用于绘制放置的方块)
float FireDuration
virtual void Initialize()
virtual ClothingData GetClothingData(int value)
virtual bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value)
virtual string GetDescription(int value)
virtual string GetCraftingId(int value)
virtual bool IsAimable_(int value)
virtual bool IsEditable_(int value)
string CraftingId
virtual bool IsNonDuplicable_(int value)
virtual int GetPriorityUse(int value, ComponentMiner componentMiner)
virtual bool IsMovableByPiston(int value, int pistonFace, int y, out bool isEnd)
virtual int GetShadowStrength(int value)
virtual Vector3 GetFirstPersonOffset(int value)
void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
绘制方块_用于绘制方块物品形态
string DefaultDescription
virtual bool IsPlacementTransparent_(int value)
int PriorityInteract
virtual bool CanWear(int value)
virtual bool IsStickable_(int value)
float DefaultMeleeHitProbability
virtual int GetDisplayOrder(int value)
virtual bool Eat(ComponentVitalStats vitalStats, int value)
BlockDigMethod DigMethod
virtual bool IsFaceNonAttachable(SubsystemTerrain subsystemTerrain, int face, int value, int attachBlockValue)
float DefaultMeleePower
virtual CraftingRecipe GetAdHocCraftingRecipe(SubsystemTerrain subsystemTerrain, string[] ingredients, float heatLevel, float playerLevel)
virtual int GetPlayerLevelRequired(int value)
int DefaultRotPeriod
bool IsCollapsable
bool GenerateFacesForSameNeighbors
virtual bool IsSwapAnimationNeeded(int oldValue, int newValue)
virtual Vector3 GetInHandRotation(int value)
virtual bool IsPlaceable_(int value)
virtual BlockPlacementData GetDigValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, int toolValue, TerrainRaycastResult raycastResult)
float ProjectileDamping
virtual int GetDamage(int value)
bool IsPlaceable
int DisplayOrder
float DefaultNutritionalValue
int DefaultTextureSlot
virtual bool CanBeFiredByDispenser(int value)
Vector3 InHandRotation
bool IsTransparent
virtual float GetShovelPower(int value)
virtual int GetRotPeriod(int value)
virtual bool ShouldAvoid(int value, ComponentPilot componentPilot)
float FirstPersonScale
virtual bool GetIsDiggingTransparent(int value)
bool IsEditable
virtual Texture2D GetDiggingCrackingTexture(ComponentMiner miner, float digProgress, int value, Texture2D[] defaultCrackTextures)
Vector3 FirstPersonRotation
bool KillsWhenStuck
virtual int GetPriorityInteract(int value, ComponentMiner componentMiner)
string DefaultDisplayName
定义 Block.cs:8
float HackPower
bool DisintegratesOnHit
float FuelHeatLevel
float Density
float DefaultExperienceCount
virtual bool IsFluidBlocker_(int value)
bool ExplosionKeepsPickables
virtual float GetBlockHealth(int value)
virtual float GetRequiredToolLevel(int value)
bool HasCollisionBehavior
float ProjectileTipOffset
virtual bool ShouldGenerateFace(SubsystemTerrain subsystemTerrain, int face, int value, int neighborValue, int x, int y, int z)
bool DefaultExplosionIncendiary
virtual int GetFaceTextureSlot(int face, int value)
virtual float GetInHandScale(int value)
virtual float GetMeleeHitProbability(int value)
bool AlignToVelocity
virtual int GetMaxStacking(int value)
int MaxStacking
virtual int GetDurability(int value)
virtual bool IsCollidable_(int value)
bool IsPlacementTransparent
virtual string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
virtual bool IsCollapseDestructibleBlock(int value)
float QuarryPower
int DefaultShadowStrength
virtual float GetFireDuration(int value)
float ProjectileResilience
virtual RecipaediaDescriptionScreen GetBlockDescriptionScreen(int value)
bool NoAutoJump
float DefaultSicknessProbability
virtual ? float Raycast(Ray3 ray, SubsystemTerrain subsystemTerrain, int value, bool useInteractionBoxes, out int nearestBoxIndex, out BoundingBox nearestBox)
virtual bool IsSuitableForPlants(int value, int plantValue)
virtual bool IsHeatBlocker(int value)
int RequiredToolLevel
float ObjectShadowStrength
virtual bool IsBlockingPiston(int value)
float DefaultProjectilePower
virtual int GetEmittedLightAmount(int value)
bool NoSmoothRise
virtual IEnumerable< int > GetCreativeValues()
virtual Vector3 GetIconViewOffset(int value, DrawBlockEnvironmentData environmentData)
virtual bool ShouldBeAddedToProject(SubsystemBlocksManager subsystemBlocksManager)
float FuelFireDuration
Vector3 DefaultIconBlockOffset
virtual bool MatchCrafingId(string CraftId)
virtual int GetDamageDestructionValue(int value)
virtual Vector3 GetFirstPersonRotation(int value)
virtual TerrainVertex SetDiggingCrackingTextureTransform(TerrainVertex vertex)
virtual float GetHeat(int value)
int PriorityPlace
virtual float GetObjectShadowStrength(int value)
virtual float GetProjectileResilience(int value)
virtual float GetProjectileDamping(int value)
float DefaultExplosionPressure
bool DefaultIsInteractive
string DefaultCategory
virtual bool GetIsCollapsable(int value)
virtual BlockDigMethod GetBlockDigMethod(int value)
FoodType FoodType
virtual float GetFuelFireDuration(int value)
virtual float GetFuelHeatLevel(int value)
virtual BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
virtual float GetNutritionalValue(int value)
virtual float GetSicknessProbability(int value)
SubsystemTerrain m_subsystemTerrain
static bool TryGetBlock(string blockName, string prop, out string result)
static string Get(string className, int key)
获取在当前语言类名键对应的字符串
static RecipaediaDescriptionScreen Default
static RecipaediaRecipesScreen Default
static int ExtractContents(int value)
static int ReplaceData(int value, int data)
static int ReplaceContents(int value, int contents)
方块值的最低10位,替换为目标Content
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Color White
float? Intersection(BoundingBox box)
定义 Ray3.cs:20
static readonly Vector3 One
static readonly Vector3 Zero
static int OppositeFace(int face)