public BasicNode(BasicNodeStructure structure, RectangleRenderElementStyle border_style) { Structure = structure; BorderStyle = border_style; BorderElement = new RectangleRenderElement(Position, Width, Height, border_style.FillColor, border_style.BorderColor, border_style.BorderWidth); TriggerAreas.Add(new RectangleHitbox(Position, Width, Height)); }
public TextBoxNode(BasicTextNodeStructure structure, TextRenderElementStyle text_style, RectangleRenderElementStyle border_style) : base(structure, text_style, border_style) { TriggerAreas.Add(new RectangleHitbox(Position, Width, Height)); OnKeyPress += HandleKey; OnFocused += (sender, args) => FillColor = Color.CadetBlue; OnUnfocused += (sender, args) => FillColor = Color.White; }
public ButtonNode(ButtonStructure structure, RectangleRenderElementStyle style, TextRenderElementStyle text_style) { Structure = structure; BorderStyle = style; TextStyle = text_style; BorderElement = new RectangleRenderElement(Position, Width, Height, style.FillColor, style.BorderColor, style.BorderWidth); TextElement = new TextRenderElement(Position, Text, TextColor, TextStyle.FontSize, TextStyle.FontStyle); TriggerAreas.Add(new RectangleHitbox(Position, Width, Height)); ButtonAction = Structure.ButtonAction; OnMouseClick += (object sender, EventArgs e) => { ButtonAction.Invoke(); OnUnfocused?.Invoke(this, new NodeEventArgs(this)); }; }
public void ShowOptions(object sender, EventArgs e) { if (OptionsMenu == null) { OptionsMenu = OptionsPrefab; TriggerAreas.Add(OptionsMenu.TriggerAreas[0]); OnFocused?.Invoke(this, new NodeEventArgs(OptionsMenu)); FocusedNode?.OnUnfocused?.Invoke(this, new NodeEventArgs(FocusedNode)); TriggerAreas.Add(OptionsMenu.TriggerAreas[0]); } else { OnOptionsHide?.Invoke(this, e); } }
private void WriteMapDataTo(BinaryWriter writer, AssetNameCollection assetNames) { if (ScriptImportSize != null) { writer.Write(assetNames.GetOrCreateAssetIndex(ScriptImportSize.AssetName)); ScriptImportSize.WriteTo(writer, assetNames); } writer.Write(assetNames.GetOrCreateAssetIndex(PlayerScriptsList.AssetName)); PlayerScripts.WriteTo(writer, assetNames); if (NamedCameras != null) { writer.Write(assetNames.GetOrCreateAssetIndex(NamedCameras.AssetName)); NamedCameras.WriteTo(writer); } if (CameraAnimationList != null) { writer.Write(assetNames.GetOrCreateAssetIndex(CameraAnimationList.AssetName)); CameraAnimationList.WriteTo(writer); } writer.Write(assetNames.GetOrCreateAssetIndex(ScriptsPlayers.AssetName)); ScriptsPlayers.WriteTo(writer, assetNames); writer.Write(assetNames.GetOrCreateAssetIndex(ObjectsList.AssetName)); ObjectsList.WriteTo(writer, assetNames); if (PolygonTriggers != null) { writer.Write(assetNames.GetOrCreateAssetIndex(PolygonTriggers.AssetName)); PolygonTriggers.WriteTo(writer); } if (TriggerAreas != null) { writer.Write(assetNames.GetOrCreateAssetIndex(TriggerAreas.AssetName)); TriggerAreas.WriteTo(writer); } writer.Write(assetNames.GetOrCreateAssetIndex(ScriptTeams.AssetName)); Teams.WriteTo(writer, assetNames); writer.Write(assetNames.GetOrCreateAssetIndex(WaypointsList.AssetName)); WaypointsList.WriteTo(writer); }
public void HideOptions(object sender, EventArgs e) { TriggerAreas.Remove(OptionsMenu.TriggerAreas[0]); OptionsMenu = null; }
private static ScbFile ParseScbData(BinaryReader reader) { var assetNames = AssetNameCollection.Parse(reader); var result = new ScbFile(); var context = new MapParseContext(assetNames); context.PushAsset(nameof(ScbFile), reader.BaseStream.Length); Asset.ParseAssets(reader, context, assetName => { switch (assetName) { case ScriptImportSize.AssetName: result.ScriptImportSize = ScriptImportSize.Parse(reader, context); break; case PlayerScriptsList.AssetName: result.PlayerScripts = PlayerScriptsList.Parse(reader, context); break; case NamedCameras.AssetName: result.NamedCameras = NamedCameras.Parse(reader, context); break; case CameraAnimationList.AssetName: result.CameraAnimationList = CameraAnimationList.Parse(reader, context); break; case ScriptsPlayers.AssetName: result.ScriptsPlayers = ScriptsPlayers.Parse(reader, context); break; case ObjectsList.AssetName: result.ObjectsList = ObjectsList.Parse(reader, context); break; case PolygonTriggers.AssetName: result.PolygonTriggers = PolygonTriggers.Parse(reader, context); break; case TriggerAreas.AssetName: result.TriggerAreas = TriggerAreas.Parse(reader, context); break; case ScriptTeams.AssetName: result.Teams = ScriptTeams.Parse(reader, context); break; case WaypointsList.AssetName: result.WaypointsList = WaypointsList.Parse(reader, context); break; default: throw new InvalidDataException($"Unknown asset name: {assetName}"); } }); context.PopAsset(); return(result); }