public bool IsCollapseSupportBlock(int value) { int num = Terrain.ExtractContents(value); if (num != 0) { int data = Terrain.ExtractData(value); Block block = BlocksManager.Blocks[num]; if (block is TrapdoorBlock) { if (TrapdoorBlock.GetUpsideDown(data)) { return(!TrapdoorBlock.GetOpen(data)); } return(false); } if (block.BlockIndex == 238) { return(true); } if (block.IsFaceTransparent(base.SubsystemTerrain, 4, value)) { return(block is SoilBlock); } return(true); } return(false); }
public override bool OnInteract(TerrainRaycastResult raycastResult, ComponentMiner componentMiner) { CellFace cellFace = raycastResult.CellFace; int cellValue = base.SubsystemTerrain.Terrain.GetCellValue(cellFace.X, cellFace.Y, cellFace.Z); int num = Terrain.ExtractContents(cellValue); int data = Terrain.ExtractData(cellValue); if (num == 83 || !IsTrapdoorElectricallyConnected(cellFace.X, cellFace.Y, cellFace.Z)) { bool open = TrapdoorBlock.GetOpen(data); return(OpenCloseTrapdoor(cellFace.X, cellFace.Y, cellFace.Z, !open)); } return(true); }
public static bool IsCollapseDestructibleBlock(int value) { int num = Terrain.ExtractContents(value); Block block = BlocksManager.Blocks[num]; if (block is TrapdoorBlock) { int data = Terrain.ExtractData(value); if (TrapdoorBlock.GetUpsideDown(data) && TrapdoorBlock.GetOpen(data)) { return(false); } } else if (block is FluidBlock) { return(false); } return(true); }