Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

293 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Negum.Core

1. General Overview

Negum.Core is a library which provides key classes and interfaces for a 2D fighting game engine.
It allows you to read and parse characters, stages, fonts, etc.

1.1. Library structure

Negum.Core was build out of layers which communicate with each other.

LayerNameDescriptionFile
XContainerUsed to create objects and store them in shared space. Can be customized to use 3rd party container.NegumContainer
1ConfigurationsContains various configuration definitions describing files in directories by their types (AIR, SFF, DEF, ANIM, etc.).IConfiguration
1ReadersReaders are generally used to read File or Stream into appropriate output configuration or other type.IReader
2ManagersManagers are used to represent various file types and search through them to find values.IManager
3LoadersLoaders are used to load all entities (characters, stages, fonts, etc.) from specified directory or for specified Engine.ILoader
3/4EnginesEngine represent everything what was read from specified root directory using IEngineProviderIEngineProvider

1.2. Features

  • Read files with extensions: cfg, def, sff (v1, v2, v2.1), air, cns, cmd, snd, act, fnt (v0, v2)
  • Read fields from files
  • Load all characters, stages, fonts, etc.
  • Load characters and stages only from configuration files
  • Load data from config directory
  • Generate single object with all data from directory - IEngine

2. How To Use

2.1. Installation (NuGet)

Easiest way to install Negum.Core library is via NuGet like so:

dotnet add package Negum.Core

Or check it directly Here

2.2. Code / Sample Usage

usingNegum.Core.Containers;// We want to initialize and use NegumContainer classusingNegum.Core.Engines;// Contains main IEngine and IEngineProvider interfaces// ...// This step is optional !!!// You can override default binding for NegumContainer and assign it to 3rd party ContainerNegumContainer.Registerer=(lifetime,interfaceType,implementationType)=>{};// Used for registering new typeNegumContainer.Resolver=(typeToResolve)=>null;// Used for resolving type// ...// Take main provider which is used to build IEngine objectIEngineProviderengineProvider=NegumContainer.Resolve<IEngineProvider>();// Read data from root directory// Root directory is a directory which contains: chars, data, font, stages, sound, etc.// This initialization may be used multiple times for various directories// Every time this method is used, new IEngine object will be returnedIEngineengine=awaitengineProvider.InitializeAsync("path_to_root_directory");// ...// As an example we can take a display name of the first character read from chars directorystringcharacterName=engine.Characters.FirstOrDefault().CharacterManager.Info.DisplayName;// ...

3. Default Usage

Default usage of Negum.Core can be found in Negum.Game
It should not have any external dependencies except .NET libraries.


4. License

Click Me

About

Contains core models and functionality for reading files and parsing them

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages