コード例 #1
0
ファイル: BasicNode.cs プロジェクト: Ardasteus/UML-Editor
 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));
 }
コード例 #2
0
ファイル: TextBoxNode.cs プロジェクト: Ardasteus/UML-Editor
 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;
 }
コード例 #3
0
ファイル: ButtonNode.cs プロジェクト: Ardasteus/UML-Editor
 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));
     };
 }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
ファイル: ScbFile.cs プロジェクト: OpenSAGE/OpenSAGE
        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);
        }
コード例 #6
0
 public void HideOptions(object sender, EventArgs e)
 {
     TriggerAreas.Remove(OptionsMenu.TriggerAreas[0]);
     OptionsMenu = null;
 }
コード例 #7
0
ファイル: ScbFile.cs プロジェクト: OpenSAGE/OpenSAGE
        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);
        }