29 bool doubleSidedPlanks,
31 int coloredTextureSlot,
33 Color unpaintedColor) {
46 for (
int i = 0; i < 16; i++) {
47 bool num = (i & 1) != 0;
48 bool flag = (i & 2) != 0;
49 bool flag2 = (i & 4) != 0;
50 bool flag3 = (i & 8) != 0;
51 List<BoundingBox> list =
new();
56 boneAbsoluteTransform * m,
75 boneAbsoluteTransform2 * m2,
85 boneAbsoluteTransform2 * m2,
102 boneAbsoluteTransform2 * m3,
112 boneAbsoluteTransform2 * m3,
129 boneAbsoluteTransform2 * m4,
139 boneAbsoluteTransform2 * m4,
156 boneAbsoluteTransform2 * m5,
166 boneAbsoluteTransform2 * m5,
268 return base.GetCategory(value);
287 List<BlockDropValue> dropValues,
288 out
bool showDebris) {
299 if (color.HasValue) {
316 if (color.HasValue) {
357 if (color2.HasValue) {
395 public static int SetVariant(
int data,
int variant) => (data & -16) | (variant & 0xF);
398 if ((data & 0x10) != 0) {
399 return (data >> 5) & 0xF;
405 if (color.HasValue) {
406 return (data & -497) | 0x10 | ((color.Value & 0xF) << 5);
ModelMesh FindMesh(string name, bool throwIfNotFound=true)
ReadOnlyList< ModelMeshPart > MeshParts
virtual void GenerateMeshVertices(Block block, int x, int y, int z, BlockMesh blockMesh, Color color, Matrix? matrix, TerrainGeometrySubset subset)
float DestructionDebrisScale
virtual bool IsFaceNonAttachable(SubsystemTerrain subsystemTerrain, int face, int value, int attachBlockValue)
virtual void ModulateColor(Color color, int facesMask=-1)
virtual BoundingBox CalculateBoundingBox()
static Matrix GetBoneAbsoluteTransform(ModelBone modelBone)
virtual void AppendBlockMesh(BlockMesh blockMesh)
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 int SetVariant(int data, int variant)
override BoundingBox[] GetCustomCollisionBoxes(SubsystemTerrain terrain, int value)
override void GetDropValues(SubsystemTerrain subsystemTerrain, int oldValue, int newValue, int toolLevel, List< BlockDropValue > dropValues, out bool showDebris)
override void DrawBlock(PrimitivesRenderer3D primitivesRenderer, int value, Color color, float size, ref Matrix matrix, DrawBlockEnvironmentData environmentData)
override IEnumerable< int > GetCreativeValues()
virtual bool ShouldConnectTo(int value)
override bool IsFaceNonAttachable(SubsystemTerrain subsystemTerrain, int face, int value, int attachBlockValue)
int? GetPaintColor(int value)
static int SetColor(int data, int? color)
override void Initialize()
static int GetVariant(int data)
int Paint(SubsystemTerrain terrain, int value, int? color)
BlockMesh m_standaloneColoredBlockMesh
override BlockDebrisParticleSystem CreateDebrisParticleSystem(SubsystemTerrain subsystemTerrain, Vector3 position, int value, float strength)
static ? int GetColor(int data)
BlockMesh[] m_blockMeshes
override string GetCategory(int value)
BlockMesh[] m_coloredBlockMeshes
BoundingBox[][] m_collisionBoxes
override string GetDisplayName(SubsystemTerrain subsystemTerrain, int value)
FenceBlock(string modelName, bool doubleSidedPlanks, bool useAlphaTest, int coloredTextureSlot, Color postColor, Color unpaintedColor)
override void GenerateTerrainVertices(BlockGeometryGenerator generator, TerrainGeometry geometry, int value, int x, int y, int z)
BlockMesh m_standaloneBlockMesh
string GetName(int index)
Color GetColor(int index)
TerrainGeometrySubset SubsetAlphaTest
TerrainGeometrySubset SubsetOpaque
static int ExtractContents(int value)
static int ReplaceData(int value, int data)
static int MakeBlockValue(int contents)
static int ExtractData(int value)
static Matrix CreateTranslation(float x, float y, float z)
static Matrix CreateRotationY(float radians)