示例#1
0
        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;
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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;
        }
示例#5
0
        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();
            }
        }
示例#6
0
 public virtual IObject2D CreateObject2D(World2D world2D, ALayer2D layer2D, IObject obj)
 {
     return(this.CreateObject2D(world2D, obj));
 }