diff --git a/Plugins/Editor/Resources/GUI/CSG_Icon.png b/Plugins/Editor/Resources/GUI/CSG_Icon.png new file mode 100644 index 0000000..bd4c44a Binary files /dev/null and b/Plugins/Editor/Resources/GUI/CSG_Icon.png differ diff --git a/Plugins/Editor/Resources/GUI/CSG_Icon.png.meta b/Plugins/Editor/Resources/GUI/CSG_Icon.png.meta new file mode 100644 index 0000000..500f810 --- /dev/null +++ b/Plugins/Editor/Resources/GUI/CSG_Icon.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 3118b7a620bf8694abc602b1f83fb672 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/CSG_Icon_off.png b/Plugins/Editor/Resources/GUI/CSG_Icon_off.png new file mode 100644 index 0000000..8f13a0b Binary files /dev/null and b/Plugins/Editor/Resources/GUI/CSG_Icon_off.png differ diff --git a/Plugins/Editor/Resources/GUI/CSG_Icon_off.png.meta b/Plugins/Editor/Resources/GUI/CSG_Icon_off.png.meta new file mode 100644 index 0000000..f8f60cc --- /dev/null +++ b/Plugins/Editor/Resources/GUI/CSG_Icon_off.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: b03f2db27996d1d4b9ac6da55eb58786 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/Clip.png b/Plugins/Editor/Resources/GUI/Clip.png new file mode 100644 index 0000000..b69f53f Binary files /dev/null and b/Plugins/Editor/Resources/GUI/Clip.png differ diff --git a/Plugins/Editor/Resources/GUI/Clip.png.meta b/Plugins/Editor/Resources/GUI/Clip.png.meta new file mode 100644 index 0000000..93f0ee2 --- /dev/null +++ b/Plugins/Editor/Resources/GUI/Clip.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 94f02f62dd201634987d13362d598510 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/Edit.png b/Plugins/Editor/Resources/GUI/Edit.png new file mode 100644 index 0000000..3371dba Binary files /dev/null and b/Plugins/Editor/Resources/GUI/Edit.png differ diff --git a/Plugins/Editor/Resources/GUI/Edit.png.meta b/Plugins/Editor/Resources/GUI/Edit.png.meta new file mode 100644 index 0000000..03f7cba --- /dev/null +++ b/Plugins/Editor/Resources/GUI/Edit.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 64a6272aaf9f99b4e93489112f14934b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/Generate.png b/Plugins/Editor/Resources/GUI/Generate.png new file mode 100644 index 0000000..a9a99f9 Binary files /dev/null and b/Plugins/Editor/Resources/GUI/Generate.png differ diff --git a/Plugins/Editor/Resources/GUI/Generate.png.meta b/Plugins/Editor/Resources/GUI/Generate.png.meta new file mode 100644 index 0000000..10cc1cf --- /dev/null +++ b/Plugins/Editor/Resources/GUI/Generate.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 4ce4e69bb7715e744bbe26968b77d2f2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/Place.png b/Plugins/Editor/Resources/GUI/Place.png new file mode 100644 index 0000000..36ca05e Binary files /dev/null and b/Plugins/Editor/Resources/GUI/Place.png differ diff --git a/Plugins/Editor/Resources/GUI/Place.png.meta b/Plugins/Editor/Resources/GUI/Place.png.meta new file mode 100644 index 0000000..7f1ab62 --- /dev/null +++ b/Plugins/Editor/Resources/GUI/Place.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: 1fdab970e57d01d4a8e4dbf7cb4c39ff +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Resources/GUI/Surface.png b/Plugins/Editor/Resources/GUI/Surface.png new file mode 100644 index 0000000..4665cbd Binary files /dev/null and b/Plugins/Editor/Resources/GUI/Surface.png differ diff --git a/Plugins/Editor/Resources/GUI/Surface.png.meta b/Plugins/Editor/Resources/GUI/Surface.png.meta new file mode 100644 index 0000000..43080b1 --- /dev/null +++ b/Plugins/Editor/Resources/GUI/Surface.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: e9cbe9be7a709344a8c3e726b1b62637 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Scripts/Data/Settings/CSGSettings.cs b/Plugins/Editor/Scripts/Data/Settings/CSGSettings.cs index e6239aa..613c1c4 100644 --- a/Plugins/Editor/Scripts/Data/Settings/CSGSettings.cs +++ b/Plugins/Editor/Scripts/Data/Settings/CSGSettings.cs @@ -301,6 +301,7 @@ static public bool AutoRigidbody internal static ShapeMode ShapeBuildMode = ShapeMode.Box; + public static Action OnRealtimeCSGEnabledChanged; static public void SetRealtimeCSGEnabled(bool isEnabled) { RealtimeCSG.CSGSettings.EnableRealtimeCSG = isEnabled; @@ -313,6 +314,8 @@ static public void SetRealtimeCSGEnabled(bool isEnabled) EditModeManager.UpdateTool(); RealtimeCSG.CSGSettings.UpdateWireframeModes(); RealtimeCSG.CSGSettings.Save(); + if(OnRealtimeCSGEnabledChanged != null) + OnRealtimeCSGEnabledChanged(CSGSettings.EnableRealtimeCSG); } diff --git a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeManager.cs b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeManager.cs index 50be54c..17553a4 100644 --- a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeManager.cs +++ b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeManager.cs @@ -25,8 +25,23 @@ internal sealed class EditModeManager : ScriptableObject public static FilteredSelection FilteredSelection { get { InitTools(); return instance.filteredSelection; } } public static IEditMode ActiveTool { get { InitTools(); return instance.activeTool; } } - - + + + Action onEditModeChanged; + + public static Action OnEditModeChanged + { + get { + InitTools(); + return instance.onEditModeChanged; + } + set + { + InitTools(); + instance.onEditModeChanged = value; + } + } + public static ToolEditMode EditMode { get @@ -39,6 +54,9 @@ public static ToolEditMode EditMode if (instance.editMode == value) return; + if(OnEditModeChanged != null) + OnEditModeChanged(value); + Undo.RecordObject(instance, "Changed edit mode"); instance.editMode = value; diff --git a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeSelection.GUI.cs b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeSelection.GUI.cs index db304c4..158f14c 100644 --- a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeSelection.GUI.cs +++ b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/EditModeSelection.GUI.cs @@ -130,7 +130,7 @@ static void OnEditModeSelectionSceneGUI() var bounds = new Rect(10, 10 + topBarSize, 500, 40); - +#if !UNITY_2021_3_OR_NEWER GUILayout.BeginArea(bounds, ContentTitleLabel, windowStyle); { //GUILayout.Space(bounds.height); @@ -164,7 +164,8 @@ static void OnEditModeSelectionSceneGUI() GUI.Label(versionArea, VersionLabel, CSG_GUIStyleUtility.versionLabelStyle); } GUILayout.EndArea(); - +#endif + int controlID = GUIUtility.GetControlID(SceneViewBrushEditorOverlayHash, FocusType.Keyboard, bounds); switch (Event.current.GetTypeForControl(controlID)) { diff --git a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay.meta b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay.meta new file mode 100644 index 0000000..3b5c2e2 --- /dev/null +++ b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cab706ff126407449a02eb64fce2b583 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs new file mode 100644 index 0000000..260292f --- /dev/null +++ b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs @@ -0,0 +1,147 @@ +#if UNITY_2021_3_OR_NEWER +using UnityEditor; +using UnityEditor.Overlays; +using UnityEditor.Toolbars; +using UnityEngine; +using UnityEngine.UIElements; + +namespace RealtimeCSG +{ + [Overlay(typeof(SceneView), displayName: "Realtime CSG", id : _id, defaultDisplay: true +#if !UNITY_2022_3_OR_NEWER + ,ussName: "RealtimeCSG" +#else + ,defaultLayout = Layout.VerticalToolbar +#endif + )] + + internal class EditorModeOverlay: ToolbarOverlay + { + public const string iconPath = "Packages/com.prenominal.realtimecsg/Plugins/Editor/Resources/GUI/"; + public const string _id = "RealtimeCSG"; + + public EditorModeOverlay() + : base( + + CSGActivateToggleButton._id, + PlaceEditorModeButton._id, + GenerateEditorModeButton._id, + EditEditorModeButton._id, + ClipEditorModeButton._id, + SurfaceEditorModeButton._id + ) + { + } + + } + + [EditorToolbarElement(_id, typeof(SceneView))] + internal class CSGActivateToggleButton : EditorToolbarToggle + { + public const string _id = EditorModeOverlay._id + "/CSGActivateToggle"; + public CSGActivateToggleButton() + { + tooltip = "Toggle CSG Realtime"; + + onIcon = AssetDatabase.LoadAssetAtPath(EditorModeOverlay.iconPath + "CSG_Icon.png"); + offIcon = AssetDatabase.LoadAssetAtPath(EditorModeOverlay.iconPath + "CSG_Icon_off.png"); + + this.RegisterValueChangedCallback(x => OnClicked()); + CSGSettings.OnRealtimeCSGEnabledChanged += OnRealtimeCSGEnabledChanged; + + value = CSGSettings.EnableRealtimeCSG; + } + + private void OnClicked() + { + RealtimeCSG.CSGSettings.SetRealtimeCSGEnabled(value); + OnRealtimeCSGEnabledChanged(value); + } + + void OnRealtimeCSGEnabledChanged(bool isEnabled) + { + value = isEnabled; + foreach (EditorModeButton button in parent.Query().ToList()) + { + button.SetEnabled(isEnabled); + } + } + } + + internal class EditorModeButton : EditorToolbarToggle + { + ToolEditMode mode; + public EditorModeButton(string iconName, ToolEditMode _mode) + { + mode = _mode; + + CSG_GUIStyleUtility.InitializeEditModeTexts(); + ToolTip tt = CSG_GUIStyleUtility.brushEditModeTooltips[(int)mode]; + tooltip = $"{tt.TitleString()}\n{tt.ContentsString()}\n{tt.KeyString()}"; + + icon = AssetDatabase.LoadAssetAtPath(EditorModeOverlay.iconPath + iconName); + + this.RegisterValueChangedCallback(x => OnClicked()); + + value = EditModeManager.EditMode == mode; + + EditModeManager.OnEditModeChanged += OnEditModeChanged; + + SetEnabled(CSGSettings.EnableRealtimeCSG); + } + + void OnEditModeChanged(ToolEditMode _mode) => SetValueWithoutNotify(_mode == mode); + + private void OnClicked() + { + //do nothing if clicking on an already clicked toggle button, and reactivate it + if (!value) + value = true; + if (value) + RealtimeCSG.CSGSettings.SetRealtimeCSGEnabled(true); + EditModeManager.EditMode = mode; + } + } + +#region Buttons class for each Mode + [EditorToolbarElement(_id, typeof(SceneView))] + internal class PlaceEditorModeButton : EditorModeButton + { + public const string _id = EditorModeOverlay._id + "/Place"; + public PlaceEditorModeButton() : base ("Place.png", ToolEditMode.Place){} + } + + + [EditorToolbarElement(_id, typeof(SceneView))] + internal class GenerateEditorModeButton : EditorModeButton + { + public const string _id = EditorModeOverlay._id + "/Generate"; + public GenerateEditorModeButton() : base("Generate.png", ToolEditMode.Generate) { } + } + + [EditorToolbarElement(_id, typeof(SceneView))] + internal class EditEditorModeButton : EditorModeButton + { + public const string _id = EditorModeOverlay._id + "/Edit"; + public EditEditorModeButton() : base("Edit.png", ToolEditMode.Edit) { } + } + + [EditorToolbarElement(_id, typeof(SceneView))] + internal class ClipEditorModeButton : EditorModeButton + { + public const string _id = EditorModeOverlay._id + "/Clip"; + public ClipEditorModeButton() : base("Clip.png", ToolEditMode.Clip) { } + } + + [EditorToolbarElement(_id, typeof(SceneView))] + internal class SurfaceEditorModeButton : EditorModeButton + { + public const string _id = EditorModeOverlay._id + "/Surfaces"; + public SurfaceEditorModeButton() : base("Surface.png", ToolEditMode.Surfaces) { } + } + +#endregion + + +} +#endif \ No newline at end of file diff --git a/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs.meta b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs.meta new file mode 100644 index 0000000..cb75e27 --- /dev/null +++ b/Plugins/Editor/Scripts/View/GUI/EditModeGUI/Overlay/EditorModeOverlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f3b913e2037de6a4f9455c23e2953466 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Editor/Scripts/View/GUI/Utility/CSG_GUIStyleUtility.cs b/Plugins/Editor/Scripts/View/GUI/Utility/CSG_GUIStyleUtility.cs index c97399e..e185034 100644 --- a/Plugins/Editor/Scripts/View/GUI/Utility/CSG_GUIStyleUtility.cs +++ b/Plugins/Editor/Scripts/View/GUI/Utility/CSG_GUIStyleUtility.cs @@ -435,23 +435,7 @@ public static void InitStyles() //BottomToolBarStyle.fixedHeight = BottomToolBarHeight; - brushEditModeContent = new GUIContent[] - { - new GUIContent("Place"), - new GUIContent("Generate"), - new GUIContent("Edit"), - new GUIContent("Clip"), - new GUIContent("Surfaces") - }; - - brushEditModeTooltips = new ToolTip[] - { - new ToolTip("Place mode", "In this mode you can place, rotate and scale brushes", Keys.SwitchToObjectEditMode), - new ToolTip("Generate mode", "In this mode you can create brushes using several generators", Keys.SwitchToGenerateEditMode), - new ToolTip("Edit mode", "In this mode you can edit the shapes of brushes", Keys.SwitchToMeshEditMode), - new ToolTip("Clip mode", "In this mode you can split or clip brushes", Keys.SwitchToClipEditMode), - new ToolTip("Surfaces mode", "In this mode you can modify the texturing and everything else related to brush surfaces", Keys.SwitchToSurfaceEditMode) - }; + InitializeEditModeTexts(); var enum_type = typeof(ToolEditMode); brushEditModeNames = (from name in System.Enum.GetNames(enum_type) select ObjectNames.NicifyVariableName(name)).ToArray(); @@ -594,6 +578,29 @@ public static void InitStyles() GUI.skin = oldSkin; } + public static void InitializeEditModeTexts() + { + if (brushEditModeContent != null) + return; + + brushEditModeContent = new GUIContent[] + { + new GUIContent("Place"), + new GUIContent("Generate"), + new GUIContent("Edit"), + new GUIContent("Clip"), + new GUIContent("Surfaces") + }; + + brushEditModeTooltips = new ToolTip[] + { + new ToolTip("Place mode", "In this mode you can place, rotate and scale brushes", Keys.SwitchToObjectEditMode), + new ToolTip("Generate mode", "In this mode you can create brushes using several generators", Keys.SwitchToGenerateEditMode), + new ToolTip("Edit mode", "In this mode you can edit the shapes of brushes", Keys.SwitchToMeshEditMode), + new ToolTip("Clip mode", "In this mode you can split or clip brushes", Keys.SwitchToClipEditMode), + new ToolTip("Surfaces mode", "In this mode you can modify the texturing and everything else related to brush surfaces", Keys.SwitchToSurfaceEditMode) + }; + } public static void ResetGUIState() { GUI.skin = null;