mirror of
				https://github.com/smallmain/cocos-enhance-kit.git
				synced 2025-10-31 01:45:23 +00:00 
			
		
		
		
	初版引擎插件
This commit is contained in:
		
							
								
								
									
										42
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # npm files | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| npm-debug.log | ||||
| node_modules/ | ||||
| package-lock.json | ||||
|  | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # OS generated files | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| .DS_Store | ||||
| ehthumbs.db | ||||
| Thumbs.db | ||||
|  | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # WebStorm files | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| .idea/ | ||||
|  | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # VS Code files | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| .vscode/* | ||||
| !.vscode/settings.json | ||||
| !.vscode/launch.json | ||||
| !.vscode/**/*.code-snippets | ||||
|  | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # Temp files | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| temp | ||||
|  | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
| # 使用 Creator 调试时会为每个脚本生成 .meta 文件 | ||||
| #///////////////////////////////////////////////////////////////////////////// | ||||
|  | ||||
| **/*.meta | ||||
							
								
								
									
										129
									
								
								extension/service-pack-support/inspectors/comps/label.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								extension/service-pack-support/inspectors/comps/label.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,129 @@ | ||||
| "use strict"; | ||||
| Vue.component("cc-label", { | ||||
|     dependencies: ["packages://inspector/share/blend.js"], | ||||
|     template: ` | ||||
|     <ui-prop | ||||
|       v-prop="target.string" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.horizontalAlign" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.verticalAlign" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|  | ||||
|     <ui-prop | ||||
|       v-prop="target.actualFontSize" | ||||
|       v-show="!_hiddenActualFontSize()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop type="number" | ||||
|       v-prop="target.fontSize"> | ||||
|       :multi-values="multi" | ||||
|     </ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target._bmFontOriginalSize" | ||||
|       v-show="_isBMFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|  | ||||
|     <ui-prop | ||||
|       v-prop="target.lineHeight" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.spacingX" | ||||
|       v-show="_isBMFont()"   | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.overflow" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.enableWrapText" | ||||
|       v-show="!_hiddenWrapText()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.font" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.fontFamily" | ||||
|       v-show="_isSystemFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.enableBold" | ||||
|       v-show="!_isBMFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.enableItalic" | ||||
|       v-show="!_isBMFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.enableUnderline" | ||||
|       v-show="!_isBMFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.underlineHeight" | ||||
|       v-show="!_isBMFont() && target.enableUnderline.value === true" | ||||
|       :indent="1" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.cacheMode" | ||||
|       v-show="!_isBMFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.useSystemFont" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|      | ||||
|     <cc-blend-section :target.sync="target"></cc-blend-section> | ||||
|     <cc-array-prop | ||||
|      v-show="!_isCharCacheMode()" | ||||
|      :target.sync="target.materials" | ||||
|     ></cc-array-prop> | ||||
|  | ||||
|     <ui-prop v-prop="target.autoSwitchMaterial"></ui-prop> | ||||
|     <ui-prop v-prop="target.allowDynamicAtlas"></ui-prop> | ||||
|     <ui-prop v-prop="target.enableRetina"></ui-prop> | ||||
|     `, | ||||
|     props: { | ||||
|         target: { | ||||
|             twoWay: !0, | ||||
|             type: Object | ||||
|         }, | ||||
|         multi: { | ||||
|             type: Boolean | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         T: Editor.T, | ||||
|         _isBMFont() { | ||||
|             return this.target._bmFontOriginalSize.value > 0 | ||||
|         }, | ||||
|         _isSystemFont() { | ||||
|             return this.target.useSystemFont.value | ||||
|         }, | ||||
|         _hiddenWrapText() { | ||||
|             let t = this.target.overflow.value; | ||||
|             return 0 === t || 3 === t | ||||
|         }, | ||||
|         _hiddenActualFontSize() { | ||||
|             return 2 !== this.target.overflow.value | ||||
|         }, | ||||
|         _isCharCacheMode() { | ||||
|             return 2 === this.target.cacheMode.value | ||||
|         }, | ||||
|     } | ||||
| }); | ||||
							
								
								
									
										70
									
								
								extension/service-pack-support/inspectors/comps/richtext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								extension/service-pack-support/inspectors/comps/richtext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| "use strict"; | ||||
| Vue.component("cc-richtext", { | ||||
|     template: ` | ||||
|     <ui-prop | ||||
|       v-prop="target.string" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.horizontalAlign" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.fontSize"> | ||||
|       :multi-values="multi" | ||||
|     </ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.font" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.fontFamily" | ||||
|       v-show="_isSystemFont()" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.useSystemFont" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.cacheMode" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.maxWidth" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.lineHeight" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.imageAtlas" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop | ||||
|       v-prop="target.handleTouchEvent" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|  | ||||
|     <ui-prop v-prop="target.customMaterial"></ui-prop> | ||||
|     <ui-prop v-prop="target.autoSwitchMaterial"></ui-prop> | ||||
|     <ui-prop v-prop="target.allowDynamicAtlas"></ui-prop> | ||||
|     <ui-prop v-prop="target.enableRetina"></ui-prop> | ||||
|     `, | ||||
|     props: { | ||||
|         target: { | ||||
|             twoWay: !0, | ||||
|             type: Object | ||||
|         }, | ||||
|         multi: { | ||||
|             type: Boolean | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         T: Editor.T, | ||||
|         _isSystemFont() { | ||||
|             return this.target.useSystemFont.value | ||||
|         } | ||||
|     } | ||||
| }); | ||||
							
								
								
									
										155
									
								
								extension/service-pack-support/inspectors/comps/sprite.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								extension/service-pack-support/inspectors/comps/sprite.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | ||||
| "use strict"; | ||||
| Vue.component("cc-sprite", { | ||||
|     dependencies: ["packages://inspector/share/blend.js"], | ||||
|     template: ` | ||||
|     <ui-prop | ||||
|       style="padding-top: 8px" | ||||
|       name="Atlas" | ||||
|       tooltip="{{T('COMPONENT.sprite.atlas')}}" | ||||
|     > | ||||
|       <ui-asset class="flex-1" | ||||
|         type="sprite-atlas" | ||||
|         v-value="target._atlas.value.uuid" | ||||
|         v-values="atlasUuids" | ||||
|         :multi-values="atlasMulti" | ||||
|       ></ui-asset> | ||||
|       <ui-button | ||||
|         class="blue tiny" | ||||
|         tooltip="{{T('COMPONENT.sprite.select_tooltip')}}" | ||||
|         @confirm="selectAtlas" | ||||
|       > | ||||
|         {{T('COMPONENT.sprite.select_button')}} | ||||
|       </ui-button> | ||||
|     </ui-prop> | ||||
|  | ||||
|     <ui-prop | ||||
|       style="padding-top: 8px" | ||||
|       name="Sprite Frame" | ||||
|       tooltip="{{T('COMPONENT.sprite.sprite_frame')}}" | ||||
|     > | ||||
|       <ui-asset class="flex-1" | ||||
|         type="sprite-frame" | ||||
|         v-value="target.spriteFrame.value.uuid" | ||||
|         v-values="spriteUuids" | ||||
|         :multi-values="spriteMulti" | ||||
|       ></ui-asset> | ||||
|       <ui-button | ||||
|         class="blue tiny" | ||||
|         tooltip="{{T('COMPONENT.sprite.edit_tooltip')}}" | ||||
|         @confirm="editSprite" | ||||
|       > | ||||
|         {{T('COMPONENT.sprite.edit_button')}} | ||||
|       </ui-button> | ||||
|     </ui-prop> | ||||
|  | ||||
|     <ui-prop  | ||||
|       v-prop="target.type" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|  | ||||
|     <div v-if="isFilledType()"> | ||||
|       <ui-prop indent=1  | ||||
|         v-prop="target.fillType" | ||||
|         :multi-values="multi" | ||||
|       ></ui-prop> | ||||
|       <ui-prop indent=1  | ||||
|         v-prop="target.fillCenter" | ||||
|         v-disabled="!isRadialFilled()" | ||||
|         :multi-values="multi" | ||||
|       ></ui-prop> | ||||
|       <ui-prop indent=1  | ||||
|         v-prop="target.fillStart"   | ||||
|         :multi-values="multi" | ||||
|       ></ui-prop> | ||||
|       <ui-prop indent=1 | ||||
|         v-prop="target.fillRange" | ||||
|         :multi-values="multi" | ||||
|       ></ui-prop> | ||||
|     </div> | ||||
|  | ||||
|     <ui-prop | ||||
|       v-prop="target.sizeMode" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|     <ui-prop v-if="allowTrim()" | ||||
|       v-prop="target.trim" | ||||
|       :multi-values="multi" | ||||
|     ></ui-prop> | ||||
|  | ||||
|     <cc-blend-section :target.sync="target"></cc-blend-section> | ||||
|     <cc-array-prop :target.sync="target.materials"></cc-array-prop> | ||||
|  | ||||
|     <ui-prop v-prop="target.autoSwitchMaterial"></ui-prop> | ||||
|     <ui-prop v-prop="target.allowDynamicAtlas"></ui-prop> | ||||
|     `, | ||||
|     props: { | ||||
|         target: { | ||||
|             twoWay: !0, | ||||
|             type: Object | ||||
|         }, | ||||
|         multi: { | ||||
|             twoWay: !0, | ||||
|             type: Boolean | ||||
|         } | ||||
|     }, | ||||
|     data: ()=>({ | ||||
|         atlasUuid: "", | ||||
|         atlasUuids: "", | ||||
|         atlasMulti: !1, | ||||
|         spriteUuid: "", | ||||
|         spriteUuids: "", | ||||
|         spriteMulti: !1 | ||||
|     }), | ||||
|     created() { | ||||
|         this.target && (this._updateAtlas(), | ||||
|         this._updateSprite()) | ||||
|     }, | ||||
|     watch: { | ||||
|         target() { | ||||
|             this._updateAtlas(), | ||||
|             this._updateSprite() | ||||
|         } | ||||
|     }, | ||||
|     methods: { | ||||
|         T: Editor.T, | ||||
|         selectAtlas() { | ||||
|             Editor.Ipc.sendToPanel("assets", "change-filter", "t:sprite-atlas") | ||||
|         }, | ||||
|         editSprite() { | ||||
|             Editor.Panel.open("sprite-editor", { | ||||
|                 uuid: this.target.spriteFrame.value.uuid | ||||
|             }) | ||||
|         }, | ||||
|         allowTrim() { | ||||
|             return this.target.type.value === cc.Sprite.Type.SIMPLE | ||||
|         }, | ||||
|         isFilledType() { | ||||
|             return this.target.type.value === cc.Sprite.Type.FILLED | ||||
|         }, | ||||
|         isRadialFilled() { | ||||
|             return this.target.fillType.value === cc.Sprite.FillType.RADIAL | ||||
|         }, | ||||
|         _updateAtlas() { | ||||
|             if (!this.target) | ||||
|                 return this.atlasUuid = "", | ||||
|                 this.atlasUuids = "", | ||||
|                 this.atlasMulti = !1, | ||||
|                 void 0; | ||||
|             this.atlasUuid = this.target._atlas.value.uuid, | ||||
|             this.atlasUuids = this.target._atlas.values.map(t=>t.uuid); | ||||
|             var t = this.atlasUuids[0]; | ||||
|             this.atlasMulti = !this.atlasUuids.every((i,e)=>0 === e || i === t) | ||||
|         }, | ||||
|         _updateSprite() { | ||||
|             if (!this.target) | ||||
|                 return this.spriteUuid = "", | ||||
|                 this.spriteUuids = "", | ||||
|                 this.spriteMulti = !1, | ||||
|                 void 0; | ||||
|             this.spriteUuid = this.target.spriteFrame.value.uuid, | ||||
|             this.spriteUuids = this.target.spriteFrame.values.map(t=>t.uuid); | ||||
|             var t = this.spriteUuids[0]; | ||||
|             this.spriteMulti = !this.spriteUuids.every((i,e)=>0 === e || i === t) | ||||
|         } | ||||
|     } | ||||
| }); | ||||
							
								
								
									
										3
									
								
								extension/service-pack-support/main.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								extension/service-pack-support/main.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| 'use strict'; | ||||
|  | ||||
| module.exports = {}; | ||||
							
								
								
									
										16
									
								
								extension/service-pack-support/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								extension/service-pack-support/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| { | ||||
|   "name": "service-pack", | ||||
|   "version": "1.0.0", | ||||
|   "description": "This extension provides support for cocos service pack.", | ||||
|   "author": "SmallMain", | ||||
|   "main": "main.js", | ||||
|   "runtime-resource": { | ||||
|     "path": "resources", | ||||
|     "name": "resources" | ||||
|   }, | ||||
|   "reload": { | ||||
|     "ignore": [ | ||||
|       "resources/**/*" | ||||
|     ] | ||||
|   } | ||||
| } | ||||
| @@ -0,0 +1,114 @@ | ||||
| // Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.   | ||||
|  | ||||
| CCEffect %{ | ||||
|   techniques: | ||||
|   - passes: | ||||
|     - vert: vs | ||||
|       frag: fs | ||||
|       blendState: | ||||
|         targets: | ||||
|         - blend: true | ||||
|       rasterizerState: | ||||
|         cullMode: none | ||||
|       properties: | ||||
|         texture: { value: white } | ||||
|         texture2: { value: white } | ||||
|         texture3: { value: white } | ||||
|         texture4: { value: white } | ||||
|         texture5: { value: white } | ||||
|         texture6: { value: white } | ||||
|         texture7: { value: white } | ||||
|         texture8: { value: white } | ||||
|         alphaThreshold: { value: 0.5 } | ||||
| }% | ||||
|  | ||||
|  | ||||
| CCProgram vs %{ | ||||
|   precision highp float; | ||||
|  | ||||
|   #include <cc-global> | ||||
|   #include <cc-local> | ||||
|    | ||||
|   in vec3 a_position; | ||||
|   in vec4 a_color; | ||||
|   out vec4 v_color; | ||||
|  | ||||
|   #if USE_TEXTURE | ||||
|   in vec2 a_uv0; | ||||
|   out vec2 v_uv0; | ||||
|   in float a_texId; | ||||
|   out float v_texId; | ||||
|   #endif | ||||
|  | ||||
|   void main () { | ||||
|     vec4 pos = vec4(a_position, 1); | ||||
|  | ||||
|     #if CC_USE_MODEL | ||||
|     pos = cc_matViewProj * cc_matWorld * pos; | ||||
|     #else | ||||
|     pos = cc_matViewProj * pos; | ||||
|     #endif | ||||
|  | ||||
|     #if USE_TEXTURE | ||||
|     v_uv0 = a_uv0; | ||||
|     v_texId = a_texId; | ||||
|     #endif | ||||
|  | ||||
|     v_color = a_color; | ||||
|  | ||||
|     gl_Position = pos; | ||||
|   } | ||||
| }% | ||||
|  | ||||
|  | ||||
| CCProgram fs %{ | ||||
|   precision highp float; | ||||
|    | ||||
|   #include <alpha-test> | ||||
|   #include <texture> | ||||
|  | ||||
|   in vec4 v_color; | ||||
|  | ||||
|   #if USE_TEXTURE | ||||
|   in vec2 v_uv0; | ||||
|   in float v_texId; | ||||
|   uniform sampler2D texture; | ||||
|   uniform sampler2D texture2; | ||||
|   uniform sampler2D texture3; | ||||
|   uniform sampler2D texture4; | ||||
|   uniform sampler2D texture5; | ||||
|   uniform sampler2D texture6; | ||||
|   uniform sampler2D texture7; | ||||
|   uniform sampler2D texture8; | ||||
|   #endif | ||||
|  | ||||
|   void main () { | ||||
|     vec4 o = vec4(1, 1, 1, 1); | ||||
|  | ||||
|     #if USE_TEXTURE | ||||
|       if(v_texId < 1.0){ | ||||
|         CCTexture(texture, v_uv0, o); | ||||
|       } else if(v_texId < 2.0){ | ||||
|         CCTexture(texture2, v_uv0, o); | ||||
|       } else if(v_texId < 3.0){ | ||||
|         CCTexture(texture3, v_uv0, o); | ||||
|       } else if(v_texId < 4.0){ | ||||
|         CCTexture(texture4, v_uv0, o); | ||||
|       } else if(v_texId < 5.0){ | ||||
|         CCTexture(texture5, v_uv0, o); | ||||
|       } else if(v_texId < 6.0){ | ||||
|         CCTexture(texture6, v_uv0, o); | ||||
|       } else if(v_texId < 7.0){ | ||||
|         CCTexture(texture7, v_uv0, o); | ||||
|       } else { | ||||
|         CCTexture(texture8, v_uv0, o); | ||||
|       } | ||||
|     #endif | ||||
|  | ||||
|     o *= v_color; | ||||
|  | ||||
|     ALPHA_TEST(o); | ||||
|  | ||||
|     gl_FragColor = o; | ||||
|   } | ||||
| }% | ||||
		Reference in New Issue
	
	Block a user