Ver Fonte

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

Aaron Franke há 5 anos atrás
pai
commit
51c0f3abb8

+ 29 - 3
plugins/README.md

@@ -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 - 0
plugins/addons/README.md

@@ -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/*`

+ 0 - 0
plugins/custom_node/README.md → plugins/addons/custom_node/README.md


+ 0 - 0
plugins/custom_node/heart.gd → plugins/addons/custom_node/heart.gd


+ 0 - 0
plugins/custom_node/heart.png → plugins/addons/custom_node/heart.png


+ 0 - 0
plugins/custom_node/heart.png.import → plugins/addons/custom_node/heart.png.import


+ 0 - 0
plugins/custom_node/heart_icon.png → plugins/addons/custom_node/heart_icon.png


+ 0 - 0
plugins/custom_node/heart_icon.png.import → plugins/addons/custom_node/heart_icon.png.import


+ 0 - 0
plugins/custom_node/heart_plugin.gd → plugins/addons/custom_node/heart_plugin.gd


+ 0 - 0
plugins/custom_node/plugin.cfg → plugins/addons/custom_node/plugin.cfg


+ 20 - 0
plugins/addons/material_creator/README.md

@@ -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.

+ 0 - 0
plugins/material_creator/material_creator.gd → plugins/addons/material_creator/material_creator.gd


+ 0 - 0
plugins/material_creator/material_dock.tscn → plugins/addons/material_creator/material_dock.tscn


+ 0 - 0
plugins/material_creator/material_plugin.gd → plugins/addons/material_creator/material_plugin.gd


+ 0 - 0
plugins/material_creator/material_resource.gd → plugins/addons/material_creator/material_resource.gd


+ 0 - 0
plugins/material_creator/plugin.cfg → plugins/addons/material_creator/plugin.cfg


+ 9 - 0
plugins/addons/material_import_plugin/README.md

@@ -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.

+ 0 - 0
plugins/material_import_plugin/import.gd → plugins/addons/material_import_plugin/import.gd


+ 0 - 0
plugins/material_import_plugin/plugin.cfg → plugins/addons/material_import_plugin/plugin.cfg


+ 0 - 0
plugins/material_import_plugin/plugin.gd → plugins/addons/material_import_plugin/plugin.gd


+ 0 - 0
plugins/material_import_plugin/test.mtxt → plugins/addons/material_import_plugin/test.mtxt


+ 0 - 0
plugins/material_import_plugin/test.mtxt.import → plugins/addons/material_import_plugin/test.mtxt.import


+ 15 - 0
plugins/custom_node_test.tscn

@@ -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 - 0
plugins/default_env.tres

@@ -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


+ 34 - 0
plugins/icon.png.import

@@ -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

+ 0 - 13
plugins/material_creator/README.md

@@ -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.

+ 0 - 6
plugins/material_import_plugin/README.md

@@ -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 - 0
plugins/project.godot

@@ -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"