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], }); }
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); }