Пример #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, onceOnly: true)
            {
                DecorationActivated = context.WallTextures[data.Decoration - 1],
                DecorationDeactived = context.WallTextures[data.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);
        }