コード例 #1
0
ファイル: Program.cs プロジェクト: marcAKAmarc/ProcGenTools
 private static void AddDoor(WcfGrid grid, IOpinionatedItem doorItem, int doorwayY)
 {
     //grid.SuperPositions[0, 5, 0].Uncollapse();
     //grid.SuperPositions[grid.Width-1, 5, 0].Uncollapse();
     grid.SuperPositions[0, doorwayY, 0].CollapseToItem(doorItem.Id);
     grid.handlePropagation(grid.SuperPositions[0, doorwayY, 0]);
     grid.SuperPositions[grid.Width - 1, doorwayY, 0].CollapseToItem(doorItem.Id);
     grid.handlePropagation(grid.SuperPositions[grid.Width - 1, doorwayY, 0]);
 }
コード例 #2
0
 public void RemoveAcceptableInDirection(IOpinionatedItem item, int x, int y, int z, bool mutual)
 {
     if (mutual)
     {
         RemoveMutualAcceptionInDirection(item, x, y, z);
     }
     else
     {
         RemoveExclusiveAcceptionInDirection(item, x, y, z);
     }
 }
コード例 #3
0
 public void SetAcceptableInDirection(IOpinionatedItem item, int x, int y, int z, bool mutual = true)
 {
     if (mutual)
     {
         AddMutualAcceptionInDirection(item, x, y, z);
     }
     else
     {
         AddExclusiveAcceptionInDirection(item, x, y, z);
     }
 }
コード例 #4
0
ファイル: Program.cs プロジェクト: marcAKAmarc/ProcGenTools
 private static void AddBorder(WcfGrid grid, IOpinionatedItem borderElement, int doorwayY)
 {
     for (var x = 0; x < grid.Width; x++)
     {
         for (var y = 0; y < grid.Height; y++)
         {
             if (x > 0 && x < grid.Width - 1 && y > 0 && y < grid.Height - 1)
             {
                 continue;
             }
             if (y == doorwayY)
             {
                 continue;
             }
             grid.SuperPositions[x, y, 0].CollapseToItem(borderElement.Id);
             var result = grid.handlePropagation(grid.SuperPositions[x, y, 0]);
         }
     }
 }
コード例 #5
0
 public bool AcceptsInDirection(IOpinionatedItem item, int x, int y, int z)
 {
     return(acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ].Any(i => i.Id == item.Id));
 }
コード例 #6
0
 public void AddRequirement(IOpinionatedItem item, RequirementComparison comparison, int amount)
 {
     requirements.Add(new Tuple <int, Guid, RequirementComparison>(amount, item.Id, comparison));
 }
コード例 #7
0
 public WcfCollapsableSlot(IOpinionatedItem _item, int _weight, WcfSuperPosition _superPosition)
 {
     weight        = _weight;
     item          = _item;
     superPosition = _superPosition;
 }
コード例 #8
0
 public void RemoveExclusiveAcceptionInDirection(IOpinionatedItem item, int x, int y, int z)
 {
     acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ] = acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ].Where(_x => _x.Id != item.Id).ToList();
 }
コード例 #9
0
 public void RemoveMutualAcceptionInDirection(IOpinionatedItem item, int x, int y, int z)
 {
     acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ] = acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ].Where(_x => _x.Id != item.Id).ToList();
     item.acceptableItemsArray[(x * -1) + offsetX, (y * -1) + offsetY, (z * -1) + offsetZ] = item.acceptableItemsArray[(x * -1) + offsetX, (y * -1) + offsetY, (z * -1) + offsetZ].Where(_x => _x.Id == item.Id).ToList();
 }
コード例 #10
0
 public void AddExclusiveAcceptionInDirection(IOpinionatedItem item, int x, int y, int z)
 {
     acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ].Add(item);
 }
コード例 #11
0
 public void AddMutualAcceptionInDirection(IOpinionatedItem item, int x, int y, int z)
 {
     acceptableItemsArray[x + offsetX, y + offsetY, z + offsetZ].Add(item);
     item.acceptableItemsArray[(x * -1) + offsetX, (y * -1) + offsetY, (z * -1) + offsetZ].Add(this);
 }