Explore the world of Shapez2 with this third-party, programmable library that offers a customizable and flexible approach to the game's shape and fluid processing challenges. Designed to enhance your understanding and manipulation of Shapez2 mechanics.
- Layer Customization: Set the maximum number of layers for shapes, with common configurations like normal scenario (4 layers), insane scenario (5 layers), it can also be set to other numbers of layers, such as 10 layers.
- Mode Support: The library supports both quarter and hexagon modes. The number of parts per layer and the machine's processing based on part count are decoupled, allowing for flexible configuration. While changing the
Shape.CurrentModeproperty typically adjusts both, the library also providesUnsafeXXXmethods for individual modification (see documentation for details) .
This library includes:
- Shape and Piece Classes
- Shape and Fluid Processing Functions
- Shape Code Validity Check Functions
- Operator Overloading:
==and!=for content equality comparison rather than reference equality. - Implicit Conversions and ToString: Between
Shapeandstring, and overloading of.ToString()forShape. - Extension Methods:
.CW()and.CCW()forintto simplify index rotation (seeShapez2.cs), and.ToShape()and.ToPiece()forstring.
Each function in this library typically comes in two versions:
- Static Version: Inputs are passed as parameters, outputs are returned, and the inputs remain unchanged.
- Non-static Version: Often modifies the calling instance or parameters (see documentation for details) , with or without a return value, but offers better performance than the static version.
- Learning Shapez2 Shapes Processing: The detailed implementation of Shapez2's shape processing may not be fully captured in the game's wiki, but this library provides an accurate description.
- Distinguishing Shape Feasibility and Mechanical Solutions: Users can implement related algorithms based on this library.
- The current code is more suitable for learning than for high-performance scenarios.
- Some illegal graphics are handled differently from the original game. For example,
Cu------andCu------:--------are treated as different in the original game, generatingCucrcrcrandCucrcrcr:crcrcrcrrespectively after processing by a crystal generator. In this library, they are considered the same shapeCu------. However, rest assured thatCu------:--------cannot be obtained in the original game without cheating.