public void DestroyThis() { if (MonoPipe == null) { var Transform = matrix.UnderFloorLayer.GetMatrix4x4(pipeNode.NodeLocation, pipeNode.RelatedTile); var pipe = Spawn.ServerPrefab(pipeNode.RelatedTile.SpawnOnDeconstruct, MatrixManager.LocalToWorld(pipeNode.NodeLocation, matrix), localRotation: PipeDeconstruction.QuaternionFromMatrix(Transform)).GameObject; var itempipe = pipe.GetComponent <PipeItemTile>(); itempipe.Colour = matrix.UnderFloorLayer.GetColour(pipeNode.NodeLocation, pipeNode.RelatedTile); itempipe.Setsprite(); //matrix.RemoveUnderFloorTile(pipeNode.NodeLocation,pipeNode.RelatedTile); pipeNode.LocatedOn.RemoveUnderFloorTile(pipeNode.NodeLocation, pipeNode.RelatedTile); pipeNode.IsOn.PipeData.Remove(pipeNode); this.OnDisable(); } }
public void DestroyThis() { if (MonoPipe == null) { Matrix4x4 matrix = Matrix.MetaTileMap.GetMatrix4x4(pipeNode.NodeLocation, LayerType.Underfloor, true).GetValueOrDefault(Matrix4x4.identity); var pipe = Spawn.ServerPrefab( pipeNode.RelatedTile.SpawnOnDeconstruct, MatrixManager.LocalToWorld(pipeNode.NodeLocation, this.Matrix), localRotation: PipeDeconstruction.QuaternionFromMatrix(matrix)).GameObject; var itempipe = pipe.GetComponent <PipeItemTile>(); itempipe.Colour = Matrix.MetaTileMap.GetColour(pipeNode.NodeLocation, LayerType.Underfloor, true).GetValueOrDefault(Color.white); itempipe.Setsprite(); pipeNode.LocatedOn.TileChangeManager.RemoveTile(pipeNode.NodeLocation, LayerType.Underfloor); pipeNode.IsOn.PipeData.Remove(pipeNode); OnDisable(); } }