package Ġstructure . wall b ender Ċ Ċ import Ġbeat wall s . error Exit Ċ import Ġstructure . Wall Structure Ċ import Ġstructure . helper Classes . Sp ook y Wall Ċ Ċ fun ĠWall Structure . mirror ( l : ĠList < Sp ook y Wall >) Ġ= ĊĠĠĠ Ġwhen ( mirror ){ ĊĠĠĠĠĠĠĠĠ 0 -> Ġl ĊĠĠĠĠĠĠĠĠ 1 -> Ġmirror X ( l ) ĊĠĠĠĠĠĠĠĠ 2 -> Ġl Ġ+ Ġmirror X ( l ) ĊĠĠĠĠĠĠĠĠ 3 -> Ġmirror Y ( l ) ĊĠĠĠĠĠĠĠĠ 4 -> Ġl Ġ+ Ġmirror Y ( l ) ĊĠĠĠĠĠĠĠĠ 5 -> Ġmirror Y ( mirror X ( l )) ĊĠĠĠĠĠĠĠĠ 6 -> Ġl Ġ+ Ġmirror Y ( mirror X ( l )) ĊĠĠĠĠĠĠĠĠ 7 -> Ġmirror X ( l ) Ġ+ Ġmirror Y ( l ) ĊĠĠĠĠĠĠĠĠ 8 -> Ġl Ġ+ Ġmirror X ( l ) Ġ+ Ġmirror Y ( l ) Ġ+ Ġmirror Y ( mirror X ( l )) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġerror Exit Ġ{ Ġ" Mirror Ġcan Ġonly Ġbe Ġ 0 - 8 , Ġcheck Ġthe Ġdocumentation " Ġ} ĊĠĠĠ Ġ} Ċ Ċ internal Ġfun ĠWall Structure . mirror X ( list : ĠList < Sp ook y Wall >) Ġ= ĊĠĠĠ Ġlist . map Ġ{ Ġwall Ġ-> ĊĠĠĠĠĠĠĠ Ġwall . copy ( ĊĠĠĠĠĠĠĠ Ġstart Row Ġ= Ġ 2 * mirror X - wall . start Row , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ- wall . width , ĊĠĠĠĠĠĠĠ Ġrotation Ġ= Ġif ( mirror Rotation ) Ġ- wall . rotation Ġelse Ġwall . rotation , ĊĠĠĠĠĠĠĠ Ġlocal Rotation Ġ= Ġif ( mirror Rotation ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( wall . local Rotation [ 0 ], - wall . local Rotation [ 1 ], - wall . local Rotation [ 2 ]) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwall . local Rotation ĊĊĠĠĠ Ġ) Ġ} Ċ Ċ internal Ġfun ĠWall Structure . mirror Y ( list : ĠList < Sp ook y Wall >) Ġ= ĊĠĠĠ Ġlist . map Ġ{ Ġit . copy ( ĊĠĠĠĠĠĠĠ Ġstart Height Ġ= Ġ 2 * mirror Y - it . start Height , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ- it . height ĊĠĠĠ Ġ) Ġ} Ċ