Refactor the plugin demos to be inside of a project for convenience

This commit is contained in:
Aaron Franke
2020-03-24 03:46:15 -04:00
parent 8464543a23
commit 51c0f3abb8
29 changed files with 158 additions and 22 deletions

View File

@@ -1,9 +1,35 @@
# Plugin demos
# Plugin Demos
To use these plugins, copy any of these folders to the `addons/` folder in a Godot project.
This contains multiple plugin demos, all placed in a project for convenience.
Please see the documentation for editor plugins:
https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html
Language: GDScript
Renderer: GLES 2
# How does it work?
This project contains 3 plugins:
* The custom node plugin shows how to create a custom node type
using `add_custom_type`. [More info](addons/custom_node).
* The material import plugin shows how to make a plugin handle importing
a custom file type (mtxt). [More info](addons/material_import_plugin).
* The material creator plugin shows how to add a custom dock with some
simple functionality. [More info](addons/material_creator).
To use these plugins in another project, copy any of these
folders to the `addons/` folder in a Godot project, and then
enable them in the project settings menu.
For example, the path would look like: `addons/custom_node`
Plugins can be distributed and installed from the UI. If you make a zip that contains the folder, Godot will recognize it as a plugin and will allow you to install it.
Plugins can be distributed and installed from the UI.
If you make a zip that contains the folder, Godot will recognize
it as a plugin and will allow you to install it.
This can be done via the terminal: `zip -r custom_node.zip custom_node/*`

12
plugins/addons/README.md Normal file
View File

@@ -0,0 +1,12 @@
# How to use
To use these plugins in another project, copy any of these
folders to the `addons/` folder in a Godot project.
For example, the path would look like: `addons/custom_node`
Plugins can be distributed and installed from the UI.
If you make a zip that contains the folder, Godot will recognize
it as a plugin and will allow you to install it.
This can be done via the terminal: `zip -r custom_node.zip custom_node/*`

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 809 B

View File

@@ -0,0 +1,20 @@
# Material Creator Plugin Demo
This plugin demo contains a custom material creator
interface using a custom dock in the editor.
Custom docks are made of Control nodes, they run in the
editor, and any behavior must be done through `tool` scripts.
For more information, see this documentation article:
https://docs.godotengine.org/en/latest/tutorials/plugins/editor/making_plugins.html#a-custom-dock
This plugin allows you to specify color, metallic, and
roughness values, and then use it as a material.
You can apply this material directly to Spatial
nodes by selecting them and then clicking "Apply".
This shows how a plugin can interact closely with the
editor, manipulating nodes the user selects.
Alternatively, you can also save the material to
a file, and then load it back into the plugin later.

View File

@@ -0,0 +1,9 @@
# Material Import Plugin Demo
This plugin demo shows how a custom import system can
be added to the editor. In this case, it imports a material.
For more information, see this documentation article:
https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html
In the editor, try opening `test.mtxt`. Godot will recognize
it and import it as a material because of this plugin.

View File

@@ -0,0 +1,15 @@
[gd_scene load_steps=3 format=2]
[ext_resource path="res://addons/custom_node/heart.gd" type="Script" id=1]
[sub_resource type="CubeMesh" id=1]
[node name="CustomNodeTest" type="Node2D"]
[node name="Heart" type="Node2D" parent="."]
script = ExtResource( 1 )
[node name="MeshInstance" type="MeshInstance" parent="."]
mesh = SubResource( 1 )
skeleton = NodePath("")
material/0 = null

7
plugins/default_env.tres Normal file
View File

@@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

BIN
plugins/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

34
plugins/icon.png.import Normal file
View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@@ -1,13 +0,0 @@
# Material Creator Plugin Demo
This plugin demo contains a custom material creator interface using a custom dock in the editor.
Custom docks are made of Control nodes, they run in the editor, and any behavior must be done through `tool` scripts.
For more information, see this documentation article: https://docs.godotengine.org/en/latest/tutorials/plugins/editor/making_plugins.html#a-custom-dock
This plugin allows you to specify color, metallic, and roughness values, and then use it as a material.
You can apply this silly material directly to Spatial nodes by selecting them and then clicking "Apply".
This shows how a plugin can interact closely with the editor, manipulating nodes the user selects.
Alternatively, you can also save the silly material to a file, and then load it back into the plugin later.

View File

@@ -1,6 +0,0 @@
# Material Import Plugin Demo
This plugin demo shows how a custom import system can be added to the editor. In this case, it imports a material.
For more information, see this documentation article: https://docs.godotengine.org/en/latest/tutorials/plugins/editor/import_plugins.html
In the editor, try opening `test.mtxt`. Godot will recognize it and import it as a material because of this plugin.

32
plugins/project.godot Normal file
View File

@@ -0,0 +1,32 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=4
_global_script_classes=[ ]
_global_script_class_icons={
}
[application]
config/name="Plugin Demos"
config/description="This contains multiple plugin demos, all placed in a project for convenience."
run/main_scene="res://custom_node_test.tscn"
config/icon="res://icon.png"
[editor_plugins]
enabled=PoolStringArray( "custom_node", "material_creator", "material_import_plugin" )
[rendering]
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"