public override void Init(Random random, IntentionGrid grid, TilesetConfiguration tilesConfig) { Grid = grid; Random = random; TilesConfig = tilesConfig; Converter = new MyMeaningConverter(); WcfGrid = Helpers.InitWcfGrid(random, grid, TilesConfig); }
public override void Init(Random random, IntentionGrid grid, TilesetConfiguration tilesConfig) { Grid = grid; Random = random; TilesConfig = tilesConfig; Converter = new BasicCircuitProcess.MyMeaningConverter(); WcfGrid = Helpers.InitWcfGrid(random, grid, TilesConfig); WcfGrid.eventHandler = this; }
public static bool ApplyIntentionToGrid(IntentionGrid grid, WcfGrid wcfGrid, TilesetConfiguration tilesconfig, iMeaningConverter converter) { for (var x = 0; x < grid.Width; x++) { for (var y = 0; y < grid.Height; y++) { if (y == 8 && x == 7) { var breaka = "here"; } var intentions = grid.Positions[x, y].Intentions; if (intentions.Count != 0) { List <OpinionatedItem <Bitmap> > crossedTiles = new List <OpinionatedItem <Bitmap> >(); var firsttime = true; foreach (var intention in intentions) { if (firsttime) { crossedTiles.AddRange(converter.MeaningToTiles(intention.Meaning, tilesconfig)); firsttime = false; } else { crossedTiles = crossedTiles.Where(c => converter.MeaningToTiles(intention.Meaning, tilesconfig).Any(n => n.Id == c.Id)).ToList(); } } if (crossedTiles.Count == 0) { Console.WriteLine("Crossing Tile Intentions yeilded no items!"); } //DebugWfcPrint(crossedTiles, wcfGrid, x, y, tilesconfig.WFCdebugFolderPath); wcfGrid.SuperPositions[x, y, 0].CollapseToItems(crossedTiles.Select(c => c.Id).ToList(), true); if (!wcfGrid.SuperPositions[x, y, 0].slots.Any(s => !s.Collapsed)) { Console.WriteLine("Collapse To Specific Item failed for Intentions:"); foreach (var meaning in intentions.Select(i => i.Meaning)) { Console.WriteLine(" -" + meaning.ToString()); } DebugWfcPrint(crossedTiles, wcfGrid, x, y, tilesconfig.WFCdebugFolderPath); } var result = wcfGrid.handlePropagation(wcfGrid.SuperPositions[x, y, 0]); if (!result) { Console.WriteLine("WcfGrid fucke dup"); //throw new Exception("WcfGrid fucke dup"); return(false); } } } } var recurseresult = wcfGrid.CollapseAllRecursive(); if (!recurseresult) { Console.WriteLine("WcfGrid collapse recursive fucke dup"); //throw new Exception("WcfGrid collapse recursive fucke dup"); return(false); } return(true); }