34 int coloredTextureSlot,
36 Color unpaintedColor) {
50 for (
int i = 0; i < 16; i++) {
54 float num = !rightHanded ? 1 : -1;
67 boneAbsoluteTransform * identity,
77 boneAbsoluteTransform2 * identity,
88 boneAbsoluteTransform2 * identity,
157 return base.GetCategory(value);
176 List<BlockDropValue> dropValues,
177 out
bool showDebris) {
196 else if (num2 ==
MathUtils.
Max(num, num2, num3, num4)) {
199 else if (num3 ==
MathUtils.
Max(num, num2, num3, num4)) {
202 else if (num4 ==
MathUtils.
Max(num, num2, num3, num4)) {
206 int num6 = raycastResult.CellFace.X + point.
X;
207 int y = raycastResult.CellFace.Y + point.
Y;
208 int num7 = raycastResult.CellFace.Z + point.
Z;
212 case 0: num8 = -1;
break;
213 case 1: num9 = 1;
break;
214 case 2: num8 = 1;
break;
215 default: num9 = -1;
break;
230 result.CellFace = raycastResult.
CellFace;
239 if (color.HasValue) {
256 if (color.HasValue) {
299 if (color2.HasValue) {
339 if (face == hingeFace) {
349 public static bool GetOpen(
int data) => (data & 4) != 0;
353 public static int SetRotation(
int data,
int rotation) => (data & -4) | (rotation & 3);
355 public static int SetOpen(
int data,
bool open) {
371 int num = rotation - 1 < 0 ? 3 : rotation - 1;
380 public static int SetVariant(
int data,
int variant) => (data & -16) | (variant & 0xF);
383 if ((data & 0x10) != 0) {
384 return (data >> 5) & 0xF;
390 if (color.HasValue) {
391 return (data & -497) | 0x10 | ((color.Value & 0xF) << 5);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
static float Saturate(float x)
static int Max(int x1, int x2)
virtual void GenerateMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, TerrainGeometrySubset subset)
virtual void GenerateWireVertices(int value, int x, int y, int z, int mountingFace, float centerBoxSize, Vector2 centerOffset, TerrainGeometrySubset subset)
float DestructionDebrisScale
virtual bool IsCollidable_(int value)
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
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)
static bool GetRightHanded(int data)
static int SetVariant(int data, int variant)
int GetConnectionMask(int value)
static int SetColor(int data, int? color)
BlockMesh[] m_blockMeshes
int Paint(SubsystemTerrain terrain, int value, int? color)
ElectricElement CreateElectricElement(SubsystemElectricity subsystemElectricity, int value, int x, int y, int z)
BoundingBox[][] m_collisionBoxes
static int SetRightHanded(int data, bool rightHanded)
static int GetVariant(int data)
static ? int GetColor(int data)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
static int GetHingeFace(int data)
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
static bool GetOpen(int data)
override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
static int SetRotation(int data, int rotation)
static int SetOpen(int data, bool open)
override void Initialize()
override string GetCategory(int value)
BlockMesh m_standaloneBlockMesh
BlockMesh[] m_coloredBlockMeshes
override IEnumerable< int > GetCreativeValues()
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
override BlockPlacementData GetPlacementValue(SubsystemTerrain subsystemTerrain, ComponentMiner componentMiner, int value, TerrainRaycastResult raycastResult)
方块放置方向
ElectricConnectorType? GetConnectorType(SubsystemTerrain terrain, int value, int face, int connectorFace, int x, int y, int z)
FenceGateBlock(string modelName, float pivotDistance, bool doubleSided, bool useAlphaTest, int coloredTextureSlot, Color postColor, Color unpaintedColor)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
int? GetPaintColor(int value)
BlockMesh m_standaloneColoredBlockMesh
static int GetRotation(int data)
string GetName(int index)
Color GetColor(int index)
TerrainGeometrySubset SubsetAlphaTest
TerrainGeometrySubset SubsetOpaque
static int ExtractContents(int value)
static int ReplaceData(int value, int data)
virtual int GetCellValue(int x, int y, int z)
static int ReplaceContents(int value, int contents)
方块值的最低10位,替换为目标Content
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 readonly Matrix Identity
static Matrix CreateRotationY(float radians)
static Matrix CreateScale(float scale)
static readonly Vector2 Zero
static readonly Vector3 UnitX
static readonly Vector3 UnitZ
static float Dot(Vector3 v1, Vector3 v2)
static int OppositeFace(int face)
static Point3 FaceToPoint3(int face)