Kody kształtów
Overview
Kody kształtów są tekstową reprezentacją kształtów w Shapez 2. Są to zwarte ciągi znaków, które kodują każdą warstwę, typ części i kolor kształtu, tak by kształty można było kopiować, wklejać, przesyłać między maszynami, przechowywać w blueprintach lub udostępniać poza grą. Kody kształtów wymieniają warstwy od dołu do góry, oddzielone dwukropkiem (:). Każda część w warstwie jest reprezentowana przez dwa znaki: pierwszy znak to kod typu części, a drugi to kod koloru. Części w warstwie zapisywane są zaczynając od ćwiartki górno-prawej i kontynuując zgodnie z ruchem wskazówek zegara bez żadnych separatorów.
Gra obsługuje różne Shapes Configurations, które określają, ile części znajduje się w każdej warstwie. Konfiguracja Quad używa 4 części na warstwę (domyślna), natomiast Hex używa 6 części na warstwę. Zasady Flexible pozwalają kształtom zawierać części z dowolnej konfiguracji i dowolną liczbę części na warstwę (pod warunkiem, że wszystkie warstwy mają tę samą liczbę części), natomiast zasady Strict wymagają, aby kształty odpowiadały konfiguracji i liczbie części obowiązującej w danym Scenario. Same Shape Codes nie wymuszają żadnego zestawu zasad; walidacja wpisu Shape Code jest przeprowadzana względem aktywnego zestawu zasad wtedy, gdy jest to potrzebne.
Znaki dla typów części i kolorów pochodzą z tabel kodów w grze. Kody typów części obejmują wpisy takie jak C (circle), R (square), S (star), W (diamond), X/Y (refined/exotic shapes), H/F/G (hex-specific types), P (pin), c (crystal) oraz - (empty). Kody kolorów obejmują u (uncolored), r (red), g (green), b (blue), c (cyan), m (magenta), y (yellow), w (white) oraz k (black). Dla typów części, które nie mogą mieć koloru (na przykład pins lub puste ćwiartki), znak koloru to -, więc pin jest zakodowany jako P- a pusta ćwiartka jako --. Dla typów, które mogą mieć kolor, drugi znak to jeden z powyższych kodów kolorów (na przykład Cu oznacza circle niepomalowany, Cr oznacza circle pomalowany na red).
Kody kształtów są używane w przykładach symulowanych urządzeń i logice maszyn. Na przykład dwuwarstwowy kształt z dolną warstwą składającą się z czterech circle wszystkie niepomalowane oraz górną warstwą z czterech square wszystkie niepomalowane zapisuje się jako CuCuCuCu:RuRuRuRu. Kształty jednowarstwowe pomijają dwukropek i warstwy wyższe, np. CuCuCuCu koduje jedną quad-warstwę z niepomalowanymi circle.
Praktyczne uwagi i ograniczenia:
- Podczas tworzenia kształtów z Shape Code, warstwy wykraczające poza maksymalną liczbę dozwoloną przez bieżące Scenario mogą być obecne w utworzonym kształcie; dodatkowe warstwy pozostają aż do momentu, gdy kształt przejdzie przez maszynę stosującą Shape Gravity Rules(Zasady grawitacji kształtów), po czym nadmiarowe warstwy zostaną usunięte zgodnie z regułami.
- Kolejność wewnątrz warstwy jest stała: górno-prawa, potem zgodnie z ruchem wskazówek zegara. Ma to wpływ na rotacje i inne operacje manipulujące częściami według pozycji.
- Części, które nie mogą mieć koloru, muszą używać - jako znaku koloru. Crystals zachowują swój kolor po utworzeniu i są kodowane za pomocą kodu typu c, po którym następuje kolor.
- Walidacja kształtu zależy od aktywnego zestawu zasad: zasady Strict wymuszają konfigurację i liczbę części warstwy zgodnie z Scenario, podczas gdy zasady Flexible dopuszczają różne konfiguracje pod warunkiem, że wszystkie warstwy mają tę samą liczbę części.
- Tabele znaków dla typów części i kolorów są autorytatywnym źródłem prawidłowych znaków używanych w Shape Codes; odwołuj się do tych tabel przy tworzeniu lub parsowaniu kodów.