Пример #1
0
        public ConstructJob(IJobObserver parent, ConstructMode mode, IItemObject[] items, IEnvironmentObject environment, IntVector3 location)
            : base(parent)
        {
            m_mode        = mode;
            m_items       = items;
            m_environment = environment;
            m_location    = location;

            m_state = 0;

            DirectionSet positioning;

            switch (mode)
            {
            case ConstructMode.Floor:
                positioning = DirectionSet.Planar;
                break;

            case ConstructMode.Pavement:
                positioning = DirectionSet.Exact;
                break;

            case ConstructMode.Wall:
                positioning = DirectionSet.Planar;
                break;

            default:
                throw new Exception();
            }

            AddSubJob(new FetchItems(this, m_environment, m_location, items, positioning));
        }
Пример #2
0
        public ConstructJob(IJobObserver parent, ConstructMode mode, IItemObject[] items, IEnvironmentObject environment, IntPoint3 location)
            : base(parent)
        {
            m_mode = mode;
            m_items = items;
            m_environment = environment;
            m_location = location;

            m_state = 0;

            DirectionSet positioning;

            switch (mode)
            {
                case ConstructMode.Floor:
                    positioning = DirectionSet.Planar;
                    break;

                case ConstructMode.Pavement:
                    positioning = DirectionSet.Exact;
                    break;

                case ConstructMode.Wall:
                    positioning = DirectionSet.Planar;
                    break;

                default:
                    throw new Exception();
            }

            AddSubJob(new FetchItems(this, m_environment, m_location, items, positioning));
        }
Пример #3
0
 public MoveConstructAssignment(IJobObserver parent, ConstructMode mode, IItemObject[] items, IEnvironmentObject environment, IntVector3 location)
     : base(parent, environment, items[0].Location)
 {
     m_mode = mode;
     m_items = items;
     m_environment = environment;
     m_location = location;
 }
Пример #4
0
 public ConstructAssignment(IJobObserver parent, ConstructMode mode, IEnvironmentObject environment, IntPoint3 location, IItemObject[] items)
     : base(parent)
 {
     m_mode = mode;
     m_environment = environment;
     m_location = location;
     m_items = items;
 }
Пример #5
0
 public ConstructAssignment(IJobObserver parent, ConstructMode mode, IEnvironmentObject environment, IntVector3 location, IItemObject[] items)
     : base(parent)
 {
     m_mode        = mode;
     m_environment = environment;
     m_location    = location;
     m_items       = items;
 }
 public MoveConstructAssignment(IJobObserver parent, ConstructMode mode, IItemObject[] items, IEnvironmentObject environment, IntVector3 location)
     : base(parent, environment, items[0].Location)
 {
     m_mode        = mode;
     m_items       = items;
     m_environment = environment;
     m_location    = location;
 }
Пример #7
0
        public void AddConstructJob(ConstructMode mode, IntGrid2Z area, IItemFilter userItemFilter)
        {
            var locations = area.Range().Where(p => m_environment.Contains(p));

            ITerrainFilter filter;
            IItemFilter    coreItemFilter;

            switch (mode)
            {
            case ConstructMode.Floor:
                filter         = WorkHelpers.ConstructFloorTerrainFilter;
                coreItemFilter = WorkHelpers.ConstructFloorItemFilter;
                break;

            case ConstructMode.Pavement:
                filter         = WorkHelpers.ConstructPavementTerrainFilter;
                coreItemFilter = WorkHelpers.ConstructPavementItemFilter;
                break;

            case ConstructMode.Wall:
                filter         = WorkHelpers.ConstructWallTerrainFilter;
                coreItemFilter = WorkHelpers.ConstructWallItemFilter;
                break;

            default:
                throw new Exception();
            }

            IItemFilter itemFilter;

            if (userItemFilter != null)
            {
                itemFilter = new AndItemFilter(coreItemFilter, userItemFilter);
            }
            else
            {
                itemFilter = coreItemFilter;
            }

            locations = locations.Where(p => filter.Match(m_environment.GetTileData(p)));

            foreach (var l in locations)
            {
                var data = new ConstructJobData()
                {
                    Mode       = mode,
                    Location   = l,
                    ItemFilter = itemFilter,
                };

                m_jobDataList.Add(data);
            }
        }
Пример #8
0
        public void AddConstructJob(ConstructMode mode, IntGrid2Z area, IItemFilter userItemFilter)
        {
            var locations = area.Range().Where(p => m_environment.Contains(p));

            ITerrainFilter filter;
            IItemFilter coreItemFilter;

            switch (mode)
            {
                case ConstructMode.Floor:
                    filter = WorkHelpers.ConstructFloorTerrainFilter;
                    coreItemFilter = WorkHelpers.ConstructFloorItemFilter;
                    break;

                case ConstructMode.Pavement:
                    filter = WorkHelpers.ConstructPavementTerrainFilter;
                    coreItemFilter = WorkHelpers.ConstructPavementItemFilter;
                    break;

                case ConstructMode.Wall:
                    filter = WorkHelpers.ConstructWallTerrainFilter;
                    coreItemFilter = WorkHelpers.ConstructWallItemFilter;
                    break;

                default:
                    throw new Exception();
            }

            IItemFilter itemFilter;

            if (userItemFilter != null)
                itemFilter = new AndItemFilter(coreItemFilter, userItemFilter);
            else
                itemFilter = coreItemFilter;

            locations = locations.Where(p => filter.Match(m_environment.GetTileData(p)));

            foreach (var l in locations)
            {
                var data = new ConstructJobData()
                {
                    Mode = mode,
                    Location = l,
                    ItemFilter = itemFilter,
                };

                m_jobDataList.Add(data);
            }
        }
Пример #9
0
 public ConstructActionReport(ILivingObject living, ConstructMode mode)
     : base(living)
 {
     this.Mode = mode;
 }
Пример #10
0
 public ConstructAction(ConstructMode mode, IntVector3 location, IEnumerable <IItemObject> items)
 {
     this.Mode          = mode;
     this.Location      = location;
     this.ItemObjectIDs = items.Select(i => i.ObjectID).ToArray();
 }
Пример #11
0
 public ConstructAction(ConstructMode mode, IntPoint3 location, IEnumerable<IItemObject> items)
 {
     this.Mode = mode;
     this.Location = location;
     this.ItemObjectIDs = items.Select(i => i.ObjectID).ToArray();
 }
Пример #12
0
 public ConstructActionReport(ILivingObject living, ConstructMode mode)
     : base(living)
 {
     this.Mode = mode;
 }