public void UpdateAutoTileForm(bool lu, bool ru, bool ld, bool rd) { autotile_args.boolMask[0, 0] = lu; autotile_args.boolMask[1, 0] = ru; autotile_args.boolMask[0, 1] = ld; autotile_args.boolMask[1, 1] = rd; autotile_args.form = AutoTileDict.BoolMask2String(autotile_args.boolMask); }
/// пытается найти тайл по указанной маске и типам. (а также и варианту) public Tile GetAutoTileByMask(TileType type, TileType another, bool[,] boolmask, int variant, int seed) { string form = AutoTileDict.BoolMask2String(boolmask); int var = variant; TileType tmp_type = type; // если нет ни одного миниквадрата основной формы, то тупо заменяем основную форму на вторичную. if (!boolmask[0, 0] && !boolmask[0, 1] && !boolmask[1, 0] && !boolmask[1, 1]) { tmp_type = another; form = "Center"; } // Только центральные тайлы имеют вариант. if (form != "Center") { var = 0; } Tile tmp = autoTile_dict[tmp_type].GetRandomTile(another, form, var, seed); return(tmp); }