Giter VIP home page Giter VIP logo

godot-plugin-refresher's Introduction

godot-plugin-refresher

This plugin simplifies plugin development for those wanting to make tools for the Godot Editor.

It adds a dropdown and refresh button to the main toolbar in the top-right corner of the Godot Editor. Other plugins' directory names will show up in the dropdown, and clicking the refresh button will simply toggle the plugin off and then back on.

This makes it much easier to iterate on a single plugin since rather than having to...

  1. Click Project Settings.
  2. Go to Plugins tab (first time).
  3. Find the desired plugin.
  4. Click the dropdown.
  5. Select the opposite option.
  6. Click the dropdown again.
  7. Click the original option.
  8. Close the Project Settings.

You instead just...

  1. Click the dropdown (first time).
  2. Select your WIP plugin (first time).
  3. Click the refresh button.

Please consider starring the repo if you like the project and let me know if you have any feedback for bugs / feature improvements in the Issues. If you'd like to support my work, please send tips to my Kofi. Cheers!

godot-plugin-refresher's People

Contributors

aaronfranke avatar demindiro avatar willnationsdev avatar xrayez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

godot-plugin-refresher's Issues

Possible break on Godot 3.2.4.rc3?

First of all, thanks for the plugin. A life saver!

Since the latest Godot build 3.2.4.rc3 the plugin-refresher can't find any my plugins.
image

I tried to fix the plugin-refresher myself but I can't really find where it is going wrong.

I'm completely lost so I'm creating this issue just in case you know what might have changed :(

Instructions are unclear about refresh button

There are no mentions of the location where is the refresh button. It was mentioned "in toolbar" which begs the question of what is the "toolbar". I thought it was above viewport where usually plugin buttons are located. After 10 minutes of searching for information, I accidentally looked in the corner, next to GLES2/ GLES3 menu, and found it there.

Interaction Improvement

This is a very useful plugin. However, as I am developing my own plugin I am finding it necessary to have to reload my plugin frequently. It would be nice if the plugin refresher would continue to stay on last plugin selected. Not too painful, but it would be useful I think especially in the case I described.

can't activate this plugin in Godot 4

Hey, this might be a known issue, but I was trying to get this plugin to work in Godot 4, and it would spit out an error whenever I tried to activate the plugin in my project settings.

I saw someone made a PR for this, and this fix seemed to get me going - maybe it should be merged?
#28

the addon should update only when changes happens in the addons folder

We are listing the addons directory and running a while loop to get each folder and we check if it has a plugin.cfg file and we update the options button and we save cfg file

the problem is, FileSystem emits filesystem_changed whenever any file changes like when you save your project or importing assets .. etc, we need to make it only check if the changes happens inside the addons folder.

i was thinking about many ways , to check if files size changed ? last modified date ?

then how ?

the only way i can find since directories don't have last modified date is that we list the addons directory and we check the names of the folders if it doesn't exist in our plugins dictionary then we refresh, if the folders are the same, then we return.

this will produce only one issue, if someone removed an addon folder from the OS filesystem and added another folder with the same name but different contents and returned back to godot. because godot will not emit the signal until the user focus the godot window. and the while loop will not recognize any changes so it will keep the old addon information.

if we made this enhancement then we should add this as a warning in the README file.

Must be installed as godot-plugin-refresher

I installed to res://addons/plugin-refresher and the dropdown was empty. I noticed these errors in Output:

 res://addons/plugin-refresher/plugin_refresher_plugin.gd:69 - Invalid call. Nonexistent function 'update_items' in base 'HBoxContainer'.
 res://addons/plugin-refresher/plugin_refresher_plugin.gd:100 - Invalid call. Nonexistent function 'select_plugin' in base 'HBoxContainer'.

After debugging for a bit, I saw this warning:

 scene/resources/resource_format_text.cpp:157 - Couldn't load external resource: res://addons/godot-plugin-refresher/plugin_refresher.gd

I realized that the plugin required installing as "godot-plugin-refresher". Maybe this isn't unique to this plugin? (I'm new to godot.) Maybe would be nice to have install instructions?

Improving the visual appeal and readablility of the plugin list

Currently, the list of displayed plugins is what it actually represents: the directory names. The problem is that the names might be in lowercase, UPPERCASE, snake_case, kebab-case etc.

Do you think it would be better to retrieve the actual plugin name from plugin.cfg? I know that the underlying system relies on plugin names as determined by directory names, but for visual stuff this should be fine.

Somewhat related to #8.

Preventing disabled plugins from being refreshed

I've accidentally reloaded a plugin which was supposed to be disabled because it's not functioning (aka WIP). I wonder whether it might be worth to:

  • hide initially disabled plugins from the popup;
  • disallow to reload disabled plugins, emitting a warning.

So the idea is to only to reload plugins which are actually enabled.

This could be made optional via plugin settings support which was added in #3.

Not that it's critical though because the reloaded plugin stays on now, making it less likely to reload a WIP plugin.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.