public AEntity2D(ALayer2D parentLayer, IObject2DFactory factory, bool isActive) : base(factory) { this.parentLayer = new WeakReference <ALayer2D>(parentLayer); this.sprite = new Sprite(); this.Priority = 0; this.IsActive = isActive; }
private void OnLayerAdded(ALayer layerToAdd) { this.layerResourcesLoader.LoadLayerResources(layerToAdd); this.layerSoundsLoader.LoadLayerSounds(layerToAdd); IObject2DFactory layer2DFactory = World2D.MappingObjectModelView[layerToAdd.GetType()]; ALayer2D layer2D = layer2DFactory.CreateObject2D(this, layerToAdd) as ALayer2D; this.LayersDictionary.Add(layerToAdd, layer2D); }
private void OnLayerRemoved(ALayer layerToRemove) { ALayer2D layer2D = this.LayersDictionary[layerToRemove]; layer2D.Dispose(); this.LayersDictionary.Remove(layerToRemove); this.LayersList.Remove(layer2D); this.layerResourcesLoader.UnloadLayerResources(layerToRemove); this.layerSoundsLoader.UnloadLayerSounds(layerToRemove); }
public AEntity2D(ALayer2D parentLayer, IObject2DFactory factory, AEntity entity) : base(factory) { this.parentLayer = new WeakReference <ALayer2D>(parentLayer); this.sprite = new Sprite(); this.Priority = 10; this.Position = entity.Position; this.Rotation = entity.Rotation; this.IsActive = entity.IsActive; }
private void OnLevelStarting(World world) { if (this.LayersList.Any()) { throw new Exception("There is always some layers in the current list at the start of the level"); } foreach (ALayer layer in world.CurrentLayers) { ALayer2D layer2D = this.LayersDictionary[layer]; if (layer.ParentLayer != null) { this.LayersDictionary[layer.ParentLayer].ChildrenLayer2D.Add(layer2D); } if (layer2D == null) { throw new Exception("The model layer : " + layer + "does not have a associated layer2D at the start of the level"); } this.LayersList.Add(layer2D); //layer2D.InitializeLayer(World2D.MappingObjectModelView[layer.GetType()]); } foreach (ALayer layer in world.CurrentLayers) { ALayer2D layer2D = this.LayersDictionary[layer]; layer2D.InitializeLayer(World2D.MappingObjectModelView[layer.GetType()]); } foreach (ALayer2D layer2D in this.LayersList) { layer2D.InitializeViewSizeLayer(this.CurrentViewSize); } foreach (ALayer2D layer2D in this.LayersList) { layer2D.InitializeSpatialLayer(); } }
public virtual IObject2D CreateObject2D(World2D world2D, ALayer2D layer2D, IObject obj) { return(this.CreateObject2D(world2D, obj)); }