public void AddLayer(TiledMapLayer layer) { _layers.Add(layer); _layersByName.Add(layer.Name, layer); var imageLayer = layer as TiledMapImageLayer; if (imageLayer != null) { _imageLayers.Add(imageLayer); } var tileLayer = layer as TiledMapTileLayer; if (tileLayer != null) { _tileLayers.Add(tileLayer); } var objectLayer = layer as TiledMapObjectLayer; if (objectLayer != null) { _objectLayers.Add(objectLayer); } }
private void AddLayer(TiledMapLayer layer, bool root) { if (root) { _layers.Add(layer); } _layersByName.Add(layer.Name, layer); switch (layer) { case TiledMapImageLayer imageLayer: _imageLayers.Add(imageLayer); break; case TiledMapTileLayer tileLayer: _tileLayers.Add(tileLayer); break; case TiledMapObjectLayer objectLayer: _objectLayers.Add(objectLayer); break; case TiledMapGroupLayer groupLayer: foreach (var subLayer in groupLayer.Layers) { AddLayer(subLayer, false); } break; } }
private static int CountLayers(TiledMapLayer layer) { var value = 0; if (layer is TiledMapGroupLayer groupLayer) { foreach (var subLayer in groupLayer.Layers) { value += CountLayers(subLayer); } } else { value = 1; } return(value); }
private static void ReadModels(ContentReader input, TiledMapLayer layer, TiledMap map) { var modelCount = input.ReadInt32(); var animatedModelCount = input.ReadInt32(); var models = layer.Models = new TiledMapLayerModel[modelCount]; var animatedModels = layer.AnimatedModels = new TiledMapLayerAnimatedModel[animatedModelCount]; var animatedModelIndex = 0; for (var modelIndex = 0; modelIndex < modelCount; modelIndex++) { var isAnimated = input.ReadBoolean(); var model = isAnimated ? new TiledMapLayerAnimatedModel(input, map) : new TiledMapLayerModel(input); models[modelIndex] = model; if (isAnimated) { animatedModels[animatedModelIndex++] = (TiledMapLayerAnimatedModel)model; } } }
private void AddLayer(TiledMapLayer layer, bool root) { if (root) { _layers.Add(layer); } if (_layersByName.ContainsKey(layer.Name)) { throw new ArgumentException($"The TiledMap '{Name}' contains two or more layers named '{layer.Name}'. Please ensure all layers have unique names."); } _layersByName.Add(layer.Name, layer); switch (layer) { case TiledMapImageLayer imageLayer: _imageLayers.Add(imageLayer); break; case TiledMapTileLayer tileLayer: _tileLayers.Add(tileLayer); break; case TiledMapObjectLayer objectLayer: _objectLayers.Add(objectLayer); break; case TiledMapGroupLayer groupLayer: foreach (var subLayer in groupLayer.Layers) { AddLayer(subLayer, false); } break; } }
public void AddLayer(TiledMapLayer layer) => AddLayer(layer, true);