Пример #1
0
        public static bool GiveToSurrounding(this MachineEntity center, ItemBase item)
        {
            bool ignore;
            List <SegmentEntity> list = center.CheckSurrounding <SegmentEntity>(out ignore);

            for (int i = 0; i < list.Count; ++i)
            {
                // Special case - Conveyor belts should only be given items if they're facing away from the machine
                if (list[i] is ConveyorEntity && center.IsConveyorFacingMe(list[i] as ConveyorEntity))
                {
                    continue;
                }
                if (ItemInterop.GiveItem(list[i], item))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #2
0
        public static ItemBase TakeFromSurrounding(this MachineEntity center, ItemBase item)
        {
            bool ignore;
            List <SegmentEntity> list = center.CheckSurrounding <SegmentEntity>(out ignore);

            ItemBase ret = null;

            for (int i = 0; i < list.Count; ++i)
            {
                if (list[i] is ConveyorEntity && !center.IsConveyorFacingMe(list[i] as ConveyorEntity))
                {
                    continue;
                }
                ret = ItemInterop.TakeItem(list[i], item);
                if (ret != null)
                {
                    break;
                }
            }
            return(ret);
        }
Пример #3
0
        public static ItemBase TakeFromSurrounding(this MachineEntity center)
        {
            bool ignore;
            List <SegmentEntity> list = center.CheckSurrounding <SegmentEntity>(out ignore);

            ItemBase ret = null;

            for (int i = 0; i < list.Count; ++i)
            {
                // Special case - Conveyor belts should will only provide items if they're facing the machine
                if (list[i] is ConveyorEntity && !center.IsConveyorFacingMe(list[i] as ConveyorEntity))
                {
                    continue;
                }
                ret = ItemInterop.TakeAnyItem(list[i]);
                if (ret != null)
                {
                    break;
                }
            }
            return(ret);
        }