示例#1
0
文件: Door.cs 项目: funkjunky/Raven
        //not needed??
        ///<summary>
        ///constructor
        ///</summary>
        ///<param name="map"></param>
        ///<param name="doorData"></param>
        public Door(Map map, DoorData doorData)
            : base(new EntitySceneObject())
        {
            _status = DoorStatus.Closed;
            _numTicksStayOpen = 600; //TODO: this should be a parameter

            Name = doorData.Name;

            _p1 = doorData.From;
            _p2 = doorData.To;

            _switchIds = new List<uint>();
            foreach (string triggerName in doorData.TriggerList)
            {
                T2DSceneObject trigger =
                    TorqueObjectDatabase.Instance.FindObject<T2DSceneObject>(triggerName);
                Assert.Fatal(trigger != null,
                             "Door.Door: no trigger");
                if (trigger != null) _switchIds.Add(trigger.ObjectId);
            }

            _toP2Norm = Vector2.Normalize(_p2 - _p1);
            _currentSize = _doorSize = Vector2.Distance(_p2, _p1);

            Vector2 perp = Vector2Util.Perp(_toP2Norm);

            //create the walls that make up the door's geometry
            _wall1 = map.AddWall(_p1 + perp, _p2 + perp);
            _wall2 = map.AddWall(_p2 - perp, _p1 - perp);
        }
示例#2
0
        ///<summary>
        ///initialize using associated entity
        ///</summary>
        ///<param name="entity">associated entity</param>
        public void Initialize(Entity entity)
        {
            _wall = entity as Wall;

            SimpleMaterial simpleMaterial = new SimpleMaterial();
            simpleMaterial.TextureFilename =
                @"data\images\Mindcrafters\crate";
            simpleMaterial.IsTranslucent = true;
            simpleMaterial.IsColorBlended = true;

            Material = simpleMaterial;

            Layer = 30;
            IsTemplate = false;
            Size = new Vector2(8, 8);
        }
示例#3
0
文件: Map.cs 项目: funkjunky/Raven
        ///<summary>
        ///Add a wall at given position
        ///</summary>
        ///<param name="from"></param>
        ///<param name="to"></param>
        ///<returns></returns>
        public Wall AddWall(Vector2 from, Vector2 to)
        {
            Wall wall = new Wall(from, to);

            Walls.Add(wall);

            //register the entity
            EntityManager.Instance.RegisterEntity(wall);

            return wall;
        }
示例#4
0
文件: Map.cs 项目: funkjunky/Raven
        ///<summary>
        ///Add a wall using given wall data
        ///</summary>
        ///<param name="wallData"></param>
        public void AddWall(WallData wallData)
        {
            Wall wall = new Wall(wallData);
            Walls.Add(wall);

            //register the entity
            EntityManager.Instance.RegisterEntity(wall);
        }