Пример #1
0
 public override Actuator CreateItem(LegacyMapBuilder context, Tile currentTile, IReadOnlyList<ActuatorItemData> matchedSequence)
 {
     var data = matchedSequence[0];
     var constrain = new GrabableItemConstrain(context.GetItemFactory(data.Data), invertConstraion: false);
     var item = context.WallActuatorCreator.CurrentGrabableItems.Select(k => new LegacyItemCreator(context).CreateItem(k, currentTile)).SingleOrDefault();
     return new ExchangerActuator(context.GetWallPosition(data.TilePosition, context.WallActuatorCreator.CurrentTile), item, constrain, data.IsOnceOnly)
     {
         DecorationActivated = context.WallTextures[data.Decoration - 1],
         DecorationDeactived = context.WallTextures[matchedSequence[1].Decoration - 1]
     };
 }
Пример #2
0
        public bool PrepareActuatorData(ActuatorItemData i, out Tile targetTile, out IConstrain constrain, out Texture2D decoration, bool putOnWall)
        {
            targetTile = GetTargetTile(i);
            constrain = null;
            decoration = null;


            if (i.Data > 0)
                constrain = new GrabableItemConstrain(GetItemFactory(i.Data), i.IsRevertable);
            else
                constrain = new NoConstrain();

            if (i.IsLocal)
                throw new NotSupportedException("yet");
            decoration = GetTexture(i, putOnWall);

            return true;
        }