Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
FurnitureElectricElement.cs
浏览该文件的文档.
1using Engine;
2
3namespace Game {
4 public abstract class FurnitureElectricElement : ElectricElement {
5 public FurnitureElectricElement(SubsystemElectricity subsystemElectricity, Point3 point) : base(
6 subsystemElectricity,
7 GetMountingCellFaces(subsystemElectricity, point)
8 ) { }
9
10 public static IEnumerable<CellFace> GetMountingCellFaces(SubsystemElectricity subsystemElectricity, Point3 point) {
11 int data = Terrain.ExtractData(subsystemElectricity.SubsystemTerrain.Terrain.GetCellValue(point.X, point.Y, point.Z));
12 int rotation = FurnitureBlock.GetRotation(data);
13 int designIndex = FurnitureBlock.GetDesignIndex(data);
14 FurnitureDesign design = subsystemElectricity.SubsystemTerrain.SubsystemFurnitureBlockBehavior.GetDesign(designIndex);
15 if (design == null) {
16 yield break;
17 }
18 int face = 0;
19 while (face < 6) {
20 int num = face < 4 ? (face - rotation + 4) % 4 : face;
21 if ((design.MountingFacesMask & (1 << num)) != 0) {
22 yield return new CellFace(point.X, point.Y, point.Z, CellFace.OppositeFace(face));
23 }
24 int num2 = face + 1;
25 face = num2;
26 }
27 }
28 }
29}
SubsystemElectricity SubsystemElectricity
ElectricElement(SubsystemElectricity subsystemElectricity, IEnumerable< CellFace > cellFaces)
static int GetRotation(int data)
static int GetDesignIndex(int data)
static IEnumerable< CellFace > GetMountingCellFaces(SubsystemElectricity subsystemElectricity, Point3 point)
FurnitureElectricElement(SubsystemElectricity subsystemElectricity, Point3 point)
virtual SubsystemFurnitureBlockBehavior SubsystemFurnitureBlockBehavior
virtual int GetCellValue(int x, int y, int z)
static int ExtractData(int value)
static int OppositeFace(int face)