public static Node ToNode(this NodeType type) { Node toReturn = null; switch (type) { case NodeType.End: toReturn = new Node(); break; case NodeType.OneOptionMessage: toReturn = new OneOptionMessageNode(); break; case NodeType.TwoOptionMessage: toReturn = new TwoOptionMessageNode(); break; case NodeType.FourOptionMessage: toReturn = new FourOptionMessageNode(); break; case NodeType.TextboxMessage: toReturn = new Node(); break; case NodeType.Action: toReturn = new ActionNode(); break; case NodeType.StartSequence: toReturn = new StartSequenceNode(); break; case NodeType.TimeLeap: toReturn = new TimeLeapNode(); break; case NodeType.IngameDelay: toReturn = new IngameDelayNode(); break; } return toReturn; }
private float DrawTimeLeapNode(TimeLeapNode node, float x, float y) { float fieldwidth = NODEWIDTH - PADDING * 2; TimeStamp t = node.TimeConsumed; EditorGUI.LabelField(new Rect(x + PADDING, y, fieldwidth * LABELWIDTH, FIELDHEIGHT), "Duration"); t.MinutesInThisHour = EditorGUI.IntField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (0 + 2 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 5, FIELDHEIGHT), t.MinutesInThisHour); EditorGUI.LabelField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (0 + 0 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 7.5f, FIELDHEIGHT), "M"); t.HoursInThisDay = EditorGUI.IntField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (1 + 4 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 5, FIELDHEIGHT), t.HoursInThisDay); EditorGUI.LabelField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (1 + 2 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 7.5f, FIELDHEIGHT), "H"); t.Days = EditorGUI.IntField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (2 + 6 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 5, FIELDHEIGHT), t.Days); EditorGUI.LabelField(new Rect(x + PADDING + fieldwidth * LABELWIDTH + (fieldwidth - fieldwidth * LABELWIDTH) / 5 * (2 + 4 / 3f), y, (fieldwidth - fieldwidth * LABELWIDTH) / 7.5f, FIELDHEIGHT), "D"); node.TimeConsumed = t; y += FIELDHEIGHT + PADDING; return y; }