コード例 #1
0
    protected List <TileWithLevel> CalculateTilesFromTemplate(RelativeFootprintTemplate footprint, TileCoords pivotTile, TileCoords pivotFacing, int pivotLevel)
    {
        List <TileWithLevel> footprintList = new List <TileWithLevel>();

        foreach (var part in footprint.footprintParts)
        {
            TileWithFacing newVec = new TileWithFacing()
            {
                position = pivotTile, facing = pivotFacing
            };
            if (part.relativePosStep1.step > 0)
            {
                newVec = newVec.Traverse(part.relativePosStep1.direction, part.relativePosStep1.step);
            }
            if (part.relativePosStep2.step > 0)
            {
                newVec = newVec.Traverse(part.relativePosStep2.direction, part.relativePosStep2.step);
            }
            footprintList.Add(new TileWithLevel()
            {
                position = newVec.position, level = pivotLevel + part.relativeLevel
            });
        }
        return(footprintList);
    }
コード例 #2
0
 public DynamicFootprint(RelativeFootprintTemplate template)
 {
     footprintTemplate = template;
 }
コード例 #3
0
 public StaticFootprint(RelativeFootprintTemplate footprint, TileCoords pivotTile, TileCoords pivotFacing, int pivotLevel)
 {
     footprintParts = CalculateTilesFromTemplate(footprint, pivotTile, pivotFacing, pivotLevel);
 }