Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
UniformSpacingPanelWidget.cs
浏览该文件的文档.
1using Engine;
2
3namespace Game {
6
7 public int m_count;
8
10 get => m_direction;
11 set => m_direction = value;
12 }
13
14 public override void ArrangeOverride() {
15 Vector2 zero = Vector2.Zero;
16 foreach (Widget child in Children) {
17 if (child.IsVisible) {
18 if (m_direction == LayoutDirection.Horizontal) {
19 float num = m_count > 0 ? ActualSize.X / m_count : 0f;
20 ArrangeChildWidgetInCell(zero, new Vector2(zero.X + num, zero.Y + ActualSize.Y), child);
21 zero.X += num;
22 }
23 else {
24 float num2 = m_count > 0 ? ActualSize.Y / m_count : 0f;
25 ArrangeChildWidgetInCell(zero, new Vector2(zero.X + ActualSize.X, zero.Y + num2), child);
26 zero.Y += num2;
27 }
28 }
29 }
30 }
31
32 public override void MeasureOverride(Vector2 parentAvailableSize) {
33 m_count = 0;
34 foreach (Widget child in Children) {
35 if (child.IsVisible) {
36 m_count++;
37 }
38 }
39 parentAvailableSize = m_direction != 0
40 ? Vector2.Min(parentAvailableSize, new Vector2(parentAvailableSize.X, parentAvailableSize.Y / m_count))
41 : Vector2.Min(parentAvailableSize, new Vector2(parentAvailableSize.X / m_count, parentAvailableSize.Y));
42 float num = 0f;
43 foreach (Widget child2 in Children) {
44 if (child2.IsVisible) {
45 child2.Measure(Vector2.Max(parentAvailableSize - child2.MarginHorizontalSumAndVerticalSum, Vector2.Zero));
46 num = m_direction != 0
48 : MathUtils.Max(num, child2.ParentDesiredSize.Y + child2.MarginVerticalSum);
49 }
50 }
52 ? new Vector2(float.PositiveInfinity, num)
53 : new Vector2(num, float.PositiveInfinity);
54 }
55 }
56}
static int Max(int x1, int x2)
readonly WidgetsList Children
static void ArrangeChildWidgetInCell(Vector2 c1, Vector2 c2, Widget widget)
override void MeasureOverride(Vector2 parentAvailableSize)
virtual float MarginVerticalSum
Vector2 ParentDesiredSize
virtual bool IsVisible
virtual float MarginHorizontalSum
Vector2 DesiredSize
virtual Vector2 MarginHorizontalSumAndVerticalSum
Vector2 ActualSize
virtual void Measure(Vector2 parentAvailableSize)
static readonly Vector2 Zero
static Vector2 Max(Vector2 v, float f)
static Vector2 Min(Vector2 v, float f)