Пример #1
0
 protected ItemConstrainWallSensor(ItemConstrainSensorInitalizer <TActuatorX> initializer) : base(initializer)
 {
     if (initializer.Data == null)
     {
         throw new ArgumentNullException();
     }
     Data = initializer.Data;
 }
Пример #2
0
        protected virtual async Task <FloorSensor> CreateSensor(ActuatorItemData arg)
        {
            SensorInitializer <IActuatorX> initializer = new SensorInitializer <IActuatorX>();

            await SetupFloorInitializer(initializer, arg);

            switch (arg.ActuatorType)
            {
            case 5:
            case 0:
                throw new InvalidOperationException();

            case 1:
                return(new FloorSensorC01(initializer));

            case 2:
                return(new FloorSensorC02(initializer));

            case 3:
                var directionInitializer = new DirectionIntializer {
                    Direction = GetDirection(arg.Data)
                };
                await SetupFloorInitializer(directionInitializer, arg);

                return(new FloorSensorC03(directionInitializer));

            case 4:
            case 8:
                var constrainSensorInitalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(arg.Data)
                };
                await SetupFloorInitializer(constrainSensorInitalizer, arg);

                if (arg.ActuatorType == 4)
                {
                    return(new FloorSensorC04(constrainSensorInitalizer));
                }
                else
                {
                    return(new FloorSensorC08(constrainSensorInitalizer));
                }

            case 6:
                return(new FloorSensorC06(initializer));

            case 7:
                return(new FloorSensorC07(initializer));

            default:
                throw new InvalidOperationException();
            }
        }
 public FloorItemDataSensor(ItemConstrainSensorInitalizer <IActuatorX> initializer) : base(initializer)
 {
     Data = initializer.Data;
 }
Пример #4
0
 public FloorSensorC04(ItemConstrainSensorInitalizer <IActuatorX> initializer) : base(initializer)
 {
 }
Пример #5
0
 public Sensor17(ItemConstrainSensorInitalizer<IActuatorX> initializer)
     : base(initializer)
 {
 }
Пример #6
0
        protected virtual async Task <WallSensor> ParseSensor(ActuatorItemData data, List <IGrabableItem> items, Point pos)
        {
            SensorInitializer <IActuatorX> initializer = new SensorInitializer <IActuatorX>();

            switch (data.ActuatorType)
            {
            case 10:
            //TODO

            case 0:
                await SetupInitializer(initializer, data);

                initializer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor0(initializer));

            case 1:
                var wallDecoration = CreateWallDecoration(data.Decoration - 1, items);
                if (data.Action == ActionType.Hold && wallDecoration is Alcove)
                {
                    var alcInitializer = new SensorInitializer <Alcove>();
                    await SetupInitializer(alcInitializer, data);

                    alcInitializer.Graphics = (Alcove)wallDecoration;
                    return(new Sensor1HoldAlcove(alcInitializer));
                }
                else
                {
                    await SetupInitializer(initializer, data);

                    initializer.Graphics = wallDecoration;
                    return(new Sensor1(initializer));
                }

            case 2:
                var sensor2initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor2initalizer, data);

                sensor2initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor2(sensor2initalizer));

            case 3:
                var sensor3initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor3initalizer, data);

                sensor3initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor3(sensor3initalizer));

            case 4:
                var sensor4initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor4initalizer, data);

                sensor4initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor4(sensor4initalizer));

            case 11:
                var sensor11initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor11initalizer, data);

                sensor11initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor11(sensor11initalizer));

            case 12:
                var sensor12initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor12initalizer, data);

                sensor12initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor12(sensor12initalizer));

            case 13:
                var sensor13initalizer = new StorageSensorInitializer <IActuatorX> {
                    StoredItem = GetStoredObject(items, data.Data), Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor13initalizer, data);

                sensor13initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor13(sensor13initalizer));

            case 16:
                var sensor16initalizer = new StorageSensorInitializer <IActuatorX> {
                    StoredItem = GetStoredObject(items, data.Data), Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor16initalizer, data);

                sensor16initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor16(sensor16initalizer));

            case 17:
                var sensor17initalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(data.Data)
                };
                await SetupInitializer(sensor17initalizer, data);

                sensor17initalizer.Graphics = CreateWallDecoration(data.Decoration - 1, items);
                return(new Sensor17(sensor17initalizer));

            case 127:
                return(await CreateChampionActuator(data, items, pos));

            default:
                throw new InvalidOperationException();
            }
        }
Пример #7
0
 public SubXc017c011(ItemConstrainSensorInitalizer <TActuatorX> initializer) : base(initializer)
 {
 }