Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 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

Repository files navigation

GmDm

A GameMaker Dependency Management system

IssuesDownloadsStargazersMIT License

Installation

To install this project as a global Python package, you need to have Python installed on your system. Then, follow these steps:

  1. Install the package using pip install gmdm

Otherwise, you can create a virtual environment By following these steps:

  1. Create a virtual environment using python -m venv venv
  2. Activate the virtual environment using source venv/bin/activate (Linux/Mac) or venv\Scripts\activate (Windows)
  3. Install the package using pip install gmdm

In the second way, you will have to activate the virtual environment every time you want to use gmdm

Usage

Now that you have installed this package, you will have to set up the projects that do the imports (current project) to work with it.

For any GameMaker project to be compatible with GmDm, you don't have to create a gmdm.yml file inside each GameMaker project's folder. This file is optional. It defines the yyp file name, optionally imports and exports, if any, of your GameMaker project(s).

It simply tells GmDm that this project imports a GameMaker "Folder" or Group of resources from other projects. These other projects should be GmDm compatible.

Projects to be imported are looked up in multiple directories:

  1. ${GMDM_IMPORT_DIRS} env variable. Which is string of paths delimited by ;
  2. Absolute path.
  3. relative to current directory.
  4. ~/Documents/GameMakerStudio2/Projects.

Basic Usage

To make your project GmDm compatible at least it should have this content at minimum:

File: C:/path/to/My Project/My Project.yyp
File: C:/path/to/My Project/gmdm.yml
name: My Project.yyp

Another example where you define a project that is to be a dependency for other projects:

name: Core.yypexports:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

Now to import the project's exports:

name: Second Project.yypimports:
- path/to/core

Basically the same as:

name: Second Project.yypimports:
- path/to/core:
- Sprites/My Group
- Objects/My Group
- Scripts/My Group

For advance usage, you can see the file gmdm.yml.EXAMPLE.

Now you can use gmdm sync, or any of these commands when inside your project directory:

gmdm sync --fake # displays operations without actually performing any. Useful for visualization of what will happen.
gmdm sync # performs reimporting (newely modified assets from the imported projects)

To show the help, you can use the following command:

gmdm --help

Advanced Usage

Consider using to in order to have the same path from multiple projects.

name: Project1.yypimports:
- path/to/project2:
- My Main Folder/My Folder:
to: Extensions/My Project 2 Folder
- ../project3:
- My Main Folder/My Different Folder:
to: Extensions/My Project 3 Folder
- !ENV'${MY_DIR}/project5'
- AWellKnownProject

Notes

Do:

  • Keep things simple.
  • Use this for your own local machine package management.
  • Know what you are importing.

Do not:

  • Do not import the same assets or folders that have the same assets from multiple projects.
  • Do not import the same folder path from multiple projects. Use to in this case.

Other:

  • Zombie files are kept.
  • GmDm is intelligent enough to handle renamed imports when syncing.
  • If a project does not have specific exports, it is thoroughly imported.
  • If a project does not have a gmdm.yml file, it will still be able to be a dependency.
  • For best usage, clone the repos of projects, that you want as dependencies, to a specific directory. Then use gmdm to import them. It is best to set up an environment variable GMDM_IMPORT_DIRS=/d/Projects/;/e/GameMaker/

Contributing

This project is open for contributions. If you want to contribute, please follow these steps:

  1. Fork this repository and create a new branch
  2. Make your changes and commit them with a descriptive message
  3. Push your branch to your forked repository
  4. Create a pull request and explain your changes

License

This project is licensed under the MIT License. See the LICENSE file for more details.

About

Dependency Project(s) Import/Export for GameMaker

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages