public ManiaPlayfield(List <StageDefinition> stageDefinitions) : base(ScrollingDirection.Up) { if (stageDefinitions == null) { throw new ArgumentNullException(nameof(stageDefinitions)); } if (stageDefinitions.Count <= 0) { throw new ArgumentException("Can't have zero or fewer stages."); } Inverted.Value = true; GridContainer playfieldGrid; InternalChild = playfieldGrid = new GridContainer { RelativeSizeAxes = Axes.Both, Content = new[] { new Drawable[stageDefinitions.Count] } }; var normalColumnAction = ManiaAction.Key1; var specialColumnAction = ManiaAction.Special1; int firstColumnIndex = 0; for (int i = 0; i < stageDefinitions.Count; i++) { var newStage = new ManiaStage(firstColumnIndex, stageDefinitions[i], ref normalColumnAction, ref specialColumnAction); newStage.VisibleTimeRange.BindTo(VisibleTimeRange); newStage.Inverted.BindTo(Inverted); playfieldGrid.Content[0][i] = newStage; stages.Add(newStage); AddNested(newStage); firstColumnIndex += newStage.Columns.Count; } }
public ManiaPlayfield(List <StageDefinition> stageDefinitions) { if (stageDefinitions == null) { throw new ArgumentNullException(nameof(stageDefinitions)); } if (stageDefinitions.Count <= 0) { throw new ArgumentException("Can't have zero or fewer stages."); } Size = new Vector2(1, 0.8f); GridContainer playfieldGrid; AddInternal(playfieldGrid = new GridContainer { RelativeSizeAxes = Axes.Both, Content = new[] { new Drawable[stageDefinitions.Count] } }); var normalColumnAction = ManiaAction.Key1; var specialColumnAction = ManiaAction.Special1; int firstColumnIndex = 0; for (int i = 0; i < stageDefinitions.Count; i++) { var newStage = new ManiaStage(firstColumnIndex, stageDefinitions[i], ref normalColumnAction, ref specialColumnAction); playfieldGrid.Content[0][i] = newStage; stages.Add(newStage); AddNested(newStage); firstColumnIndex += newStage.Columns.Count; } }