public void Invoke() { var iterationSet = m_sourceConfig.GetSet(m_iterateOnTileConfig); var filters = new TilesSetFilter[m_filter.Length]; for (var i = 0; i < m_filter.Length; i++) { var filterSet = m_sourceConfig.GetSet(m_filter[i].Config.Result); filters[i] = new TilesSetFilter() { Data = filterSet, FilterIdx = m_filter[i].TileIdx }; } var startNode = 0; ushort[] texTypesDone = { ushort.MaxValue, ushort.MaxValue, ushort.MaxValue }; var texTypesDoneIdx = 0; ushort next; while ((next = NextType(iterationSet, filters, ref startNode, ref texTypesDone, ref texTypesDoneIdx)) != ushort.MaxValue) { m_tilesSetFilter.SetValue(new TilesSetFilter() { Data = iterationSet, FilterIdx = next }); m_continueAction.Invoke(); } }
public PickMeshForConfigurationAction(TilesSetFilter primaryFilter, TilesSetFilterReference tilesSetFilter, GridReference grid, Vector3Reference pos, MeshSetReference meshSet, bool invertConfiguration, ObjectReference meshConfig) { m_primaryFilter = primaryFilter; m_tilesSetFilter = tilesSetFilter; m_grid = grid; m_pos = pos; m_meshSet = meshSet; m_invertConfiguration = invertConfiguration; m_meshConfig = meshConfig; }
bool GetFilter(out TilesSetFilter primaryFilter) { primaryFilter = default; var primaryFilterSetData = m_primaryFilterSetListConfig.GetSet(m_primaryFilterIdentifier.Config.Result); if (primaryFilterSetData.TileConfig == null) { Debug.LogError( $"{nameof(ITileConfig)} {m_primaryFilterIdentifier.Config} not found in given {nameof(TilesSetListConfig)}"); return(false); } primaryFilter = new TilesSetFilter() { Data = primaryFilterSetData, FilterIdx = m_primaryFilterIdentifier.TileIdx }; return(true); }
public TileTypeCheckAction(TilesSetListConfig sourceConfig, TileTypeIdentifier identifier, GridReference grid, Vector3Reference currentPos, IDefaultAction trueAction, IDefaultAction falseAction) { var iterationSet = sourceConfig.GetSet(identifier.Config.Result); m_filter = new TilesSetFilter() { Data = iterationSet, FilterIdx = identifier.TileIdx }; m_grid = grid; m_currentPos = currentPos; m_trueAction = trueAction; m_falseAction = falseAction; }