32 for (
int i = 0; i < 24; i++) {
47 boneAbsoluteTransform * m,
57 boneAbsoluteTransform2 * m,
67 boneAbsoluteTransform3 * m,
75 float num = isUpsideDown ? rotation : -rotation;
251 case 4:
return !isUpsideDown;
252 case 5:
return isUpsideDown;
257 return face != ((rotation2 + 2) & 3);
262 if (face != ((rotation + 1) & 3)) {
263 return face != ((rotation + 2) & 3);
274 if (color.HasValue) {
315 else if (num2 ==
MathUtils.
Max(num, num2, num3, num4)) {
318 else if (num3 ==
MathUtils.
Max(num, num2, num3, num4)) {
321 else if (num4 ==
MathUtils.
Max(num, num2, num3, num4)) {
324 bool isUpsideDown = raycastResult.CellFace.Face == 5;
328 result.CellFace = raycastResult.
CellFace;
344 if (color2.HasValue) {
366 return base.GetCategory(value);
375 List<BlockDropValue> dropValues,
376 out
bool showDebris) {
389 if (color.HasValue) {
405 base.GetFaceTextureSlot(0, value)
418 public static int SetRotation(
int data,
int rotation) => (data & -4) | (rotation & 3);
434 if ((data & 0x20) != 0) {
435 return (data >> 6) & 0xF;
441 if (color.HasValue) {
442 return (data & -993) | 0x20 | ((color.Value & 0xF) << 6);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static int Max(int x1, int x2)
virtual void GenerateShadedMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, int[] facesMap, TerrainGeometrySubset subset)
float DestructionDebrisScale
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)
ComponentCreatureModel ComponentCreatureModel
ComponentCreature ComponentCreature
static object Get(Type type, string name)
override bool IsFaceTransparent(SubsystemTerrain subsystemTerrain, int face, int value)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
static CornerType GetCornerType(int data)
StairsBlock(int coloredTextureSlot)
static int SetRotation(int data, int rotation)
static int SetIsUpsideDown(int data, bool isUpsideDown)
BlockMesh[] m_uncoloredBlockMeshes
BoundingBox[][] m_collisionBoxes
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
static bool GetIsUpsideDown(int data)
BlockMesh m_standaloneColoredBlockMesh
BlockMesh[] m_coloredBlockMeshes
override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
static ? int GetColor(int data)
override string GetCategory(int value)
static int GetRotation(int data)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
static int SetCornerType(int data, CornerType cornerType)
static int GetVariant(int data)
static int SetColor(int data, int? color)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
override void Initialize()
virtual ? int GetPaintColor(int value)
override IEnumerable< int > GetCreativeValues()
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
virtual int Paint(SubsystemTerrain terrain, int value, int? color)
static Point3 RotationToDirection(int rotation)
override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
BlockMesh m_standaloneUncoloredBlockMesh
string GetName(int index)
Color GetColor(int index)
TerrainGeometrySubset SubsetOpaque
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Matrix CreateFromQuaternion(Quaternion quaternion)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationZ(float radians)
static Matrix CreateRotationY(float radians)
static Matrix CreateScale(float scale)
static readonly Vector3 UnitX
static readonly Vector3 UnitZ
static float Dot(Vector3 v1, Vector3 v2)
static Point3 FaceToPoint3(int face)