Beispiel #1
0
 public bool Fits(int direction, int connector)
 {
     if (Orientations.IsHorizontal(direction))
     {
         var f = this.GetFace(direction) as ModulePrototype.HorizontalFaceDetails;
         return(f.Connector == connector);
     }
     else
     {
         var f = this.Prototype.Faces[direction] as ModulePrototype.VerticalFaceDetails;
         return(f.Connector == connector);
     }
 }
Beispiel #2
0
    public bool Fits(int direction, Module module)
    {
        int otherDirection = (direction + 3) % 6;

        if (Orientations.IsHorizontal(direction))
        {
            var f1 = this.Prototype.Faces[Orientations.Rotate(direction, this.Rotation)] as ModulePrototype.HorizontalFaceDetails;
            var f2 = module.Prototype.Faces[Orientations.Rotate(otherDirection, module.Rotation)] as ModulePrototype.HorizontalFaceDetails;
            return(f1.Connector == f2.Connector && (f1.Symmetric || f1.Flipped != f2.Flipped));
        }
        else
        {
            var f1 = this.Prototype.Faces[direction] as ModulePrototype.VerticalFaceDetails;
            var f2 = module.Prototype.Faces[otherDirection] as ModulePrototype.VerticalFaceDetails;
            return(f1.Connector == f2.Connector && (f1.Invariant || (f1.Rotation + this.Rotation) % 4 == (f2.Rotation + module.Rotation) % 4));
        }
    }