Beispiel #1
0
        EnvironmentObject(Dwarrowdelf.TerrainGen.TerrainData terrain, VisibilityMode visMode, IntVector3 startLocation)
            : base(ObjectType.Environment)
        {
            this.Version = 1;
            this.VisibilityMode = visMode;

            terrain.GetData(out m_tileGrid, out m_levelMap);

            this.Size = terrain.Size;

            this.StartLocation = startLocation;

            InitFlags();
            VerifyLevelMap();

            m_contentArray = new KeyedObjectCollection[this.Depth];
            for (int i = 0; i < this.Depth; ++i)
                m_contentArray[i] = new KeyedObjectCollection();

            m_originalNumTrees = ParallelEnumerable.Range(0, this.Size.Depth).Sum(z =>
            {
                int sum = 0;
                for (int y = 0; y < this.Size.Height; ++y)
                    for (int x = 0; x < this.Size.Width; ++x)
                        if (GetTileData(x, y, z).HasTree)
                            sum++;

                return sum;
            });
        }
Beispiel #2
0
        void m_conn_ReceiveEvent(Dwarrowdelf.Messages.Message obj)
        {
            m_msgsReceived++;
            if (m_msgsReceived < Program.NUM_MSGS)
                return;

            m_sw.Stop();

            Console.WriteLine("Received {0} msgs, {1} bytes, in {2} ms",
                m_conn.ReceivedMessages, m_conn.ReceivedBytes,
                m_sw.ElapsedMilliseconds);

            Program.Event.Set();
        }
Beispiel #3
0
        public void AddIPMessage(Dwarrowdelf.Messages.IPOutputMessage msg)
        {
            if (m_ipMessages.Count > 100)
                m_ipMessages.RemoveAt(0);

            m_ipMessages.Add(msg);
        }
Beispiel #4
0
 public void HandleChangeMessage(Dwarrowdelf.Messages.ChangeMessage msg)
 {
     var change = msg.ChangeData;
     var method = s_changeHandlerMap[change.GetType()];
     method(this, change);
 }
Beispiel #5
0
        public void SetAI(Dwarrowdelf.AI.IAI ai)
        {
            m_ai = ai;

            var aai = m_ai as Dwarrowdelf.AI.AssignmentAI;
            if (aai != null)
                aai.AssignmentChanged += OnAIAssignmentChanged;
        }
Beispiel #6
0
 public void HandleReportMessage(Dwarrowdelf.Messages.ReportMessage msg)
 {
     var report = msg.Report;
     var method = s_reportHandlerMap[report.GetType()];
     method(this, report);
 }
Beispiel #7
0
        public static EnvironmentObject Create(World world, Dwarrowdelf.TerrainGen.TerrainData terrain, VisibilityMode visMode,
			IntVector3 startLocation)
        {
            var ob = new EnvironmentObject(terrain, visMode, startLocation);
            ob.Initialize(world);
            return ob;
        }