diff --git a/CHANGELOG.md b/CHANGELOG.md index cf86b44..ccb762c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ All notable changes to this package will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [1.5.7] - 2021-04-07 +### Unreleased +- The Version Control package will be expanding to include both Collaborate and Plastic SCM version control interfaces. This release is preparing for that move and contains no new functionality or bug fixes for Collaborate. +### Changed +- Collaborate Package renamed to Version Control with changes to package display name and description. +### Fixed +- Fixed NPE when updating the version of the Collab package. + ## [1.3.9] - 2020-07-13 ### Fixed - Unnecessary use of texture compression in icons that slowed down platform switching @@ -20,7 +28,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Changed - Bulk revert is now supported. - Collab is blocked in play mode. -## Fixed +### Fixed - Fixed services window's links to open Collab. ## [1.3.6] - 2020-01-21 diff --git a/Documentation~/unity-cloud-collaborate.md b/Documentation~/unity-cloud-collaborate.md index 9584138..45e93ab 100644 --- a/Documentation~/unity-cloud-collaborate.md +++ b/Documentation~/unity-cloud-collaborate.md @@ -1,5 +1,6 @@ -# About Unity Collaborate - -Collaborate is a simple way for teams to save, share, and sync their Unity project. - -Please refer to the online documentation [here.](https://docs.unity3d.com/Manual/UnityCollaborate.html) +# About Version Control +The Version Control package provides an in-editor interface for teams to work with Collaborate and Plastic SCM (coming soon). +## Collaborate +Collaborate makes it easy for teams to save, share, and sync their Unity projects with others, regardless of location. It is cloud enabled and built directly into Unity. Please refer to the online documentation for Unity Collaborate [here.](https://docs.unity3d.com/Manual/UnityCollaborate.html) +## Plastic SCM +Plastic SCM Plugin for Unity (beta) is a free Unity plugin that gives you the ability to use Plastic SCM, a leading version control solution, directly in Unity. It is currently available on the Unity Asset Store but will be moving to this package in an upcoming release. diff --git a/Editor/Collaborate.meta b/Editor/Collaborate.meta new file mode 100644 index 0000000..2aa1c6e --- /dev/null +++ b/Editor/Collaborate.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2dccfb4f31ae9ba44b41452beaa34658 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Assets.meta b/Editor/Collaborate/Assets.meta similarity index 100% rename from Editor/Assets.meta rename to Editor/Collaborate/Assets.meta diff --git a/Editor/Assets/Icons.meta b/Editor/Collaborate/Assets/Icons.meta similarity index 100% rename from Editor/Assets/Icons.meta rename to Editor/Collaborate/Assets/Icons.meta diff --git a/Editor/Assets/Icons/README.md b/Editor/Collaborate/Assets/Icons/README.md similarity index 100% rename from Editor/Assets/Icons/README.md rename to Editor/Collaborate/Assets/Icons/README.md diff --git a/Editor/Assets/Icons/README.md.meta b/Editor/Collaborate/Assets/Icons/README.md.meta similarity index 100% rename from Editor/Assets/Icons/README.md.meta rename to Editor/Collaborate/Assets/Icons/README.md.meta diff --git a/Editor/Assets/Icons/added-file-dark.png b/Editor/Collaborate/Assets/Icons/added-file-dark.png similarity index 100% rename from Editor/Assets/Icons/added-file-dark.png rename to Editor/Collaborate/Assets/Icons/added-file-dark.png diff --git a/Editor/Assets/Icons/added-file-dark.png.meta b/Editor/Collaborate/Assets/Icons/added-file-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/added-file-dark.png.meta rename to Editor/Collaborate/Assets/Icons/added-file-dark.png.meta diff --git a/Editor/Assets/Icons/added-file-dark@2x.png b/Editor/Collaborate/Assets/Icons/added-file-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/added-file-dark@2x.png rename to Editor/Collaborate/Assets/Icons/added-file-dark@2x.png diff --git a/Editor/Assets/Icons/added-file-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/added-file-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/added-file-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/added-file-dark@2x.png.meta diff --git a/Editor/Assets/Icons/added-file-light.png b/Editor/Collaborate/Assets/Icons/added-file-light.png similarity index 100% rename from Editor/Assets/Icons/added-file-light.png rename to Editor/Collaborate/Assets/Icons/added-file-light.png diff --git a/Editor/Assets/Icons/added-file-light.png.meta b/Editor/Collaborate/Assets/Icons/added-file-light.png.meta similarity index 100% rename from Editor/Assets/Icons/added-file-light.png.meta rename to Editor/Collaborate/Assets/Icons/added-file-light.png.meta diff --git a/Editor/Assets/Icons/added-file-light@2x.png b/Editor/Collaborate/Assets/Icons/added-file-light@2x.png similarity index 100% rename from Editor/Assets/Icons/added-file-light@2x.png rename to Editor/Collaborate/Assets/Icons/added-file-light@2x.png diff --git a/Editor/Assets/Icons/added-file-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/added-file-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/added-file-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/added-file-light@2x.png.meta diff --git a/Editor/Assets/Icons/back-dark.png b/Editor/Collaborate/Assets/Icons/back-dark.png similarity index 100% rename from Editor/Assets/Icons/back-dark.png rename to Editor/Collaborate/Assets/Icons/back-dark.png diff --git a/Editor/Assets/Icons/back-dark.png.meta b/Editor/Collaborate/Assets/Icons/back-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/back-dark.png.meta rename to Editor/Collaborate/Assets/Icons/back-dark.png.meta diff --git a/Editor/Assets/Icons/back-dark@2x.png b/Editor/Collaborate/Assets/Icons/back-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/back-dark@2x.png rename to Editor/Collaborate/Assets/Icons/back-dark@2x.png diff --git a/Editor/Assets/Icons/back-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/back-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/back-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/back-dark@2x.png.meta diff --git a/Editor/Assets/Icons/back-light.png b/Editor/Collaborate/Assets/Icons/back-light.png similarity index 100% rename from Editor/Assets/Icons/back-light.png rename to Editor/Collaborate/Assets/Icons/back-light.png diff --git a/Editor/Assets/Icons/back-light.png.meta b/Editor/Collaborate/Assets/Icons/back-light.png.meta similarity index 100% rename from Editor/Assets/Icons/back-light.png.meta rename to Editor/Collaborate/Assets/Icons/back-light.png.meta diff --git a/Editor/Assets/Icons/back-light@2x.png b/Editor/Collaborate/Assets/Icons/back-light@2x.png similarity index 100% rename from Editor/Assets/Icons/back-light@2x.png rename to Editor/Collaborate/Assets/Icons/back-light@2x.png diff --git a/Editor/Assets/Icons/back-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/back-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/back-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/back-light@2x.png.meta diff --git a/Editor/Assets/Icons/choose-mine-dark.png b/Editor/Collaborate/Assets/Icons/choose-mine-dark.png similarity index 100% rename from Editor/Assets/Icons/choose-mine-dark.png rename to Editor/Collaborate/Assets/Icons/choose-mine-dark.png diff --git a/Editor/Assets/Icons/choose-mine-dark.png.meta b/Editor/Collaborate/Assets/Icons/choose-mine-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-mine-dark.png.meta rename to Editor/Collaborate/Assets/Icons/choose-mine-dark.png.meta diff --git a/Editor/Assets/Icons/choose-mine-dark@2x.png b/Editor/Collaborate/Assets/Icons/choose-mine-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/choose-mine-dark@2x.png rename to Editor/Collaborate/Assets/Icons/choose-mine-dark@2x.png diff --git a/Editor/Assets/Icons/choose-mine-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/choose-mine-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-mine-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/choose-mine-dark@2x.png.meta diff --git a/Editor/Assets/Icons/choose-mine-light.png b/Editor/Collaborate/Assets/Icons/choose-mine-light.png similarity index 100% rename from Editor/Assets/Icons/choose-mine-light.png rename to Editor/Collaborate/Assets/Icons/choose-mine-light.png diff --git a/Editor/Assets/Icons/choose-mine-light.png.meta b/Editor/Collaborate/Assets/Icons/choose-mine-light.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-mine-light.png.meta rename to Editor/Collaborate/Assets/Icons/choose-mine-light.png.meta diff --git a/Editor/Assets/Icons/choose-mine-light@2x.png b/Editor/Collaborate/Assets/Icons/choose-mine-light@2x.png similarity index 100% rename from Editor/Assets/Icons/choose-mine-light@2x.png rename to Editor/Collaborate/Assets/Icons/choose-mine-light@2x.png diff --git a/Editor/Assets/Icons/choose-mine-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/choose-mine-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-mine-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/choose-mine-light@2x.png.meta diff --git a/Editor/Assets/Icons/choose-remote-dark.png b/Editor/Collaborate/Assets/Icons/choose-remote-dark.png similarity index 100% rename from Editor/Assets/Icons/choose-remote-dark.png rename to Editor/Collaborate/Assets/Icons/choose-remote-dark.png diff --git a/Editor/Assets/Icons/choose-remote-dark.png.meta b/Editor/Collaborate/Assets/Icons/choose-remote-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-remote-dark.png.meta rename to Editor/Collaborate/Assets/Icons/choose-remote-dark.png.meta diff --git a/Editor/Assets/Icons/choose-remote-dark@2x.png b/Editor/Collaborate/Assets/Icons/choose-remote-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/choose-remote-dark@2x.png rename to Editor/Collaborate/Assets/Icons/choose-remote-dark@2x.png diff --git a/Editor/Assets/Icons/choose-remote-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/choose-remote-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-remote-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/choose-remote-dark@2x.png.meta diff --git a/Editor/Assets/Icons/choose-remote-light.png b/Editor/Collaborate/Assets/Icons/choose-remote-light.png similarity index 100% rename from Editor/Assets/Icons/choose-remote-light.png rename to Editor/Collaborate/Assets/Icons/choose-remote-light.png diff --git a/Editor/Assets/Icons/choose-remote-light.png.meta b/Editor/Collaborate/Assets/Icons/choose-remote-light.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-remote-light.png.meta rename to Editor/Collaborate/Assets/Icons/choose-remote-light.png.meta diff --git a/Editor/Assets/Icons/choose-remote-light@2x.png b/Editor/Collaborate/Assets/Icons/choose-remote-light@2x.png similarity index 100% rename from Editor/Assets/Icons/choose-remote-light@2x.png rename to Editor/Collaborate/Assets/Icons/choose-remote-light@2x.png diff --git a/Editor/Assets/Icons/choose-remote-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/choose-remote-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/choose-remote-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/choose-remote-light@2x.png.meta diff --git a/Editor/Assets/Icons/clear-dark.png b/Editor/Collaborate/Assets/Icons/clear-dark.png similarity index 100% rename from Editor/Assets/Icons/clear-dark.png rename to Editor/Collaborate/Assets/Icons/clear-dark.png diff --git a/Editor/Assets/Icons/clear-dark.png.meta b/Editor/Collaborate/Assets/Icons/clear-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/clear-dark.png.meta rename to Editor/Collaborate/Assets/Icons/clear-dark.png.meta diff --git a/Editor/Assets/Icons/clear-dark@2x.png b/Editor/Collaborate/Assets/Icons/clear-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/clear-dark@2x.png rename to Editor/Collaborate/Assets/Icons/clear-dark@2x.png diff --git a/Editor/Assets/Icons/clear-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/clear-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/clear-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/clear-dark@2x.png.meta diff --git a/Editor/Assets/Icons/clear-light.png b/Editor/Collaborate/Assets/Icons/clear-light.png similarity index 100% rename from Editor/Assets/Icons/clear-light.png rename to Editor/Collaborate/Assets/Icons/clear-light.png diff --git a/Editor/Assets/Icons/clear-light.png.meta b/Editor/Collaborate/Assets/Icons/clear-light.png.meta similarity index 100% rename from Editor/Assets/Icons/clear-light.png.meta rename to Editor/Collaborate/Assets/Icons/clear-light.png.meta diff --git a/Editor/Assets/Icons/clear-light@2x.png b/Editor/Collaborate/Assets/Icons/clear-light@2x.png similarity index 100% rename from Editor/Assets/Icons/clear-light@2x.png rename to Editor/Collaborate/Assets/Icons/clear-light@2x.png diff --git a/Editor/Assets/Icons/clear-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/clear-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/clear-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/clear-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-available-changes-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark.png diff --git a/Editor/Assets/Icons/collaborate-available-changes-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-available-changes-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-available-changes-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-available-changes-light.png b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-light.png diff --git a/Editor/Assets/Icons/collaborate-available-changes-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-available-changes-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-available-changes-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-available-changes-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-available-changes-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-available-changes-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-dark.png diff --git a/Editor/Assets/Icons/collaborate-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-done-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-done-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-done-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-done-dark.png diff --git a/Editor/Assets/Icons/collaborate-done-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-done-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-done-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-done-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-done-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-done-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-done-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-done-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-done-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-done-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-done-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-done-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-done-light.png b/Editor/Collaborate/Assets/Icons/collaborate-done-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-done-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-done-light.png diff --git a/Editor/Assets/Icons/collaborate-done-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-done-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-done-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-done-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-done-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-done-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-done-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-done-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-done-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-done-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-done-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-done-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-error-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-error-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-error-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-error-dark.png diff --git a/Editor/Assets/Icons/collaborate-error-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-error-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-error-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-error-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-error-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-error-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-error-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-error-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-error-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-error-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-error-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-error-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-error-light.png b/Editor/Collaborate/Assets/Icons/collaborate-error-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-error-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-error-light.png diff --git a/Editor/Assets/Icons/collaborate-error-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-error-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-error-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-error-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-error-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-error-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-error-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-error-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-error-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-error-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-error-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-error-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-incoming-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-incoming-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-dark.png diff --git a/Editor/Assets/Icons/collaborate-incoming-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-incoming-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-incoming-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-incoming-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-incoming-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-incoming-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-incoming-light.png b/Editor/Collaborate/Assets/Icons/collaborate-incoming-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-light.png diff --git a/Editor/Assets/Icons/collaborate-incoming-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-incoming-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-incoming-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-incoming-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-incoming-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-incoming-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-incoming-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-incoming-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-light.png b/Editor/Collaborate/Assets/Icons/collaborate-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-light.png diff --git a/Editor/Assets/Icons/collaborate-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-offline-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-offline-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-offline-dark.png diff --git a/Editor/Assets/Icons/collaborate-offline-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-offline-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-offline-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-offline-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-offline-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-offline-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-offline-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-offline-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-offline-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-offline-light.png b/Editor/Collaborate/Assets/Icons/collaborate-offline-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-offline-light.png diff --git a/Editor/Assets/Icons/collaborate-offline-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-offline-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-offline-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-offline-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-offline-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-offline-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-offline-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-offline-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-offline-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-offline-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-progress-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-progress-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-progress-dark.png diff --git a/Editor/Assets/Icons/collaborate-progress-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-progress-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-progress-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-progress-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-progress-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-progress-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-progress-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-progress-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-progress-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-progress-light.png b/Editor/Collaborate/Assets/Icons/collaborate-progress-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-progress-light.png diff --git a/Editor/Assets/Icons/collaborate-progress-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-progress-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-progress-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-progress-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-progress-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-progress-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-progress-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-progress-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-progress-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-progress-light@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-warning-dark.png b/Editor/Collaborate/Assets/Icons/collaborate-warning-dark.png similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-dark.png rename to Editor/Collaborate/Assets/Icons/collaborate-warning-dark.png diff --git a/Editor/Assets/Icons/collaborate-warning-dark.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-warning-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-dark.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-warning-dark.png.meta diff --git a/Editor/Assets/Icons/collaborate-warning-dark@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-warning-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-dark@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-warning-dark@2x.png diff --git a/Editor/Assets/Icons/collaborate-warning-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-warning-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-warning-dark@2x.png.meta diff --git a/Editor/Assets/Icons/collaborate-warning-light.png b/Editor/Collaborate/Assets/Icons/collaborate-warning-light.png similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-light.png rename to Editor/Collaborate/Assets/Icons/collaborate-warning-light.png diff --git a/Editor/Assets/Icons/collaborate-warning-light.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-warning-light.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-light.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-warning-light.png.meta diff --git a/Editor/Assets/Icons/collaborate-warning-light@2x.png b/Editor/Collaborate/Assets/Icons/collaborate-warning-light@2x.png similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-light@2x.png rename to Editor/Collaborate/Assets/Icons/collaborate-warning-light@2x.png diff --git a/Editor/Assets/Icons/collaborate-warning-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/collaborate-warning-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/collaborate-warning-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/collaborate-warning-light@2x.png.meta diff --git a/Editor/Assets/Icons/conflicted-file-dark.png b/Editor/Collaborate/Assets/Icons/conflicted-file-dark.png similarity index 100% rename from Editor/Assets/Icons/conflicted-file-dark.png rename to Editor/Collaborate/Assets/Icons/conflicted-file-dark.png diff --git a/Editor/Assets/Icons/conflicted-file-dark.png.meta b/Editor/Collaborate/Assets/Icons/conflicted-file-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/conflicted-file-dark.png.meta rename to Editor/Collaborate/Assets/Icons/conflicted-file-dark.png.meta diff --git a/Editor/Assets/Icons/conflicted-file-dark@2x.png b/Editor/Collaborate/Assets/Icons/conflicted-file-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/conflicted-file-dark@2x.png rename to Editor/Collaborate/Assets/Icons/conflicted-file-dark@2x.png diff --git a/Editor/Assets/Icons/conflicted-file-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/conflicted-file-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/conflicted-file-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/conflicted-file-dark@2x.png.meta diff --git a/Editor/Assets/Icons/conflicted-file-light.png b/Editor/Collaborate/Assets/Icons/conflicted-file-light.png similarity index 100% rename from Editor/Assets/Icons/conflicted-file-light.png rename to Editor/Collaborate/Assets/Icons/conflicted-file-light.png diff --git a/Editor/Assets/Icons/conflicted-file-light.png.meta b/Editor/Collaborate/Assets/Icons/conflicted-file-light.png.meta similarity index 100% rename from Editor/Assets/Icons/conflicted-file-light.png.meta rename to Editor/Collaborate/Assets/Icons/conflicted-file-light.png.meta diff --git a/Editor/Assets/Icons/conflicted-file-light@2x.png b/Editor/Collaborate/Assets/Icons/conflicted-file-light@2x.png similarity index 100% rename from Editor/Assets/Icons/conflicted-file-light@2x.png rename to Editor/Collaborate/Assets/Icons/conflicted-file-light@2x.png diff --git a/Editor/Assets/Icons/conflicted-file-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/conflicted-file-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/conflicted-file-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/conflicted-file-light@2x.png.meta diff --git a/Editor/Assets/Icons/deleted-file-dark.png b/Editor/Collaborate/Assets/Icons/deleted-file-dark.png similarity index 100% rename from Editor/Assets/Icons/deleted-file-dark.png rename to Editor/Collaborate/Assets/Icons/deleted-file-dark.png diff --git a/Editor/Assets/Icons/deleted-file-dark.png.meta b/Editor/Collaborate/Assets/Icons/deleted-file-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/deleted-file-dark.png.meta rename to Editor/Collaborate/Assets/Icons/deleted-file-dark.png.meta diff --git a/Editor/Assets/Icons/deleted-file-dark@2x.png b/Editor/Collaborate/Assets/Icons/deleted-file-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/deleted-file-dark@2x.png rename to Editor/Collaborate/Assets/Icons/deleted-file-dark@2x.png diff --git a/Editor/Assets/Icons/deleted-file-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/deleted-file-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/deleted-file-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/deleted-file-dark@2x.png.meta diff --git a/Editor/Assets/Icons/deleted-file-light.png b/Editor/Collaborate/Assets/Icons/deleted-file-light.png similarity index 100% rename from Editor/Assets/Icons/deleted-file-light.png rename to Editor/Collaborate/Assets/Icons/deleted-file-light.png diff --git a/Editor/Assets/Icons/deleted-file-light.png.meta b/Editor/Collaborate/Assets/Icons/deleted-file-light.png.meta similarity index 100% rename from Editor/Assets/Icons/deleted-file-light.png.meta rename to Editor/Collaborate/Assets/Icons/deleted-file-light.png.meta diff --git a/Editor/Assets/Icons/deleted-file-light@2x.png b/Editor/Collaborate/Assets/Icons/deleted-file-light@2x.png similarity index 100% rename from Editor/Assets/Icons/deleted-file-light@2x.png rename to Editor/Collaborate/Assets/Icons/deleted-file-light@2x.png diff --git a/Editor/Assets/Icons/deleted-file-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/deleted-file-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/deleted-file-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/deleted-file-light@2x.png.meta diff --git a/Editor/Assets/Icons/diff-dark.png b/Editor/Collaborate/Assets/Icons/diff-dark.png similarity index 100% rename from Editor/Assets/Icons/diff-dark.png rename to Editor/Collaborate/Assets/Icons/diff-dark.png diff --git a/Editor/Assets/Icons/diff-dark.png.meta b/Editor/Collaborate/Assets/Icons/diff-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/diff-dark.png.meta rename to Editor/Collaborate/Assets/Icons/diff-dark.png.meta diff --git a/Editor/Assets/Icons/diff-dark@2x.png b/Editor/Collaborate/Assets/Icons/diff-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/diff-dark@2x.png rename to Editor/Collaborate/Assets/Icons/diff-dark@2x.png diff --git a/Editor/Assets/Icons/diff-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/diff-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/diff-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/diff-dark@2x.png.meta diff --git a/Editor/Assets/Icons/diff-light.png b/Editor/Collaborate/Assets/Icons/diff-light.png similarity index 100% rename from Editor/Assets/Icons/diff-light.png rename to Editor/Collaborate/Assets/Icons/diff-light.png diff --git a/Editor/Assets/Icons/diff-light.png.meta b/Editor/Collaborate/Assets/Icons/diff-light.png.meta similarity index 100% rename from Editor/Assets/Icons/diff-light.png.meta rename to Editor/Collaborate/Assets/Icons/diff-light.png.meta diff --git a/Editor/Assets/Icons/diff-light@2x.png b/Editor/Collaborate/Assets/Icons/diff-light@2x.png similarity index 100% rename from Editor/Assets/Icons/diff-light@2x.png rename to Editor/Collaborate/Assets/Icons/diff-light@2x.png diff --git a/Editor/Assets/Icons/diff-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/diff-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/diff-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/diff-light@2x.png.meta diff --git a/Editor/Assets/Icons/edited-file-dark.png b/Editor/Collaborate/Assets/Icons/edited-file-dark.png similarity index 100% rename from Editor/Assets/Icons/edited-file-dark.png rename to Editor/Collaborate/Assets/Icons/edited-file-dark.png diff --git a/Editor/Assets/Icons/edited-file-dark.png.meta b/Editor/Collaborate/Assets/Icons/edited-file-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/edited-file-dark.png.meta rename to Editor/Collaborate/Assets/Icons/edited-file-dark.png.meta diff --git a/Editor/Assets/Icons/edited-file-dark@2x.png b/Editor/Collaborate/Assets/Icons/edited-file-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/edited-file-dark@2x.png rename to Editor/Collaborate/Assets/Icons/edited-file-dark@2x.png diff --git a/Editor/Assets/Icons/edited-file-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/edited-file-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/edited-file-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/edited-file-dark@2x.png.meta diff --git a/Editor/Assets/Icons/edited-file-light.png b/Editor/Collaborate/Assets/Icons/edited-file-light.png similarity index 100% rename from Editor/Assets/Icons/edited-file-light.png rename to Editor/Collaborate/Assets/Icons/edited-file-light.png diff --git a/Editor/Assets/Icons/edited-file-light.png.meta b/Editor/Collaborate/Assets/Icons/edited-file-light.png.meta similarity index 100% rename from Editor/Assets/Icons/edited-file-light.png.meta rename to Editor/Collaborate/Assets/Icons/edited-file-light.png.meta diff --git a/Editor/Assets/Icons/edited-file-light@2x.png b/Editor/Collaborate/Assets/Icons/edited-file-light@2x.png similarity index 100% rename from Editor/Assets/Icons/edited-file-light@2x.png rename to Editor/Collaborate/Assets/Icons/edited-file-light@2x.png diff --git a/Editor/Assets/Icons/edited-file-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/edited-file-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/edited-file-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/edited-file-light@2x.png.meta diff --git a/Editor/Assets/Icons/loading-dark.png b/Editor/Collaborate/Assets/Icons/loading-dark.png similarity index 100% rename from Editor/Assets/Icons/loading-dark.png rename to Editor/Collaborate/Assets/Icons/loading-dark.png diff --git a/Editor/Assets/Icons/loading-dark.png.meta b/Editor/Collaborate/Assets/Icons/loading-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/loading-dark.png.meta rename to Editor/Collaborate/Assets/Icons/loading-dark.png.meta diff --git a/Editor/Assets/Icons/loading-dark@2x.png b/Editor/Collaborate/Assets/Icons/loading-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/loading-dark@2x.png rename to Editor/Collaborate/Assets/Icons/loading-dark@2x.png diff --git a/Editor/Assets/Icons/loading-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/loading-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/loading-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/loading-dark@2x.png.meta diff --git a/Editor/Assets/Icons/loading-light.png b/Editor/Collaborate/Assets/Icons/loading-light.png similarity index 100% rename from Editor/Assets/Icons/loading-light.png rename to Editor/Collaborate/Assets/Icons/loading-light.png diff --git a/Editor/Assets/Icons/loading-light.png.meta b/Editor/Collaborate/Assets/Icons/loading-light.png.meta similarity index 100% rename from Editor/Assets/Icons/loading-light.png.meta rename to Editor/Collaborate/Assets/Icons/loading-light.png.meta diff --git a/Editor/Assets/Icons/loading-light@2x.png b/Editor/Collaborate/Assets/Icons/loading-light@2x.png similarity index 100% rename from Editor/Assets/Icons/loading-light@2x.png rename to Editor/Collaborate/Assets/Icons/loading-light@2x.png diff --git a/Editor/Assets/Icons/loading-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/loading-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/loading-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/loading-light@2x.png.meta diff --git a/Editor/Assets/Icons/merge-conflicts-dark.png b/Editor/Collaborate/Assets/Icons/merge-conflicts-dark.png similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-dark.png rename to Editor/Collaborate/Assets/Icons/merge-conflicts-dark.png diff --git a/Editor/Assets/Icons/merge-conflicts-dark.png.meta b/Editor/Collaborate/Assets/Icons/merge-conflicts-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-dark.png.meta rename to Editor/Collaborate/Assets/Icons/merge-conflicts-dark.png.meta diff --git a/Editor/Assets/Icons/merge-conflicts-dark@2x.png b/Editor/Collaborate/Assets/Icons/merge-conflicts-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-dark@2x.png rename to Editor/Collaborate/Assets/Icons/merge-conflicts-dark@2x.png diff --git a/Editor/Assets/Icons/merge-conflicts-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/merge-conflicts-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/merge-conflicts-dark@2x.png.meta diff --git a/Editor/Assets/Icons/merge-conflicts-light.png b/Editor/Collaborate/Assets/Icons/merge-conflicts-light.png similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-light.png rename to Editor/Collaborate/Assets/Icons/merge-conflicts-light.png diff --git a/Editor/Assets/Icons/merge-conflicts-light.png.meta b/Editor/Collaborate/Assets/Icons/merge-conflicts-light.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-light.png.meta rename to Editor/Collaborate/Assets/Icons/merge-conflicts-light.png.meta diff --git a/Editor/Assets/Icons/merge-conflicts-light@2x.png b/Editor/Collaborate/Assets/Icons/merge-conflicts-light@2x.png similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-light@2x.png rename to Editor/Collaborate/Assets/Icons/merge-conflicts-light@2x.png diff --git a/Editor/Assets/Icons/merge-conflicts-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/merge-conflicts-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-conflicts-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/merge-conflicts-light@2x.png.meta diff --git a/Editor/Assets/Icons/merge-dark.png b/Editor/Collaborate/Assets/Icons/merge-dark.png similarity index 100% rename from Editor/Assets/Icons/merge-dark.png rename to Editor/Collaborate/Assets/Icons/merge-dark.png diff --git a/Editor/Assets/Icons/merge-dark.png.meta b/Editor/Collaborate/Assets/Icons/merge-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-dark.png.meta rename to Editor/Collaborate/Assets/Icons/merge-dark.png.meta diff --git a/Editor/Assets/Icons/merge-dark@2x.png b/Editor/Collaborate/Assets/Icons/merge-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/merge-dark@2x.png rename to Editor/Collaborate/Assets/Icons/merge-dark@2x.png diff --git a/Editor/Assets/Icons/merge-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/merge-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/merge-dark@2x.png.meta diff --git a/Editor/Assets/Icons/merge-light.png b/Editor/Collaborate/Assets/Icons/merge-light.png similarity index 100% rename from Editor/Assets/Icons/merge-light.png rename to Editor/Collaborate/Assets/Icons/merge-light.png diff --git a/Editor/Assets/Icons/merge-light.png.meta b/Editor/Collaborate/Assets/Icons/merge-light.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-light.png.meta rename to Editor/Collaborate/Assets/Icons/merge-light.png.meta diff --git a/Editor/Assets/Icons/merge-light@2x.png b/Editor/Collaborate/Assets/Icons/merge-light@2x.png similarity index 100% rename from Editor/Assets/Icons/merge-light@2x.png rename to Editor/Collaborate/Assets/Icons/merge-light@2x.png diff --git a/Editor/Assets/Icons/merge-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/merge-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/merge-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/merge-light@2x.png.meta diff --git a/Editor/Assets/Icons/more-vert-dark.png b/Editor/Collaborate/Assets/Icons/more-vert-dark.png similarity index 100% rename from Editor/Assets/Icons/more-vert-dark.png rename to Editor/Collaborate/Assets/Icons/more-vert-dark.png diff --git a/Editor/Assets/Icons/more-vert-dark.png.meta b/Editor/Collaborate/Assets/Icons/more-vert-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/more-vert-dark.png.meta rename to Editor/Collaborate/Assets/Icons/more-vert-dark.png.meta diff --git a/Editor/Assets/Icons/more-vert-dark@2x.png b/Editor/Collaborate/Assets/Icons/more-vert-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/more-vert-dark@2x.png rename to Editor/Collaborate/Assets/Icons/more-vert-dark@2x.png diff --git a/Editor/Assets/Icons/more-vert-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/more-vert-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/more-vert-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/more-vert-dark@2x.png.meta diff --git a/Editor/Assets/Icons/more-vert-light.png b/Editor/Collaborate/Assets/Icons/more-vert-light.png similarity index 100% rename from Editor/Assets/Icons/more-vert-light.png rename to Editor/Collaborate/Assets/Icons/more-vert-light.png diff --git a/Editor/Assets/Icons/more-vert-light.png.meta b/Editor/Collaborate/Assets/Icons/more-vert-light.png.meta similarity index 100% rename from Editor/Assets/Icons/more-vert-light.png.meta rename to Editor/Collaborate/Assets/Icons/more-vert-light.png.meta diff --git a/Editor/Assets/Icons/more-vert-light@2x.png b/Editor/Collaborate/Assets/Icons/more-vert-light@2x.png similarity index 100% rename from Editor/Assets/Icons/more-vert-light@2x.png rename to Editor/Collaborate/Assets/Icons/more-vert-light@2x.png diff --git a/Editor/Assets/Icons/more-vert-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/more-vert-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/more-vert-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/more-vert-light@2x.png.meta diff --git a/Editor/Assets/Icons/moved-file-dark.png b/Editor/Collaborate/Assets/Icons/moved-file-dark.png similarity index 100% rename from Editor/Assets/Icons/moved-file-dark.png rename to Editor/Collaborate/Assets/Icons/moved-file-dark.png diff --git a/Editor/Assets/Icons/moved-file-dark.png.meta b/Editor/Collaborate/Assets/Icons/moved-file-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/moved-file-dark.png.meta rename to Editor/Collaborate/Assets/Icons/moved-file-dark.png.meta diff --git a/Editor/Assets/Icons/moved-file-dark@2x.png b/Editor/Collaborate/Assets/Icons/moved-file-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/moved-file-dark@2x.png rename to Editor/Collaborate/Assets/Icons/moved-file-dark@2x.png diff --git a/Editor/Assets/Icons/moved-file-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/moved-file-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/moved-file-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/moved-file-dark@2x.png.meta diff --git a/Editor/Assets/Icons/moved-file-light.png b/Editor/Collaborate/Assets/Icons/moved-file-light.png similarity index 100% rename from Editor/Assets/Icons/moved-file-light.png rename to Editor/Collaborate/Assets/Icons/moved-file-light.png diff --git a/Editor/Assets/Icons/moved-file-light.png.meta b/Editor/Collaborate/Assets/Icons/moved-file-light.png.meta similarity index 100% rename from Editor/Assets/Icons/moved-file-light.png.meta rename to Editor/Collaborate/Assets/Icons/moved-file-light.png.meta diff --git a/Editor/Assets/Icons/moved-file-light@2x.png b/Editor/Collaborate/Assets/Icons/moved-file-light@2x.png similarity index 100% rename from Editor/Assets/Icons/moved-file-light@2x.png rename to Editor/Collaborate/Assets/Icons/moved-file-light@2x.png diff --git a/Editor/Assets/Icons/moved-file-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/moved-file-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/moved-file-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/moved-file-light@2x.png.meta diff --git a/Editor/Assets/Icons/publish-dark.png b/Editor/Collaborate/Assets/Icons/publish-dark.png similarity index 100% rename from Editor/Assets/Icons/publish-dark.png rename to Editor/Collaborate/Assets/Icons/publish-dark.png diff --git a/Editor/Assets/Icons/publish-dark.png.meta b/Editor/Collaborate/Assets/Icons/publish-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/publish-dark.png.meta rename to Editor/Collaborate/Assets/Icons/publish-dark.png.meta diff --git a/Editor/Assets/Icons/publish-dark@2x.png b/Editor/Collaborate/Assets/Icons/publish-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/publish-dark@2x.png rename to Editor/Collaborate/Assets/Icons/publish-dark@2x.png diff --git a/Editor/Assets/Icons/publish-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/publish-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/publish-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/publish-dark@2x.png.meta diff --git a/Editor/Assets/Icons/publish-light.png b/Editor/Collaborate/Assets/Icons/publish-light.png similarity index 100% rename from Editor/Assets/Icons/publish-light.png rename to Editor/Collaborate/Assets/Icons/publish-light.png diff --git a/Editor/Assets/Icons/publish-light.png.meta b/Editor/Collaborate/Assets/Icons/publish-light.png.meta similarity index 100% rename from Editor/Assets/Icons/publish-light.png.meta rename to Editor/Collaborate/Assets/Icons/publish-light.png.meta diff --git a/Editor/Assets/Icons/publish-light@2x.png b/Editor/Collaborate/Assets/Icons/publish-light@2x.png similarity index 100% rename from Editor/Assets/Icons/publish-light@2x.png rename to Editor/Collaborate/Assets/Icons/publish-light@2x.png diff --git a/Editor/Assets/Icons/publish-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/publish-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/publish-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/publish-light@2x.png.meta diff --git a/Editor/Assets/Icons/revert-asset-dark.png b/Editor/Collaborate/Assets/Icons/revert-asset-dark.png similarity index 100% rename from Editor/Assets/Icons/revert-asset-dark.png rename to Editor/Collaborate/Assets/Icons/revert-asset-dark.png diff --git a/Editor/Assets/Icons/revert-asset-dark.png.meta b/Editor/Collaborate/Assets/Icons/revert-asset-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/revert-asset-dark.png.meta rename to Editor/Collaborate/Assets/Icons/revert-asset-dark.png.meta diff --git a/Editor/Assets/Icons/revert-asset-dark@2x.png b/Editor/Collaborate/Assets/Icons/revert-asset-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/revert-asset-dark@2x.png rename to Editor/Collaborate/Assets/Icons/revert-asset-dark@2x.png diff --git a/Editor/Assets/Icons/revert-asset-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/revert-asset-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/revert-asset-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/revert-asset-dark@2x.png.meta diff --git a/Editor/Assets/Icons/revert-asset-light.png b/Editor/Collaborate/Assets/Icons/revert-asset-light.png similarity index 100% rename from Editor/Assets/Icons/revert-asset-light.png rename to Editor/Collaborate/Assets/Icons/revert-asset-light.png diff --git a/Editor/Assets/Icons/revert-asset-light.png.meta b/Editor/Collaborate/Assets/Icons/revert-asset-light.png.meta similarity index 100% rename from Editor/Assets/Icons/revert-asset-light.png.meta rename to Editor/Collaborate/Assets/Icons/revert-asset-light.png.meta diff --git a/Editor/Assets/Icons/revert-asset-light@2x.png b/Editor/Collaborate/Assets/Icons/revert-asset-light@2x.png similarity index 100% rename from Editor/Assets/Icons/revert-asset-light@2x.png rename to Editor/Collaborate/Assets/Icons/revert-asset-light@2x.png diff --git a/Editor/Assets/Icons/revert-asset-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/revert-asset-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/revert-asset-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/revert-asset-light@2x.png.meta diff --git a/Editor/Assets/Icons/search-dark.png b/Editor/Collaborate/Assets/Icons/search-dark.png similarity index 100% rename from Editor/Assets/Icons/search-dark.png rename to Editor/Collaborate/Assets/Icons/search-dark.png diff --git a/Editor/Assets/Icons/search-dark.png.meta b/Editor/Collaborate/Assets/Icons/search-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/search-dark.png.meta rename to Editor/Collaborate/Assets/Icons/search-dark.png.meta diff --git a/Editor/Assets/Icons/search-dark@2x.png b/Editor/Collaborate/Assets/Icons/search-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/search-dark@2x.png rename to Editor/Collaborate/Assets/Icons/search-dark@2x.png diff --git a/Editor/Assets/Icons/search-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/search-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/search-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/search-dark@2x.png.meta diff --git a/Editor/Assets/Icons/search-light.png b/Editor/Collaborate/Assets/Icons/search-light.png similarity index 100% rename from Editor/Assets/Icons/search-light.png rename to Editor/Collaborate/Assets/Icons/search-light.png diff --git a/Editor/Assets/Icons/search-light.png.meta b/Editor/Collaborate/Assets/Icons/search-light.png.meta similarity index 100% rename from Editor/Assets/Icons/search-light.png.meta rename to Editor/Collaborate/Assets/Icons/search-light.png.meta diff --git a/Editor/Assets/Icons/search-light@2x.png b/Editor/Collaborate/Assets/Icons/search-light@2x.png similarity index 100% rename from Editor/Assets/Icons/search-light@2x.png rename to Editor/Collaborate/Assets/Icons/search-light@2x.png diff --git a/Editor/Assets/Icons/search-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/search-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/search-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/search-light@2x.png.meta diff --git a/Editor/Assets/Icons/show-dark.png b/Editor/Collaborate/Assets/Icons/show-dark.png similarity index 100% rename from Editor/Assets/Icons/show-dark.png rename to Editor/Collaborate/Assets/Icons/show-dark.png diff --git a/Editor/Assets/Icons/show-dark.png.meta b/Editor/Collaborate/Assets/Icons/show-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/show-dark.png.meta rename to Editor/Collaborate/Assets/Icons/show-dark.png.meta diff --git a/Editor/Assets/Icons/show-dark@2x.png b/Editor/Collaborate/Assets/Icons/show-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/show-dark@2x.png rename to Editor/Collaborate/Assets/Icons/show-dark@2x.png diff --git a/Editor/Assets/Icons/show-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/show-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/show-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/show-dark@2x.png.meta diff --git a/Editor/Assets/Icons/show-light.png b/Editor/Collaborate/Assets/Icons/show-light.png similarity index 100% rename from Editor/Assets/Icons/show-light.png rename to Editor/Collaborate/Assets/Icons/show-light.png diff --git a/Editor/Assets/Icons/show-light.png.meta b/Editor/Collaborate/Assets/Icons/show-light.png.meta similarity index 100% rename from Editor/Assets/Icons/show-light.png.meta rename to Editor/Collaborate/Assets/Icons/show-light.png.meta diff --git a/Editor/Assets/Icons/show-light@2x.png b/Editor/Collaborate/Assets/Icons/show-light@2x.png similarity index 100% rename from Editor/Assets/Icons/show-light@2x.png rename to Editor/Collaborate/Assets/Icons/show-light@2x.png diff --git a/Editor/Assets/Icons/show-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/show-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/show-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/show-light@2x.png.meta diff --git a/Editor/Assets/Icons/status-error-dark.png b/Editor/Collaborate/Assets/Icons/status-error-dark.png similarity index 100% rename from Editor/Assets/Icons/status-error-dark.png rename to Editor/Collaborate/Assets/Icons/status-error-dark.png diff --git a/Editor/Assets/Icons/status-error-dark.png.meta b/Editor/Collaborate/Assets/Icons/status-error-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/status-error-dark.png.meta rename to Editor/Collaborate/Assets/Icons/status-error-dark.png.meta diff --git a/Editor/Assets/Icons/status-error-dark@2x.png b/Editor/Collaborate/Assets/Icons/status-error-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/status-error-dark@2x.png rename to Editor/Collaborate/Assets/Icons/status-error-dark@2x.png diff --git a/Editor/Assets/Icons/status-error-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-error-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-error-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-error-dark@2x.png.meta diff --git a/Editor/Assets/Icons/status-error-light.png b/Editor/Collaborate/Assets/Icons/status-error-light.png similarity index 100% rename from Editor/Assets/Icons/status-error-light.png rename to Editor/Collaborate/Assets/Icons/status-error-light.png diff --git a/Editor/Assets/Icons/status-error-light.png.meta b/Editor/Collaborate/Assets/Icons/status-error-light.png.meta similarity index 100% rename from Editor/Assets/Icons/status-error-light.png.meta rename to Editor/Collaborate/Assets/Icons/status-error-light.png.meta diff --git a/Editor/Assets/Icons/status-error-light@2x.png b/Editor/Collaborate/Assets/Icons/status-error-light@2x.png similarity index 100% rename from Editor/Assets/Icons/status-error-light@2x.png rename to Editor/Collaborate/Assets/Icons/status-error-light@2x.png diff --git a/Editor/Assets/Icons/status-error-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-error-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-error-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-error-light@2x.png.meta diff --git a/Editor/Assets/Icons/status-info-dark.png b/Editor/Collaborate/Assets/Icons/status-info-dark.png similarity index 100% rename from Editor/Assets/Icons/status-info-dark.png rename to Editor/Collaborate/Assets/Icons/status-info-dark.png diff --git a/Editor/Assets/Icons/status-info-dark.png.meta b/Editor/Collaborate/Assets/Icons/status-info-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/status-info-dark.png.meta rename to Editor/Collaborate/Assets/Icons/status-info-dark.png.meta diff --git a/Editor/Assets/Icons/status-info-dark@2x.png b/Editor/Collaborate/Assets/Icons/status-info-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/status-info-dark@2x.png rename to Editor/Collaborate/Assets/Icons/status-info-dark@2x.png diff --git a/Editor/Assets/Icons/status-info-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-info-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-info-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-info-dark@2x.png.meta diff --git a/Editor/Assets/Icons/status-info-light.png b/Editor/Collaborate/Assets/Icons/status-info-light.png similarity index 100% rename from Editor/Assets/Icons/status-info-light.png rename to Editor/Collaborate/Assets/Icons/status-info-light.png diff --git a/Editor/Assets/Icons/status-info-light.png.meta b/Editor/Collaborate/Assets/Icons/status-info-light.png.meta similarity index 100% rename from Editor/Assets/Icons/status-info-light.png.meta rename to Editor/Collaborate/Assets/Icons/status-info-light.png.meta diff --git a/Editor/Assets/Icons/status-info-light@2x.png b/Editor/Collaborate/Assets/Icons/status-info-light@2x.png similarity index 100% rename from Editor/Assets/Icons/status-info-light@2x.png rename to Editor/Collaborate/Assets/Icons/status-info-light@2x.png diff --git a/Editor/Assets/Icons/status-info-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-info-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-info-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-info-light@2x.png.meta diff --git a/Editor/Assets/Icons/status-warning-dark.png b/Editor/Collaborate/Assets/Icons/status-warning-dark.png similarity index 100% rename from Editor/Assets/Icons/status-warning-dark.png rename to Editor/Collaborate/Assets/Icons/status-warning-dark.png diff --git a/Editor/Assets/Icons/status-warning-dark.png.meta b/Editor/Collaborate/Assets/Icons/status-warning-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/status-warning-dark.png.meta rename to Editor/Collaborate/Assets/Icons/status-warning-dark.png.meta diff --git a/Editor/Assets/Icons/status-warning-dark@2x.png b/Editor/Collaborate/Assets/Icons/status-warning-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/status-warning-dark@2x.png rename to Editor/Collaborate/Assets/Icons/status-warning-dark@2x.png diff --git a/Editor/Assets/Icons/status-warning-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-warning-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-warning-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-warning-dark@2x.png.meta diff --git a/Editor/Assets/Icons/status-warning-light.png b/Editor/Collaborate/Assets/Icons/status-warning-light.png similarity index 100% rename from Editor/Assets/Icons/status-warning-light.png rename to Editor/Collaborate/Assets/Icons/status-warning-light.png diff --git a/Editor/Assets/Icons/status-warning-light.png.meta b/Editor/Collaborate/Assets/Icons/status-warning-light.png.meta similarity index 100% rename from Editor/Assets/Icons/status-warning-light.png.meta rename to Editor/Collaborate/Assets/Icons/status-warning-light.png.meta diff --git a/Editor/Assets/Icons/status-warning-light@2x.png b/Editor/Collaborate/Assets/Icons/status-warning-light@2x.png similarity index 100% rename from Editor/Assets/Icons/status-warning-light@2x.png rename to Editor/Collaborate/Assets/Icons/status-warning-light@2x.png diff --git a/Editor/Assets/Icons/status-warning-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/status-warning-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/status-warning-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/status-warning-light@2x.png.meta diff --git a/Editor/Assets/Icons/undo-dark.png b/Editor/Collaborate/Assets/Icons/undo-dark.png similarity index 100% rename from Editor/Assets/Icons/undo-dark.png rename to Editor/Collaborate/Assets/Icons/undo-dark.png diff --git a/Editor/Assets/Icons/undo-dark.png.meta b/Editor/Collaborate/Assets/Icons/undo-dark.png.meta similarity index 100% rename from Editor/Assets/Icons/undo-dark.png.meta rename to Editor/Collaborate/Assets/Icons/undo-dark.png.meta diff --git a/Editor/Assets/Icons/undo-dark@2x.png b/Editor/Collaborate/Assets/Icons/undo-dark@2x.png similarity index 100% rename from Editor/Assets/Icons/undo-dark@2x.png rename to Editor/Collaborate/Assets/Icons/undo-dark@2x.png diff --git a/Editor/Assets/Icons/undo-dark@2x.png.meta b/Editor/Collaborate/Assets/Icons/undo-dark@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/undo-dark@2x.png.meta rename to Editor/Collaborate/Assets/Icons/undo-dark@2x.png.meta diff --git a/Editor/Assets/Icons/undo-light.png b/Editor/Collaborate/Assets/Icons/undo-light.png similarity index 100% rename from Editor/Assets/Icons/undo-light.png rename to Editor/Collaborate/Assets/Icons/undo-light.png diff --git a/Editor/Assets/Icons/undo-light.png.meta b/Editor/Collaborate/Assets/Icons/undo-light.png.meta similarity index 100% rename from Editor/Assets/Icons/undo-light.png.meta rename to Editor/Collaborate/Assets/Icons/undo-light.png.meta diff --git a/Editor/Assets/Icons/undo-light@2x.png b/Editor/Collaborate/Assets/Icons/undo-light@2x.png similarity index 100% rename from Editor/Assets/Icons/undo-light@2x.png rename to Editor/Collaborate/Assets/Icons/undo-light@2x.png diff --git a/Editor/Assets/Icons/undo-light@2x.png.meta b/Editor/Collaborate/Assets/Icons/undo-light@2x.png.meta similarity index 100% rename from Editor/Assets/Icons/undo-light@2x.png.meta rename to Editor/Collaborate/Assets/Icons/undo-light@2x.png.meta diff --git a/Editor/Assets/Layouts.meta b/Editor/Collaborate/Assets/Layouts.meta similarity index 100% rename from Editor/Assets/Layouts.meta rename to Editor/Collaborate/Assets/Layouts.meta diff --git a/Editor/Assets/Layouts/AlertBox.uxml b/Editor/Collaborate/Assets/Layouts/AlertBox.uxml similarity index 100% rename from Editor/Assets/Layouts/AlertBox.uxml rename to Editor/Collaborate/Assets/Layouts/AlertBox.uxml diff --git a/Editor/Assets/Layouts/AlertBox.uxml.meta b/Editor/Collaborate/Assets/Layouts/AlertBox.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/AlertBox.uxml.meta rename to Editor/Collaborate/Assets/Layouts/AlertBox.uxml.meta diff --git a/Editor/Assets/Layouts/BaseChangeListElement.uxml b/Editor/Collaborate/Assets/Layouts/BaseChangeListElement.uxml similarity index 100% rename from Editor/Assets/Layouts/BaseChangeListElement.uxml rename to Editor/Collaborate/Assets/Layouts/BaseChangeListElement.uxml diff --git a/Editor/Assets/Layouts/BaseChangeListElement.uxml.meta b/Editor/Collaborate/Assets/Layouts/BaseChangeListElement.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/BaseChangeListElement.uxml.meta rename to Editor/Collaborate/Assets/Layouts/BaseChangeListElement.uxml.meta diff --git a/Editor/Assets/Layouts/ChangesGroupHeader.uxml b/Editor/Collaborate/Assets/Layouts/ChangesGroupHeader.uxml similarity index 100% rename from Editor/Assets/Layouts/ChangesGroupHeader.uxml rename to Editor/Collaborate/Assets/Layouts/ChangesGroupHeader.uxml diff --git a/Editor/Assets/Layouts/ChangesGroupHeader.uxml.meta b/Editor/Collaborate/Assets/Layouts/ChangesGroupHeader.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/ChangesGroupHeader.uxml.meta rename to Editor/Collaborate/Assets/Layouts/ChangesGroupHeader.uxml.meta diff --git a/Editor/Assets/Layouts/ChangesTabPageView.uxml b/Editor/Collaborate/Assets/Layouts/ChangesTabPageView.uxml similarity index 100% rename from Editor/Assets/Layouts/ChangesTabPageView.uxml rename to Editor/Collaborate/Assets/Layouts/ChangesTabPageView.uxml diff --git a/Editor/Assets/Layouts/ChangesTabPageView.uxml.meta b/Editor/Collaborate/Assets/Layouts/ChangesTabPageView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/ChangesTabPageView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/ChangesTabPageView.uxml.meta diff --git a/Editor/Assets/Layouts/ErrorPageView.uxml b/Editor/Collaborate/Assets/Layouts/ErrorPageView.uxml similarity index 100% rename from Editor/Assets/Layouts/ErrorPageView.uxml rename to Editor/Collaborate/Assets/Layouts/ErrorPageView.uxml diff --git a/Editor/Assets/Layouts/ErrorPageView.uxml.meta b/Editor/Collaborate/Assets/Layouts/ErrorPageView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/ErrorPageView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/ErrorPageView.uxml.meta diff --git a/Editor/Assets/Layouts/HistoryEntryComponent.uxml b/Editor/Collaborate/Assets/Layouts/HistoryEntryComponent.uxml similarity index 100% rename from Editor/Assets/Layouts/HistoryEntryComponent.uxml rename to Editor/Collaborate/Assets/Layouts/HistoryEntryComponent.uxml diff --git a/Editor/Assets/Layouts/HistoryEntryComponent.uxml.meta b/Editor/Collaborate/Assets/Layouts/HistoryEntryComponent.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/HistoryEntryComponent.uxml.meta rename to Editor/Collaborate/Assets/Layouts/HistoryEntryComponent.uxml.meta diff --git a/Editor/Assets/Layouts/HistoryTabPageView.uxml b/Editor/Collaborate/Assets/Layouts/HistoryTabPageView.uxml similarity index 100% rename from Editor/Assets/Layouts/HistoryTabPageView.uxml rename to Editor/Collaborate/Assets/Layouts/HistoryTabPageView.uxml diff --git a/Editor/Assets/Layouts/HistoryTabPageView.uxml.meta b/Editor/Collaborate/Assets/Layouts/HistoryTabPageView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/HistoryTabPageView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/HistoryTabPageView.uxml.meta diff --git a/Editor/Assets/Layouts/ListNotice.uxml b/Editor/Collaborate/Assets/Layouts/ListNotice.uxml similarity index 100% rename from Editor/Assets/Layouts/ListNotice.uxml rename to Editor/Collaborate/Assets/Layouts/ListNotice.uxml diff --git a/Editor/Assets/Layouts/ListNotice.uxml.meta b/Editor/Collaborate/Assets/Layouts/ListNotice.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/ListNotice.uxml.meta rename to Editor/Collaborate/Assets/Layouts/ListNotice.uxml.meta diff --git a/Editor/Assets/Layouts/MainPageView.uxml b/Editor/Collaborate/Assets/Layouts/MainPageView.uxml similarity index 100% rename from Editor/Assets/Layouts/MainPageView.uxml rename to Editor/Collaborate/Assets/Layouts/MainPageView.uxml diff --git a/Editor/Assets/Layouts/MainPageView.uxml.meta b/Editor/Collaborate/Assets/Layouts/MainPageView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/MainPageView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/MainPageView.uxml.meta diff --git a/Editor/Assets/Layouts/Paginator.uxml b/Editor/Collaborate/Assets/Layouts/Paginator.uxml similarity index 100% rename from Editor/Assets/Layouts/Paginator.uxml rename to Editor/Collaborate/Assets/Layouts/Paginator.uxml diff --git a/Editor/Assets/Layouts/Paginator.uxml.meta b/Editor/Collaborate/Assets/Layouts/Paginator.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/Paginator.uxml.meta rename to Editor/Collaborate/Assets/Layouts/Paginator.uxml.meta diff --git a/Editor/Assets/Layouts/ProgressView.uxml b/Editor/Collaborate/Assets/Layouts/ProgressView.uxml similarity index 100% rename from Editor/Assets/Layouts/ProgressView.uxml rename to Editor/Collaborate/Assets/Layouts/ProgressView.uxml diff --git a/Editor/Assets/Layouts/ProgressView.uxml.meta b/Editor/Collaborate/Assets/Layouts/ProgressView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/ProgressView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/ProgressView.uxml.meta diff --git a/Editor/Assets/Layouts/StartPageView.uxml b/Editor/Collaborate/Assets/Layouts/StartPageView.uxml similarity index 100% rename from Editor/Assets/Layouts/StartPageView.uxml rename to Editor/Collaborate/Assets/Layouts/StartPageView.uxml diff --git a/Editor/Assets/Layouts/StartPageView.uxml.meta b/Editor/Collaborate/Assets/Layouts/StartPageView.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/StartPageView.uxml.meta rename to Editor/Collaborate/Assets/Layouts/StartPageView.uxml.meta diff --git a/Editor/Assets/Layouts/TopBar.uxml b/Editor/Collaborate/Assets/Layouts/TopBar.uxml similarity index 100% rename from Editor/Assets/Layouts/TopBar.uxml rename to Editor/Collaborate/Assets/Layouts/TopBar.uxml diff --git a/Editor/Assets/Layouts/TopBar.uxml.meta b/Editor/Collaborate/Assets/Layouts/TopBar.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/TopBar.uxml.meta rename to Editor/Collaborate/Assets/Layouts/TopBar.uxml.meta diff --git a/Editor/Assets/Layouts/main-window.uxml b/Editor/Collaborate/Assets/Layouts/main-window.uxml similarity index 100% rename from Editor/Assets/Layouts/main-window.uxml rename to Editor/Collaborate/Assets/Layouts/main-window.uxml diff --git a/Editor/Assets/Layouts/main-window.uxml.meta b/Editor/Collaborate/Assets/Layouts/main-window.uxml.meta similarity index 100% rename from Editor/Assets/Layouts/main-window.uxml.meta rename to Editor/Collaborate/Assets/Layouts/main-window.uxml.meta diff --git a/Editor/Assets/README.md b/Editor/Collaborate/Assets/README.md similarity index 100% rename from Editor/Assets/README.md rename to Editor/Collaborate/Assets/README.md diff --git a/Editor/Assets/README.md.meta b/Editor/Collaborate/Assets/README.md.meta similarity index 100% rename from Editor/Assets/README.md.meta rename to Editor/Collaborate/Assets/README.md.meta diff --git a/Editor/Assets/StringAssets.cs b/Editor/Collaborate/Assets/StringAssets.cs similarity index 100% rename from Editor/Assets/StringAssets.cs rename to Editor/Collaborate/Assets/StringAssets.cs diff --git a/Editor/Assets/StringAssets.cs.meta b/Editor/Collaborate/Assets/StringAssets.cs.meta similarity index 100% rename from Editor/Assets/StringAssets.cs.meta rename to Editor/Collaborate/Assets/StringAssets.cs.meta diff --git a/Editor/Assets/Styles.meta b/Editor/Collaborate/Assets/Styles.meta similarity index 100% rename from Editor/Assets/Styles.meta rename to Editor/Collaborate/Assets/Styles.meta diff --git a/Editor/Assets/Styles/AlertBox.uss b/Editor/Collaborate/Assets/Styles/AlertBox.uss similarity index 75% rename from Editor/Assets/Styles/AlertBox.uss rename to Editor/Collaborate/Assets/Styles/AlertBox.uss index d28c00c..1b6eb01 100644 --- a/Editor/Assets/Styles/AlertBox.uss +++ b/Editor/Collaborate/Assets/Styles/AlertBox.uss @@ -28,25 +28,25 @@ } .dark .alert-box__icon.icon-info { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-info-dark.png"); } .light .alert-box__icon.icon-info { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-info-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-info-light.png"); } .dark .alert-box__icon.icon-warning { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-warning-dark.png"); } .light .alert-box__icon.icon-warning { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-warning-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-warning-light.png"); } .dark .alert-box__icon.icon-alert { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-error-dark.png"); } .light .alert-box__icon.icon-alert { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/status-error-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/status-error-light.png"); } diff --git a/Editor/Assets/Styles/AlertBox.uss.meta b/Editor/Collaborate/Assets/Styles/AlertBox.uss.meta similarity index 100% rename from Editor/Assets/Styles/AlertBox.uss.meta rename to Editor/Collaborate/Assets/Styles/AlertBox.uss.meta diff --git a/Editor/Assets/Styles/BaseChangeListElement.uss b/Editor/Collaborate/Assets/Styles/BaseChangeListElement.uss similarity index 81% rename from Editor/Assets/Styles/BaseChangeListElement.uss rename to Editor/Collaborate/Assets/Styles/BaseChangeListElement.uss index 21baea5..f54996a 100644 --- a/Editor/Assets/Styles/BaseChangeListElement.uss +++ b/Editor/Collaborate/Assets/Styles/BaseChangeListElement.uss @@ -60,41 +60,41 @@ /* File status icons */ .dark .base-change-list-element__icon.added { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/added-file-dark.png"); } .light .base-change-list-element__icon.added { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/added-file-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/added-file-light.png"); } .dark .base-change-list-element__icon.moved { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/moved-file-dark.png"); } .light .base-change-list-element__icon.moved { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/moved-file-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/moved-file-light.png"); } .dark .base-change-list-element__icon.edited { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/edited-file-dark.png"); } .light .base-change-list-element__icon.edited { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/edited-file-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/edited-file-light.png"); } .dark .base-change-list-element__icon.deleted { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/deleted-file-dark.png"); } .light .base-change-list-element__icon.deleted { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/deleted-file-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/deleted-file-light.png"); } .dark .base-change-list-element__icon.conflicted { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/conflicted-file-dark.png"); } .light .base-change-list-element__icon.conflicted { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/conflicted-file-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/conflicted-file-light.png"); } diff --git a/Editor/Assets/Styles/BaseChangeListElement.uss.meta b/Editor/Collaborate/Assets/Styles/BaseChangeListElement.uss.meta similarity index 100% rename from Editor/Assets/Styles/BaseChangeListElement.uss.meta rename to Editor/Collaborate/Assets/Styles/BaseChangeListElement.uss.meta diff --git a/Editor/Assets/Styles/BetterTextField.uss b/Editor/Collaborate/Assets/Styles/BetterTextField.uss similarity index 100% rename from Editor/Assets/Styles/BetterTextField.uss rename to Editor/Collaborate/Assets/Styles/BetterTextField.uss diff --git a/Editor/Assets/Styles/BetterTextField.uss.meta b/Editor/Collaborate/Assets/Styles/BetterTextField.uss.meta similarity index 100% rename from Editor/Assets/Styles/BetterTextField.uss.meta rename to Editor/Collaborate/Assets/Styles/BetterTextField.uss.meta diff --git a/Editor/Assets/Styles/ChangesGroupHeader.uss b/Editor/Collaborate/Assets/Styles/ChangesGroupHeader.uss similarity index 100% rename from Editor/Assets/Styles/ChangesGroupHeader.uss rename to Editor/Collaborate/Assets/Styles/ChangesGroupHeader.uss diff --git a/Editor/Assets/Styles/ChangesGroupHeader.uss.meta b/Editor/Collaborate/Assets/Styles/ChangesGroupHeader.uss.meta similarity index 100% rename from Editor/Assets/Styles/ChangesGroupHeader.uss.meta rename to Editor/Collaborate/Assets/Styles/ChangesGroupHeader.uss.meta diff --git a/Editor/Assets/Styles/ChangesTabPageView.uss b/Editor/Collaborate/Assets/Styles/ChangesTabPageView.uss similarity index 100% rename from Editor/Assets/Styles/ChangesTabPageView.uss rename to Editor/Collaborate/Assets/Styles/ChangesTabPageView.uss diff --git a/Editor/Assets/Styles/ChangesTabPageView.uss.meta b/Editor/Collaborate/Assets/Styles/ChangesTabPageView.uss.meta similarity index 100% rename from Editor/Assets/Styles/ChangesTabPageView.uss.meta rename to Editor/Collaborate/Assets/Styles/ChangesTabPageView.uss.meta diff --git a/Editor/Assets/Styles/FloatingDialogue.uss b/Editor/Collaborate/Assets/Styles/FloatingDialogue.uss similarity index 100% rename from Editor/Assets/Styles/FloatingDialogue.uss rename to Editor/Collaborate/Assets/Styles/FloatingDialogue.uss diff --git a/Editor/Assets/Styles/FloatingDialogue.uss.meta b/Editor/Collaborate/Assets/Styles/FloatingDialogue.uss.meta similarity index 100% rename from Editor/Assets/Styles/FloatingDialogue.uss.meta rename to Editor/Collaborate/Assets/Styles/FloatingDialogue.uss.meta diff --git a/Editor/Assets/Styles/FloatingMenu.uss b/Editor/Collaborate/Assets/Styles/FloatingMenu.uss similarity index 100% rename from Editor/Assets/Styles/FloatingMenu.uss rename to Editor/Collaborate/Assets/Styles/FloatingMenu.uss diff --git a/Editor/Assets/Styles/FloatingMenu.uss.meta b/Editor/Collaborate/Assets/Styles/FloatingMenu.uss.meta similarity index 100% rename from Editor/Assets/Styles/FloatingMenu.uss.meta rename to Editor/Collaborate/Assets/Styles/FloatingMenu.uss.meta diff --git a/Editor/Assets/Styles/FloatingMenuItem.uss b/Editor/Collaborate/Assets/Styles/FloatingMenuItem.uss similarity index 100% rename from Editor/Assets/Styles/FloatingMenuItem.uss rename to Editor/Collaborate/Assets/Styles/FloatingMenuItem.uss diff --git a/Editor/Assets/Styles/FloatingMenuItem.uss.meta b/Editor/Collaborate/Assets/Styles/FloatingMenuItem.uss.meta similarity index 100% rename from Editor/Assets/Styles/FloatingMenuItem.uss.meta rename to Editor/Collaborate/Assets/Styles/FloatingMenuItem.uss.meta diff --git a/Editor/Assets/Styles/HistoryEntryComponent.uss b/Editor/Collaborate/Assets/Styles/HistoryEntryComponent.uss similarity index 100% rename from Editor/Assets/Styles/HistoryEntryComponent.uss rename to Editor/Collaborate/Assets/Styles/HistoryEntryComponent.uss diff --git a/Editor/Assets/Styles/HistoryEntryComponent.uss.meta b/Editor/Collaborate/Assets/Styles/HistoryEntryComponent.uss.meta similarity index 100% rename from Editor/Assets/Styles/HistoryEntryComponent.uss.meta rename to Editor/Collaborate/Assets/Styles/HistoryEntryComponent.uss.meta diff --git a/Editor/Assets/Styles/IconButton.uss b/Editor/Collaborate/Assets/Styles/IconButton.uss similarity index 73% rename from Editor/Assets/Styles/IconButton.uss rename to Editor/Collaborate/Assets/Styles/IconButton.uss index f3b0e41..9a8e2f9 100644 --- a/Editor/Assets/Styles/IconButton.uss +++ b/Editor/Collaborate/Assets/Styles/IconButton.uss @@ -9,75 +9,75 @@ } .dark .unity-icon-button.btn-overflow { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/more-vert-dark.png"); } .light .unity-icon-button.btn-overflow { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/more-vert-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/more-vert-light.png"); } .dark .unity-icon-button.btn-undo { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/undo-dark.png"); } .light .unity-icon-button.btn-undo { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/undo-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/undo-light.png"); } .dark .unity-icon-button.btn-revert { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/revert-asset-dark.png"); } .light .unity-icon-button.btn-revert { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/revert-asset-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/revert-asset-light.png"); } .dark .unity-icon-button.btn-back { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/back-dark.png"); } .light .unity-icon-button.btn-back { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/back-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/back-light.png"); } .dark .unity-icon-button.btn-show { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/show-dark.png"); } .light .unity-icon-button.btn-show { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/show-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/show-light.png"); } .dark .unity-icon-button.btn-merge { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/merge-dark.png"); } .light .unity-icon-button.btn-merge { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/merge-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/merge-light.png"); } .dark .unity-icon-button.btn-choose-remote { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/choose-remote-dark.png"); } .light .unity-icon-button.btn-choose-remote { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-remote-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/choose-remote-light.png"); } .dark .unity-icon-button.btn-choose-mine { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/choose-mine-dark.png"); } .light .unity-icon-button.btn-choose-mine { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/choose-mine-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/choose-mine-light.png"); } .dark .unity-icon-button.btn-diff { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/diff-dark.png"); } .light .unity-icon-button.btn-diff { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/diff-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/diff-light.png"); } .dark .unity-icon-button:focus { diff --git a/Editor/Assets/Styles/IconButton.uss.meta b/Editor/Collaborate/Assets/Styles/IconButton.uss.meta similarity index 100% rename from Editor/Assets/Styles/IconButton.uss.meta rename to Editor/Collaborate/Assets/Styles/IconButton.uss.meta diff --git a/Editor/Assets/Styles/IconTextButton.uss b/Editor/Collaborate/Assets/Styles/IconTextButton.uss similarity index 82% rename from Editor/Assets/Styles/IconTextButton.uss rename to Editor/Collaborate/Assets/Styles/IconTextButton.uss index ffc1f9f..6c55bcc 100644 --- a/Editor/Assets/Styles/IconTextButton.uss +++ b/Editor/Collaborate/Assets/Styles/IconTextButton.uss @@ -11,9 +11,9 @@ } .light .unity-icon-text-button.icon-publish .unity-icon-text-button__image { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/publish-light.png"); } .dark .unity-icon-text-button.icon-publish .unity-icon-text-button__image { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/publish-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/publish-dark.png"); } diff --git a/Editor/Assets/Styles/IconTextButton.uss.meta b/Editor/Collaborate/Assets/Styles/IconTextButton.uss.meta similarity index 100% rename from Editor/Assets/Styles/IconTextButton.uss.meta rename to Editor/Collaborate/Assets/Styles/IconTextButton.uss.meta diff --git a/Editor/Assets/Styles/ListNotice.uss b/Editor/Collaborate/Assets/Styles/ListNotice.uss similarity index 100% rename from Editor/Assets/Styles/ListNotice.uss rename to Editor/Collaborate/Assets/Styles/ListNotice.uss diff --git a/Editor/Assets/Styles/ListNotice.uss.meta b/Editor/Collaborate/Assets/Styles/ListNotice.uss.meta similarity index 100% rename from Editor/Assets/Styles/ListNotice.uss.meta rename to Editor/Collaborate/Assets/Styles/ListNotice.uss.meta diff --git a/Editor/Assets/Styles/MainPageView.uss b/Editor/Collaborate/Assets/Styles/MainPageView.uss similarity index 100% rename from Editor/Assets/Styles/MainPageView.uss rename to Editor/Collaborate/Assets/Styles/MainPageView.uss diff --git a/Editor/Assets/Styles/MainPageView.uss.meta b/Editor/Collaborate/Assets/Styles/MainPageView.uss.meta similarity index 100% rename from Editor/Assets/Styles/MainPageView.uss.meta rename to Editor/Collaborate/Assets/Styles/MainPageView.uss.meta diff --git a/Editor/Assets/Styles/Paginator.uss b/Editor/Collaborate/Assets/Styles/Paginator.uss similarity index 100% rename from Editor/Assets/Styles/Paginator.uss rename to Editor/Collaborate/Assets/Styles/Paginator.uss diff --git a/Editor/Assets/Styles/Paginator.uss.meta b/Editor/Collaborate/Assets/Styles/Paginator.uss.meta similarity index 100% rename from Editor/Assets/Styles/Paginator.uss.meta rename to Editor/Collaborate/Assets/Styles/Paginator.uss.meta diff --git a/Editor/Assets/Styles/ProgressView.uss b/Editor/Collaborate/Assets/Styles/ProgressView.uss similarity index 100% rename from Editor/Assets/Styles/ProgressView.uss rename to Editor/Collaborate/Assets/Styles/ProgressView.uss diff --git a/Editor/Assets/Styles/ProgressView.uss.meta b/Editor/Collaborate/Assets/Styles/ProgressView.uss.meta similarity index 100% rename from Editor/Assets/Styles/ProgressView.uss.meta rename to Editor/Collaborate/Assets/Styles/ProgressView.uss.meta diff --git a/Editor/Assets/Styles/SearchBar.uss b/Editor/Collaborate/Assets/Styles/SearchBar.uss similarity index 88% rename from Editor/Assets/Styles/SearchBar.uss rename to Editor/Collaborate/Assets/Styles/SearchBar.uss index 3668c16..a3e95d5 100644 --- a/Editor/Assets/Styles/SearchBar.uss +++ b/Editor/Collaborate/Assets/Styles/SearchBar.uss @@ -26,11 +26,11 @@ } .dark .unity-search-bar__search-field #unity-search { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/search-dark.png"); } .light .unity-search-bar__search-field #unity-search { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/search-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/search-light.png"); } .unity-search-bar__search-field #unity-cancel { @@ -41,11 +41,11 @@ } .dark .unity-search-bar__search-field #unity-cancel { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/clear-dark.png"); } .light .unity-search-bar__search-field #unity-cancel { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/clear-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/clear-light.png"); } .unity-search-bar__search-field #unity-cancel.unity-search-field-base__cancel-button--off { diff --git a/Editor/Assets/Styles/SearchBar.uss.meta b/Editor/Collaborate/Assets/Styles/SearchBar.uss.meta similarity index 100% rename from Editor/Assets/Styles/SearchBar.uss.meta rename to Editor/Collaborate/Assets/Styles/SearchBar.uss.meta diff --git a/Editor/Assets/Styles/StartPageView.uss b/Editor/Collaborate/Assets/Styles/StartPageView.uss similarity index 100% rename from Editor/Assets/Styles/StartPageView.uss rename to Editor/Collaborate/Assets/Styles/StartPageView.uss diff --git a/Editor/Assets/Styles/StartPageView.uss.meta b/Editor/Collaborate/Assets/Styles/StartPageView.uss.meta similarity index 100% rename from Editor/Assets/Styles/StartPageView.uss.meta rename to Editor/Collaborate/Assets/Styles/StartPageView.uss.meta diff --git a/Editor/Assets/Styles/TabView.uss b/Editor/Collaborate/Assets/Styles/TabView.uss similarity index 100% rename from Editor/Assets/Styles/TabView.uss rename to Editor/Collaborate/Assets/Styles/TabView.uss diff --git a/Editor/Assets/Styles/TabView.uss.meta b/Editor/Collaborate/Assets/Styles/TabView.uss.meta similarity index 100% rename from Editor/Assets/Styles/TabView.uss.meta rename to Editor/Collaborate/Assets/Styles/TabView.uss.meta diff --git a/Editor/Assets/Styles/TextButton.uss b/Editor/Collaborate/Assets/Styles/TextButton.uss similarity index 100% rename from Editor/Assets/Styles/TextButton.uss rename to Editor/Collaborate/Assets/Styles/TextButton.uss diff --git a/Editor/Assets/Styles/TextButton.uss.meta b/Editor/Collaborate/Assets/Styles/TextButton.uss.meta similarity index 100% rename from Editor/Assets/Styles/TextButton.uss.meta rename to Editor/Collaborate/Assets/Styles/TextButton.uss.meta diff --git a/Editor/Assets/Styles/ToggleableChangeListElement.uss b/Editor/Collaborate/Assets/Styles/ToggleableChangeListElement.uss similarity index 100% rename from Editor/Assets/Styles/ToggleableChangeListElement.uss rename to Editor/Collaborate/Assets/Styles/ToggleableChangeListElement.uss diff --git a/Editor/Assets/Styles/ToggleableChangeListElement.uss.meta b/Editor/Collaborate/Assets/Styles/ToggleableChangeListElement.uss.meta similarity index 100% rename from Editor/Assets/Styles/ToggleableChangeListElement.uss.meta rename to Editor/Collaborate/Assets/Styles/ToggleableChangeListElement.uss.meta diff --git a/Editor/Assets/Styles/TopBar.uss b/Editor/Collaborate/Assets/Styles/TopBar.uss similarity index 84% rename from Editor/Assets/Styles/TopBar.uss rename to Editor/Collaborate/Assets/Styles/TopBar.uss index f0608a8..07b5f05 100644 --- a/Editor/Assets/Styles/TopBar.uss +++ b/Editor/Collaborate/Assets/Styles/TopBar.uss @@ -28,9 +28,9 @@ } .dark .top-bar__icon { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-dark.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/collaborate-dark.png"); } .light .top-bar__icon { - background-image: resource("Packages/com.unity.collab-proxy/Editor/Assets/Icons/collaborate-light.png"); + background-image: resource("Packages/com.unity.collab-proxy/Editor/Collaborate/Assets/Icons/collaborate-light.png"); } diff --git a/Editor/Assets/Styles/TopBar.uss.meta b/Editor/Collaborate/Assets/Styles/TopBar.uss.meta similarity index 100% rename from Editor/Assets/Styles/TopBar.uss.meta rename to Editor/Collaborate/Assets/Styles/TopBar.uss.meta diff --git a/Editor/Assets/Styles/styles.uss b/Editor/Collaborate/Assets/Styles/styles.uss similarity index 100% rename from Editor/Assets/Styles/styles.uss rename to Editor/Collaborate/Assets/Styles/styles.uss diff --git a/Editor/Assets/Styles/styles.uss.meta b/Editor/Collaborate/Assets/Styles/styles.uss.meta similarity index 100% rename from Editor/Assets/Styles/styles.uss.meta rename to Editor/Collaborate/Assets/Styles/styles.uss.meta diff --git a/Editor/Assets/UiConstants.cs b/Editor/Collaborate/Assets/UiConstants.cs similarity index 100% rename from Editor/Assets/UiConstants.cs rename to Editor/Collaborate/Assets/UiConstants.cs diff --git a/Editor/Assets/UiConstants.cs.meta b/Editor/Collaborate/Assets/UiConstants.cs.meta similarity index 100% rename from Editor/Assets/UiConstants.cs.meta rename to Editor/Collaborate/Assets/UiConstants.cs.meta diff --git a/Editor/Common.meta b/Editor/Collaborate/Common.meta similarity index 100% rename from Editor/Common.meta rename to Editor/Collaborate/Common.meta diff --git a/Editor/Common/ArrayContainer.cs b/Editor/Collaborate/Common/ArrayContainer.cs similarity index 100% rename from Editor/Common/ArrayContainer.cs rename to Editor/Collaborate/Common/ArrayContainer.cs diff --git a/Editor/Common/ArrayContainer.cs.meta b/Editor/Collaborate/Common/ArrayContainer.cs.meta similarity index 100% rename from Editor/Common/ArrayContainer.cs.meta rename to Editor/Collaborate/Common/ArrayContainer.cs.meta diff --git a/Editor/Common/LocationAttribute.cs b/Editor/Collaborate/Common/LocationAttribute.cs similarity index 100% rename from Editor/Common/LocationAttribute.cs rename to Editor/Collaborate/Common/LocationAttribute.cs diff --git a/Editor/Common/LocationAttribute.cs.meta b/Editor/Collaborate/Common/LocationAttribute.cs.meta similarity index 100% rename from Editor/Common/LocationAttribute.cs.meta rename to Editor/Collaborate/Common/LocationAttribute.cs.meta diff --git a/Editor/Common/README.md b/Editor/Collaborate/Common/README.md similarity index 100% rename from Editor/Common/README.md rename to Editor/Collaborate/Common/README.md diff --git a/Editor/Common/README.md.meta b/Editor/Collaborate/Common/README.md.meta similarity index 100% rename from Editor/Common/README.md.meta rename to Editor/Collaborate/Common/README.md.meta diff --git a/Editor/Common/ScriptableObjectSingleton.cs b/Editor/Collaborate/Common/ScriptableObjectSingleton.cs similarity index 100% rename from Editor/Common/ScriptableObjectSingleton.cs rename to Editor/Collaborate/Common/ScriptableObjectSingleton.cs diff --git a/Editor/Common/ScriptableObjectSingleton.cs.meta b/Editor/Collaborate/Common/ScriptableObjectSingleton.cs.meta similarity index 100% rename from Editor/Common/ScriptableObjectSingleton.cs.meta rename to Editor/Collaborate/Common/ScriptableObjectSingleton.cs.meta diff --git a/Editor/Common/SerializableDictionary.cs b/Editor/Collaborate/Common/SerializableDictionary.cs similarity index 100% rename from Editor/Common/SerializableDictionary.cs rename to Editor/Collaborate/Common/SerializableDictionary.cs diff --git a/Editor/Common/SerializableDictionary.cs.meta b/Editor/Collaborate/Common/SerializableDictionary.cs.meta similarity index 100% rename from Editor/Common/SerializableDictionary.cs.meta rename to Editor/Collaborate/Common/SerializableDictionary.cs.meta diff --git a/Editor/Common/StringArrayContainer.cs b/Editor/Collaborate/Common/StringArrayContainer.cs similarity index 100% rename from Editor/Common/StringArrayContainer.cs rename to Editor/Collaborate/Common/StringArrayContainer.cs diff --git a/Editor/Common/StringArrayContainer.cs.meta b/Editor/Collaborate/Common/StringArrayContainer.cs.meta similarity index 100% rename from Editor/Common/StringArrayContainer.cs.meta rename to Editor/Collaborate/Common/StringArrayContainer.cs.meta diff --git a/Editor/Components.meta b/Editor/Collaborate/Components.meta similarity index 100% rename from Editor/Components.meta rename to Editor/Collaborate/Components.meta diff --git a/Editor/Components/AdapterListView.cs b/Editor/Collaborate/Components/AdapterListView.cs similarity index 100% rename from Editor/Components/AdapterListView.cs rename to Editor/Collaborate/Components/AdapterListView.cs diff --git a/Editor/Components/AdapterListView.cs.meta b/Editor/Collaborate/Components/AdapterListView.cs.meta similarity index 100% rename from Editor/Components/AdapterListView.cs.meta rename to Editor/Collaborate/Components/AdapterListView.cs.meta diff --git a/Editor/Components/AlertBox.cs b/Editor/Collaborate/Components/AlertBox.cs similarity index 100% rename from Editor/Components/AlertBox.cs rename to Editor/Collaborate/Components/AlertBox.cs diff --git a/Editor/Components/AlertBox.cs.meta b/Editor/Collaborate/Components/AlertBox.cs.meta similarity index 100% rename from Editor/Components/AlertBox.cs.meta rename to Editor/Collaborate/Components/AlertBox.cs.meta diff --git a/Editor/Components/BetterTextField.cs b/Editor/Collaborate/Components/BetterTextField.cs similarity index 100% rename from Editor/Components/BetterTextField.cs rename to Editor/Collaborate/Components/BetterTextField.cs diff --git a/Editor/Components/BetterTextField.cs.meta b/Editor/Collaborate/Components/BetterTextField.cs.meta similarity index 100% rename from Editor/Components/BetterTextField.cs.meta rename to Editor/Collaborate/Components/BetterTextField.cs.meta diff --git a/Editor/Components/ChangeEntryGroup.cs b/Editor/Collaborate/Components/ChangeEntryGroup.cs similarity index 100% rename from Editor/Components/ChangeEntryGroup.cs rename to Editor/Collaborate/Components/ChangeEntryGroup.cs diff --git a/Editor/Components/ChangeEntryGroup.cs.meta b/Editor/Collaborate/Components/ChangeEntryGroup.cs.meta similarity index 100% rename from Editor/Components/ChangeEntryGroup.cs.meta rename to Editor/Collaborate/Components/ChangeEntryGroup.cs.meta diff --git a/Editor/Components/ChangeListElements.meta b/Editor/Collaborate/Components/ChangeListElements.meta similarity index 100% rename from Editor/Components/ChangeListElements.meta rename to Editor/Collaborate/Components/ChangeListElements.meta diff --git a/Editor/Components/ChangeListElements/BaseChangeListElement.cs b/Editor/Collaborate/Components/ChangeListElements/BaseChangeListElement.cs similarity index 100% rename from Editor/Components/ChangeListElements/BaseChangeListElement.cs rename to Editor/Collaborate/Components/ChangeListElements/BaseChangeListElement.cs diff --git a/Editor/Components/ChangeListElements/BaseChangeListElement.cs.meta b/Editor/Collaborate/Components/ChangeListElements/BaseChangeListElement.cs.meta similarity index 100% rename from Editor/Components/ChangeListElements/BaseChangeListElement.cs.meta rename to Editor/Collaborate/Components/ChangeListElements/BaseChangeListElement.cs.meta diff --git a/Editor/Components/ChangeListElements/ChangeListElement.cs b/Editor/Collaborate/Components/ChangeListElements/ChangeListElement.cs similarity index 100% rename from Editor/Components/ChangeListElements/ChangeListElement.cs rename to Editor/Collaborate/Components/ChangeListElements/ChangeListElement.cs diff --git a/Editor/Components/ChangeListElements/ChangeListElement.cs.meta b/Editor/Collaborate/Components/ChangeListElements/ChangeListElement.cs.meta similarity index 100% rename from Editor/Components/ChangeListElements/ChangeListElement.cs.meta rename to Editor/Collaborate/Components/ChangeListElements/ChangeListElement.cs.meta diff --git a/Editor/Components/ChangeListElements/ConflictedChangeListElement.cs b/Editor/Collaborate/Components/ChangeListElements/ConflictedChangeListElement.cs similarity index 100% rename from Editor/Components/ChangeListElements/ConflictedChangeListElement.cs rename to Editor/Collaborate/Components/ChangeListElements/ConflictedChangeListElement.cs diff --git a/Editor/Components/ChangeListElements/ConflictedChangeListElement.cs.meta b/Editor/Collaborate/Components/ChangeListElements/ConflictedChangeListElement.cs.meta similarity index 100% rename from Editor/Components/ChangeListElements/ConflictedChangeListElement.cs.meta rename to Editor/Collaborate/Components/ChangeListElements/ConflictedChangeListElement.cs.meta diff --git a/Editor/Components/ChangeListElements/HistoryChangeListElement.cs b/Editor/Collaborate/Components/ChangeListElements/HistoryChangeListElement.cs similarity index 100% rename from Editor/Components/ChangeListElements/HistoryChangeListElement.cs rename to Editor/Collaborate/Components/ChangeListElements/HistoryChangeListElement.cs diff --git a/Editor/Components/ChangeListElements/HistoryChangeListElement.cs.meta b/Editor/Collaborate/Components/ChangeListElements/HistoryChangeListElement.cs.meta similarity index 100% rename from Editor/Components/ChangeListElements/HistoryChangeListElement.cs.meta rename to Editor/Collaborate/Components/ChangeListElements/HistoryChangeListElement.cs.meta diff --git a/Editor/Components/ChangeListElements/ToggleableChangeListElement.cs b/Editor/Collaborate/Components/ChangeListElements/ToggleableChangeListElement.cs similarity index 100% rename from Editor/Components/ChangeListElements/ToggleableChangeListElement.cs rename to Editor/Collaborate/Components/ChangeListElements/ToggleableChangeListElement.cs diff --git a/Editor/Components/ChangeListElements/ToggleableChangeListElement.cs.meta b/Editor/Collaborate/Components/ChangeListElements/ToggleableChangeListElement.cs.meta similarity index 100% rename from Editor/Components/ChangeListElements/ToggleableChangeListElement.cs.meta rename to Editor/Collaborate/Components/ChangeListElements/ToggleableChangeListElement.cs.meta diff --git a/Editor/Components/ChangesGroupHeader.cs b/Editor/Collaborate/Components/ChangesGroupHeader.cs similarity index 100% rename from Editor/Components/ChangesGroupHeader.cs rename to Editor/Collaborate/Components/ChangesGroupHeader.cs diff --git a/Editor/Components/ChangesGroupHeader.cs.meta b/Editor/Collaborate/Components/ChangesGroupHeader.cs.meta similarity index 100% rename from Editor/Components/ChangesGroupHeader.cs.meta rename to Editor/Collaborate/Components/ChangesGroupHeader.cs.meta diff --git a/Editor/Components/ErrorPageView.cs b/Editor/Collaborate/Components/ErrorPageView.cs similarity index 100% rename from Editor/Components/ErrorPageView.cs rename to Editor/Collaborate/Components/ErrorPageView.cs diff --git a/Editor/Components/ErrorPageView.cs.meta b/Editor/Collaborate/Components/ErrorPageView.cs.meta similarity index 100% rename from Editor/Components/ErrorPageView.cs.meta rename to Editor/Collaborate/Components/ErrorPageView.cs.meta diff --git a/Editor/Components/HistoryEntryComponent.cs b/Editor/Collaborate/Components/HistoryEntryComponent.cs similarity index 100% rename from Editor/Components/HistoryEntryComponent.cs rename to Editor/Collaborate/Components/HistoryEntryComponent.cs diff --git a/Editor/Components/HistoryEntryComponent.cs.meta b/Editor/Collaborate/Components/HistoryEntryComponent.cs.meta similarity index 100% rename from Editor/Components/HistoryEntryComponent.cs.meta rename to Editor/Collaborate/Components/HistoryEntryComponent.cs.meta diff --git a/Editor/Components/IconButton.cs b/Editor/Collaborate/Components/IconButton.cs similarity index 100% rename from Editor/Components/IconButton.cs rename to Editor/Collaborate/Components/IconButton.cs diff --git a/Editor/Components/IconButton.cs.meta b/Editor/Collaborate/Components/IconButton.cs.meta similarity index 100% rename from Editor/Components/IconButton.cs.meta rename to Editor/Collaborate/Components/IconButton.cs.meta diff --git a/Editor/Components/IconTextButton.cs b/Editor/Collaborate/Components/IconTextButton.cs similarity index 100% rename from Editor/Components/IconTextButton.cs rename to Editor/Collaborate/Components/IconTextButton.cs diff --git a/Editor/Components/IconTextButton.cs.meta b/Editor/Collaborate/Components/IconTextButton.cs.meta similarity index 100% rename from Editor/Components/IconTextButton.cs.meta rename to Editor/Collaborate/Components/IconTextButton.cs.meta diff --git a/Editor/Components/ListNotice.cs b/Editor/Collaborate/Components/ListNotice.cs similarity index 100% rename from Editor/Components/ListNotice.cs rename to Editor/Collaborate/Components/ListNotice.cs diff --git a/Editor/Components/ListNotice.cs.meta b/Editor/Collaborate/Components/ListNotice.cs.meta similarity index 100% rename from Editor/Components/ListNotice.cs.meta rename to Editor/Collaborate/Components/ListNotice.cs.meta diff --git a/Editor/Components/Menus.meta b/Editor/Collaborate/Components/Menus.meta similarity index 100% rename from Editor/Components/Menus.meta rename to Editor/Collaborate/Components/Menus.meta diff --git a/Editor/Components/Menus/FloatingDialogue.cs b/Editor/Collaborate/Components/Menus/FloatingDialogue.cs similarity index 100% rename from Editor/Components/Menus/FloatingDialogue.cs rename to Editor/Collaborate/Components/Menus/FloatingDialogue.cs diff --git a/Editor/Components/Menus/FloatingDialogue.cs.meta b/Editor/Collaborate/Components/Menus/FloatingDialogue.cs.meta similarity index 100% rename from Editor/Components/Menus/FloatingDialogue.cs.meta rename to Editor/Collaborate/Components/Menus/FloatingDialogue.cs.meta diff --git a/Editor/Components/Menus/FloatingMenu.cs b/Editor/Collaborate/Components/Menus/FloatingMenu.cs similarity index 100% rename from Editor/Components/Menus/FloatingMenu.cs rename to Editor/Collaborate/Components/Menus/FloatingMenu.cs diff --git a/Editor/Components/Menus/FloatingMenu.cs.meta b/Editor/Collaborate/Components/Menus/FloatingMenu.cs.meta similarity index 100% rename from Editor/Components/Menus/FloatingMenu.cs.meta rename to Editor/Collaborate/Components/Menus/FloatingMenu.cs.meta diff --git a/Editor/Components/Menus/FloatingMenuItem.cs b/Editor/Collaborate/Components/Menus/FloatingMenuItem.cs similarity index 100% rename from Editor/Components/Menus/FloatingMenuItem.cs rename to Editor/Collaborate/Components/Menus/FloatingMenuItem.cs diff --git a/Editor/Components/Menus/FloatingMenuItem.cs.meta b/Editor/Collaborate/Components/Menus/FloatingMenuItem.cs.meta similarity index 100% rename from Editor/Components/Menus/FloatingMenuItem.cs.meta rename to Editor/Collaborate/Components/Menus/FloatingMenuItem.cs.meta diff --git a/Editor/Components/PageComponent.cs b/Editor/Collaborate/Components/PageComponent.cs similarity index 100% rename from Editor/Components/PageComponent.cs rename to Editor/Collaborate/Components/PageComponent.cs diff --git a/Editor/Components/PageComponent.cs.meta b/Editor/Collaborate/Components/PageComponent.cs.meta similarity index 100% rename from Editor/Components/PageComponent.cs.meta rename to Editor/Collaborate/Components/PageComponent.cs.meta diff --git a/Editor/Components/Paginator.cs b/Editor/Collaborate/Components/Paginator.cs similarity index 100% rename from Editor/Components/Paginator.cs rename to Editor/Collaborate/Components/Paginator.cs diff --git a/Editor/Components/Paginator.cs.meta b/Editor/Collaborate/Components/Paginator.cs.meta similarity index 100% rename from Editor/Components/Paginator.cs.meta rename to Editor/Collaborate/Components/Paginator.cs.meta diff --git a/Editor/Components/ProgressView.cs b/Editor/Collaborate/Components/ProgressView.cs similarity index 100% rename from Editor/Components/ProgressView.cs rename to Editor/Collaborate/Components/ProgressView.cs diff --git a/Editor/Components/ProgressView.cs.meta b/Editor/Collaborate/Components/ProgressView.cs.meta similarity index 100% rename from Editor/Components/ProgressView.cs.meta rename to Editor/Collaborate/Components/ProgressView.cs.meta diff --git a/Editor/Components/README.md b/Editor/Collaborate/Components/README.md similarity index 100% rename from Editor/Components/README.md rename to Editor/Collaborate/Components/README.md diff --git a/Editor/Components/README.md.meta b/Editor/Collaborate/Components/README.md.meta similarity index 100% rename from Editor/Components/README.md.meta rename to Editor/Collaborate/Components/README.md.meta diff --git a/Editor/Components/SearchBar.cs b/Editor/Collaborate/Components/SearchBar.cs similarity index 100% rename from Editor/Components/SearchBar.cs rename to Editor/Collaborate/Components/SearchBar.cs diff --git a/Editor/Components/SearchBar.cs.meta b/Editor/Collaborate/Components/SearchBar.cs.meta similarity index 100% rename from Editor/Components/SearchBar.cs.meta rename to Editor/Collaborate/Components/SearchBar.cs.meta diff --git a/Editor/Components/TabPageComponent.cs b/Editor/Collaborate/Components/TabPageComponent.cs similarity index 100% rename from Editor/Components/TabPageComponent.cs rename to Editor/Collaborate/Components/TabPageComponent.cs diff --git a/Editor/Components/TabPageComponent.cs.meta b/Editor/Collaborate/Components/TabPageComponent.cs.meta similarity index 100% rename from Editor/Components/TabPageComponent.cs.meta rename to Editor/Collaborate/Components/TabPageComponent.cs.meta diff --git a/Editor/Components/TabView.cs b/Editor/Collaborate/Components/TabView.cs similarity index 100% rename from Editor/Components/TabView.cs rename to Editor/Collaborate/Components/TabView.cs diff --git a/Editor/Components/TabView.cs.meta b/Editor/Collaborate/Components/TabView.cs.meta similarity index 100% rename from Editor/Components/TabView.cs.meta rename to Editor/Collaborate/Components/TabView.cs.meta diff --git a/Editor/Components/TextButton.cs b/Editor/Collaborate/Components/TextButton.cs similarity index 100% rename from Editor/Components/TextButton.cs rename to Editor/Collaborate/Components/TextButton.cs diff --git a/Editor/Components/TextButton.cs.meta b/Editor/Collaborate/Components/TextButton.cs.meta similarity index 100% rename from Editor/Components/TextButton.cs.meta rename to Editor/Collaborate/Components/TextButton.cs.meta diff --git a/Editor/Components/TopBar.cs b/Editor/Collaborate/Components/TopBar.cs similarity index 100% rename from Editor/Components/TopBar.cs rename to Editor/Collaborate/Components/TopBar.cs diff --git a/Editor/Components/TopBar.cs.meta b/Editor/Collaborate/Components/TopBar.cs.meta similarity index 100% rename from Editor/Components/TopBar.cs.meta rename to Editor/Collaborate/Components/TopBar.cs.meta diff --git a/Editor/Models.meta b/Editor/Collaborate/Models.meta similarity index 100% rename from Editor/Models.meta rename to Editor/Collaborate/Models.meta diff --git a/Editor/Models/Api.meta b/Editor/Collaborate/Models/Api.meta similarity index 100% rename from Editor/Models/Api.meta rename to Editor/Collaborate/Models/Api.meta diff --git a/Editor/Models/Api/ISourceControlProvider.cs b/Editor/Collaborate/Models/Api/ISourceControlProvider.cs similarity index 100% rename from Editor/Models/Api/ISourceControlProvider.cs rename to Editor/Collaborate/Models/Api/ISourceControlProvider.cs diff --git a/Editor/Models/Api/ISourceControlProvider.cs.meta b/Editor/Collaborate/Models/Api/ISourceControlProvider.cs.meta similarity index 100% rename from Editor/Models/Api/ISourceControlProvider.cs.meta rename to Editor/Collaborate/Models/Api/ISourceControlProvider.cs.meta diff --git a/Editor/Models/ChangesModel.cs b/Editor/Collaborate/Models/ChangesModel.cs similarity index 100% rename from Editor/Models/ChangesModel.cs rename to Editor/Collaborate/Models/ChangesModel.cs diff --git a/Editor/Models/ChangesModel.cs.meta b/Editor/Collaborate/Models/ChangesModel.cs.meta similarity index 100% rename from Editor/Models/ChangesModel.cs.meta rename to Editor/Collaborate/Models/ChangesModel.cs.meta diff --git a/Editor/Models/Enums.meta b/Editor/Collaborate/Models/Enums.meta similarity index 100% rename from Editor/Models/Enums.meta rename to Editor/Collaborate/Models/Enums.meta diff --git a/Editor/Models/Enums/ProjectStatus.cs b/Editor/Collaborate/Models/Enums/ProjectStatus.cs similarity index 100% rename from Editor/Models/Enums/ProjectStatus.cs rename to Editor/Collaborate/Models/Enums/ProjectStatus.cs diff --git a/Editor/Models/Enums/ProjectStatus.cs.meta b/Editor/Collaborate/Models/Enums/ProjectStatus.cs.meta similarity index 100% rename from Editor/Models/Enums/ProjectStatus.cs.meta rename to Editor/Collaborate/Models/Enums/ProjectStatus.cs.meta diff --git a/Editor/Models/HistoryModel.cs b/Editor/Collaborate/Models/HistoryModel.cs similarity index 100% rename from Editor/Models/HistoryModel.cs rename to Editor/Collaborate/Models/HistoryModel.cs diff --git a/Editor/Models/HistoryModel.cs.meta b/Editor/Collaborate/Models/HistoryModel.cs.meta similarity index 100% rename from Editor/Models/HistoryModel.cs.meta rename to Editor/Collaborate/Models/HistoryModel.cs.meta diff --git a/Editor/Models/IChangesModel.cs b/Editor/Collaborate/Models/IChangesModel.cs similarity index 100% rename from Editor/Models/IChangesModel.cs rename to Editor/Collaborate/Models/IChangesModel.cs diff --git a/Editor/Models/IChangesModel.cs.meta b/Editor/Collaborate/Models/IChangesModel.cs.meta similarity index 100% rename from Editor/Models/IChangesModel.cs.meta rename to Editor/Collaborate/Models/IChangesModel.cs.meta diff --git a/Editor/Models/IHistoryModel.cs b/Editor/Collaborate/Models/IHistoryModel.cs similarity index 100% rename from Editor/Models/IHistoryModel.cs rename to Editor/Collaborate/Models/IHistoryModel.cs diff --git a/Editor/Models/IHistoryModel.cs.meta b/Editor/Collaborate/Models/IHistoryModel.cs.meta similarity index 100% rename from Editor/Models/IHistoryModel.cs.meta rename to Editor/Collaborate/Models/IHistoryModel.cs.meta diff --git a/Editor/Models/IMainModel.cs b/Editor/Collaborate/Models/IMainModel.cs similarity index 100% rename from Editor/Models/IMainModel.cs rename to Editor/Collaborate/Models/IMainModel.cs diff --git a/Editor/Models/IMainModel.cs.meta b/Editor/Collaborate/Models/IMainModel.cs.meta similarity index 100% rename from Editor/Models/IMainModel.cs.meta rename to Editor/Collaborate/Models/IMainModel.cs.meta diff --git a/Editor/Models/IModel.cs b/Editor/Collaborate/Models/IModel.cs similarity index 100% rename from Editor/Models/IModel.cs rename to Editor/Collaborate/Models/IModel.cs diff --git a/Editor/Models/IModel.cs.meta b/Editor/Collaborate/Models/IModel.cs.meta similarity index 100% rename from Editor/Models/IModel.cs.meta rename to Editor/Collaborate/Models/IModel.cs.meta diff --git a/Editor/Models/IStartModel.cs b/Editor/Collaborate/Models/IStartModel.cs similarity index 100% rename from Editor/Models/IStartModel.cs rename to Editor/Collaborate/Models/IStartModel.cs diff --git a/Editor/Models/IStartModel.cs.meta b/Editor/Collaborate/Models/IStartModel.cs.meta similarity index 100% rename from Editor/Models/IStartModel.cs.meta rename to Editor/Collaborate/Models/IStartModel.cs.meta diff --git a/Editor/Models/MainModel.cs b/Editor/Collaborate/Models/MainModel.cs similarity index 100% rename from Editor/Models/MainModel.cs rename to Editor/Collaborate/Models/MainModel.cs diff --git a/Editor/Models/MainModel.cs.meta b/Editor/Collaborate/Models/MainModel.cs.meta similarity index 100% rename from Editor/Models/MainModel.cs.meta rename to Editor/Collaborate/Models/MainModel.cs.meta diff --git a/Editor/Models/Providers.meta b/Editor/Collaborate/Models/Providers.meta similarity index 100% rename from Editor/Models/Providers.meta rename to Editor/Collaborate/Models/Providers.meta diff --git a/Editor/Models/Providers/Collab.cs b/Editor/Collaborate/Models/Providers/Collab.cs similarity index 100% rename from Editor/Models/Providers/Collab.cs rename to Editor/Collaborate/Models/Providers/Collab.cs diff --git a/Editor/Models/Providers/Collab.cs.meta b/Editor/Collaborate/Models/Providers/Collab.cs.meta similarity index 100% rename from Editor/Models/Providers/Collab.cs.meta rename to Editor/Collaborate/Models/Providers/Collab.cs.meta diff --git a/Editor/Models/README.md b/Editor/Collaborate/Models/README.md similarity index 100% rename from Editor/Models/README.md rename to Editor/Collaborate/Models/README.md diff --git a/Editor/Models/README.md.meta b/Editor/Collaborate/Models/README.md.meta similarity index 100% rename from Editor/Models/README.md.meta rename to Editor/Collaborate/Models/README.md.meta diff --git a/Editor/Models/StartModel.cs b/Editor/Collaborate/Models/StartModel.cs similarity index 100% rename from Editor/Models/StartModel.cs rename to Editor/Collaborate/Models/StartModel.cs diff --git a/Editor/Models/StartModel.cs.meta b/Editor/Collaborate/Models/StartModel.cs.meta similarity index 100% rename from Editor/Models/StartModel.cs.meta rename to Editor/Collaborate/Models/StartModel.cs.meta diff --git a/Editor/Models/Structures.meta b/Editor/Collaborate/Models/Structures.meta similarity index 100% rename from Editor/Models/Structures.meta rename to Editor/Collaborate/Models/Structures.meta diff --git a/Editor/Models/Structures/ChangeEntry.cs b/Editor/Collaborate/Models/Structures/ChangeEntry.cs similarity index 100% rename from Editor/Models/Structures/ChangeEntry.cs rename to Editor/Collaborate/Models/Structures/ChangeEntry.cs diff --git a/Editor/Models/Structures/ChangeEntry.cs.meta b/Editor/Collaborate/Models/Structures/ChangeEntry.cs.meta similarity index 100% rename from Editor/Models/Structures/ChangeEntry.cs.meta rename to Editor/Collaborate/Models/Structures/ChangeEntry.cs.meta diff --git a/Editor/Models/Structures/ErrorInfo.cs b/Editor/Collaborate/Models/Structures/ErrorInfo.cs similarity index 100% rename from Editor/Models/Structures/ErrorInfo.cs rename to Editor/Collaborate/Models/Structures/ErrorInfo.cs diff --git a/Editor/Models/Structures/ErrorInfo.cs.meta b/Editor/Collaborate/Models/Structures/ErrorInfo.cs.meta similarity index 100% rename from Editor/Models/Structures/ErrorInfo.cs.meta rename to Editor/Collaborate/Models/Structures/ErrorInfo.cs.meta diff --git a/Editor/Models/Structures/HistoryEntry.cs b/Editor/Collaborate/Models/Structures/HistoryEntry.cs similarity index 100% rename from Editor/Models/Structures/HistoryEntry.cs rename to Editor/Collaborate/Models/Structures/HistoryEntry.cs diff --git a/Editor/Models/Structures/HistoryEntry.cs.meta b/Editor/Collaborate/Models/Structures/HistoryEntry.cs.meta similarity index 100% rename from Editor/Models/Structures/HistoryEntry.cs.meta rename to Editor/Collaborate/Models/Structures/HistoryEntry.cs.meta diff --git a/Editor/Models/Structures/IChangeEntry.cs b/Editor/Collaborate/Models/Structures/IChangeEntry.cs similarity index 100% rename from Editor/Models/Structures/IChangeEntry.cs rename to Editor/Collaborate/Models/Structures/IChangeEntry.cs diff --git a/Editor/Models/Structures/IChangeEntry.cs.meta b/Editor/Collaborate/Models/Structures/IChangeEntry.cs.meta similarity index 100% rename from Editor/Models/Structures/IChangeEntry.cs.meta rename to Editor/Collaborate/Models/Structures/IChangeEntry.cs.meta diff --git a/Editor/Models/Structures/IChangeEntryData.cs b/Editor/Collaborate/Models/Structures/IChangeEntryData.cs similarity index 100% rename from Editor/Models/Structures/IChangeEntryData.cs rename to Editor/Collaborate/Models/Structures/IChangeEntryData.cs diff --git a/Editor/Models/Structures/IChangeEntryData.cs.meta b/Editor/Collaborate/Models/Structures/IChangeEntryData.cs.meta similarity index 100% rename from Editor/Models/Structures/IChangeEntryData.cs.meta rename to Editor/Collaborate/Models/Structures/IChangeEntryData.cs.meta diff --git a/Editor/Models/Structures/IErrorInfo.cs b/Editor/Collaborate/Models/Structures/IErrorInfo.cs similarity index 100% rename from Editor/Models/Structures/IErrorInfo.cs rename to Editor/Collaborate/Models/Structures/IErrorInfo.cs diff --git a/Editor/Models/Structures/IErrorInfo.cs.meta b/Editor/Collaborate/Models/Structures/IErrorInfo.cs.meta similarity index 100% rename from Editor/Models/Structures/IErrorInfo.cs.meta rename to Editor/Collaborate/Models/Structures/IErrorInfo.cs.meta diff --git a/Editor/Models/Structures/IHistoryEntry.cs b/Editor/Collaborate/Models/Structures/IHistoryEntry.cs similarity index 100% rename from Editor/Models/Structures/IHistoryEntry.cs rename to Editor/Collaborate/Models/Structures/IHistoryEntry.cs diff --git a/Editor/Models/Structures/IHistoryEntry.cs.meta b/Editor/Collaborate/Models/Structures/IHistoryEntry.cs.meta similarity index 100% rename from Editor/Models/Structures/IHistoryEntry.cs.meta rename to Editor/Collaborate/Models/Structures/IHistoryEntry.cs.meta diff --git a/Editor/Models/Structures/IProgressInfo.cs b/Editor/Collaborate/Models/Structures/IProgressInfo.cs similarity index 100% rename from Editor/Models/Structures/IProgressInfo.cs rename to Editor/Collaborate/Models/Structures/IProgressInfo.cs diff --git a/Editor/Models/Structures/IProgressInfo.cs.meta b/Editor/Collaborate/Models/Structures/IProgressInfo.cs.meta similarity index 100% rename from Editor/Models/Structures/IProgressInfo.cs.meta rename to Editor/Collaborate/Models/Structures/IProgressInfo.cs.meta diff --git a/Editor/Models/Structures/ProgressInfo.cs b/Editor/Collaborate/Models/Structures/ProgressInfo.cs similarity index 100% rename from Editor/Models/Structures/ProgressInfo.cs rename to Editor/Collaborate/Models/Structures/ProgressInfo.cs diff --git a/Editor/Models/Structures/ProgressInfo.cs.meta b/Editor/Collaborate/Models/Structures/ProgressInfo.cs.meta similarity index 100% rename from Editor/Models/Structures/ProgressInfo.cs.meta rename to Editor/Collaborate/Models/Structures/ProgressInfo.cs.meta diff --git a/Editor/Presenters.meta b/Editor/Collaborate/Presenters.meta similarity index 100% rename from Editor/Presenters.meta rename to Editor/Collaborate/Presenters.meta diff --git a/Editor/Presenters/ChangesPresenter.cs b/Editor/Collaborate/Presenters/ChangesPresenter.cs similarity index 100% rename from Editor/Presenters/ChangesPresenter.cs rename to Editor/Collaborate/Presenters/ChangesPresenter.cs diff --git a/Editor/Presenters/ChangesPresenter.cs.meta b/Editor/Collaborate/Presenters/ChangesPresenter.cs.meta similarity index 100% rename from Editor/Presenters/ChangesPresenter.cs.meta rename to Editor/Collaborate/Presenters/ChangesPresenter.cs.meta diff --git a/Editor/Presenters/HistoryPresenter.cs b/Editor/Collaborate/Presenters/HistoryPresenter.cs similarity index 100% rename from Editor/Presenters/HistoryPresenter.cs rename to Editor/Collaborate/Presenters/HistoryPresenter.cs diff --git a/Editor/Presenters/HistoryPresenter.cs.meta b/Editor/Collaborate/Presenters/HistoryPresenter.cs.meta similarity index 100% rename from Editor/Presenters/HistoryPresenter.cs.meta rename to Editor/Collaborate/Presenters/HistoryPresenter.cs.meta diff --git a/Editor/Presenters/IChangesPresenter.cs b/Editor/Collaborate/Presenters/IChangesPresenter.cs similarity index 100% rename from Editor/Presenters/IChangesPresenter.cs rename to Editor/Collaborate/Presenters/IChangesPresenter.cs diff --git a/Editor/Presenters/IChangesPresenter.cs.meta b/Editor/Collaborate/Presenters/IChangesPresenter.cs.meta similarity index 100% rename from Editor/Presenters/IChangesPresenter.cs.meta rename to Editor/Collaborate/Presenters/IChangesPresenter.cs.meta diff --git a/Editor/Presenters/IHistoryPresenter.cs b/Editor/Collaborate/Presenters/IHistoryPresenter.cs similarity index 100% rename from Editor/Presenters/IHistoryPresenter.cs rename to Editor/Collaborate/Presenters/IHistoryPresenter.cs diff --git a/Editor/Presenters/IHistoryPresenter.cs.meta b/Editor/Collaborate/Presenters/IHistoryPresenter.cs.meta similarity index 100% rename from Editor/Presenters/IHistoryPresenter.cs.meta rename to Editor/Collaborate/Presenters/IHistoryPresenter.cs.meta diff --git a/Editor/Presenters/IMainPresenter.cs b/Editor/Collaborate/Presenters/IMainPresenter.cs similarity index 100% rename from Editor/Presenters/IMainPresenter.cs rename to Editor/Collaborate/Presenters/IMainPresenter.cs diff --git a/Editor/Presenters/IMainPresenter.cs.meta b/Editor/Collaborate/Presenters/IMainPresenter.cs.meta similarity index 100% rename from Editor/Presenters/IMainPresenter.cs.meta rename to Editor/Collaborate/Presenters/IMainPresenter.cs.meta diff --git a/Editor/Presenters/IPresenter.cs b/Editor/Collaborate/Presenters/IPresenter.cs similarity index 100% rename from Editor/Presenters/IPresenter.cs rename to Editor/Collaborate/Presenters/IPresenter.cs diff --git a/Editor/Presenters/IPresenter.cs.meta b/Editor/Collaborate/Presenters/IPresenter.cs.meta similarity index 100% rename from Editor/Presenters/IPresenter.cs.meta rename to Editor/Collaborate/Presenters/IPresenter.cs.meta diff --git a/Editor/Presenters/IStartPresenter.cs b/Editor/Collaborate/Presenters/IStartPresenter.cs similarity index 100% rename from Editor/Presenters/IStartPresenter.cs rename to Editor/Collaborate/Presenters/IStartPresenter.cs diff --git a/Editor/Presenters/IStartPresenter.cs.meta b/Editor/Collaborate/Presenters/IStartPresenter.cs.meta similarity index 100% rename from Editor/Presenters/IStartPresenter.cs.meta rename to Editor/Collaborate/Presenters/IStartPresenter.cs.meta diff --git a/Editor/Presenters/MainPresenter.cs b/Editor/Collaborate/Presenters/MainPresenter.cs similarity index 100% rename from Editor/Presenters/MainPresenter.cs rename to Editor/Collaborate/Presenters/MainPresenter.cs diff --git a/Editor/Presenters/MainPresenter.cs.meta b/Editor/Collaborate/Presenters/MainPresenter.cs.meta similarity index 100% rename from Editor/Presenters/MainPresenter.cs.meta rename to Editor/Collaborate/Presenters/MainPresenter.cs.meta diff --git a/Editor/Presenters/README.md b/Editor/Collaborate/Presenters/README.md similarity index 100% rename from Editor/Presenters/README.md rename to Editor/Collaborate/Presenters/README.md diff --git a/Editor/Presenters/README.md.meta b/Editor/Collaborate/Presenters/README.md.meta similarity index 100% rename from Editor/Presenters/README.md.meta rename to Editor/Collaborate/Presenters/README.md.meta diff --git a/Editor/Presenters/StartPresenter.cs b/Editor/Collaborate/Presenters/StartPresenter.cs similarity index 100% rename from Editor/Presenters/StartPresenter.cs rename to Editor/Collaborate/Presenters/StartPresenter.cs diff --git a/Editor/Presenters/StartPresenter.cs.meta b/Editor/Collaborate/Presenters/StartPresenter.cs.meta similarity index 100% rename from Editor/Presenters/StartPresenter.cs.meta rename to Editor/Collaborate/Presenters/StartPresenter.cs.meta diff --git a/Editor/Properties.meta b/Editor/Collaborate/Properties.meta similarity index 100% rename from Editor/Properties.meta rename to Editor/Collaborate/Properties.meta diff --git a/Editor/Properties/AssemblyInfo.cs b/Editor/Collaborate/Properties/AssemblyInfo.cs similarity index 100% rename from Editor/Properties/AssemblyInfo.cs rename to Editor/Collaborate/Properties/AssemblyInfo.cs diff --git a/Editor/Properties/AssemblyInfo.cs.meta b/Editor/Collaborate/Properties/AssemblyInfo.cs.meta similarity index 100% rename from Editor/Properties/AssemblyInfo.cs.meta rename to Editor/Collaborate/Properties/AssemblyInfo.cs.meta diff --git a/Editor/README.md b/Editor/Collaborate/README.md similarity index 100% rename from Editor/README.md rename to Editor/Collaborate/README.md diff --git a/Editor/README.md.meta b/Editor/Collaborate/README.md.meta similarity index 100% rename from Editor/README.md.meta rename to Editor/Collaborate/README.md.meta diff --git a/Editor/Settings.meta b/Editor/Collaborate/Settings.meta similarity index 100% rename from Editor/Settings.meta rename to Editor/Collaborate/Settings.meta diff --git a/Editor/Settings/CollabSetting.cs b/Editor/Collaborate/Settings/CollabSetting.cs similarity index 100% rename from Editor/Settings/CollabSetting.cs rename to Editor/Collaborate/Settings/CollabSetting.cs diff --git a/Editor/Settings/CollabSetting.cs.meta b/Editor/Collaborate/Settings/CollabSetting.cs.meta similarity index 100% rename from Editor/Settings/CollabSetting.cs.meta rename to Editor/Collaborate/Settings/CollabSetting.cs.meta diff --git a/Editor/Settings/CollabSettings.cs b/Editor/Collaborate/Settings/CollabSettings.cs similarity index 100% rename from Editor/Settings/CollabSettings.cs rename to Editor/Collaborate/Settings/CollabSettings.cs diff --git a/Editor/Settings/CollabSettings.cs.meta b/Editor/Collaborate/Settings/CollabSettings.cs.meta similarity index 100% rename from Editor/Settings/CollabSettings.cs.meta rename to Editor/Collaborate/Settings/CollabSettings.cs.meta diff --git a/Editor/Settings/CollabSettingsManager.cs b/Editor/Collaborate/Settings/CollabSettingsManager.cs similarity index 100% rename from Editor/Settings/CollabSettingsManager.cs rename to Editor/Collaborate/Settings/CollabSettingsManager.cs diff --git a/Editor/Settings/CollabSettingsManager.cs.meta b/Editor/Collaborate/Settings/CollabSettingsManager.cs.meta similarity index 100% rename from Editor/Settings/CollabSettingsManager.cs.meta rename to Editor/Collaborate/Settings/CollabSettingsManager.cs.meta diff --git a/Editor/Settings/CollabSettingsProvider.cs b/Editor/Collaborate/Settings/CollabSettingsProvider.cs similarity index 100% rename from Editor/Settings/CollabSettingsProvider.cs rename to Editor/Collaborate/Settings/CollabSettingsProvider.cs diff --git a/Editor/Settings/CollabSettingsProvider.cs.meta b/Editor/Collaborate/Settings/CollabSettingsProvider.cs.meta similarity index 100% rename from Editor/Settings/CollabSettingsProvider.cs.meta rename to Editor/Collaborate/Settings/CollabSettingsProvider.cs.meta diff --git a/Editor/Settings/README.md b/Editor/Collaborate/Settings/README.md similarity index 100% rename from Editor/Settings/README.md rename to Editor/Collaborate/Settings/README.md diff --git a/Editor/Settings/README.md.meta b/Editor/Collaborate/Settings/README.md.meta similarity index 100% rename from Editor/Settings/README.md.meta rename to Editor/Collaborate/Settings/README.md.meta diff --git a/Editor/Unity.CollabProxy.Editor.asmdef b/Editor/Collaborate/Unity.CollabProxy.Editor.asmdef similarity index 100% rename from Editor/Unity.CollabProxy.Editor.asmdef rename to Editor/Collaborate/Unity.CollabProxy.Editor.asmdef diff --git a/Editor/Unity.CollabProxy.Editor.asmdef.meta b/Editor/Collaborate/Unity.CollabProxy.Editor.asmdef.meta similarity index 100% rename from Editor/Unity.CollabProxy.Editor.asmdef.meta rename to Editor/Collaborate/Unity.CollabProxy.Editor.asmdef.meta diff --git a/Editor/UserInterface.meta b/Editor/Collaborate/UserInterface.meta similarity index 100% rename from Editor/UserInterface.meta rename to Editor/Collaborate/UserInterface.meta diff --git a/Editor/UserInterface/Bootstrap.cs b/Editor/Collaborate/UserInterface/Bootstrap.cs similarity index 100% rename from Editor/UserInterface/Bootstrap.cs rename to Editor/Collaborate/UserInterface/Bootstrap.cs diff --git a/Editor/UserInterface/Bootstrap.cs.meta b/Editor/Collaborate/UserInterface/Bootstrap.cs.meta similarity index 100% rename from Editor/UserInterface/Bootstrap.cs.meta rename to Editor/Collaborate/UserInterface/Bootstrap.cs.meta diff --git a/Editor/UserInterface/CollaborateWindow.cs b/Editor/Collaborate/UserInterface/CollaborateWindow.cs similarity index 99% rename from Editor/UserInterface/CollaborateWindow.cs rename to Editor/Collaborate/UserInterface/CollaborateWindow.cs index 9dcafdd..28e4dc1 100644 --- a/Editor/UserInterface/CollaborateWindow.cs +++ b/Editor/Collaborate/UserInterface/CollaborateWindow.cs @@ -22,8 +22,8 @@ internal class CollaborateWindow : EditorWindow public const string ContainerUssClassName = UssClassName + "__container"; public const string PackagePath = "Packages/com.unity.collab-proxy"; - public const string UserInterfacePath = PackagePath + "/Editor/UserInterface"; - public const string ResourcePath = PackagePath + "/Editor/Assets"; + public const string UserInterfacePath = PackagePath + "/Editor/Collaborate/UserInterface"; + public const string ResourcePath = PackagePath + "/Editor/Collaborate/Assets"; public const string LayoutPath = ResourcePath + "/Layouts"; public const string StylePath = ResourcePath + "/Styles"; public const string IconPath = ResourcePath + "/Icons"; @@ -87,7 +87,7 @@ void OnDisable() m_Models.ForEach(m => m.OnStop()); } - void OnEnable() + void CreateGUI() { EditorApplication.playModeStateChanged += OnPlayModeStateChanged; AssemblyReloadEvents.beforeAssemblyReload += OnBeforeAssemblyReload; diff --git a/Editor/UserInterface/CollaborateWindow.cs.meta b/Editor/Collaborate/UserInterface/CollaborateWindow.cs.meta similarity index 100% rename from Editor/UserInterface/CollaborateWindow.cs.meta rename to Editor/Collaborate/UserInterface/CollaborateWindow.cs.meta diff --git a/Editor/UserInterface/README.md b/Editor/Collaborate/UserInterface/README.md similarity index 100% rename from Editor/UserInterface/README.md rename to Editor/Collaborate/UserInterface/README.md diff --git a/Editor/UserInterface/README.md.meta b/Editor/Collaborate/UserInterface/README.md.meta similarity index 100% rename from Editor/UserInterface/README.md.meta rename to Editor/Collaborate/UserInterface/README.md.meta diff --git a/Editor/UserInterface/ToolbarButton.cs b/Editor/Collaborate/UserInterface/ToolbarButton.cs similarity index 100% rename from Editor/UserInterface/ToolbarButton.cs rename to Editor/Collaborate/UserInterface/ToolbarButton.cs diff --git a/Editor/UserInterface/ToolbarButton.cs.meta b/Editor/Collaborate/UserInterface/ToolbarButton.cs.meta similarity index 100% rename from Editor/UserInterface/ToolbarButton.cs.meta rename to Editor/Collaborate/UserInterface/ToolbarButton.cs.meta diff --git a/Editor/UserInterface/WindowCache.cs b/Editor/Collaborate/UserInterface/WindowCache.cs similarity index 100% rename from Editor/UserInterface/WindowCache.cs rename to Editor/Collaborate/UserInterface/WindowCache.cs diff --git a/Editor/UserInterface/WindowCache.cs.meta b/Editor/Collaborate/UserInterface/WindowCache.cs.meta similarity index 100% rename from Editor/UserInterface/WindowCache.cs.meta rename to Editor/Collaborate/UserInterface/WindowCache.cs.meta diff --git a/Editor/Utilities.meta b/Editor/Collaborate/Utilities.meta similarity index 100% rename from Editor/Utilities.meta rename to Editor/Collaborate/Utilities.meta diff --git a/Editor/Utilities/ExtensionMethods.cs b/Editor/Collaborate/Utilities/ExtensionMethods.cs similarity index 100% rename from Editor/Utilities/ExtensionMethods.cs rename to Editor/Collaborate/Utilities/ExtensionMethods.cs diff --git a/Editor/Utilities/ExtensionMethods.cs.meta b/Editor/Collaborate/Utilities/ExtensionMethods.cs.meta similarity index 100% rename from Editor/Utilities/ExtensionMethods.cs.meta rename to Editor/Collaborate/Utilities/ExtensionMethods.cs.meta diff --git a/Editor/Utilities/MenuUtilities.cs b/Editor/Collaborate/Utilities/MenuUtilities.cs similarity index 100% rename from Editor/Utilities/MenuUtilities.cs rename to Editor/Collaborate/Utilities/MenuUtilities.cs diff --git a/Editor/Utilities/MenuUtilities.cs.meta b/Editor/Collaborate/Utilities/MenuUtilities.cs.meta similarity index 100% rename from Editor/Utilities/MenuUtilities.cs.meta rename to Editor/Collaborate/Utilities/MenuUtilities.cs.meta diff --git a/Editor/Utilities/OpenLinksUtility.cs b/Editor/Collaborate/Utilities/OpenLinksUtility.cs similarity index 100% rename from Editor/Utilities/OpenLinksUtility.cs rename to Editor/Collaborate/Utilities/OpenLinksUtility.cs diff --git a/Editor/Utilities/OpenLinksUtility.cs.meta b/Editor/Collaborate/Utilities/OpenLinksUtility.cs.meta similarity index 100% rename from Editor/Utilities/OpenLinksUtility.cs.meta rename to Editor/Collaborate/Utilities/OpenLinksUtility.cs.meta diff --git a/Editor/Utilities/README.md b/Editor/Collaborate/Utilities/README.md similarity index 100% rename from Editor/Utilities/README.md rename to Editor/Collaborate/Utilities/README.md diff --git a/Editor/Utilities/README.md.meta b/Editor/Collaborate/Utilities/README.md.meta similarity index 100% rename from Editor/Utilities/README.md.meta rename to Editor/Collaborate/Utilities/README.md.meta diff --git a/Editor/Utilities/StringUtility.cs b/Editor/Collaborate/Utilities/StringUtility.cs similarity index 100% rename from Editor/Utilities/StringUtility.cs rename to Editor/Collaborate/Utilities/StringUtility.cs diff --git a/Editor/Utilities/StringUtility.cs.meta b/Editor/Collaborate/Utilities/StringUtility.cs.meta similarity index 100% rename from Editor/Utilities/StringUtility.cs.meta rename to Editor/Collaborate/Utilities/StringUtility.cs.meta diff --git a/Editor/Utilities/Threading.cs b/Editor/Collaborate/Utilities/Threading.cs similarity index 100% rename from Editor/Utilities/Threading.cs rename to Editor/Collaborate/Utilities/Threading.cs diff --git a/Editor/Utilities/Threading.cs.meta b/Editor/Collaborate/Utilities/Threading.cs.meta similarity index 100% rename from Editor/Utilities/Threading.cs.meta rename to Editor/Collaborate/Utilities/Threading.cs.meta diff --git a/Editor/Utilities/TimeStamp.cs b/Editor/Collaborate/Utilities/TimeStamp.cs similarity index 100% rename from Editor/Utilities/TimeStamp.cs rename to Editor/Collaborate/Utilities/TimeStamp.cs diff --git a/Editor/Utilities/TimeStamp.cs.meta b/Editor/Collaborate/Utilities/TimeStamp.cs.meta similarity index 100% rename from Editor/Utilities/TimeStamp.cs.meta rename to Editor/Collaborate/Utilities/TimeStamp.cs.meta diff --git a/Editor/Views.meta b/Editor/Collaborate/Views.meta similarity index 100% rename from Editor/Views.meta rename to Editor/Collaborate/Views.meta diff --git a/Editor/Views/Adapters.meta b/Editor/Collaborate/Views/Adapters.meta similarity index 100% rename from Editor/Views/Adapters.meta rename to Editor/Collaborate/Views/Adapters.meta diff --git a/Editor/Views/Adapters/IAdapter.cs b/Editor/Collaborate/Views/Adapters/IAdapter.cs similarity index 100% rename from Editor/Views/Adapters/IAdapter.cs rename to Editor/Collaborate/Views/Adapters/IAdapter.cs diff --git a/Editor/Views/Adapters/IAdapter.cs.meta b/Editor/Collaborate/Views/Adapters/IAdapter.cs.meta similarity index 100% rename from Editor/Views/Adapters/IAdapter.cs.meta rename to Editor/Collaborate/Views/Adapters/IAdapter.cs.meta diff --git a/Editor/Views/Adapters/IAdapterObserver.cs b/Editor/Collaborate/Views/Adapters/IAdapterObserver.cs similarity index 100% rename from Editor/Views/Adapters/IAdapterObserver.cs rename to Editor/Collaborate/Views/Adapters/IAdapterObserver.cs diff --git a/Editor/Views/Adapters/IAdapterObserver.cs.meta b/Editor/Collaborate/Views/Adapters/IAdapterObserver.cs.meta similarity index 100% rename from Editor/Views/Adapters/IAdapterObserver.cs.meta rename to Editor/Collaborate/Views/Adapters/IAdapterObserver.cs.meta diff --git a/Editor/Views/Adapters/ListAdapters.meta b/Editor/Collaborate/Views/Adapters/ListAdapters.meta similarity index 100% rename from Editor/Views/Adapters/ListAdapters.meta rename to Editor/Collaborate/Views/Adapters/ListAdapters.meta diff --git a/Editor/Views/Adapters/ListAdapters/BaseListAdapter.cs b/Editor/Collaborate/Views/Adapters/ListAdapters/BaseListAdapter.cs similarity index 100% rename from Editor/Views/Adapters/ListAdapters/BaseListAdapter.cs rename to Editor/Collaborate/Views/Adapters/ListAdapters/BaseListAdapter.cs diff --git a/Editor/Views/Adapters/ListAdapters/BaseListAdapter.cs.meta b/Editor/Collaborate/Views/Adapters/ListAdapters/BaseListAdapter.cs.meta similarity index 100% rename from Editor/Views/Adapters/ListAdapters/BaseListAdapter.cs.meta rename to Editor/Collaborate/Views/Adapters/ListAdapters/BaseListAdapter.cs.meta diff --git a/Editor/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs b/Editor/Collaborate/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs similarity index 100% rename from Editor/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs rename to Editor/Collaborate/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs diff --git a/Editor/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs.meta b/Editor/Collaborate/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs.meta similarity index 100% rename from Editor/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs.meta rename to Editor/Collaborate/Views/Adapters/ListAdapters/ConflictedChangeListAdapter.cs.meta diff --git a/Editor/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs b/Editor/Collaborate/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs similarity index 100% rename from Editor/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs rename to Editor/Collaborate/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs diff --git a/Editor/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs.meta b/Editor/Collaborate/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs.meta similarity index 100% rename from Editor/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs.meta rename to Editor/Collaborate/Views/Adapters/ListAdapters/HistoryEntryChangeListAdapter.cs.meta diff --git a/Editor/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs b/Editor/Collaborate/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs similarity index 100% rename from Editor/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs rename to Editor/Collaborate/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs diff --git a/Editor/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs.meta b/Editor/Collaborate/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs.meta similarity index 100% rename from Editor/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs.meta rename to Editor/Collaborate/Views/Adapters/ListAdapters/ToggleableChangeListAdapter.cs.meta diff --git a/Editor/Views/ChangesTabPageView.cs b/Editor/Collaborate/Views/ChangesTabPageView.cs similarity index 100% rename from Editor/Views/ChangesTabPageView.cs rename to Editor/Collaborate/Views/ChangesTabPageView.cs diff --git a/Editor/Views/ChangesTabPageView.cs.meta b/Editor/Collaborate/Views/ChangesTabPageView.cs.meta similarity index 100% rename from Editor/Views/ChangesTabPageView.cs.meta rename to Editor/Collaborate/Views/ChangesTabPageView.cs.meta diff --git a/Editor/Views/HistoryTabPageView.cs b/Editor/Collaborate/Views/HistoryTabPageView.cs similarity index 100% rename from Editor/Views/HistoryTabPageView.cs rename to Editor/Collaborate/Views/HistoryTabPageView.cs diff --git a/Editor/Views/HistoryTabPageView.cs.meta b/Editor/Collaborate/Views/HistoryTabPageView.cs.meta similarity index 100% rename from Editor/Views/HistoryTabPageView.cs.meta rename to Editor/Collaborate/Views/HistoryTabPageView.cs.meta diff --git a/Editor/Views/IChangesView.cs b/Editor/Collaborate/Views/IChangesView.cs similarity index 100% rename from Editor/Views/IChangesView.cs rename to Editor/Collaborate/Views/IChangesView.cs diff --git a/Editor/Views/IChangesView.cs.meta b/Editor/Collaborate/Views/IChangesView.cs.meta similarity index 100% rename from Editor/Views/IChangesView.cs.meta rename to Editor/Collaborate/Views/IChangesView.cs.meta diff --git a/Editor/Views/IHistoryView.cs b/Editor/Collaborate/Views/IHistoryView.cs similarity index 100% rename from Editor/Views/IHistoryView.cs rename to Editor/Collaborate/Views/IHistoryView.cs diff --git a/Editor/Views/IHistoryView.cs.meta b/Editor/Collaborate/Views/IHistoryView.cs.meta similarity index 100% rename from Editor/Views/IHistoryView.cs.meta rename to Editor/Collaborate/Views/IHistoryView.cs.meta diff --git a/Editor/Views/IMainView.cs b/Editor/Collaborate/Views/IMainView.cs similarity index 100% rename from Editor/Views/IMainView.cs rename to Editor/Collaborate/Views/IMainView.cs diff --git a/Editor/Views/IMainView.cs.meta b/Editor/Collaborate/Views/IMainView.cs.meta similarity index 100% rename from Editor/Views/IMainView.cs.meta rename to Editor/Collaborate/Views/IMainView.cs.meta diff --git a/Editor/Views/IStartView.cs b/Editor/Collaborate/Views/IStartView.cs similarity index 100% rename from Editor/Views/IStartView.cs rename to Editor/Collaborate/Views/IStartView.cs diff --git a/Editor/Views/IStartView.cs.meta b/Editor/Collaborate/Views/IStartView.cs.meta similarity index 100% rename from Editor/Views/IStartView.cs.meta rename to Editor/Collaborate/Views/IStartView.cs.meta diff --git a/Editor/Views/IView.cs b/Editor/Collaborate/Views/IView.cs similarity index 100% rename from Editor/Views/IView.cs rename to Editor/Collaborate/Views/IView.cs diff --git a/Editor/Views/IView.cs.meta b/Editor/Collaborate/Views/IView.cs.meta similarity index 100% rename from Editor/Views/IView.cs.meta rename to Editor/Collaborate/Views/IView.cs.meta diff --git a/Editor/Views/MainPageView.cs b/Editor/Collaborate/Views/MainPageView.cs similarity index 100% rename from Editor/Views/MainPageView.cs rename to Editor/Collaborate/Views/MainPageView.cs diff --git a/Editor/Views/MainPageView.cs.meta b/Editor/Collaborate/Views/MainPageView.cs.meta similarity index 100% rename from Editor/Views/MainPageView.cs.meta rename to Editor/Collaborate/Views/MainPageView.cs.meta diff --git a/Editor/Views/README.md b/Editor/Collaborate/Views/README.md similarity index 100% rename from Editor/Views/README.md rename to Editor/Collaborate/Views/README.md diff --git a/Editor/Views/README.md.meta b/Editor/Collaborate/Views/README.md.meta similarity index 100% rename from Editor/Views/README.md.meta rename to Editor/Collaborate/Views/README.md.meta diff --git a/Editor/Views/StartPageView.cs b/Editor/Collaborate/Views/StartPageView.cs similarity index 100% rename from Editor/Views/StartPageView.cs rename to Editor/Collaborate/Views/StartPageView.cs diff --git a/Editor/Views/StartPageView.cs.meta b/Editor/Collaborate/Views/StartPageView.cs.meta similarity index 100% rename from Editor/Views/StartPageView.cs.meta rename to Editor/Collaborate/Views/StartPageView.cs.meta diff --git a/Editor/PlasticSCM.meta b/Editor/PlasticSCM.meta new file mode 100644 index 0000000..d4e7576 --- /dev/null +++ b/Editor/PlasticSCM.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d5ae383aa416ba14e800dff2526122ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssemblyInfo.cs b/Editor/PlasticSCM/AssemblyInfo.cs new file mode 100644 index 0000000..645ab61 --- /dev/null +++ b/Editor/PlasticSCM/AssemblyInfo.cs @@ -0,0 +1,5 @@ +using System.Runtime.CompilerServices; +using UnityEngine; + +[assembly: InternalsVisibleTo("Unity.PlasticSCM.EditorTests")] +[assembly: InternalsVisibleTo("Unity.PlasticSCM.DevTools")] \ No newline at end of file diff --git a/Editor/PlasticSCM/AssemblyInfo.cs.meta b/Editor/PlasticSCM/AssemblyInfo.cs.meta new file mode 100644 index 0000000..3f98d5c --- /dev/null +++ b/Editor/PlasticSCM/AssemblyInfo.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d50ac3212a7ff5a4795bf609a2a20350 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu.meta b/Editor/PlasticSCM/AssetMenu.meta new file mode 100644 index 0000000..f795ce3 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3f8e034331c39c4f823ac31228dc4d9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs b/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs new file mode 100644 index 0000000..6df9db2 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs @@ -0,0 +1,182 @@ +using PlasticGui; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; +using Unity.PlasticSCM.Editor.UI; + +namespace Unity.PlasticSCM.Editor.AssetMenu +{ + internal class AssetMenuItems + { + internal static void Enable( + IAssetMenuOperations operations, + IAssetStatusCache assetStatusCache, + AssetOperations.IAssetSelection assetsSelection) + { + mOperations = operations; + mAssetStatusCache = assetStatusCache; + mAssetsSelection = assetsSelection; + + AddMenuItems(); + } + + internal static void Disable() + { + RemoveMenuItems(); + } + + static void AddMenuItems() + { + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.PendingChangesPlasticMenu), + PENDING_CHANGES_MENU_ITEM_PRIORITY, + PendingChanges, ValidatePendingChanges); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.AddPlasticMenu), + ADD_MENU_ITEM_PRIORITY, + Add, ValidateAdd); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.CheckoutPlasticMenu), + CHECKOUT_MENU_ITEM_PRIORITY, + Checkout, ValidateCheckout); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.CheckinPlasticMenu), + CHECKIN_MENU_ITEM_PRIORITY, + Checkin, ValidateCheckin); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.UndoPlasticMenu), + UNDO_MENU_ITEM_PRIORITY, + Undo, ValidateUndo); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.DiffPlasticMenu), + GetPlasticShortcut.ForAssetDiff(), + DIFF_MENU_ITEM_PRIORITY, + Diff, ValidateDiff); + HandleMenuItem.AddMenuItem( + GetPlasticMenuItemName(PlasticLocalization.Name.HistoryPlasticMenu), + GetPlasticShortcut.ForHistory(), + HISTORY_MENU_ITEM_PRIORITY, + History, ValidateHistory); + + HandleMenuItem.UpdateAllMenus(); + } + + static void RemoveMenuItems() + { + HandleMenuItem.RemoveMenuItem( + PlasticLocalization.GetString(PlasticLocalization.Name.PrefixPlasticMenu)); + + HandleMenuItem.UpdateAllMenus(); + } + + internal static void PendingChanges() + { + ShowWindow.Plastic(); + + mOperations.ShowPendingChanges(); + } + + internal static bool ValidatePendingChanges() + { + return true; + } + + internal static void Add() + { + mOperations.Add(); + } + + static bool ValidateAdd() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.Add); + } + + internal static void Checkout() + { + mOperations.Checkout(); + } + + static bool ValidateCheckout() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.Checkout); + } + + internal static void Checkin() + { + mOperations.Checkin(); + } + + static bool ValidateCheckin() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.Checkin); + } + + internal static void Undo() + { + mOperations.Undo(); + } + + static bool ValidateUndo() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.Undo); + } + + internal static void Diff() + { + mOperations.ShowDiff(); + } + + static bool ValidateDiff() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.Diff); + } + + internal static void History() + { + ShowWindow.Plastic(); + + mOperations.ShowHistory(); + } + + static bool ValidateHistory() + { + return ShouldMenuItemBeEnabled(AssetMenuOperations.History); + } + + static bool ShouldMenuItemBeEnabled(AssetMenuOperations operation) + { + if (mOperations == null) + return false; + + SelectedAssetGroupInfo selectedGroupInfo = SelectedAssetGroupInfo. + BuildFromAssetList( + mAssetsSelection.GetSelectedAssets(), + mAssetStatusCache); + + AssetMenuOperations operations = AssetMenuUpdater. + GetAvailableMenuOperations(selectedGroupInfo); + + return operations.HasFlag(operation); + } + + static string GetPlasticMenuItemName(PlasticLocalization.Name name) + { + return string.Format("{0}/{1}", + PlasticLocalization.GetString(PlasticLocalization.Name.PrefixPlasticMenu), + PlasticLocalization.GetString(name)); + } + + static IAssetMenuOperations mOperations; + static IAssetStatusCache mAssetStatusCache; + static AssetOperations.IAssetSelection mAssetsSelection; + + const int BASE_MENU_ITEM_PRIORITY = 19; // Puts Plastic SCM right below Create menu + + // incrementing the "order" param by 11 causes the menu system to add a separator + const int PENDING_CHANGES_MENU_ITEM_PRIORITY = BASE_MENU_ITEM_PRIORITY; + const int ADD_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 11; + const int CHECKOUT_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 12; + const int CHECKIN_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 13; + const int UNDO_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 14; + const int DIFF_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 25; + const int HISTORY_MENU_ITEM_PRIORITY = PENDING_CHANGES_MENU_ITEM_PRIORITY + 26; + } +} diff --git a/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs.meta b/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs.meta new file mode 100644 index 0000000..c70e70c --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetMenuItems.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c8a8e3e4456f9149905cf2c80aa41a9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs b/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs new file mode 100644 index 0000000..fcc0c84 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs @@ -0,0 +1,225 @@ +using System; +using System.IO; + +using UnityEditor.VersionControl; + +using Codice; +using Codice.Client.Commands.WkTree; + +using PlasticGui; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; +using Unity.PlasticSCM.Editor.AssetsOverlays; + +namespace Unity.PlasticSCM.Editor.AssetMenu +{ + [Flags] + internal enum AssetMenuOperations : byte + { + None = 0, + Checkout = 1 << 0, + Diff = 1 << 1, + History = 1 << 2, + Add = 1 << 3, + Checkin = 1 << 4, + Undo = 1 << 5, + } + + internal class SelectedAssetGroupInfo + { + internal int SelectedCount; + + internal bool IsControlledSelection; + internal bool IsCheckedInSelection; + internal bool IsCheckedOutSelection; + internal bool IsPrivateSelection; + internal bool IsAddedSelection; + internal bool IsFileSelection; + internal bool HasAnyAddedInSelection; + internal bool HasAnyRemoteLockedInSelection; + + internal static SelectedAssetGroupInfo BuildFromAssetList( + AssetList assetList, + IAssetStatusCache statusCache) + { + bool isCheckedInSelection = true; + bool isControlledSelection = true; + bool isCheckedOutSelection = true; + bool isPrivateSelection = true; + bool isAddedSelection = true; + bool isFileSelection = true; + bool hasAnyAddedInSelection = false; + bool hasAnyRemoteLockedInSelection = false; + + int selectedCount = 0; + + foreach (Asset asset in assetList) + { + if (string.IsNullOrEmpty(asset.path)) + continue; + + SelectedAssetGroupInfo singleFileGroupInfo = BuildFromSingleFile( + asset.path, + asset.isFolder, + statusCache); + + if (!singleFileGroupInfo.IsCheckedInSelection) + isCheckedInSelection = false; + + if (!singleFileGroupInfo.IsControlledSelection) + isControlledSelection = false; + + if (!singleFileGroupInfo.IsCheckedOutSelection) + isCheckedOutSelection = false; + + if (!singleFileGroupInfo.IsPrivateSelection) + isPrivateSelection = false; + + if (!singleFileGroupInfo.IsAddedSelection) + isAddedSelection = false; + + if (!singleFileGroupInfo.IsFileSelection) + isFileSelection = false; + + if (singleFileGroupInfo.HasAnyAddedInSelection) + hasAnyAddedInSelection = true; + + if (singleFileGroupInfo.HasAnyRemoteLockedInSelection) + hasAnyRemoteLockedInSelection = true; + + selectedCount++; + } + + return new SelectedAssetGroupInfo() + { + IsCheckedInSelection = isCheckedInSelection, + IsCheckedOutSelection = isCheckedOutSelection, + IsControlledSelection = isControlledSelection, + IsPrivateSelection = isPrivateSelection, + IsAddedSelection = isAddedSelection, + IsFileSelection = isFileSelection, + HasAnyAddedInSelection = hasAnyAddedInSelection, + HasAnyRemoteLockedInSelection = hasAnyRemoteLockedInSelection, + SelectedCount = selectedCount, + }; + } + + internal static SelectedAssetGroupInfo BuildFromSingleFile( + string path, + bool isDirectory, + IAssetStatusCache statusCache) + { + bool isCheckedInSelection = true; + bool isControlledSelection = true; + bool isCheckedOutSelection = true; + bool isPrivateSelection = true; + bool isAddedSelection = true; + bool isFileSelection = true; + bool hasAnyAddedInSelection = false; + bool hasAnyRemoteLockedInSelection = false; + + string assetPath = Path.GetFullPath(path); + + WorkspaceTreeNode wkTreeNode = + Plastic.API.GetWorkspaceTreeNode(assetPath); + + if (isDirectory) + isFileSelection = false; + + if (CheckWorkspaceTreeNodeStatus.IsPrivate(wkTreeNode)) + isControlledSelection = false; + else + isPrivateSelection = false; + + if (CheckWorkspaceTreeNodeStatus.IsCheckedOut(wkTreeNode)) + isCheckedInSelection = false; + else + isCheckedOutSelection = false; + + if (CheckWorkspaceTreeNodeStatus.IsAdded(wkTreeNode)) + hasAnyAddedInSelection = true; + else + isAddedSelection = false; + + AssetsOverlays.AssetStatus assetStatus = statusCache.GetStatusForPath(assetPath); + + if (ClassifyAssetStatus.IsLockedRemote(assetStatus)) + hasAnyRemoteLockedInSelection = true; + + return new SelectedAssetGroupInfo() + { + IsCheckedInSelection = isCheckedInSelection, + IsCheckedOutSelection = isCheckedOutSelection, + IsControlledSelection = isControlledSelection, + IsPrivateSelection = isPrivateSelection, + IsAddedSelection = isAddedSelection, + IsFileSelection = isFileSelection, + HasAnyAddedInSelection = hasAnyAddedInSelection, + HasAnyRemoteLockedInSelection = hasAnyRemoteLockedInSelection, + SelectedCount = 1, + }; + } + + } + + internal interface IAssetMenuOperations + { + void ShowPendingChanges(); + void Add(); + void Checkout(); + void Checkin(); + void Undo(); + void ShowDiff(); + void ShowHistory(); + } + + internal static class AssetMenuUpdater + { + internal static AssetMenuOperations GetAvailableMenuOperations( + SelectedAssetGroupInfo info) + { + AssetMenuOperations result = AssetMenuOperations.None; + + if (info.SelectedCount == 0) + return result; + + if (info.IsControlledSelection && + info.IsCheckedInSelection && + info.IsFileSelection && + !info.HasAnyRemoteLockedInSelection) + { + result |= AssetMenuOperations.Checkout; + } + + if (info.IsFileSelection && + info.IsPrivateSelection) + { + result |= AssetMenuOperations.Add; + } + + if (info.IsFileSelection && + info.IsControlledSelection && + info.IsCheckedOutSelection) + { + result |= AssetMenuOperations.Checkin; + result |= AssetMenuOperations.Undo; + } + + if (info.SelectedCount == 1 && + info.IsControlledSelection && + !info.HasAnyAddedInSelection && + info.IsFileSelection) + { + result |= AssetMenuOperations.Diff; + } + + if (info.SelectedCount == 1 && + info.IsControlledSelection && + !info.HasAnyAddedInSelection) + { + result |= AssetMenuOperations.History; + } + + return result; + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs.meta b/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs.meta new file mode 100644 index 0000000..49aae3a --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetMenuOperations.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c456fa791a741a045a8a99ee73af2ae6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/AssetOperations.cs b/Editor/PlasticSCM/AssetMenu/AssetOperations.cs new file mode 100644 index 0000000..a04ae6e --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetOperations.cs @@ -0,0 +1,320 @@ +using System.IO; +using System.Collections.Generic; + +using UnityEditor; +using UnityEditor.VersionControl; + +using Codice.Client.Commands; +using Codice.Client.Commands.WkTree; +using Codice.Client.Common; +using Codice.Client.Common.Threading; +using Codice.CM.Common; +using GluonGui; +using PlasticGui; +using PlasticGui.Gluon; +using PlasticGui.WorkspaceWindow; +using PlasticGui.WorkspaceWindow.Diff; +using PlasticGui.WorkspaceWindow.Items; +using Unity.PlasticSCM.Editor.AssetMenu.Dialogs; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; +using Unity.PlasticSCM.Editor.AssetUtils; +using Unity.PlasticSCM.Editor.UI; + +using GluonCheckoutOperation = GluonGui.WorkspaceWindow.Views.WorkspaceExplorer.Explorer.Operations.CheckoutOperation; +using GluonUndoCheckoutOperation = GluonGui.WorkspaceWindow.Views.WorkspaceExplorer.Explorer.Operations.UndoCheckoutOperation; +using GluonAddoperation = GluonGui.WorkspaceWindow.Views.WorkspaceExplorer.Explorer.Operations.AddOperation; + +namespace Unity.PlasticSCM.Editor.AssetMenu +{ + internal class AssetOperations : IAssetMenuOperations + { + internal interface IAssetSelection + { + AssetList GetSelectedAssets(); + } + + internal AssetOperations( + WorkspaceInfo wkInfo, + IWorkspaceWindow workspaceWindow, + IViewSwitcher viewSwitcher, + IHistoryViewLauncher historyViewLauncher, + ViewHost viewHost, + NewIncomingChangesUpdater newIncomingChangesUpdater, + IAssetStatusCache assetStatusCache, + IMergeViewLauncher mergeViewLauncher, + IGluonViewSwitcher gluonViewSwitcher, + EditorWindow parentWindow, + IAssetSelection assetSelection, + bool isGluonMode) + { + mWkInfo = wkInfo; + mWorkspaceWindow = workspaceWindow; + mViewSwitcher = viewSwitcher; + mHistoryViewLauncher = historyViewLauncher; + mViewHost = viewHost; + mNewIncomingChangesUpdater = newIncomingChangesUpdater; + mAssetStatusCache = assetStatusCache; + mMergeViewLauncher = mergeViewLauncher; + mGluonViewSwitcher = gluonViewSwitcher; + mAssetSelection = assetSelection; + mIsGluonMode = isGluonMode; + mParentWindow = parentWindow; + + mGuiMessage = new UnityPlasticGuiMessage(parentWindow); + mProgressControls = new EditorProgressControls(mGuiMessage); + + } + void IAssetMenuOperations.ShowPendingChanges() + { + mViewSwitcher.ShowPendingChanges(); + } + + void IAssetMenuOperations.Add() + { + List selectedPaths = GetSelectedPaths.ForOperation( + mAssetSelection, + mAssetStatusCache, + AssetMenuOperations.Add); + + if (mIsGluonMode) + { + GluonAddoperation.Add( + mViewHost, + mProgressControls, + mGuiMessage, + selectedPaths.ToArray(), + false, + RefreshAsset.VersionControlCache); + return; + } + + AddOperation.Run( + mWorkspaceWindow, + mProgressControls, + null, + null, + selectedPaths, + false, + mNewIncomingChangesUpdater, + RefreshAsset.VersionControlCache); + } + + void IAssetMenuOperations.Checkout() + { + List selectedPaths = GetSelectedPaths.ForOperation( + mAssetSelection, + mAssetStatusCache, + AssetMenuOperations.Checkout); + + if (mIsGluonMode) + { + GluonCheckoutOperation.Checkout( + mViewHost, + mProgressControls, + mGuiMessage, + selectedPaths.ToArray(), + false, + RefreshAsset.VersionControlCache); + return; + } + + CheckoutOperation.Checkout( + mWorkspaceWindow, + null, + mProgressControls, + selectedPaths, + mNewIncomingChangesUpdater, + RefreshAsset.VersionControlCache); + } + + void IAssetMenuOperations.Checkin() + { + List selectedPaths = GetSelectedPaths.ForOperation( + mAssetSelection, + mAssetStatusCache, + AssetMenuOperations.Checkin); + + if (!CheckinDialog.CheckinPaths( + mWkInfo, + selectedPaths, + mAssetStatusCache, + mIsGluonMode, + mParentWindow, + mWorkspaceWindow, + mViewHost, + mGuiMessage, + mMergeViewLauncher, + mGluonViewSwitcher)) + return; + + RefreshAsset.UnityAssetDatabase(); + } + + void IAssetMenuOperations.Undo() + { + List selectedPaths = GetSelectedPaths.ForOperation( + mAssetSelection, + mAssetStatusCache, + AssetMenuOperations.Undo); + + SaveAssets.ForPathsWithoutConfirmation(selectedPaths); + + if (mIsGluonMode) + { + GluonUndoCheckoutOperation.UndoCheckout( + mWkInfo, + mViewHost, + mProgressControls, + mGuiMessage, + selectedPaths.ToArray(), + false, + RefreshAsset.UnityAssetDatabase); + return; + } + + UndoCheckoutOperation.Run( + mWorkspaceWindow, + null, + mProgressControls, + selectedPaths, + mNewIncomingChangesUpdater, + RefreshAsset.UnityAssetDatabase); + } + + void IAssetMenuOperations.ShowDiff() + { + string selectedPath = AssetsSelection.GetSelectedPath( + mAssetSelection.GetSelectedAssets()); + + DiffInfo diffInfo = null; + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(10); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + string symbolicName = GetSymbolicName(selectedPath); + string extension = Path.GetExtension(selectedPath); + + diffInfo = Plastic.API.BuildDiffInfoForDiffWithPrevious( + selectedPath, symbolicName, selectedPath, extension, mWkInfo); + }, + /*afterOperationDelegate*/ delegate + { + if (waiter.Exception != null) + { + ExceptionsHandler.DisplayException(waiter.Exception); + return; + } + + DiffOperation.DiffWithPrevious( + diffInfo, + null, + null); + }); + } + + void IAssetMenuOperations.ShowHistory() + { + AssetList assetList = mAssetSelection.GetSelectedAssets(); + + Asset selectedAsset = AssetsSelection.GetSelectedAsset( + assetList); + string selectedPath = AssetsSelection.GetSelectedPath( + assetList); + + WorkspaceTreeNode node = Plastic.API. + GetWorkspaceTreeNode(selectedPath); + + mHistoryViewLauncher.ShowHistoryView( + node.RepSpec, + node.RevInfo.ItemId, + selectedPath, + selectedAsset.isFolder); + } + + static string GetSymbolicName(string selectedPath) + { + WorkspaceTreeNode node = Plastic.API. + GetWorkspaceTreeNode(selectedPath); + + string branchName = string.Empty; + BranchInfoCache.TryGetBranchName( + node.RepSpec, node.RevInfo.BranchId, out branchName); + + string userName = Plastic.API.GetUserName( + node.RepSpec.Server, node.RevInfo.Owner); + + string symbolicName = string.Format( + "cs:{0}@{1} {2} {3}", + node.RevInfo.Changeset, + string.Format("br:{0}", branchName), + userName, + "Workspace Revision"); + + return symbolicName; + } + + readonly WorkspaceInfo mWkInfo; + readonly IViewSwitcher mViewSwitcher; + readonly IHistoryViewLauncher mHistoryViewLauncher; + readonly IWorkspaceWindow mWorkspaceWindow; + readonly ViewHost mViewHost; + readonly NewIncomingChangesUpdater mNewIncomingChangesUpdater; + readonly IAssetStatusCache mAssetStatusCache; + readonly IMergeViewLauncher mMergeViewLauncher; + readonly IGluonViewSwitcher mGluonViewSwitcher; + readonly bool mIsGluonMode; + readonly GuiMessage.IGuiMessage mGuiMessage; + readonly EditorProgressControls mProgressControls; + readonly EditorWindow mParentWindow; + readonly IAssetSelection mAssetSelection; + + static class GetSelectedPaths + { + internal static List ForOperation( + IAssetSelection assetSelection, + IAssetStatusCache assetStatusCache, + AssetMenuOperations operation) + { + List selectedPaths = AssetsSelection.GetSelectedPaths( + assetSelection.GetSelectedAssets()); + + List result = new List(selectedPaths); + + foreach (string path in selectedPaths) + { + if (MetaPath.IsMetaPath(path)) + continue; + + string metaPath = MetaPath.GetMetaPath(path); + + if (!File.Exists(metaPath)) + continue; + + if (result.Contains(metaPath)) + continue; + + if (!IsApplicableForOperation( + metaPath, false, operation, assetStatusCache)) + continue; + + result.Add(metaPath); + } + + return result; + } + + static bool IsApplicableForOperation( + string path, + bool isDirectory, + AssetMenuOperations operation, + IAssetStatusCache assetStatusCache) + { + SelectedAssetGroupInfo info = SelectedAssetGroupInfo.BuildFromSingleFile( + path, isDirectory, assetStatusCache); + + return AssetMenuUpdater.GetAvailableMenuOperations(info).HasFlag(operation); + } + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/AssetOperations.cs.meta b/Editor/PlasticSCM/AssetMenu/AssetOperations.cs.meta new file mode 100644 index 0000000..d6ca916 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetOperations.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2c8b452bcd72d8248a3297ff656f0a7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs b/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs new file mode 100644 index 0000000..53a7b6e --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.IO; +using Unity.PlasticSCM.Editor.AssetUtils; +using UnityEditor.VersionControl; + +namespace Unity.PlasticSCM.Editor.AssetMenu +{ + internal static class AssetsSelection + { + internal static Asset GetSelectedAsset(AssetList assetList) + { + if (assetList.Count == 0) + return null; + + return assetList[0]; + } + + internal static string GetSelectedPath(AssetList assetList) + { + if (assetList.Count == 0) + return null; + + return Path.GetFullPath(assetList[0].path); + } + + internal static List GetSelectedPaths(AssetList selectedAssets) + { + List result = new List(); + + foreach (Asset asset in selectedAssets) + { + string fullPath = Path.GetFullPath(asset.path); + result.Add(fullPath); + } + + return result; + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs.meta b/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs.meta new file mode 100644 index 0000000..314aee8 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/AssetsSelection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1686ac2e1d109ed43bf2dec74fed784f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/Dialogs.meta b/Editor/PlasticSCM/AssetMenu/Dialogs.meta new file mode 100644 index 0000000..8148c12 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/Dialogs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f5d6c6c129fff0140a040d43aedb9547 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs new file mode 100644 index 0000000..e8a9388 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs @@ -0,0 +1,383 @@ +using System; +using System.Collections.Generic; +using System.IO; + +using Codice.Client.Common; +using Codice.CM.Common; +using GluonGui; +using PlasticGui; +using PlasticGui.Gluon; + +using Unity.PlasticSCM.Editor.AssetsOverlays; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; +using Unity.PlasticSCM.Editor.AssetUtils; +using Unity.PlasticSCM.Editor.UI; +using Unity.PlasticSCM.Editor.UI.Progress; +using Unity.PlasticSCM.Editor.UI.Tree; + +using UnityEditor; +using UnityEngine; + +namespace Unity.PlasticSCM.Editor.AssetMenu.Dialogs +{ + internal class CheckinDialog : PlasticDialog + { + protected override Rect DefaultRect + { + get + { + var baseRect = base.DefaultRect; + return new Rect(baseRect.x, baseRect.y, 700, 450); + } + } + + protected override string GetTitle() + { + return PlasticLocalization.GetString( + PlasticLocalization.Name.CheckinChanges); + } + + internal static bool CheckinPaths( + WorkspaceInfo wkInfo, + List paths, + IAssetStatusCache assetStatusCache, + bool isGluonMode, + EditorWindow parentWindow, + IWorkspaceWindow workspaceWindow, + ViewHost viewHost, + GuiMessage.IGuiMessage guiMessage, + IMergeViewLauncher mergeViewLauncher, + IGluonViewSwitcher gluonViewSwitcher) + { + MetaCache metaCache = new MetaCache(); + metaCache.Build(paths); + + CheckinDialog dialog = Create( + wkInfo, + paths, + assetStatusCache, + metaCache, + isGluonMode, + new ProgressControlsForDialogs(), + workspaceWindow, + viewHost, + guiMessage, + mergeViewLauncher, + gluonViewSwitcher); + + return dialog.RunModal(parentWindow) == ResponseType.Ok; + } + + protected override void OnModalGUI() + { + Title(PlasticLocalization.GetString( + PlasticLocalization.Name.CheckinComment)); + + GUI.SetNextControlName(CHECKIN_TEXTAREA_NAME); + + mComment = GUILayout.TextArea( + mComment, + EditorStyles.textArea, + GUILayout.MinHeight(120)); + + if (!mTextAreaFocused) + { + EditorGUI.FocusTextInControl(CHECKIN_TEXTAREA_NAME); + mTextAreaFocused = true; + } + + Title(PlasticLocalization.GetString(PlasticLocalization.Name.Files)); + + DoFileList( + mWkInfo, + mPaths, + mAssetStatusCache, + mMetaCache); + + DrawProgressForDialogs.For( + mProgressControls.ProgressData); + + DoButtonsArea(); + + mProgressControls.ForcedUpdateProgress(this); + } + + void DoFileList( + WorkspaceInfo wkInfo, + List paths, + IAssetStatusCache assetStatusCache, + MetaCache metaCache) + { + mFileListScrollPosition = GUILayout.BeginScrollView( + mFileListScrollPosition, + EditorStyles.helpBox, + GUILayout.ExpandHeight(true)); + + foreach (string path in paths) + { + if (MetaPath.IsMetaPath(path)) + continue; + + Texture fileIcon = Directory.Exists(path) ? + Images.GetDirectoryIcon() : + Images.GetFileIcon(path); + + string label = WorkspacePath.GetWorkspaceRelativePath( + wkInfo.ClientPath, path); + + if (metaCache.HasMeta(path)) + label = string.Concat(label, UnityConstants.TREEVIEW_META_LABEL); + + GUIContent content = new GUIContent( + label, fileIcon); + + GUILayout.Label( + content, + GUILayout.Height(UnityConstants.TREEVIEW_ROW_HEIGHT)); + + Rect iconRect = GUILayoutUtility.GetLastRect(); + + DoStatusOverlays( + iconRect, + assetStatusCache, + path); + } + + GUILayout.EndScrollView(); + } + + static void DoStatusOverlays( + Rect iconRect, + IAssetStatusCache assetStatusCache, + string path) + { + AssetsOverlays.AssetStatus statusesToDraw = DrawAssetOverlay.GetStatusesToDraw( + assetStatusCache.GetStatusForPath(path)); + + foreach (AssetsOverlays.AssetStatus status in Enum.GetValues(typeof(AssetsOverlays.AssetStatus))) + { + if (status == AssetsOverlays.AssetStatus.None) + continue; + + if (!statusesToDraw.HasFlag(status)) + continue; + + GetChangesOverlayIcon.Data overlayIconData = + GetChangesOverlayIcon.ForAssetStatus(status); + + if (overlayIconData != null) + { + Rect overlayIconRect = new Rect( + iconRect.x + overlayIconData.XOffset, + iconRect.y + overlayIconData.YOffset, + overlayIconData.Size, overlayIconData.Size); + + GUI.DrawTexture( + overlayIconRect, overlayIconData.Texture, + ScaleMode.ScaleToFit); + } + } + } + + void DoButtonsArea() + { + using (new EditorGUILayout.HorizontalScope()) + { + GUILayout.FlexibleSpace(); + + if (Application.platform == RuntimePlatform.WindowsEditor) + { + DoCheckinButton(); + DoCancelButton(); + return; + } + + DoCancelButton(); + DoCheckinButton(); + } + } + + void DoCheckinButton() + { + GUI.enabled = !string.IsNullOrEmpty(mComment) && !mIsRunningCheckin; + + try + { + if (!AcceptButton(PlasticLocalization.GetString( + PlasticLocalization.Name.CheckinButton))) + return; + } + finally + { + GUI.enabled = true; + } + + OkButtonWithCheckinAction(); + } + + void DoCancelButton() + { + if (!NormalButton(PlasticLocalization.GetString( + PlasticLocalization.Name.CancelButton))) + return; + + CancelButtonAction(); + } + + void OkButtonWithCheckinAction() + { + bool isCancelled; + SaveAssets.ForPathsWithConfirmation(mPaths, out isCancelled); + + if (isCancelled) + return; + + mIsRunningCheckin = true; + + mPaths.AddRange(mMetaCache.GetExistingMeta(mPaths)); + + if (mIsGluonMode) + { + CheckinDialogOperations.CheckinPathsPartial( + mWkInfo, + mPaths, + mComment, + mViewHost, + this, + mGuiMessage, + mProgressControls, + mGluonViewSwitcher); + return; + } + + CheckinDialogOperations.CheckinPaths( + mWkInfo, + mPaths, + mComment, + mWorkspaceWindow, + this, + mGuiMessage, + mProgressControls, + mMergeViewLauncher); + } + + static CheckinDialog Create( + WorkspaceInfo wkInfo, + List paths, + IAssetStatusCache assetStatusCache, + MetaCache metaCache, + bool isGluonMode, + ProgressControlsForDialogs progressControls, + IWorkspaceWindow workspaceWindow, + ViewHost viewHost, + GuiMessage.IGuiMessage guiMessage, + IMergeViewLauncher mergeViewLauncher, + IGluonViewSwitcher gluonViewSwitcher) + { + var instance = CreateInstance(); + instance.IsResizable = true; + instance.minSize = new Vector2(520, 370); + instance.mWkInfo = wkInfo; + instance.mPaths = paths; + instance.mAssetStatusCache = assetStatusCache; + instance.mMetaCache = metaCache; + instance.mIsGluonMode = isGluonMode; + instance.mProgressControls = progressControls; + instance.mWorkspaceWindow = workspaceWindow; + instance.mViewHost = viewHost; + instance.mGuiMessage = guiMessage; + instance.mMergeViewLauncher = mergeViewLauncher; + instance.mGluonViewSwitcher = gluonViewSwitcher; + instance.mEnterKeyAction = instance.OkButtonAction; + instance.mEscapeKeyAction = instance.CancelButtonAction; + return instance; + } + + WorkspaceInfo mWkInfo; + List mPaths; + IAssetStatusCache mAssetStatusCache; + MetaCache mMetaCache; + bool mIsGluonMode; + bool mTextAreaFocused; + string mComment; + + bool mIsRunningCheckin; + Vector2 mFileListScrollPosition; + + ProgressControlsForDialogs mProgressControls; + + IWorkspaceWindow mWorkspaceWindow; + ViewHost mViewHost; + IMergeViewLauncher mMergeViewLauncher; + IGluonViewSwitcher mGluonViewSwitcher; + GuiMessage.IGuiMessage mGuiMessage; + + const string CHECKIN_TEXTAREA_NAME = "checkin_textarea"; + + class MetaCache + { + internal bool HasMeta(string path) + { + return mCache.Contains(MetaPath.GetMetaPath(path)); + } + + internal List GetExistingMeta(List paths) + { + List result = new List(); + + foreach (string path in paths) + { + string metaPath = MetaPath.GetMetaPath(path); + + if (!mCache.Contains(metaPath)) + continue; + + result.Add(metaPath); + } + + return result; + } + + internal void Build(List paths) + { + HashSet indexedKeys = BuildIndexedKeys(paths); + + for (int i = paths.Count - 1; i >= 0; i--) + { + string currentPath = paths[i]; + + if (!MetaPath.IsMetaPath(currentPath)) + continue; + + string realPath = MetaPath.GetPathFromMetaPath(currentPath); + + if (!indexedKeys.Contains(realPath)) + continue; + + // found foo.c and foo.c.meta + // with the same chage types - move .meta to cache + mCache.Add(currentPath); + paths.RemoveAt(i); + } + } + + static HashSet BuildIndexedKeys(List paths) + { + HashSet result = new HashSet(); + + foreach (string path in paths) + { + if (MetaPath.IsMetaPath(path)) + continue; + + result.Add(path); + } + + return result; + } + + HashSet mCache = + new HashSet(); + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs.meta b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs.meta new file mode 100644 index 0000000..207c66f --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialog.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 678db227e4ffec949980d309c0532b08 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs new file mode 100644 index 0000000..07fc8c0 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; + +using Codice.Client.BaseCommands; +using Codice.Client.Commands.CheckIn; +using Codice.Client.Common; +using Codice.Client.Common.Threading; +using Codice.Client.GameUI.Checkin; +using Codice.CM.Common; + +using GluonGui; + +using PlasticGui; +using PlasticGui.Gluon; +using PlasticGui.WorkspaceWindow.PendingChanges; + +namespace Unity.PlasticSCM.Editor.AssetMenu.Dialogs +{ + internal static class CheckinDialogOperations + { + internal static void CheckinPaths( + WorkspaceInfo wkInfo, + List paths, + string comment, + IWorkspaceWindow workspaceWindow, + CheckinDialog dialog, + GuiMessage.IGuiMessage guiMessage, + IProgressControls progressControls, + IMergeViewLauncher mergeViewLauncher) + { + BaseCommandsImpl baseCommands = new BaseCommandsImpl(); + + progressControls.ShowProgress("Checkin in files"); + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + CheckinParams ciParams = new CheckinParams(); + ciParams.paths = paths.ToArray(); + ciParams.comment = comment; + ciParams.time = DateTime.MinValue; + ciParams.flags = CheckinFlags.Recurse | CheckinFlags.ProcessSymlinks; + + baseCommands.CheckIn(ciParams); + }, + /*afterOperationDelegate*/ delegate + { + progressControls.HideProgress(); + ((IPlasticDialogCloser)dialog).CloseDialog(); + + if (waiter.Exception is CmClientMergeNeededException || + waiter.Exception is CmClientUpdateMergeNeededException) + { + // we need to explicitly call EditorWindow.Close() to ensure + // that the dialog is closed before asking the user + dialog.Close(); + + if (!UserWantsToShowIncomingView(guiMessage)) + return; + + ShowIncomingChanges.FromCheckin( + wkInfo, + mergeViewLauncher, + progressControls); + + return; + } + + if (waiter.Exception != null) + { + ExceptionsHandler.DisplayException(waiter.Exception); + return; + } + + workspaceWindow.RefreshView(ViewType.PendingChangesView); + workspaceWindow.RefreshView(ViewType.HistoryView); + }); + } + + internal static void CheckinPathsPartial( + WorkspaceInfo wkInfo, + List paths, + string comment, + ViewHost viewHost, + CheckinDialog dialog, + GuiMessage.IGuiMessage guiMessage, + IProgressControls progressControls, + IGluonViewSwitcher gluonViewSwitcher) + { + BaseCommandsImpl baseCommands = new BaseCommandsImpl(); + + progressControls.ShowProgress(PlasticLocalization.GetString( + PlasticLocalization.Name.CheckinInFilesProgress)); + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + baseCommands.PartialCheckin(wkInfo, paths, comment); + }, + /*afterOperationDelegate*/ delegate + { + progressControls.HideProgress(); + + ((IPlasticDialogCloser)dialog).CloseDialog(); + + if (waiter.Exception is CheckinConflictsException) + { + // we need to explicitly call EditorWindow.Close() to ensure + // that the dialog is closed before asking the user + dialog.Close(); + + if (!UserWantsToShowIncomingView(guiMessage)) + return; + + gluonViewSwitcher.ShowIncomingChangesView(); + return; + } + + if (waiter.Exception != null) + { + ExceptionsHandler.DisplayException(waiter.Exception); + return; + } + + viewHost.RefreshView(ViewType.CheckinView); + viewHost.RefreshView(ViewType.HistoryView); + }); + } + + static bool UserWantsToShowIncomingView(GuiMessage.IGuiMessage guiMessage) + { + GuiMessage.GuiMessageResponseButton result = guiMessage.ShowQuestion( + PlasticLocalization.GetString(PlasticLocalization.Name.CheckinConflictsTitle), + PlasticLocalization.GetString(PlasticLocalization.Name.UnityCheckinConflictsExplanation), + "", + PlasticLocalization.GetString(PlasticLocalization.Name.CheckinShowIncomingChangesView), + PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton), + false); + + return result == GuiMessage.GuiMessageResponseButton.Second; + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs.meta b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs.meta new file mode 100644 index 0000000..13761ab --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/Dialogs/CheckinDialogOperations.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c44a2ac668da0a04d9e567739215b2eb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs b/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs new file mode 100644 index 0000000..da5b847 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs @@ -0,0 +1,12 @@ +using UnityEditor.VersionControl; + +namespace Unity.PlasticSCM.Editor.AssetMenu +{ + internal class ProjectViewAssetSelection : AssetOperations.IAssetSelection + { + AssetList AssetOperations.IAssetSelection.GetSelectedAssets() + { + return Provider.GetAssetListFromSelection(); + } + } +} diff --git a/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs.meta b/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs.meta new file mode 100644 index 0000000..d9c9ac9 --- /dev/null +++ b/Editor/PlasticSCM/AssetMenu/ProjectViewAssetSelection.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8a49294ba135a2408fd1b26bcda6f97 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays.meta b/Editor/PlasticSCM/AssetOverlays.meta new file mode 100644 index 0000000..5ae2841 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 491c192b16f732b4983b4a539908ad32 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs b/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs new file mode 100644 index 0000000..f45dc94 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs @@ -0,0 +1,71 @@ +using System; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays +{ + [Flags] + internal enum AssetStatus + { + None = 0, + Private = 1 << 0, + Ignored = 1 << 2, + Added = 1 << 3, + Checkout = 1 << 4, + Controlled = 1 << 5, + UpToDate = 1 << 6, + OutOfDate = 1 << 7, + Conflicted = 1 << 8, + DeletedOnServer = 1 << 9, + Locked = 1 << 10, + LockedRemote = 1 << 11, + } + + internal class LockStatusData + { + internal readonly AssetStatus Status; + internal readonly string LockedBy; + internal readonly string WorkspaceName; + + internal LockStatusData( + AssetStatus status, + string lockedBy, + string workspaceName) + { + Status = status; + LockedBy = lockedBy; + WorkspaceName = workspaceName; + } + } + + internal class ClassifyAssetStatus + { + internal static bool IsControlled(AssetStatus status) + { + return ContainsAny(status, AssetStatus.Controlled); + } + + internal static bool IsLockedRemote(AssetStatus status) + { + return ContainsAny(status, AssetStatus.LockedRemote); + } + + internal static bool IsConflicted(AssetStatus status) + { + return ContainsAny(status, AssetStatus.Conflicted); + } + + internal static bool IsAdded(AssetStatus status) + { + return ContainsAny(status, AssetStatus.Added); + } + + internal static bool IsCheckedOut(AssetStatus status) + { + return ContainsAny(status, AssetStatus.Checkout); + } + + static bool ContainsAny(AssetStatus status, AssetStatus matchTo) + { + return (status & matchTo) != AssetStatus.None; + } + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs.meta b/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs.meta new file mode 100644 index 0000000..602a0a9 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/AssetStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 062535eac3e5dd1409b6a50b0d043e2c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache.meta b/Editor/PlasticSCM/AssetOverlays/Cache.meta new file mode 100644 index 0000000..1001b1e --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6a94a55dca335c547ac65bd4b85d2a55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs b/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs new file mode 100644 index 0000000..eb3ca3b --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs @@ -0,0 +1,98 @@ +using System; +using System.IO; + +using UnityEditor; + +using Codice.CM.Common; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal interface IAssetStatusCache + { + AssetStatus GetStatusForPath(string fullPath); + AssetStatus GetStatusForGuid(string guid); + LockStatusData GetLockStatusData(string guid); + LockStatusData GetLockStatusDataForPath(string path); + void Clear(); + } + + internal class AssetStatusCache : IAssetStatusCache + { + internal AssetStatusCache( + WorkspaceInfo wkInfo, + bool isGluonMode, + Action repaintProjectWindow) + { + mLocalStatusCache = new LocalStatusCache(wkInfo); + + mRemoteStatusCache = new RemoteStatusCache( + wkInfo, + isGluonMode, + repaintProjectWindow); + + mLockStatusCache = new LockStatusCache( + wkInfo, + repaintProjectWindow); + } + + AssetStatus IAssetStatusCache.GetStatusForPath(string fullPath) + { + AssetStatus localStatus = mLocalStatusCache.GetStatus(fullPath); + + if (!ClassifyAssetStatus.IsControlled(localStatus)) + return localStatus; + + AssetStatus remoteStatus = mRemoteStatusCache.GetStatus(fullPath); + + AssetStatus lockStatus = mLockStatusCache.GetStatus(fullPath); + + return localStatus | remoteStatus | lockStatus; + } + + AssetStatus IAssetStatusCache.GetStatusForGuid(string guid) + { + string fullPath = GetAssetPath(guid); + + if (string.IsNullOrEmpty(fullPath)) + return AssetStatus.None; + + return ((IAssetStatusCache)this).GetStatusForPath(fullPath); + } + + LockStatusData IAssetStatusCache.GetLockStatusDataForPath(string path) + { + if (string.IsNullOrEmpty(path)) + return null; + + return mLockStatusCache.GetLockStatusData(path); + } + + LockStatusData IAssetStatusCache.GetLockStatusData(string guid) + { + string fullPath = GetAssetPath(guid); + + return ((IAssetStatusCache)this).GetLockStatusDataForPath(fullPath); + } + + void IAssetStatusCache.Clear() + { + mLocalStatusCache.Clear(); + mRemoteStatusCache.Clear(); + mLockStatusCache.Clear(); + } + + static string GetAssetPath(string guid) + { + string assetPath = AssetDatabase.GUIDToAssetPath(guid); + + if (string.IsNullOrEmpty(assetPath)) + return null; + + return Path.GetFullPath(assetPath); + } + + readonly LocalStatusCache mLocalStatusCache; + readonly RemoteStatusCache mRemoteStatusCache; + readonly LockStatusCache mLockStatusCache; + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs.meta new file mode 100644 index 0000000..101a000 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/AssetStatusCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3f227b28cf424364489edd67fce697bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs b/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs new file mode 100644 index 0000000..b655ac6 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; + +using Codice.Utils; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal static class BuildPathDictionary + { + internal static Dictionary ForPlatform() + { + if (PlatformIdentifier.IsWindows()) + return new Dictionary( + StringComparer.OrdinalIgnoreCase); + + return new Dictionary(); + } + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs.meta new file mode 100644 index 0000000..4a3cb1a --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/BuildPathDictionary.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9c963b5d17c74314eb7105e71377cdb8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs b/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs new file mode 100644 index 0000000..6ec3778 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; + +using Codice; +using Codice.Client.BaseCommands; +using Codice.Client.Commands.WkTree; +using Codice.Client.Common; +using Codice.CM.Common; + +using PlasticGui; +using PlasticGui.WorkspaceWindow; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal class LocalStatusCache + { + internal LocalStatusCache(WorkspaceInfo wkInfo) + { + mWkInfo = wkInfo; + } + + internal AssetStatus GetStatus(string fullPath) + { + AssetStatus result; + + if (mStatusByPathCache.TryGetValue(fullPath, out result)) + return result; + + result = CalculateStatus( + fullPath, + mWkInfo.ClientPath, + FilterManager.Get().GetIgnoredFilter()); + + mStatusByPathCache.Add(fullPath, result); + + return result; + } + + internal void Clear() + { + FilterManager.Get().Reload(); + + mStatusByPathCache.Clear(); + } + + static AssetStatus CalculateStatus( + string fullPath, + string wkPath, + IgnoredFilesFilter ignoredFilter) + { + if (!IsOnWorkspace(fullPath, wkPath)) + return AssetStatus.None; + + WorkspaceTreeNode treeNode = Plastic.API.GetWorkspaceTreeNode(fullPath); + + if (CheckWorkspaceTreeNodeStatus.IsPrivate(treeNode)) + { + return ignoredFilter.IsIgnored(fullPath) ? + AssetStatus.Ignored : AssetStatus.Private; + } + + if (CheckWorkspaceTreeNodeStatus.IsAdded(treeNode)) + return AssetStatus.Added; + + AssetStatus result = AssetStatus.Controlled; + + if (CheckWorkspaceTreeNodeStatus.IsCheckedOut(treeNode) && + !CheckWorkspaceTreeNodeStatus.IsDirectory(treeNode)) + result |= AssetStatus.Checkout; + + return result; + } + + static bool IsOnWorkspace(string fullPath, string clientPath) + { + return PathHelper.IsContainedOn(fullPath, clientPath); + } + + Dictionary mStatusByPathCache = + BuildPathDictionary.ForPlatform(); + + readonly WorkspaceInfo mWkInfo; + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs.meta new file mode 100644 index 0000000..a52983f --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/LocalStatusCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 226459a134855504d841db6b61519d2b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs b/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs new file mode 100644 index 0000000..e68d46f --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs @@ -0,0 +1,220 @@ +using System; +using System.Collections.Generic; + +using Codice; +using Codice.Client.BaseCommands; +using Codice.Client.Commands.WkTree; +using Codice.Client.Common; +using Codice.Client.Common.Locks; +using Codice.Client.Common.Threading; +using Codice.Client.Common.WkTree; +using Codice.CM.Common; +using Codice.Utils; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal class LockStatusCache + { + internal LockStatusCache( + WorkspaceInfo wkInfo, + Action repaintProjectWindow) + { + mWkInfo = wkInfo; + mRepaintProjectWindow = repaintProjectWindow; + } + + internal AssetStatus GetStatus(string fullPath) + { + LockStatusData lockStatusData = GetLockStatusData(fullPath); + + if (lockStatusData == null) + return AssetStatus.None; + + return lockStatusData.Status; + } + + internal LockStatusData GetLockStatusData(string fullPath) + { + lock (mLock) + { + if (mStatusByPathCache == null) + { + mStatusByPathCache = BuildPathDictionary.ForPlatform(); + + mCurrentCancelToken.Cancel(); + mCurrentCancelToken = new CancelToken(); + AsyncCalculateStatus(mCurrentCancelToken); + + return null; + } + + LockStatusData result; + + if (mStatusByPathCache.TryGetValue(fullPath, out result)) + return result; + + return null; + } + } + + internal void Clear() + { + lock (mLock) + { + mCurrentCancelToken.Cancel(); + + mStatusByPathCache = null; + } + } + + void AsyncCalculateStatus(CancelToken cancelToken) + { + Dictionary statusByPathCache = null; + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + + Dictionary> lockCandidates = + new Dictionary>(); + + FillLockCandidates.ForTree(mWkInfo, lockCandidates); + + if (cancelToken.IsCancelled()) + return; + + Dictionary lockInfoByNode = + SearchLocks.GetLocksInfo(mWkInfo, lockCandidates); + + if (cancelToken.IsCancelled()) + return; + + statusByPathCache = BuildStatusByNodeCache. + ForLocks(mWkInfo.ClientPath, lockInfoByNode); + }, + /*afterOperationDelegate*/ delegate + { + if (waiter.Exception != null) + { + ExceptionsHandler.LogException( + "LockStatusCache", + waiter.Exception); + return; + } + + if (cancelToken.IsCancelled()) + return; + + lock (mLock) + { + mStatusByPathCache = statusByPathCache; + } + + mRepaintProjectWindow(); + }); + } + + static class FillLockCandidates + { + internal static void ForTree( + WorkspaceInfo wkInfo, + Dictionary> lockCandidates) + { + WorkspaceTreeNode rootNode = CmConnection.Get().GetWorkspaceTreeHandler(). + GetWorkspaceTree(wkInfo, wkInfo.ClientPath, true); + + Queue pendingDirectories = new Queue(); + pendingDirectories.Enqueue(rootNode); + + while (pendingDirectories.Count > 0) + { + WorkspaceTreeNode directoryNode = pendingDirectories.Dequeue(); + + ForChildren(directoryNode, pendingDirectories, lockCandidates); + } + } + + static void ForChildren( + WorkspaceTreeNode directoryNode, + Queue pendingDirectories, + Dictionary> lockCandidates) + { + if (!directoryNode.HasChildren) + return; + + foreach (WorkspaceTreeNode child in directoryNode.Children) + { + if (CheckWorkspaceTreeNodeStatus.IsDirectory(child)) + { + pendingDirectories.Enqueue(child); + continue; + } + + if (CheckWorkspaceTreeNodeStatus.IsAdded(child)) + continue; + + List nodes = null; + if (!lockCandidates.TryGetValue(child.RepSpec, out nodes)) + { + nodes = new List(); + lockCandidates.Add(child.RepSpec, nodes); + } + + nodes.Add(child); + } + } + } + + static class BuildStatusByNodeCache + { + internal static Dictionary ForLocks( + string wkPath, + Dictionary lockInfoByNode) + { + Dictionary result = + BuildPathDictionary.ForPlatform(); + + LockOwnerNameResolver nameResolver = new LockOwnerNameResolver(); + + foreach (WorkspaceTreeNode node in lockInfoByNode.Keys) + { + LockStatusData lockStatusData = BuildLockStatusData( + node, lockInfoByNode[node], nameResolver); + + string nodeWkPath = WorkspacePath.GetWorkspacePathFromCmPath( + wkPath, + WorkspaceNodeOperations.GetCmPath(node), + PathHelper.GetDirectorySeparatorChar(wkPath)); + + result.Add(nodeWkPath, lockStatusData); + } + + return result; + } + + static LockStatusData BuildLockStatusData( + WorkspaceTreeNode node, + LockInfo lockInfo, + LockOwnerNameResolver nameResolver) + { + AssetStatus status = CheckWorkspaceTreeNodeStatus.IsCheckedOut(node) ? + AssetStatus.Locked : AssetStatus.LockedRemote; + + return new LockStatusData( + status, + nameResolver.GetSeidName(lockInfo.SEIDData), + LockWkInfo.GetWkCleanName(lockInfo)); + } + } + + CancelToken mCurrentCancelToken = new CancelToken(); + + Dictionary mStatusByPathCache; + + readonly WorkspaceInfo mWkInfo; + readonly Action mRepaintProjectWindow; + + static object mLock = new object(); + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs.meta new file mode 100644 index 0000000..d3ccadd --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/LockStatusCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 953c29d2e0dece647a64940343c91547 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs b/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs new file mode 100644 index 0000000..5e198be --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; + +using Codice.Client.BaseCommands; +using Codice.Client.Commands; +using Codice.Client.Common; +using Codice.Client.Common.Threading; +using Codice.Client.GameUI; +using Codice.Client.GameUI.Update; +using Codice.CM.Common; +using Codice.CM.Common.Merge; +using Codice.Utils; +using GluonGui.WorkspaceWindow.Views; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal class RemoteStatusCache + { + internal RemoteStatusCache( + WorkspaceInfo wkInfo, + bool isGluonMode, + Action repaintProjectWindow) + { + mWkInfo = wkInfo; + mIsGluonMode = isGluonMode; + mRepaintProjectWindow = repaintProjectWindow; + } + + internal AssetStatus GetStatus(string fullPath) + { + if (!mIsGluonMode) + return AssetStatus.UpToDate; + + lock(mLock) + { + if (mStatusByPathCache == null) + { + mStatusByPathCache = BuildPathDictionary.ForPlatform(); + + mCurrentCancelToken.Cancel(); + mCurrentCancelToken = new CancelToken(); + AsyncCalculateStatus(mCurrentCancelToken); + + return AssetStatus.UpToDate; + } + + AssetStatus result; + if (mStatusByPathCache.TryGetValue(fullPath, out result)) + return result; + + return AssetStatus.UpToDate; + } + } + + internal void Clear() + { + lock (mLock) + { + mCurrentCancelToken.Cancel(); + mStatusByPathCache = null; + } + } + + void AsyncCalculateStatus(CancelToken cancelToken) + { + Dictionary statusByPathCache = null; + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(50); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + OutOfDateItems outOfDateItems = + OutOfDateUpdater.CalculateOutOfDateItems( + mWkInfo, new List(), + OutOfDateCalculator.Options.IsIncomingChanges); + + if (cancelToken.IsCancelled()) + return; + + statusByPathCache = BuildStatusByPathCache. + ForOutOfDateItems(outOfDateItems, mWkInfo.ClientPath); + }, + /*afterOperationDelegate*/ delegate + { + if (waiter.Exception != null) + { + ExceptionsHandler.LogException( + "RemoteStatusCache", + waiter.Exception); + return; + } + + if (cancelToken.IsCancelled()) + return; + + lock (mLock) + { + mStatusByPathCache = statusByPathCache; + } + + mRepaintProjectWindow(); + }); + } + + static class BuildStatusByPathCache + { + internal static Dictionary ForOutOfDateItems( + OutOfDateItems outOfDateItems, + string wkPath) + { + Dictionary result = + BuildPathDictionary.ForPlatform(); + + if (outOfDateItems == null) + return result; + + foreach (OutOfDateItemsByMount diffs in + outOfDateItems.GetOutOfDateItemsByMountList()) + { + foreach (Difference diff in diffs.Changed) + { + if (diff is DiffXlinkChanged) + continue; + + string path = GetPathForDiff(wkPath, diffs.Mount, diff.Path); + result.Add(path, AssetStatus.OutOfDate); + } + + foreach (Difference diff in diffs.Deleted) + { + string path = GetPathForDiff(wkPath, diffs.Mount, diff.Path); + result.Add(path, AssetStatus.DeletedOnServer); + } + } + + foreach (GluonFileConflict fileConflict in + outOfDateItems.GetFileConflicts()) + { + string path = GetPathForConflict(wkPath, fileConflict.CmPath); + result.Add(path, AssetStatus.Conflicted); + } + + return result; + } + + static string GetPathForDiff( + string wkPath, + MountPointWithPath mountPoint, + string cmSubPath) + { + return WorkspacePath.GetWorkspacePathFromCmPath( + wkPath, + WorkspacePath.ComposeMountPath(mountPoint.MountPath, cmSubPath), + PathHelper.GetDirectorySeparatorChar(wkPath)); + } + + static string GetPathForConflict( + string wkPath, + string cmPath) + { + return WorkspacePath.GetWorkspacePathFromCmPath( + wkPath, cmPath, + PathHelper.GetDirectorySeparatorChar(wkPath)); + } + } + + CancelToken mCurrentCancelToken = new CancelToken(); + + Dictionary mStatusByPathCache; + + readonly Action mRepaintProjectWindow; + readonly bool mIsGluonMode; + readonly WorkspaceInfo mWkInfo; + + static object mLock = new object(); + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs.meta new file mode 100644 index 0000000..cb8963e --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/RemoteStatusCache.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a9acb575a60d7e045ad7fadd3e3e137d +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs b/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs new file mode 100644 index 0000000..4eb2b42 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; + +using Codice.Client.Commands.WkTree; +using Codice.Client.Common; +using Codice.Client.Common.Locks; +using Codice.Client.Common.WkTree; +using Codice.CM.Common; +using Codice.CM.WorkspaceServer.DataStore.Guids; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays.Cache +{ + internal static class SearchLocks + { + internal static Dictionary GetLocksInfo( + WorkspaceInfo wkInfo, + Dictionary> locksCandidates) + { + Dictionary result = + new Dictionary(); + + Dictionary> locksByItemByServer = + new Dictionary>( + StringComparer.InvariantCultureIgnoreCase); + + foreach (KeyValuePair> each in locksCandidates) + { + FillRepositoryLocks( + wkInfo, each.Key, each.Value, + locksByItemByServer, result); + } + + return result; + } + + static void FillRepositoryLocks( + WorkspaceInfo wkInfo, + RepositorySpec repSpec, + List candidates, + Dictionary> locksByItemByServer, + Dictionary locks) + { + if (candidates.Count == 0) + return; + + LockRule lockRule = ServerLocks.GetLockRule(repSpec); + + if (lockRule == null) + return; + + candidates = GetLockableCandidates(candidates, lockRule); + + if (candidates.Count == 0) + return; + + string lockServer = string.IsNullOrEmpty(lockRule.LockServer) ? + repSpec.Server : lockRule.LockServer; + + Dictionary serverlocksByItem = + ServerLocks.GetServerLocksByItem( + lockServer, locksByItemByServer); + + if (serverlocksByItem == null || serverlocksByItem.Count == 0) + return; + + IList candidatesGuids = GetCandidatesGuids( + wkInfo, repSpec, candidates); + + for (int index = 0; index < candidates.Count; index++) + { + LockInfo serverLock; + if (!serverlocksByItem.TryGetValue( + candidatesGuids[index], out serverLock)) + continue; + + locks[candidates[index]] = serverLock; + } + } + + static List GetLockableCandidates( + List candidates, + LockRule lockRule) + { + List result = new List(); + + LockedFilesFilter filter = new LockedFilesFilter(lockRule.Rules); + + foreach (WorkspaceTreeNode candidate in candidates) + { + string cmPath = WorkspaceNodeOperations.GetCmPath(candidate); + + if (cmPath == null) + { + //The node could not be on the head tree (like copied items) so when we + //cannot calculate the path we assume that it's lockable. + result.Add(candidate); + continue; + } + + if (filter.IsLockable(cmPath)) + result.Add(candidate); + } + + return result; + } + + static IList GetCandidatesGuids( + WorkspaceInfo wkInfo, + RepositorySpec repSpec, + List candidates) + { + RepositoryInfo repInfo = RepositorySpecResolverProvider. + Get().GetRepInfo(repSpec); + + IList ids = new List(candidates.Count); + + foreach (WorkspaceTreeNode candidate in candidates) + ids.Add(candidate.RevInfo.ItemId); + + return GuidResolver.Get().GetObjectGuids(repInfo, wkInfo, ids); + } + } +} diff --git a/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs.meta b/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs.meta new file mode 100644 index 0000000..5b37b16 --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/Cache/SearchLocks.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cef27b0c65987be4384e16c988465aca +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs b/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs new file mode 100644 index 0000000..0e5379c --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs @@ -0,0 +1,324 @@ +using System; + +using UnityEditor; +using UnityEngine; + +using PlasticGui; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; +using Unity.PlasticSCM.Editor.UI; + +namespace Unity.PlasticSCM.Editor.AssetsOverlays +{ + internal static class DrawAssetOverlay + { + internal static void Initialize( + IAssetStatusCache cache, + Action repaintProjectWindow) + { + mAssetStatusCache = cache; + mRepaintProjectWindow = repaintProjectWindow; + + EditorApplication.projectWindowItemOnGUI += OnProjectWindowItemGUI; + + mRepaintProjectWindow(); + } + + internal static void Dispose() + { + EditorApplication.projectWindowItemOnGUI -= OnProjectWindowItemGUI; + + if (mRepaintProjectWindow != null) + mRepaintProjectWindow(); + } + + internal static void ClearCache() + { + mAssetStatusCache.Clear(); + mRepaintProjectWindow(); + } + + internal static AssetStatus GetStatusesToDraw(AssetStatus status) + { + if (status.HasFlag(AssetStatus.Checkout) && + status.HasFlag(AssetStatus.Locked)) + return status & ~AssetStatus.Checkout; + + if (status.HasFlag(AssetStatus.DeletedOnServer) && + status.HasFlag(AssetStatus.LockedRemote)) + return status & ~AssetStatus.LockedRemote; + + return status; + } + + internal static string GetStatusString(AssetStatus statusValue) + { + switch (statusValue) + { + case AssetStatus.Private: + return PlasticLocalization.GetString( + PlasticLocalization.Name.Private); + case AssetStatus.Ignored: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusIgnored); + case AssetStatus.Added: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusAdded); + case AssetStatus.Checkout: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusCheckout); + case AssetStatus.OutOfDate: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusOutOfDate); + case AssetStatus.Conflicted: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusConflicted); + case AssetStatus.DeletedOnServer: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusDeletedOnServer); + case AssetStatus.Locked: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusLockedMe); + case AssetStatus.LockedRemote: + return PlasticLocalization.GetString( + PlasticLocalization.Name.StatusLockedRemote); + } + + return string.Empty; + } + + internal static string GetTooltipText( + AssetStatus statusValue, + LockStatusData lockStatusData) + { + string statusText = GetStatusString(statusValue); + + if (lockStatusData == null) + return statusText; + + // example: + // Changed by: + // * dani_pen@hotmail.com + // * workspace wkLocal" + + char bulletCharacter = '\u25cf'; + + string line1 = PlasticLocalization.GetString( + PlasticLocalization.Name.AssetOverlayTooltipStatus, statusText); + + string line2 = string.Format("{0} {1}", + bulletCharacter, + lockStatusData.LockedBy); + + string line3 = string.Format("{0} {1}", + bulletCharacter, + PlasticLocalization.GetString( + PlasticLocalization.Name.AssetOverlayTooltipWorkspace, + lockStatusData.WorkspaceName)); + + return string.Format( + "{0}" + Environment.NewLine + + "{1}" + Environment.NewLine + + "{2}", + line1, + line2, + line3); + } + + static void OnProjectWindowItemGUI(string guid, Rect selectionRect) + { + if (string.IsNullOrEmpty(guid)) + return; + + if (Event.current.type != EventType.Repaint) + return; + + AssetStatus statusesToDraw = GetStatusesToDraw( + mAssetStatusCache.GetStatusForGuid(guid)); + + foreach (AssetStatus status in Enum.GetValues(typeof(AssetStatus))) + { + if (status == AssetStatus.None) + continue; + + if (!statusesToDraw.HasFlag(status)) + continue; + + LockStatusData lockStatusData = + ClassifyAssetStatus.IsLockedRemote(status) ? + mAssetStatusCache.GetLockStatusData(guid) : + null; + + string tooltipText = GetTooltipText( + status, + lockStatusData); + + DrawOverlayIcon.ForStatus( + selectionRect, + status, + tooltipText); + } + } + + internal static class DrawOverlayIcon + { + internal static void ForStatus( + Rect selectionRect, + AssetStatus status, + string tooltipText) + { + Texture overlayIcon = GetOverlayIcon(status); + + if (overlayIcon == null) + return; + + Rect overlayRect = GetOverlayRect( + selectionRect, overlayIcon, status); + + GUI.DrawTexture( + overlayRect, overlayIcon, ScaleMode.ScaleToFit); + + Rect tooltipRect = GetTooltipRect(selectionRect, overlayRect); + + GUI.Label(tooltipRect, new GUIContent(string.Empty, tooltipText)); + } + + internal static Texture GetOverlayIcon(AssetStatus status) + { + switch (status) + { + case AssetStatus.Ignored: + return Images.GetImage(Images.Name.Ignored); + case AssetStatus.Private: + return Images.GetPrivatedOverlayIcon(); + case AssetStatus.Added: + return Images.GetAddedOverlayIcon(); + case AssetStatus.Checkout: + return Images.GetCheckedOutOverlayIcon(); + case AssetStatus.OutOfDate: + return Images.GetOutOfSyncOverlayIcon(); + case AssetStatus.Conflicted: + return Images.GetConflictedOverlayIcon(); + case AssetStatus.DeletedOnServer: + return Images.GetDeletedRemoteOverlayIcon(); + case AssetStatus.Locked: + return Images.GetLockedLocalOverlayIcon(); + case AssetStatus.LockedRemote: + return Images.GetLockedRemoteOverlayIcon(); + } + + return null; + } + + static Rect Inflate(Rect rect, float width, float height) + { + return new Rect( + rect.x - width, + rect.y - height, + rect.width + 2 * width, + rect.height + 2 * height); + } + + static Rect GetOverlayRect( + Rect selectionRect, + Texture overlayIcon, + AssetStatus status) + { + OverlayAlignment alignment = GetIconPosition(status); + + if (selectionRect.width > selectionRect.height) + return GetOverlayRectForSmallestSize( + selectionRect, overlayIcon, alignment); + + return GetOverlayRectForOtherSizes( + selectionRect, overlayIcon, alignment); + } + + static Rect GetTooltipRect( + Rect selectionRect, + Rect overlayRect) + { + if (selectionRect.width > selectionRect.height) + { + return overlayRect; + } + + return Inflate(overlayRect, 3, 3); + } + + static Rect GetOverlayRectForSmallestSize( + Rect selectionRect, + Texture overlayIcon, + OverlayAlignment alignment) + { + float xOffset = IsLeftAligned(alignment) ? -5 : 5; + float yOffset = IsTopAligned(alignment) ? -4 : 4; + + return new Rect( + selectionRect.x + xOffset, + selectionRect.y + yOffset, + OVERLAY_ICON_SIZE, + OVERLAY_ICON_SIZE); + } + + static Rect GetOverlayRectForOtherSizes( + Rect selectionRect, + Texture overlayIcon, + OverlayAlignment alignment) + { + float xOffset = IsLeftAligned(alignment) ? + 0 : selectionRect.width - overlayIcon.width; + + float yOffset = IsTopAligned(alignment) ? + 0 : selectionRect.height - overlayIcon.height - 12; + + return new Rect( + selectionRect.x + xOffset, + selectionRect.y + yOffset, + OVERLAY_ICON_SIZE, + OVERLAY_ICON_SIZE); + } + + static OverlayAlignment GetIconPosition(AssetStatus status) + { + if (status == AssetStatus.Checkout || + status == AssetStatus.Locked) + return OverlayAlignment.TopLeft; + + if (status == AssetStatus.DeletedOnServer || + status == AssetStatus.LockedRemote) + return OverlayAlignment.TopRight; + + if (status == AssetStatus.OutOfDate) + return OverlayAlignment.BottomRight; + + return OverlayAlignment.BottomLeft; + } + + static bool IsLeftAligned(OverlayAlignment alignment) + { + return alignment == OverlayAlignment.BottomLeft || + alignment == OverlayAlignment.TopLeft; + } + + static bool IsTopAligned(OverlayAlignment alignment) + { + return alignment == OverlayAlignment.TopLeft || + alignment == OverlayAlignment.TopRight; + } + + enum OverlayAlignment + { + TopLeft, + BottomLeft, + TopRight, + BottomRight + } + } + + static IAssetStatusCache mAssetStatusCache; + static Action mRepaintProjectWindow; + + const float OVERLAY_ICON_SIZE = 16; + } +} + diff --git a/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs.meta b/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs.meta new file mode 100644 index 0000000..62389ce --- /dev/null +++ b/Editor/PlasticSCM/AssetOverlays/DrawAssetOverlay.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d30dfeb72257204458e1e8e1576b84ba +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets.meta b/Editor/PlasticSCM/Assets.meta new file mode 100644 index 0000000..2d50bc6 --- /dev/null +++ b/Editor/PlasticSCM/Assets.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b01e5a3d2517b904698dbc9fa0df727f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images.meta b/Editor/PlasticSCM/Assets/Images.meta new file mode 100644 index 0000000..63f947f --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8697b23ed1b3db0448e2580433ae07d7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png new file mode 100644 index 0000000..8c20609 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png differ diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png.meta b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png.meta new file mode 100644 index 0000000..21d83ba --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: d24e7e0b75e1a244bb9687d6fd4315ef +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png new file mode 100644 index 0000000..fae13d7 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png.meta b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png.meta new file mode 100644 index 0000000..cd724ec --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/buttonssosigninemail@2x.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: ddf2e76e8a1f88f46ae1e42277850b48 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png b/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png new file mode 100644 index 0000000..89b1c93 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png differ diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png.meta b/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png.meta new file mode 100644 index 0000000..9442325 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/buttonssosigningoogle.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f09eae8c0ea04254b90c5386a034a225 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png b/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png new file mode 100644 index 0000000..177c2e9 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png differ diff --git a/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png.meta b/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png.meta new file mode 100644 index 0000000..57bca22 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/buttonssosigninunity.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f9161c6c9e06dc445ada3ee16d991f90 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png new file mode 100644 index 0000000..7cc1302 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png.meta b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png.meta new file mode 100644 index 0000000..4de2c40 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 3086d66a563317b40a20a20da2c64ac0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png new file mode 100644 index 0000000..9de0447 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png.meta new file mode 100644 index 0000000..801a4b3 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_buttonssosigninemail@2x.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 144aa74618b85974a9a50f612c2fa8fd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png b/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png new file mode 100644 index 0000000..1b72409 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png.meta b/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png.meta new file mode 100644 index 0000000..a0934a8 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_cloudbuho.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e5600378dd761e64d9423790c482bf36 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png b/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png new file mode 100644 index 0000000..cd10d4e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png.meta new file mode 100644 index 0000000..ef07e8b --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_cloudbuhochristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 70632ddfe8e71b04b8f90ef7e29a9e98 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png new file mode 100644 index 0000000..5372b1a Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png.meta b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png.meta new file mode 100644 index 0000000..ecefb30 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshe.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: dae33700bd23f76409a80bf78fdb8a42 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png new file mode 100644 index 0000000..48b203a Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png.meta new file mode 100644 index 0000000..c126246 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_cloudbuhoshechristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9c0d6ec706e01ce448aea81584af092b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuho.png b/Editor/PlasticSCM/Assets/Images/d_colorbuho.png new file mode 100644 index 0000000..0a13c12 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_colorbuho.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuho.png.meta b/Editor/PlasticSCM/Assets/Images/d_colorbuho.png.meta new file mode 100644 index 0000000..389478b --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_colorbuho.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 3a0c527d7f890d64a9b56b086e6e766a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png b/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png new file mode 100644 index 0000000..90373fe Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png.meta new file mode 100644 index 0000000..d265b36 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_colorbuhochristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: fd098fb4cf57bad419701c802e442b7e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png new file mode 100644 index 0000000..7dc0bd6 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png.meta b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png.meta new file mode 100644 index 0000000..cf2b355 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshe.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: a04ecc9d5e12d5d449077414eb86635e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png new file mode 100644 index 0000000..7ae102f Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png.meta new file mode 100644 index 0000000..e88e354 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_colorbuhoshechristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: ec03f79379868c642b48ae5ddc821b6d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuho.png b/Editor/PlasticSCM/Assets/Images/d_expertbuho.png new file mode 100644 index 0000000..fbd9ed1 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_expertbuho.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuho.png.meta b/Editor/PlasticSCM/Assets/Images/d_expertbuho.png.meta new file mode 100644 index 0000000..9922116 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_expertbuho.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 13e7e6fe43a8aa049bcd610bbc1f5ff8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png b/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png new file mode 100644 index 0000000..2d70cae Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png.meta new file mode 100644 index 0000000..ac582b9 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_expertbuhochristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: c887ed2a931c29040bc544cd8c546e9f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png new file mode 100644 index 0000000..238c989 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png.meta b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png.meta new file mode 100644 index 0000000..808da19 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshe.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 8325d4ef0a6eb3d43952aff8a06d9f45 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png new file mode 100644 index 0000000..388be82 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png.meta new file mode 100644 index 0000000..3a47a19 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_expertbuhoshechristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 372e7b39fc8f34549ac25d8757965a2c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png b/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png new file mode 100644 index 0000000..536b489 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png.meta new file mode 100644 index 0000000..890ff08 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuho1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 43ad51e043491b94d8f6c62d55ac5ede +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png b/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png new file mode 100644 index 0000000..bb4112f Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png.meta new file mode 100644 index 0000000..8b8267a --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuho2.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 0f061b4bd0275bc4eb60f2af31e7375a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png b/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png new file mode 100644 index 0000000..79aee06 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png.meta new file mode 100644 index 0000000..9a2c66a --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuho3.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9e9474494461bd048803b48e391ef0f6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png new file mode 100644 index 0000000..1da2f54 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png.meta new file mode 100644 index 0000000..4daefb8 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e36d1a38d7aa309409e80bf66a089330 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png new file mode 100644 index 0000000..3504b69 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png.meta new file mode 100644 index 0000000..36fa99d --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas2.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 5955491dc8dcecb4a993d9a008cf65a7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png new file mode 100644 index 0000000..39fb85e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png.meta new file mode 100644 index 0000000..526452e --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhochristmas3.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 6fac4e39926fd9c4ca2ba4416160a857 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png new file mode 100644 index 0000000..957cc5b Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png.meta new file mode 100644 index 0000000..d3f250e --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f2901efd8bb16bc408ad37f017fbf9bc +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png new file mode 100644 index 0000000..b300dcf Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png.meta new file mode 100644 index 0000000..6692790 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe2.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 17035c204825f6340a252046ab6476fd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png new file mode 100644 index 0000000..80129eb Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png.meta new file mode 100644 index 0000000..be25e86 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshe3.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 9bb60d9b0987c3747b57516cc172d0c7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png new file mode 100644 index 0000000..e585f16 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png.meta new file mode 100644 index 0000000..7b8e7d3 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas1.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: d98fbe17966d8ef449b25b99024bf36f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png new file mode 100644 index 0000000..7eb560e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png.meta new file mode 100644 index 0000000..4716ca6 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas2.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 7fd3cda14282bb7429b8eeb6c121e5bb +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png new file mode 100644 index 0000000..d4c4eb6 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png.meta b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png.meta new file mode 100644 index 0000000..0858f74 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_genericbuhoshechristmas3.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f8c9467a892580344bb697526dac0d13 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png b/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png new file mode 100644 index 0000000..1a8a4e9 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png.meta b/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png.meta new file mode 100644 index 0000000..43290c8 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_iconplasticview.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 519d97e745e55f041b609f3666cbc037 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: f8e3a80d377cb5148bddca0d49e2ed54 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png b/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png new file mode 100644 index 0000000..856034a Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png.meta new file mode 100644 index 0000000..a6126d0 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_iconplasticview@2x.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 3168140d6f409d0448447f18568d9482 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: c3a3cc66c2dec5c42827c966aaba2c6c + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_loading.png b/Editor/PlasticSCM/Assets/Images/d_loading.png new file mode 100644 index 0000000..a38ff00 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_loading.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_loading.png.meta b/Editor/PlasticSCM/Assets/Images/d_loading.png.meta new file mode 100644 index 0000000..d2b53d1 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_loading.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: d58e94bfb1bac774dbb8ca9c2597ef2e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_loading@2x.png b/Editor/PlasticSCM/Assets/Images/d_loading@2x.png new file mode 100644 index 0000000..dec1779 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_loading@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_loading@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_loading@2x.png.meta new file mode 100644 index 0000000..eee2b4e --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_loading@2x.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 7ee48c5fba4919649a8a6094cbead669 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step1.png b/Editor/PlasticSCM/Assets/Images/d_step1.png new file mode 100644 index 0000000..412edd6 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step1.png.meta b/Editor/PlasticSCM/Assets/Images/d_step1.png.meta new file mode 100644 index 0000000..1781dcb --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step1.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 38236a82ff44aaa4b972248479d5f970 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5c7c8d8922b532249b982e4c0365d653 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step1@2x.png b/Editor/PlasticSCM/Assets/Images/d_step1@2x.png new file mode 100644 index 0000000..b5d623b Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step1@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step1@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_step1@2x.png.meta new file mode 100644 index 0000000..ec4fb78 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step1@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: c8a69ecdf54ac8e4b873466605de27ff +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: dbad3d69da696d44da71467b14affbec + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step2.png b/Editor/PlasticSCM/Assets/Images/d_step2.png new file mode 100644 index 0000000..4776eb1 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step2.png.meta b/Editor/PlasticSCM/Assets/Images/d_step2.png.meta new file mode 100644 index 0000000..c0af8aa --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step2.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 897c3a3f5c4038345a7143573bbb4a40 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: a39662d1ab72e624fa6636e50f298916 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step2@2x.png b/Editor/PlasticSCM/Assets/Images/d_step2@2x.png new file mode 100644 index 0000000..5aab9e4 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step2@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step2@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_step2@2x.png.meta new file mode 100644 index 0000000..0ce204f --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step2@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: cdb88fdb0cf46b244a667edaff21c7df +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: cae3485a947b3ad41ab4e005cebf5fc7 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step3.png b/Editor/PlasticSCM/Assets/Images/d_step3.png new file mode 100644 index 0000000..3b0741c Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step3.png.meta b/Editor/PlasticSCM/Assets/Images/d_step3.png.meta new file mode 100644 index 0000000..3a5df56 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step3.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 46930b20180b59e46b73494adf53abbb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 1cf775c54c8394c47a53536f1e461c1a + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_step3@2x.png b/Editor/PlasticSCM/Assets/Images/d_step3@2x.png new file mode 100644 index 0000000..cfd244a Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_step3@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_step3@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_step3@2x.png.meta new file mode 100644 index 0000000..07a4441 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_step3@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: c9ed6d6ea2f9657409bfa068d4846139 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 468c37b67528e174ab69506f5c140403 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stepok.png b/Editor/PlasticSCM/Assets/Images/d_stepok.png new file mode 100644 index 0000000..c7b5d83 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stepok.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stepok.png.meta b/Editor/PlasticSCM/Assets/Images/d_stepok.png.meta new file mode 100644 index 0000000..62d3674 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stepok.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: be423a54b981d38428de82ad12534629 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 8ec904eb4adfda84d9669b386557c8ff + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png b/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png new file mode 100644 index 0000000..6172eb0 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png.meta b/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png.meta new file mode 100644 index 0000000..025a884 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stepok@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 3494dc956dfd7174abc07060940a2848 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 914a29fa17201064fb558eba2fdc6047 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png new file mode 100644 index 0000000..5e1ab3b Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png.meta b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png.meta new file mode 100644 index 0000000..3b7ef44 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuho.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: e92527f6d0fe45342ab542b47346d45f +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png new file mode 100644 index 0000000..4ae160f Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png.meta new file mode 100644 index 0000000..5b410fd --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhochristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 08c91a7677e66844281a99aaf6ea36f1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png new file mode 100644 index 0000000..67a0472 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png.meta b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png.meta new file mode 100644 index 0000000..157e04f --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshe.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 56e456ab0f7f79a4dbabcc9079c49a94 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png new file mode 100644 index 0000000..3ec78e9 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png differ diff --git a/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png.meta b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png.meta new file mode 100644 index 0000000..54c778c --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/d_stevejobsbuhoshechristmas.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: f008857e434b98b4eaabda1fd6af3059 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconadded.png b/Editor/PlasticSCM/Assets/Images/iconadded.png new file mode 100644 index 0000000..9a850c3 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconadded.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconadded.png.meta b/Editor/PlasticSCM/Assets/Images/iconadded.png.meta new file mode 100644 index 0000000..bdcff37 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconadded.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 1196e728cbc6c25429f25431acabb4d1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 62eeea909492fd146aa1cf9930f6015e + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconchanged.png b/Editor/PlasticSCM/Assets/Images/iconchanged.png new file mode 100644 index 0000000..04d5931 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconchanged.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconchanged.png.meta b/Editor/PlasticSCM/Assets/Images/iconchanged.png.meta new file mode 100644 index 0000000..1b19b98 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconchanged.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 6719b9ff26333564181b5328d934035c +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 82b4f26d56661e34cb65ee2b58d2a19b + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconclosebutton.png b/Editor/PlasticSCM/Assets/Images/iconclosebutton.png new file mode 100644 index 0000000..bec9a7e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconclosebutton.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconclosebutton.png.meta b/Editor/PlasticSCM/Assets/Images/iconclosebutton.png.meta new file mode 100644 index 0000000..ba0b4b3 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconclosebutton.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 13527793884104b46b7446fd7464c3ed +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 82c6d4c8cabb9d04f9eaf4ca9fe33bf0 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/icondeleted.png b/Editor/PlasticSCM/Assets/Images/icondeleted.png new file mode 100644 index 0000000..a5d32f5 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/icondeleted.png differ diff --git a/Editor/PlasticSCM/Assets/Images/icondeleted.png.meta b/Editor/PlasticSCM/Assets/Images/icondeleted.png.meta new file mode 100644 index 0000000..ac6bc39 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/icondeleted.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 77a39e873655d3c4b93d0b7696397b83 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 00077e01d1a00d94c9c06cca9b22804e + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png b/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png new file mode 100644 index 0000000..16a9cdd Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png.meta b/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png.meta new file mode 100644 index 0000000..0008f45 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconemptygravatar.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: fc4618fe47c3a4a4395e0fa7a839921b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 6f28ba836400c51469696c80e37bb1da + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png b/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png new file mode 100644 index 0000000..05d66ee Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png.meta b/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png.meta new file mode 100644 index 0000000..399be18 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconemptygravatar@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: a553409d46d2f0341a53411e40d9a9a2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: da68f72147085ca478254e1681a0e8bc + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconfschanged.png b/Editor/PlasticSCM/Assets/Images/iconfschanged.png new file mode 100644 index 0000000..da39bf8 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconfschanged.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconfschanged.png.meta b/Editor/PlasticSCM/Assets/Images/iconfschanged.png.meta new file mode 100644 index 0000000..1225209 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconfschanged.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 42d45b97073618b42bfcfc22740c4bc7 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 635248474b4706d418fb9683f94433e9 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconmergecategory.png b/Editor/PlasticSCM/Assets/Images/iconmergecategory.png new file mode 100644 index 0000000..5459289 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconmergecategory.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconmergecategory.png.meta b/Editor/PlasticSCM/Assets/Images/iconmergecategory.png.meta new file mode 100644 index 0000000..269e74a --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconmergecategory.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 3aeafd5c84842b44e985f9cc2bd28e74 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: cf092caabecd8264094c6488617251c0 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png b/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png new file mode 100644 index 0000000..411365e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png.meta b/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png.meta new file mode 100644 index 0000000..d53c4b9 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconmergeconflict.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 3ebdd5b3c161fc343a4bbc3ea42da8ca +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: ab0a592337ba8d0469bf6a67c8e534c5 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconmerged.png b/Editor/PlasticSCM/Assets/Images/iconmerged.png new file mode 100644 index 0000000..1c505a7 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconmerged.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconmerged.png.meta b/Editor/PlasticSCM/Assets/Images/iconmerged.png.meta new file mode 100644 index 0000000..c67419b --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconmerged.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 36b376cee8459d34e8aefb062d29bcf2 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: c056de739ba8a754e88c68e295c053c8 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconmergelink.png b/Editor/PlasticSCM/Assets/Images/iconmergelink.png new file mode 100644 index 0000000..3c903ab Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconmergelink.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconmergelink.png.meta b/Editor/PlasticSCM/Assets/Images/iconmergelink.png.meta new file mode 100644 index 0000000..cf41dab --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconmergelink.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 120bf54dff785a0429b068b814e9c12a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 51133015e8cc06a4f93e26b9c867c6b7 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconmoved.png b/Editor/PlasticSCM/Assets/Images/iconmoved.png new file mode 100644 index 0000000..0a8fdfe Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconmoved.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconmoved.png.meta b/Editor/PlasticSCM/Assets/Images/iconmoved.png.meta new file mode 100644 index 0000000..30ba992 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconmoved.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 8a6cca56e2b63344eb4769cd92d93ffb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: bc35d29e7eb93be45b838123254b4817 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconplastic.png b/Editor/PlasticSCM/Assets/Images/iconplastic.png new file mode 100644 index 0000000..68d240e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconplastic.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconplastic.png.meta b/Editor/PlasticSCM/Assets/Images/iconplastic.png.meta new file mode 100644 index 0000000..962dee4 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconplastic.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 3042b019b052942a1baf7aa49d7ca6bb +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: d9b5aff1687365c4594054ad50a85208 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconplasticview.png b/Editor/PlasticSCM/Assets/Images/iconplasticview.png new file mode 100644 index 0000000..0a8eba4 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconplasticview.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconplasticview.png.meta b/Editor/PlasticSCM/Assets/Images/iconplasticview.png.meta new file mode 100644 index 0000000..35e45d3 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconplasticview.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: dcb2ee37925b97e438ae244996d81a55 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 7c561411695e1df4f9aff8eb33039699 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png b/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png new file mode 100644 index 0000000..4e454a9 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png.meta b/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png.meta new file mode 100644 index 0000000..7ba7df6 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconplasticview@2x.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 97a4e2b6ae08b1140a5ba9e22953e029 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 21556f2e15f899945a3a0e228074cca7 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png b/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png new file mode 100644 index 0000000..04fac2b Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png.meta b/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png.meta new file mode 100644 index 0000000..a21b033 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconpressedclosebutton.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 94fe868620119564f9474f40cd6145aa +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: aa638c69e6242ec4b8eb19471573021d + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/iconrepository.png b/Editor/PlasticSCM/Assets/Images/iconrepository.png new file mode 100644 index 0000000..8279df0 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/iconrepository.png differ diff --git a/Editor/PlasticSCM/Assets/Images/iconrepository.png.meta b/Editor/PlasticSCM/Assets/Images/iconrepository.png.meta new file mode 100644 index 0000000..07c3ece --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/iconrepository.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: ed64f3a17f2ede646be21ed6edc9161a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 8173c07773604c94cb603c52c81f07c2 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/ignored.png b/Editor/PlasticSCM/Assets/Images/ignored.png new file mode 100644 index 0000000..07adfff Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/ignored.png differ diff --git a/Editor/PlasticSCM/Assets/Images/ignored.png.meta b/Editor/PlasticSCM/Assets/Images/ignored.png.meta new file mode 100644 index 0000000..8128c14 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/ignored.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 595bc97bc8e1e0b46bd4c2148ba3723a +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 655ad771794337e4ab6f861606074414 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/loading.png b/Editor/PlasticSCM/Assets/Images/loading.png new file mode 100644 index 0000000..8e8913e Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/loading.png differ diff --git a/Editor/PlasticSCM/Assets/Images/loading.png.meta b/Editor/PlasticSCM/Assets/Images/loading.png.meta new file mode 100644 index 0000000..9744cb3 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/loading.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: c6b1bcaa3f4767141acd747384dbb276 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/loading@2x.png b/Editor/PlasticSCM/Assets/Images/loading@2x.png new file mode 100644 index 0000000..f4dc7ad Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/loading@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/loading@2x.png.meta b/Editor/PlasticSCM/Assets/Images/loading@2x.png.meta new file mode 100644 index 0000000..b07396c --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/loading@2x.png.meta @@ -0,0 +1,92 @@ +fileFormatVersion: 2 +guid: 5dbc069eb79bd4d43840847264d6d956 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/notondisk.png b/Editor/PlasticSCM/Assets/Images/notondisk.png new file mode 100644 index 0000000..cfb6efe Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/notondisk.png differ diff --git a/Editor/PlasticSCM/Assets/Images/notondisk.png.meta b/Editor/PlasticSCM/Assets/Images/notondisk.png.meta new file mode 100644 index 0000000..68fe308 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/notondisk.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: b205f4b28f59dda49af458b35d8a3ff3 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: e02a96272b03dc940a5c97cdd9c80cbb + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/ok.png b/Editor/PlasticSCM/Assets/Images/ok.png new file mode 100644 index 0000000..de885fb Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/ok.png differ diff --git a/Editor/PlasticSCM/Assets/Images/ok.png.meta b/Editor/PlasticSCM/Assets/Images/ok.png.meta new file mode 100644 index 0000000..0effd2c --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/ok.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 3238dca1e9ea9fb4aa64b28298ba6dbd +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 98326ccc2ab8d1d448abb288e6f22fd5 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step1.png b/Editor/PlasticSCM/Assets/Images/step1.png new file mode 100644 index 0000000..52d51f6 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step1.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step1.png.meta b/Editor/PlasticSCM/Assets/Images/step1.png.meta new file mode 100644 index 0000000..8c264b6 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step1.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 9ce84ff0fdeb13d4a83f077d075dd9a5 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 2a5833ff9c679be418315674ccb7482f + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step1@2x.png b/Editor/PlasticSCM/Assets/Images/step1@2x.png new file mode 100644 index 0000000..40ffb08 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step1@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step1@2x.png.meta b/Editor/PlasticSCM/Assets/Images/step1@2x.png.meta new file mode 100644 index 0000000..fc2b84a --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step1@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: affeade9874cf2347abb155e8d0db4d8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 4f1b6ce3688a9a64e86dee209943d725 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step2.png b/Editor/PlasticSCM/Assets/Images/step2.png new file mode 100644 index 0000000..15e8706 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step2.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step2.png.meta b/Editor/PlasticSCM/Assets/Images/step2.png.meta new file mode 100644 index 0000000..4c972fe --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step2.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: cd0b17b71a5c498428ee91dee8a78a88 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 979066fc4d9879f44a7ee41dfc9beb3a + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step2@2x.png b/Editor/PlasticSCM/Assets/Images/step2@2x.png new file mode 100644 index 0000000..150b7a2 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step2@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step2@2x.png.meta b/Editor/PlasticSCM/Assets/Images/step2@2x.png.meta new file mode 100644 index 0000000..baf3314 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step2@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 0029170d14ce6c04c9f45c22cdae5559 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: d060e84faa6847747b65b345817e0e2d + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step3.png b/Editor/PlasticSCM/Assets/Images/step3.png new file mode 100644 index 0000000..51c7beb Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step3.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step3.png.meta b/Editor/PlasticSCM/Assets/Images/step3.png.meta new file mode 100644 index 0000000..8a5cf8c --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step3.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 69899ed144c8eea4baea48b858b37746 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 4f466ecde62957f4299e26e9078e5bca + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/step3@2x.png b/Editor/PlasticSCM/Assets/Images/step3@2x.png new file mode 100644 index 0000000..21b175a Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/step3@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/step3@2x.png.meta b/Editor/PlasticSCM/Assets/Images/step3@2x.png.meta new file mode 100644 index 0000000..521d888 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/step3@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: 36e6970b84831434a9eac79abd03700b +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 44240d8e1e3c23b40828b1dbc1373d17 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/stepok.png b/Editor/PlasticSCM/Assets/Images/stepok.png new file mode 100644 index 0000000..a0542f3 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/stepok.png differ diff --git a/Editor/PlasticSCM/Assets/Images/stepok.png.meta b/Editor/PlasticSCM/Assets/Images/stepok.png.meta new file mode 100644 index 0000000..508dbc0 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/stepok.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: d4780dc1205c7c7478c970d8c61d24e8 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 67fb1e5b278a0184bb092fad0b765884 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/stepok@2x.png b/Editor/PlasticSCM/Assets/Images/stepok@2x.png new file mode 100644 index 0000000..c9955d4 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/stepok@2x.png differ diff --git a/Editor/PlasticSCM/Assets/Images/stepok@2x.png.meta b/Editor/PlasticSCM/Assets/Images/stepok@2x.png.meta new file mode 100644 index 0000000..3e45f67 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/stepok@2x.png.meta @@ -0,0 +1,88 @@ +fileFormatVersion: 2 +guid: be340a165cb9c8d4cb50f1deeb51d4ea +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 9 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: e76902e05813dfe40936af244bf847b6 + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Images/xlink.png b/Editor/PlasticSCM/Assets/Images/xlink.png new file mode 100644 index 0000000..656e251 Binary files /dev/null and b/Editor/PlasticSCM/Assets/Images/xlink.png differ diff --git a/Editor/PlasticSCM/Assets/Images/xlink.png.meta b/Editor/PlasticSCM/Assets/Images/xlink.png.meta new file mode 100644 index 0000000..22ae29e --- /dev/null +++ b/Editor/PlasticSCM/Assets/Images/xlink.png.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 556a2f3b046024d4c9621c1b4be5f0c1 +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 5 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + 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 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + 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: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 0fdb91cf53f55e240a89d1b7263f1c0b + vertices: [] + indices: + edges: [] + weights: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Layouts.meta b/Editor/PlasticSCM/Assets/Layouts.meta new file mode 100644 index 0000000..c7ac7ef --- /dev/null +++ b/Editor/PlasticSCM/Assets/Layouts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ceb47f1768ea33a4984627a59921a4ee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Layouts/CreateOrganizationPanel.uxml b/Editor/PlasticSCM/Assets/Layouts/CreateOrganizationPanel.uxml new file mode 100644 index 0000000..6dc87af --- /dev/null +++ b/Editor/PlasticSCM/Assets/Layouts/CreateOrganizationPanel.uxml @@ -0,0 +1,28 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Layouts/WaitingSignInPanel.uxml.meta b/Editor/PlasticSCM/Assets/Layouts/WaitingSignInPanel.uxml.meta new file mode 100644 index 0000000..1cecd79 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Layouts/WaitingSignInPanel.uxml.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 913c727eecab25c489fa2adbad9c9ab8 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 13804, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Editor/PlasticSCM/Assets/Styles.meta b/Editor/PlasticSCM/Assets/Styles.meta new file mode 100644 index 0000000..7503d2a --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5355983268a982c46bd52eb66f19b1b9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss b/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss new file mode 100644 index 0000000..30e24fd --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss @@ -0,0 +1,74 @@ +CreateOrganizationPanel { + width: 100%; +} + +.form { + width: 55%; + height: 100%; + flex-direction: column; + padding: 0 10px; +} + +.field { + font-size: 14px; + margin-bottom: 10px; + width: 100%; +} + +.field TextField { + flex-direction: column; +} + +.field TextField Label, .field-label { + margin: 5px; +} + +#datacenter { + margin-bottom: 35px; +} + +Label { + white-space: normal; +} + +.hidden { + visibility: hidden; + height: 0; +} + +.notification { + color: red; + height: 15px; + margin-bottom: 5px; +} + +.footer { + flex-direction: row; + justify-content: flex-end; + padding: 0 10px; +} + +.footer Button { + padding: 5px 7px; + margin-top: 10px; + border-width: 2px; + border-radius: 0; +} + +#gettingDatacenters { + align-self: center; + height: 30px; + flex-direction: row; +} + +#gdSpinner { + margin-right: 5px; +} + +#encryptExplanation { + color: grey; +} + +#encryptLearnMore { + width: 65px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss.meta new file mode 100644 index 0000000..fa9400d --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/CreateOrganizationPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 55ebb8b19849d1447909e8355a13a5f9 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss b/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss new file mode 100644 index 0000000..99ac869 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss @@ -0,0 +1,30 @@ +.form { + width: 55%; + height: 100%; + flex-direction: column; + padding: 0 10px; +} + +.field { + flex-direction: column; + font-size: 14px; + margin-bottom: 20px; +} + +Label { + white-space: normal; +} + +.footer { + flex-direction: row; + justify-content: flex-end; + padding: 0 10px; +} + +.footer Button { + padding: 5px 7px; + margin-top: 10px; + border-width: 2px; + border-radius: 0; +} + diff --git a/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss.meta new file mode 100644 index 0000000..3f6366d --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/CreatedOrganizationPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d69f9cc1b626cc64c802f5b33ce10dcf +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss b/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss new file mode 100644 index 0000000..354a43b --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss @@ -0,0 +1,25 @@ +.organization-section { + margin: 10px 0px; +} + +.organization-button { + width: 15%; +} + +.align-end { + align-items: flex-end; +} + +#organizationDropdown { + width: 85%; + margin-top: 3px; +} + +#createOrganization { + margin: 25px 0px; +} + +#createOrganizationLabel { + width: 83%; + margin-top: 3px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss.meta new file mode 100644 index 0000000..613e54c --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/OrganizationPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 642639f75f2dfbd4ab01e6708b58f304 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss b/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss new file mode 100644 index 0000000..c33a678 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss @@ -0,0 +1,92 @@ +/* Basic Classes */ +.row { + flex-direction: row; +} + +.column { + flex-direction: column; +} + +.horizontally-centered { + justify-content: center; +} + +.hidden { + visibility: hidden; +} + +SignUp { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: flex-start; + align-items: stretch; + align-content: stretch; + padding: 20px 0; + height: 100%; +} + +#signUpForm { + width: 420px; +} + +#email { + margin-bottom: 20px; +} + +TextField { + flex-direction: column; + font-size: 14px; +} + +#password { + height: 42px; +} + +.password { + width: 48.5%; + margin-bottom: 1px; +} + +#signUp { + margin-top: 20px; + height: 30px; +} + +#policyContainer { + margin: 5px; + margin-left: -8px; +} + +#median { + margin-top: 15px; + margin-left: -8px; +} + +.dash { + border-top-width: 0.5px; + border-color: rgba(196, 196, 196, 1); + width: 49%; + height: 1px; + margin: 8px 3px 8px 3px; +} + +.alternate-button { + width: 48.5%; + height: 30px; +} + +.icon { + height: 25px; + width: 25px; +} + +#unityIDButton { + color: white; + background-color: black; +} + +#googleButton { + color: black; + background-color: rgba(66, 133, 244, 1); +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss.meta new file mode 100644 index 0000000..80b05e9 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SSOSignUpPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3337338cbeb79a24cba584de64190044 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss b/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss new file mode 100644 index 0000000..7fc3bbf --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss @@ -0,0 +1,17 @@ +.sign-in-buttons { + margin-top: 5px; + margin-bottom: 5px; + width: 420px; + height: 36px; + font-size: 14px; +} + +#iconUnity, #iconEmail { + width: 32px; + height: 32px +} + +#signInWithUnityId { + background-color: #000000; + color: #C4C4C4; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss.meta new file mode 100644 index 0000000..e985a41 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c673e4e20ea67ab40a4661592f51aa99 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss b/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss new file mode 100644 index 0000000..ab37bde --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss @@ -0,0 +1,60 @@ +.display-none { + display: none; +} + +.row { + flex-direction: row; +} + +.flex-container { + display: flex; + flex-direction: row; +} + +.main { + margin-top: 20px; + padding-left: 20px; + padding-right: 20px; +} + +#buho { + align-content: center; + width: 45%; + height: 275px; + margin-top: 30px; + padding: 20px; + display: flex; + align-items: flex-start; + justify-content: flex-end; +} + +.title { + margin: 20px 0px; + font-size: 18px; +} + +.anchor { + color: #2196F3; + border-bottom-color: #2196F3; + padding: 0px; + margin: 0px; + background-color: transparent; + border-left-width: 0px; + border-top-width: 0px; + border-right-width: 0px; + border-bottom-width: 1px; +} + +Label { + white-space: normal; +} + +.footer { + position: absolute; + margin: 20px 10px 0px 10px; + margin-top: 46%; +} + +#privacyStatement { + align-self: flex-start; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss.meta b/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss.meta new file mode 100644 index 0000000..8f6c104 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInSignUp.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e29c9d2208f5c2a48a15e02f3fc55a4a +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss new file mode 100644 index 0000000..85d1525 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss @@ -0,0 +1 @@ +VisualElement {} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss.meta b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss.meta new file mode 100644 index 0000000..82ed8fa --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.dark.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1790de37fb6fed648a08bff70675c558 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss new file mode 100644 index 0000000..c6eeb01 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss @@ -0,0 +1,3 @@ +SignInWithEmailPanel { + background-color: white; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss.meta b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss.meta new file mode 100644 index 0000000..251f886 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.light.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fe8917db1671187439305e5911d17b6f +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss new file mode 100644 index 0000000..72ab9ae --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss @@ -0,0 +1,85 @@ +SignInWithEmailPanel { + display: flex; + flex-direction: column; + flex-wrap: nowrap; + justify-content: flex-start; + align-items: stretch; + align-content: stretch; + padding: 20px 0; + height: 100%; +} + +#imageContainer { + flex-direction: row; + align-content: center; + width: 45%; + height: 100%; + padding: 20px 0; + display: flex; + align-items: flex-start; + justify-content: flex-end; +} + +#imageContainer Image { + padding-top: 50px; + padding-right: 50px; +} + +#windowContainer { + height: 100%; + flex-grow: 1; + flex-direction: row; + margin-bottom: 30px; +} + +#loginContainer { + width: 55%; + height: 100%; + flex-direction: column; + padding: 0 10px; +} + +#signInLabel { + margin-top: 60px; + margin-bottom: 30px; + font-size: 18px; +} + +#loginContainer TextField { + flex-direction: column; + font-size: 14px; +} + +#loginContainer TextInput { + background-color: rgba(0, 0, 0, 0); + border-radius: 0; + padding: 2px; +} + +#loginContainer TextField Label { + margin: 5px; +} + +#emailNotification, #passwordNotification { + color: red; + height: 15px; + margin-bottom: 5px; +} + +#loginContainer Button { + padding: 7px; + margin-top: 10px; + border-width: 2px; + border-color: rgb(18, 129, 218); + border-radius: 0; +} + +#back { + align-self: center; + color: rgb(18, 129, 218); + border-width: 0 0 1px 0; + border-color: rgb(18, 129, 218); + background-color: rgba(0, 0, 0, 0); + border-radius: 0; + margin-top: 20px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss.meta new file mode 100644 index 0000000..13fbc29 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/SignInWithEmailPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b37675bc656348c429a6c56b2eda1345 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss b/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss new file mode 100644 index 0000000..f0efaa5 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss @@ -0,0 +1,12 @@ +#TabArea { + background-color: #282828; +} + +Button { + background-color: #282828; +} + + Button.active { + background-color: #383838; + border-bottom-color: #383838; + } \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss.meta b/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss.meta new file mode 100644 index 0000000..b1240e1 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.dark.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8a99a1e5755f6ef45bbe46b32552be14 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.light.uss b/Editor/PlasticSCM/Assets/Styles/TabView.light.uss new file mode 100644 index 0000000..bfe79f4 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.light.uss @@ -0,0 +1,12 @@ +#TabArea { + background-color: #a5a5a5; +} + +Button { + background-color: #a5a5a5; +} + + Button.active { + background-color: #cbcbcb; + border-bottom-color: #cbcbcb; + } diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.light.uss.meta b/Editor/PlasticSCM/Assets/Styles/TabView.light.uss.meta new file mode 100644 index 0000000..99ff279 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.light.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b9e2b8f6b44dca549a74b3e867ca1468 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.uss b/Editor/PlasticSCM/Assets/Styles/TabView.uss new file mode 100644 index 0000000..b04bc29 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.uss @@ -0,0 +1,10 @@ +.flex-container { + display: flex; + flex-direction: row; +} + +Button { + padding-bottom: 2px; + margin-bottom: 0px; + border-width: 0px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/TabView.uss.meta b/Editor/PlasticSCM/Assets/Styles/TabView.uss.meta new file mode 100644 index 0000000..db9b889 --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TabView.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 88da5407899aaaf448a40c85888108ae +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss b/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss new file mode 100644 index 0000000..f8b8d2f --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss @@ -0,0 +1,74 @@ +#configurationServerInfoSection { + margin-bottom: 40px; +} + +#spinnerLabel { + margin-left: 2px; +} + +#connectedLabel { + -unity-text-align: middle-right; +} + +#credentialsOk { + -unity-text-align: middle-right; +} + +#plasticConfigurationTitle { + font-size: 18px; + margin-bottom: 10px; +} + +.container { + padding: 10px; + border-bottom-width: 1px; + border-bottom-color: #999999; +} + +.container.last { + border-bottom-width: 0px; +} + +.credentials { + width: 265px; +} + +.display-none { + display: none; +} + +.flex-container { + display: flex; + flex-direction: row; +} + +.grow { + flex-grow: 1; +} + +.sub-section { + margin-left: 10px; +} + +.visibility-hidden { + visibility: hidden; +} + +.error { + color: #FF0000; +} + +Label { + white-space: normal; +} + +TextField { + margin-left: 0px; + margin-top: 3px; + margin-right: 10px; + margin-bottom: 3px; +} + +Toggle { + margin-left: 0px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss.meta b/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss.meta new file mode 100644 index 0000000..e443cdf --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/TeamEditionConfigurationWindow.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1cd69f37df825af4385cd9efe745fc30 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss b/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss new file mode 100644 index 0000000..3aad90f --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss @@ -0,0 +1,13 @@ +.wait { + margin-top: 20px; +} + +.wait-text { + flex-grow: 1; + -unity-text-align: middle-left; +} + +Button { + width: 70px; + height: 40px; +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss.meta b/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss.meta new file mode 100644 index 0000000..d6a6d9d --- /dev/null +++ b/Editor/PlasticSCM/Assets/Styles/WaitingSignInPanel.uss.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 90945345530e7174eb4f0575a0bec0bf +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 12385, guid: 0000000000000000e000000000000000, type: 0} + disableValidation: 0 diff --git a/Editor/PlasticSCM/AssetsUtils.meta b/Editor/PlasticSCM/AssetsUtils.meta new file mode 100644 index 0000000..92b82eb --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b32be061a815d6947bc3594cdcb94a1c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs b/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs new file mode 100644 index 0000000..8ed940e --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs @@ -0,0 +1,71 @@ +using System.IO; +using System.Reflection; + +using UnityEditor; +using UnityEngine; + +using Codice.Client.Common; +using Codice.Utils; +using PlasticGui; + +namespace Unity.PlasticSCM.Editor.AssetUtils +{ + internal static class AssetsPath + { + internal static string GetLayoutsFolderRelativePath() + { + return string.Concat(mAssetsFolderLocation, "/Layouts"); + } + + internal static string GetStylesFolderRelativePath() + { + return string.Concat(mAssetsFolderLocation, "/Styles"); + } + + internal static string GetImagesFolderRelativePath() + { + return string.Concat(mAssetsFolderLocation, "/Images"); + } + + internal static string GetRelativePath(string fullPath) + { + return PathHelper.GetRelativePath( + mProjectFullPath, fullPath).Substring(1); + } + + internal static string GetFullPath(Object obj) + { + string relativePath = AssetDatabase.GetAssetPath(obj); + + if (string.IsNullOrEmpty(relativePath)) + return null; + + return Path.GetFullPath(relativePath); + } + + static AssetsPath() + { + mAssetsFolderLocation = (IsRunningAsUPMPackage()) ? + "Packages/com.unity.collab-proxy/Editor/PlasticSCM/Assets" : + "Assets/Plugins/PlasticSCM/Editor/Assets"; + } + + static bool IsRunningAsUPMPackage() + { + string unityPlasticDllPath = Path.GetFullPath( + AssemblyLocation.GetAssemblyDirectory( + Assembly.GetAssembly(typeof(PlasticLocalization)))); + + return Directory.Exists( + Path.GetFullPath(Path.Combine( + unityPlasticDllPath, + // assets relative path when running as a UPM package + "../../../Editor/PlasticSCM/Assets"))); + } + + static string mProjectFullPath = ProjectPath. + FromApplicationDataPath(Application.dataPath); + + static string mAssetsFolderLocation; + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs.meta b/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs.meta new file mode 100644 index 0000000..b9e65e5 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/AssetsPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a077a49d9db9de74f827f0568f6e65c2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs b/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs new file mode 100644 index 0000000..5cd18a7 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs @@ -0,0 +1,46 @@ +using System; +using System.IO; + +using UnityEditor; + +using Codice.Client.BaseCommands; + +namespace Unity.PlasticSCM.Editor.AssetUtils +{ + internal static class LoadAsset + { + internal static UnityEngine.Object FromChangeInfo(ChangeInfo changeInfo) + { + string changeFullPath = changeInfo.GetFullPath(); + + if (MetaPath.IsMetaPath(changeFullPath)) + changeFullPath = MetaPath.GetPathFromMetaPath(changeFullPath); + + return FromFullPath(changeFullPath); + } + + static UnityEngine.Object FromFullPath(string fullPath) + { + if (!IsPathUnderProject(fullPath)) + return null; + + return AssetDatabase.LoadMainAssetAtPath( + AssetsPath.GetRelativePath(fullPath)); + } + + static bool IsPathUnderProject(string path) + { + if (string.IsNullOrEmpty(path)) + return false; + + var fullPath = Path.GetFullPath(path).Replace('\\', '/'); + + return fullPath.StartsWith( + mProjectRelativePath, + StringComparison.OrdinalIgnoreCase); + } + + static string mProjectRelativePath = + Directory.GetCurrentDirectory().Replace('\\', '/') + '/'; + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs.meta b/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs.meta new file mode 100644 index 0000000..917b0de --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/LoadAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 91f74d588534bef42ac4b919a2ece84a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/Processor.meta b/Editor/PlasticSCM/AssetsUtils/Processor.meta new file mode 100644 index 0000000..394d043 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5a9787c5ed94504798db0c3330424fe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs b/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs new file mode 100644 index 0000000..6e54c48 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs @@ -0,0 +1,52 @@ +using System.IO; + +using Unity.PlasticSCM.Editor.AssetsOverlays; +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; + +namespace Unity.PlasticSCM.Editor.AssetUtils.Processor +{ + class AssetModificationProcessor : UnityEditor.AssetModificationProcessor + { + internal static bool IsEnabled { get; set; } + + internal static void RegisterAssetStatusCache( + IAssetStatusCache assetStatusCache) + { + mAssetStatusCache = assetStatusCache; + } + + static string[] OnWillSaveAssets(string[] paths) + { + if (!IsEnabled) + return paths; + + PlasticAssetsProcessor.CheckoutOnSourceControl(paths); + return paths; + } + + static bool IsOpenForEdit(string assetPath, out string message) + { + message = string.Empty; + + if (!IsEnabled) + return true; + + if (assetPath.StartsWith("ProjectSettings/")) + return true; + + if (MetaPath.IsMetaPath(assetPath)) + assetPath = MetaPath.GetPathFromMetaPath(assetPath); + + AssetStatus status = mAssetStatusCache.GetStatusForPath( + Path.GetFullPath(assetPath)); + + if (ClassifyAssetStatus.IsAdded(status) || + ClassifyAssetStatus.IsCheckedOut(status)) + return true; + + return !ClassifyAssetStatus.IsControlled(status); + } + + static IAssetStatusCache mAssetStatusCache; + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs.meta b/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs.meta new file mode 100644 index 0000000..7f91928 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetModificationProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c53c624438663f74ab67fbdf8869ae18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs b/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs new file mode 100644 index 0000000..7bb6bbe --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs @@ -0,0 +1,32 @@ +namespace Unity.PlasticSCM.Editor.AssetUtils.Processor +{ + class AssetPostprocessor : UnityEditor.AssetPostprocessor + { + internal static bool IsEnabled { get; set; } + + static void OnPostprocessAllAssets( + string[] importedAssets, + string[] deletedAssets, + string[] movedAssets, + string[] movedFromAssetPaths) + { + if (!IsEnabled) + return; + + for (int i = 0; i < movedAssets.Length; i++) + { + PlasticAssetsProcessor.MoveOnSourceControl( + movedFromAssetPaths[i], + movedAssets[i]); + } + + foreach (string deletedAsset in deletedAssets) + { + PlasticAssetsProcessor.DeleteFromSourceControl( + deletedAsset); + } + + PlasticAssetsProcessor.AddToSourceControl(importedAssets); + } + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs.meta b/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs.meta new file mode 100644 index 0000000..ecd4f18 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetPostprocessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e9ffdef169b1cbb4e9910671a9ee83bc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs b/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs new file mode 100644 index 0000000..82432a6 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs @@ -0,0 +1,26 @@ +using PlasticGui; + +using Unity.PlasticSCM.Editor.AssetsOverlays.Cache; + +namespace Unity.PlasticSCM.Editor.AssetUtils.Processor +{ + internal static class AssetsProcessors + { + internal static void Enable( + IPlasticAPI plasticApi, + IAssetStatusCache assetStatusCache) + { + PlasticAssetsProcessor.RegisterPlasticAPI(plasticApi); + AssetModificationProcessor.RegisterAssetStatusCache(assetStatusCache); + + AssetPostprocessor.IsEnabled = true; + AssetModificationProcessor.IsEnabled = true; + } + + internal static void Disable() + { + AssetPostprocessor.IsEnabled = false; + AssetModificationProcessor.IsEnabled = false; + } + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs.meta b/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs.meta new file mode 100644 index 0000000..c8165bc --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/AssetsProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 71cb30384b5f8d64ea7df220cff88d0c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs b/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs new file mode 100644 index 0000000..69d3173 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs @@ -0,0 +1,304 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; + +using Codice.Client.BaseCommands; +using Codice.Client.BaseCommands.Config; +using Codice.Client.Commands; +using Codice.Client.Commands.WkTree; +using Codice.LogWrapper; +using PlasticGui; +using Unity.PlasticSCM.Editor.UI; +using Unity.PlasticSCM.Editor.Views.IncomingChanges; +using Unity.PlasticSCM.Editor.Views.PendingChanges; + +namespace Unity.PlasticSCM.Editor.AssetUtils.Processor +{ + internal class PlasticAssetsProcessor + { + internal static void RegisterPlasticAPI(IPlasticAPI plasticAPI) + { + mPlasticAPI = plasticAPI; + } + + internal static void RegisterPendingChangesView( + PendingChangesTab pendingChangesTab) + { + mPendingChangesTab = pendingChangesTab; + } + + internal static void RegisterIncomingChangesView( + IIncomingChangesTab incomingChangesTab) + { + mIncomingChangesTab = incomingChangesTab; + } + + internal static void UnRegisterViews() + { + mPendingChangesTab = null; + mIncomingChangesTab = null; + } + + internal static void AddToSourceControl(string[] paths) + { + foreach (string path in paths) + mLog.DebugFormat("AddToSourceControl: {0}", path); + + try + { + AddIfNotControlled( + paths, + mPlasticAPI); + } + catch (Exception ex) + { + LogAddException(ex); + } + finally + { + mCooldownAutorefreshAction.Ping(); + } + } + + internal static void DeleteFromSourceControl(string path) + { + mLog.DebugFormat("DeleteFromSourceControl: {0}", path); + + try + { + string fullPath = Path.GetFullPath(path); + + DeleteIfControlled( + fullPath, + mPlasticAPI); + + DeleteIfControlled( + MetaPath.GetMetaPath(fullPath), + mPlasticAPI); + } + catch (Exception ex) + { + LogDeleteException(path, ex); + } + finally + { + mCooldownAutorefreshAction.Ping(); + } + } + + internal static void MoveOnSourceControl(string srcPath, string dstPath) + { + mLog.DebugFormat("MoveOnSourceControl: {0} to {1}", srcPath, dstPath); + + try + { + string srcFullPath = Path.GetFullPath(srcPath); + string dstFullPath = Path.GetFullPath(dstPath); + + MoveIfControlled( + srcFullPath, + dstFullPath, + mPlasticAPI); + + MoveIfControlled( + MetaPath.GetMetaPath(srcFullPath), + MetaPath.GetMetaPath(dstFullPath), + mPlasticAPI); + } + catch (Exception ex) + { + LogMoveException(srcPath, dstPath, ex); + } + finally + { + mCooldownAutorefreshAction.Ping(); + } + } + + internal static void CheckoutOnSourceControl(string[] paths) + { + foreach (string path in paths) + mLog.DebugFormat("CheckoutOnSourceControl: {0}", path); + + try + { + CheckoutIfControlledAndChanged(paths, mPlasticAPI); + } + catch (Exception ex) + { + LogCheckoutException(ex); + } + finally + { + mCooldownAutorefreshAction.Ping(); + } + } + + static void AddIfNotControlled( + string[] paths, + IPlasticAPI api) + { + List fullPaths = new List(); + + IgnoredFilesFilter ignoredFilter = new IgnoredFilesFilter( + GlobalConfig.Instance); + + foreach (string path in paths) + { + string fullPath = Path.GetFullPath(path); + string fullPathMeta = MetaPath.GetMetaPath(fullPath); + + if (api.GetWorkspaceFromPath(fullPath) == null) + return; + + if (api.GetWorkspaceTreeNode(fullPath) == null && + !ignoredFilter.IsIgnored(fullPath)) + fullPaths.Add(fullPath); + + if (File.Exists(fullPathMeta) && + api.GetWorkspaceTreeNode(fullPathMeta) == null && + !ignoredFilter.IsIgnored(fullPath)) + fullPaths.Add(fullPathMeta); + } + + if (fullPaths.Count == 0) + return; + + IList checkouts; + api.Add( + fullPaths.ToArray(), + GetDefaultAddOptions(), + out checkouts); + } + + static void DeleteIfControlled( + string fullPath, + IPlasticAPI api) + { + if (api.GetWorkspaceTreeNode(fullPath) == null) + return; + + api.DeleteControlled( + fullPath, + DeleteModifiers.None); + } + + static void MoveIfControlled( + string srcFullPath, + string dstFullPath, + IPlasticAPI api) + { + if (api.GetWorkspaceTreeNode(srcFullPath) == null) + return; + + api.Move( + srcFullPath, + dstFullPath, + MoveModifiers.None); + } + + static void CheckoutIfControlledAndChanged(string[] paths, IPlasticAPI api) + { + List fullPaths = new List(); + + foreach (string path in paths) + { + string fullPath = Path.GetFullPath(path); + string fullPathMeta = MetaPath.GetMetaPath(fullPath); + + WorkspaceTreeNode node = + api.GetWorkspaceTreeNode(fullPath); + WorkspaceTreeNode nodeMeta = + api.GetWorkspaceTreeNode(fullPathMeta); + + if (node != null && ChangedFileChecker.IsChanged( + node.LocalInfo, fullPath, false)) + fullPaths.Add(fullPath); + + if (nodeMeta != null && ChangedFileChecker.IsChanged( + nodeMeta.LocalInfo, fullPathMeta, false)) + fullPaths.Add(fullPathMeta); + } + + if (fullPaths.Count == 0) + return; + + api.Checkout( + fullPaths.ToArray(), + CheckoutModifiers.None); + } + + static void PerformAutoRefresh() + { + AutoRefresh.PendingChangesView( + mPendingChangesTab); + + AutoRefresh.IncomingChangesView( + mIncomingChangesTab); + } + + static void LogAddException(Exception ex) + { + UnityEngine.Debug.LogWarning( + string.Format(PlasticLocalization.GetString(PlasticLocalization.Name.CannotAddVersionControl), + ex.Message)); + + LogException(ex); + } + + static void LogDeleteException(string path, Exception ex) + { + UnityEngine.Debug.LogWarning( + string.Format(PlasticLocalization.GetString(PlasticLocalization.Name.CannotDeleteVersionControl), + path, ex.Message)); + + LogException(ex); + } + + static void LogMoveException(string srcPath, string dstPath, Exception ex) + { + UnityEngine.Debug.LogWarning( + string.Format(PlasticLocalization.GetString(PlasticLocalization.Name.CannotMoveVersionControl), + srcPath, dstPath, ex.Message)); + + LogException(ex); + } + + static void LogCheckoutException(Exception ex) + { + UnityEngine.Debug.LogWarning( + string.Format(PlasticLocalization.GetString(PlasticLocalization.Name.CannotCheckoutVersionControl), + ex.Message)); + + LogException(ex); + } + + static void LogException(Exception ex) + { + mLog.WarnFormat("Message: {0}", ex.Message); + + mLog.DebugFormat( + "StackTrace:{0}{1}", + Environment.NewLine, ex.StackTrace); + } + + static AddOptions GetDefaultAddOptions() + { + AddOptions options = new AddOptions(); + options.AddPrivateParents = true; + options.NeedCheckPlatformPath = true; + return options; + } + + static volatile IPlasticAPI mPlasticAPI; + + static PendingChangesTab mPendingChangesTab; + static IIncomingChangesTab mIncomingChangesTab; + + static CooldownWindowDelayer mCooldownAutorefreshAction = new CooldownWindowDelayer( + PerformAutoRefresh, UnityConstants.AUTO_REFRESH_DELAYED_INTERVAL); + + static readonly ILog mLog = LogManager.GetLogger("PlasticAssetsProcessor"); + } +} \ No newline at end of file diff --git a/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs.meta b/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs.meta new file mode 100644 index 0000000..9f7c491 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/Processor/PlasticAssetsProcessor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d3daa94b5fca9a648b12f6ef2aae752f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs b/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs new file mode 100644 index 0000000..df091a3 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs @@ -0,0 +1,12 @@ +using System.IO; + +namespace Unity.PlasticSCM.Editor.AssetUtils +{ + internal static class ProjectPath + { + internal static string FromApplicationDataPath(string dataPath) + { + return Path.GetDirectoryName(Path.GetFullPath(dataPath)); + } + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs.meta b/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs.meta new file mode 100644 index 0000000..e334442 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/ProjectPath.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6cad902920d2d0e448b4a307b199d8fd +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs b/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs new file mode 100644 index 0000000..3397d44 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs @@ -0,0 +1,29 @@ +using UnityEditor; +using UnityEngine; + +namespace Unity.PlasticSCM.Editor.AssetUtils +{ + internal static class RefreshAsset + { + internal static void UnityAssetDatabase() + { + AssetDatabase.Refresh(ImportAssetOptions.Default); + VersionControlCache(); + } + + internal static void VersionControlCache() + { + UnityEditor.VersionControl.Provider.ClearCache(); + RepaintInspectors(); + } + + internal static void RepaintInspectors() + { + UnityEditor.Editor[] editors = + Resources.FindObjectsOfTypeAll(); + + foreach (UnityEditor.Editor editor in editors) + editor.Repaint(); + } + } +} \ No newline at end of file diff --git a/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs.meta b/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs.meta new file mode 100644 index 0000000..ddf8983 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/RefreshAsset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7495e44f1cb132745a310485807e68f6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs b/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs new file mode 100644 index 0000000..ce34b07 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs @@ -0,0 +1,137 @@ +using System.IO; +using System.Collections.Generic; + +using UnityEditor; +using UnityEditor.SceneManagement; +using UnityEngine.SceneManagement; + +using Codice.Client.BaseCommands; +using Codice.Client.Common; + +namespace Unity.PlasticSCM.Editor.AssetUtils +{ + internal static class SaveAssets + { + internal static void ForChangesWithConfirmation( + List changes, + out bool isCancelled) + { + ForPaths( + GetPaths(changes), true, + out isCancelled); + } + + internal static void ForPathsWithConfirmation( + List paths, + out bool isCancelled) + { + ForPaths( + paths, true, + out isCancelled); + } + + internal static void ForChangesWithoutConfirmation( + List changes) + { + bool isCancelled; + ForPaths( + GetPaths(changes), false, + out isCancelled); + } + + internal static void ForPathsWithoutConfirmation( + List paths) + { + bool isCancelled; + ForPaths( + paths, false, + out isCancelled); + } + + static void ForPaths( + List paths, + bool askForUserConfirmation, + out bool isCancelled) + { + SaveDirtyScenes( + paths, + askForUserConfirmation, + out isCancelled); + + if (isCancelled) + return; + + AssetDatabase.SaveAssets(); + } + + static void SaveDirtyScenes( + List paths, + bool askForUserConfirmation, + out bool isCancelled) + { + isCancelled = false; + + List scenesToSave = new List(); + + foreach (Scene dirtyScene in GetDirtyScenes()) + { + if (Contains(paths, dirtyScene)) + scenesToSave.Add(dirtyScene); + } + + if (scenesToSave.Count == 0) + return; + + if (askForUserConfirmation) + { + isCancelled = !EditorSceneManager. + SaveModifiedScenesIfUserWantsTo( + scenesToSave.ToArray()); + return; + } + + EditorSceneManager.SaveScenes( + scenesToSave.ToArray()); + } + + static List GetDirtyScenes() + { + List dirtyScenes = new List(); + + for (int i = 0; i < SceneManager.sceneCount; i++) + { + Scene scene = SceneManager.GetSceneAt(i); + + if (!scene.isDirty) + continue; + + dirtyScenes.Add(scene); + } + + return dirtyScenes; + } + + static bool Contains( + List paths, + Scene scene) + { + foreach (string path in paths) + { + if (PathHelper.IsSamePath( + path, + Path.GetFullPath(scene.path))) + return true; + } + + return false; + } + + static List GetPaths(List changeInfos) + { + List result = new List(); + foreach (ChangeInfo change in changeInfos) + result.Add(change.GetFullPath()); + return result; + } + } +} diff --git a/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs.meta b/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs.meta new file mode 100644 index 0000000..c8072e0 --- /dev/null +++ b/Editor/PlasticSCM/AssetsUtils/SaveAssets.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 802adf99bdbb1a3439a0a09ae5664192 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/AutoRefresh.cs b/Editor/PlasticSCM/AutoRefresh.cs new file mode 100644 index 0000000..efc6e50 --- /dev/null +++ b/Editor/PlasticSCM/AutoRefresh.cs @@ -0,0 +1,27 @@ +using Unity.PlasticSCM.Editor.Views.IncomingChanges; +using Unity.PlasticSCM.Editor.Views.PendingChanges; + +namespace Unity.PlasticSCM.Editor +{ + internal static class AutoRefresh + { + internal static void PendingChangesView(PendingChangesTab pendingChangesTab) + { + if (pendingChangesTab == null) + return; + + pendingChangesTab.AutoRefresh(); + } + + internal static void IncomingChangesView(IIncomingChangesTab incomingChangesTab) + { + if (incomingChangesTab == null) + return; + + if (!incomingChangesTab.IsVisible) + return; + + incomingChangesTab.AutoRefresh(); + } + } +} diff --git a/Editor/PlasticSCM/AutoRefresh.cs.meta b/Editor/PlasticSCM/AutoRefresh.cs.meta new file mode 100644 index 0000000..e077d45 --- /dev/null +++ b/Editor/PlasticSCM/AutoRefresh.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a840d4787ba856c4dbaf61207189b00c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Beta.meta b/Editor/PlasticSCM/Beta.meta new file mode 100644 index 0000000..b808896 --- /dev/null +++ b/Editor/PlasticSCM/Beta.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b5ce4856fff3e004d9d5cd46e77f7e91 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs b/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs new file mode 100644 index 0000000..8019b58 --- /dev/null +++ b/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs @@ -0,0 +1,103 @@ +using System; + +using UnityEditor; + +using Codice.Client.Common.Threading; +using Codice.Client.Common.WebApi; +using Codice.LogWrapper; +using Unity.PlasticSCM.Editor.WebApi; + +namespace Unity.PlasticSCM.Editor.Beta +{ + [InitializeOnLoad] + internal static class CalculateUserBetaProgramSetting + { + static CalculateUserBetaProgramSetting() + { + EditorApplication.update += RunOnceWhenAccessTokenIsInitialized; + } + + static void RunOnceWhenAccessTokenIsInitialized() + { + if (string.IsNullOrEmpty(CloudProjectSettings.accessToken)) + return; + + EditorApplication.update -= RunOnceWhenAccessTokenIsInitialized; + + if (CollabPlugin.IsEnabled()) + return; + + Execute(CloudProjectSettings.accessToken); + } + + static void Execute(string unityAccessToken) + { + if (SessionState.GetBool( + IS_USER_BETA_PROGRAM_ALREADY_CALCULATED_KEY, false)) + { + return; + } + + SessionState.SetBool( + IS_USER_BETA_PROGRAM_ALREADY_CALCULATED_KEY, true); + + PlasticApp.InitializeIfNeeded(); + + EnableUserBetaProgramIfNeeded(unityAccessToken); + } + + static void EnableUserBetaProgramIfNeeded(string unityAccessToken) + { + int ini = Environment.TickCount; + + UnityPackageBetaEnrollResponse response = null; + + IThreadWaiter waiter = ThreadWaiter.GetWaiter(10); + waiter.Execute( + /*threadOperationDelegate*/ delegate + { + response = PlasticScmRestApiClient.IsBetaEnabled(unityAccessToken); + }, + /*afterOperationDelegate*/ delegate + { + mLog.DebugFormat( + "IsBetaEnabled time {0} ms", + Environment.TickCount - ini); + + if (waiter.Exception != null) + { + ExceptionsHandler.LogException( + "CalculateUserBetaProgramSetting", + waiter.Exception); + return; + } + + if (response == null) + return; + + if (response.Error != null) + { + mLog.ErrorFormat( + "Unable to retrieve is beta enabled: {0} [code {1}]", + response.Error.Message, response.Error.ErrorCode); + return; + } + + if (!response.IsBetaEnabled) + { + mLog.InfoFormat( + "Beta is disabled for accessToken: {0}", + unityAccessToken); + return; + } + + PlasticMenuItem.Add(); + }); + } + + const string IS_USER_BETA_PROGRAM_ALREADY_CALCULATED_KEY = + "PlasticSCM.UserBetaProgram.IsAlreadyCalculated"; + + static readonly ILog mLog = LogManager.GetLogger("CalculateUserBetaProgramSetting"); + } +} diff --git a/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs.meta b/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs.meta new file mode 100644 index 0000000..001f3de --- /dev/null +++ b/Editor/PlasticSCM/Beta/CalculateUserBetaProgramSetting.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7b5b02b72be11d248a012a4b71e66166 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs b/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs new file mode 100644 index 0000000..f229f34 --- /dev/null +++ b/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs @@ -0,0 +1,35 @@ +using Codice.Client.Commands.WkTree; +using Codice.CM.Common; + +namespace Codice +{ + internal static class CheckWorkspaceTreeNodeStatus + { + internal static bool IsPrivate(WorkspaceTreeNode node) + { + return node == null; + } + + internal static bool IsCheckedOut(WorkspaceTreeNode node) + { + if (node == null) + return false; + + return node.RevInfo.CheckedOut; + } + + internal static bool IsAdded(WorkspaceTreeNode node) + { + if (node == null) + return false; + + return node.RevInfo.CheckedOut && + node.RevInfo.ParentId == -1; + } + + internal static bool IsDirectory(WorkspaceTreeNode node) + { + return node.RevInfo.Type == EnumRevisionType.enDirectory; + } + } +} diff --git a/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs.meta b/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs.meta new file mode 100644 index 0000000..3327a88 --- /dev/null +++ b/Editor/PlasticSCM/CheckWorkspaceTreeNodeStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6aa8eca9e9e84840b73620eb177ea9e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader.meta b/Editor/PlasticSCM/CloudProjectDownloader.meta new file mode 100644 index 0000000..645432c --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a088652feef3704ab1221770deb738a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs b/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs new file mode 100644 index 0000000..cbb35b5 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs @@ -0,0 +1,68 @@ +using Codice.Client.Common; +using Codice.Client.Common.WebApi; +using Codice.CM.Common; +using PlasticGui; +using Unity.PlasticSCM.Editor.WebApi; + +namespace Unity.PlasticSCM.Editor.ProjectDownloader +{ + internal static class AutoConfigClientConf + { + internal static void FromUnityAccessToken( + string unityAccessToken, + RepositorySpec repSpec, + string projectPath) + { + CredentialsResponse response = + PlasticScmRestApiClient.GetCredentials(unityAccessToken); + + if (response.Error != null) + { + UnityEngine.Debug.LogErrorFormat( + PlasticLocalization.GetString(PlasticLocalization.Name.ErrorGettingCredentialsCloudProject), + response.Error.Message, + response.Error.ErrorCode); + + return; + } + + ClientConfigData configData = BuildClientConfigData( + repSpec, + projectPath, + response); + + ClientConfig.Get().Save(configData); + } + + static ClientConfigData BuildClientConfigData( + RepositorySpec repSpec, + string projectPath, + CredentialsResponse response) + { + SEIDWorkingMode workingMode = SEIDWorkingMode.LDAPWorkingMode; + + ClientConfigData configData = new ClientConfigData(); + + configData.WorkspaceServer = repSpec.Server; + configData.CurrentWorkspace = projectPath; + configData.WorkingMode = workingMode.ToString(); + configData.SecurityConfig = UserInfo.GetSecurityConfigStr( + workingMode, + response.Email, + GetPassword(response.Token, response.Type)); + return configData; + } + + static string GetPassword( + string token, + CredentialsResponse.TokenType tokenType) + { + if (tokenType == CredentialsResponse.TokenType.Bearer) + return BEARER_PREFIX + token; + + return token; + } + + const string BEARER_PREFIX = "Bearer "; + } +} diff --git a/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs.meta b/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs.meta new file mode 100644 index 0000000..c358b22 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/AutoConfigClientConf.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c21251ff4b7d844292a388e81e47e59 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs b/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs new file mode 100644 index 0000000..86a2c2c --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.IO; + +using UnityEditor; +using UnityEngine; + +using Codice.LogWrapper; + +namespace Unity.PlasticSCM.Editor.ProjectDownloader +{ + [InitializeOnLoad] + internal static class CloudProjectDownloader + { + static CloudProjectDownloader() + { + EditorApplication.update += RunOnceWhenAccessTokenIsInitialized; + } + + static void RunOnceWhenAccessTokenIsInitialized() + { + if (string.IsNullOrEmpty(CloudProjectSettings.accessToken)) + return; + + EditorApplication.update -= RunOnceWhenAccessTokenIsInitialized; + + Execute(CloudProjectSettings.accessToken); + } + + static void Execute(string unityAccessToken) + { + if (SessionState.GetBool( + IS_PROJECT_DOWNLOADER_ALREADY_EXECUTED_KEY, false)) + { + return; + } + + SessionState.SetBool( + IS_PROJECT_DOWNLOADER_ALREADY_EXECUTED_KEY, true); + + DownloadRepository(unityAccessToken); + } + + static void DownloadRepository(string unityAccessToken) + { + Dictionary args = CommandLineArguments.Build( + Environment.GetCommandLineArgs()); + + mLog.DebugFormat( + "Processing Unity arguments: {0}", + string.Join(" ", Environment.GetCommandLineArgs())); + + string projectPath = ParseArguments.ProjectPath(args); + string cloudRepository = ParseArguments.CloudProject(args); + string cloudOrganization = ParseArguments.CloudOrganization(args); + + if (string.IsNullOrEmpty(projectPath) || + string.IsNullOrEmpty(cloudRepository) || + string.IsNullOrEmpty(cloudOrganization)) + return; + + PlasticApp.InitializeIfNeeded(); + + DownloadRepositoryOperation downloadOperation = + new DownloadRepositoryOperation(); + + downloadOperation.DownloadRepositoryToPathIfNeeded( + cloudRepository, + cloudOrganization, + Path.GetFullPath(projectPath), + unityAccessToken); + } + + const string IS_PROJECT_DOWNLOADER_ALREADY_EXECUTED_KEY = + "PlasticSCM.ProjectDownloader.IsAlreadyExecuted"; + + static readonly ILog mLog = LogManager.GetLogger("ProjectDownloader"); + } +} diff --git a/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs.meta b/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs.meta new file mode 100644 index 0000000..4044f6b --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/CloudProjectDownloader.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 94a5d27698bed3d42beabebcedbf1f23 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs b/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs new file mode 100644 index 0000000..1b3a9b6 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; + +namespace Unity.PlasticSCM.Editor.ProjectDownloader +{ + internal class CommandLineArguments + { + internal static Dictionary Build(string[] args) + { + Dictionary result = new Dictionary( + StringComparer.OrdinalIgnoreCase); + + if (args == null) + return result; + List trimmedArguments = TrimArgs(args); + + int index = 1; + + while (true) + { + if (index > trimmedArguments.Count - 1) + break; + + if (IsKeyValueArgumentAtIndex(trimmedArguments, index)) + { + result[trimmedArguments[index]] = trimmedArguments[index + 1]; + index += 2; + continue; + } + + result[trimmedArguments[index]] = null; + index += 1; + } + + return result; + } + + static List TrimArgs(string[] args) + { + List trimmedArguments = new List(); + + foreach (string argument in args) + trimmedArguments.Add(argument.Trim()); + + return trimmedArguments; + } + + static bool IsKeyValueArgumentAtIndex( + List trimmedArguments, + int index) + { + if (index + 1 > trimmedArguments.Count -1) + return false; + + return !trimmedArguments[index + 1].StartsWith("-"); + } + } +} diff --git a/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs.meta b/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs.meta new file mode 100644 index 0000000..f9e83f2 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/CommandLineArguments.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4675673a75b20a14da0806d155b5680c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs b/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs new file mode 100644 index 0000000..6cd4791 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs @@ -0,0 +1,221 @@ +using System; +using System.IO; +using System.Threading; + +using UnityEditor; +using UnityEngine; + +using Codice.Client.BaseCommands; +using Codice.Client.Commands; +using Codice.Client.Common; +using Codice.CM.Common; +using Codice.LogWrapper; +using Codice.Utils; +using PlasticGui; +using PlasticGui.WebApi; +using PlasticGui.WorkspaceWindow; +using PlasticGui.WorkspaceWindow.Update; +using Unity.PlasticSCM.Editor.AssetUtils; +using Unity.PlasticSCM.Editor.Tool; +using Unity.PlasticSCM.Editor.UI; + +namespace Unity.PlasticSCM.Editor.ProjectDownloader +{ + internal class DownloadRepositoryOperation + { + internal void DownloadRepositoryToPathIfNeeded( + string cloudRepository, + string cloudOrganization, + string projectPath, + string unityAccessToken) + { + AssetDatabase.DisallowAutoRefresh(); + + try + { + BuildProgressSpeedAndRemainingTime.ProgressData progressData = + new BuildProgressSpeedAndRemainingTime.ProgressData(DateTime.Now); + + ThreadPool.QueueUserWorkItem( + DownloadRepository, + new DownloadRepositoryParameters() + { + CloudOrganization = cloudOrganization, + CloudRepository = cloudRepository, + ProjectPath = projectPath, + AccessToken = unityAccessToken + }); + + while (!mOperationFinished) + { + if (mDisplayProgress) + { + DisplayProgress( + mUpdateNotifier.GetUpdateStatus(), + progressData, + cloudRepository); + } + + Thread.Sleep(150); + } + } + finally + { + EditorUtility.ClearProgressBar(); + + AssetDatabase.AllowAutoRefresh(); + + RefreshAsset.UnityAssetDatabase(); + + if (!mOperationFailed) + { + ShowWindow.PlasticAfterDownloadingProject(); + } + } + } + + void DownloadRepository(object state) + { + DownloadRepositoryParameters parameters = (DownloadRepositoryParameters)state; + + try + { + IPlasticWebRestApi restApi = new PlasticWebRestApi(); + string defaultCloudAlias = restApi.GetDefaultCloudAlias(); + + RepositorySpec repSpec = BuildRepSpec( + parameters.CloudRepository, + parameters.CloudOrganization, + defaultCloudAlias); + + // we just download a cloud project, + // so let's assume we're going to use Cloud Edition + SetupUnityEditionToken.CreateCloudEditionTokenIfNeeded(); + + if (!ClientConfig.IsConfigured()) + { + AutoConfigClientConf.FromUnityAccessToken( + parameters.AccessToken, + repSpec, + parameters.ProjectPath); + } + + if (WorkspaceExists(parameters.ProjectPath)) + { + // each domain reload, the package is reloaded. + // way need to check if we already downloaded it + return; + } + + mDisplayProgress = true; + + WorkspaceInfo wkInfo = CreateWorkspace( + repSpec, parameters.ProjectPath); + + mLog.DebugFormat("Created workspace {0} on {1}", + wkInfo.Name, + wkInfo.ClientPath); + + Plastic.API.Update( + wkInfo.ClientPath, + UpdateFlags.None, + null, + mUpdateNotifier); + } + catch (Exception ex) + { + LogException(ex); + + UnityEngine.Debug.LogErrorFormat( + PlasticLocalization.GetString(PlasticLocalization.Name.ErrorDownloadingCloudProject), + ex.Message); + + mOperationFailed = true; + } + finally + { + mOperationFinished = true; + } + } + + static void DisplayProgress( + UpdateOperationStatus status, + BuildProgressSpeedAndRemainingTime.ProgressData progressData, + string cloudRepository) + { + string totalProgressMessage = UpdateProgressRender. + GetProgressString(status, progressData); + + float totalProgressPercent = GetProgressBarPercent. + ForTransfer(status.UpdatedSize, status.TotalSize) / 100f; + + EditorUtility.DisplayProgressBar( + string.Format("{0} {1}", + PlasticLocalization.GetString(PlasticLocalization.Name.DownloadingProgress), + cloudRepository), + totalProgressMessage, totalProgressPercent); + } + + static WorkspaceInfo CreateWorkspace( + RepositorySpec repositorySpec, + string projectPath) + { + CreateWorkspaceDialogUserAssistant assistant = new CreateWorkspaceDialogUserAssistant( + PlasticGuiConfig.Get().Configuration.DefaultWorkspaceRoot, + Plastic.API.GetAllWorkspacesArray()); + + assistant.RepositoryChanged( + repositorySpec.ToString(), + string.Empty, + string.Empty); + + return Plastic.API.CreateWorkspace( + projectPath, + assistant.GetProposedWorkspaceName(), + repositorySpec.ToString()); + } + + static RepositorySpec BuildRepSpec( + string cloudRepository, + string cloudOrganization, + string defaultCloudAlias) + { + return new RepositorySpec() + { + Name = cloudRepository, + Server = CloudServer.BuildFullyQualifiedName( + cloudOrganization, defaultCloudAlias) + }; + } + + static void LogException(Exception ex) + { + mLog.WarnFormat("Message: {0}", ex.Message); + + mLog.DebugFormat( + "StackTrace:{0}{1}", + Environment.NewLine, ex.StackTrace); + } + + static bool WorkspaceExists(string projectPath) + { + return Plastic.API.GetWorkspaceFromPath(projectPath) != null; + } + + class DownloadRepositoryParameters + { + internal string CloudRepository; + internal string CloudOrganization; + internal string ProjectPath; + internal string AccessToken; + } + + volatile bool mOperationFinished = false; + volatile bool mOperationFailed = false; + volatile bool mDisplayProgress; + + UpdateNotifier mUpdateNotifier = new UpdateNotifier(); + + static readonly ILog mLog = LogManager.GetLogger("DownloadRepositoryOperation"); + } +} diff --git a/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs.meta b/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs.meta new file mode 100644 index 0000000..e4e4a75 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/DownloadRepositoryOperation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 608efd4e185fb9440bb8550d98e20ca4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs b/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs new file mode 100644 index 0000000..b84bb61 --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; + +namespace Unity.PlasticSCM.Editor.ProjectDownloader +{ + internal static class ParseArguments + { + internal static string CloudProject(Dictionary args) + { + string data; + + if (!args.TryGetValue(CLOUD_PROJECT, out data)) + return null; + + return data; + } + + internal static string CloudOrganization(Dictionary args) + { + string data; + + if (!args.TryGetValue(CLOUD_ORGANIZATION, out data)) + return null; + + return GetOrganizationNameFromData(data); + } + + internal static string ProjectPath(Dictionary args) + { + string data; + + if (!args.TryGetValue(CREATE_PROJECT, out data)) + return null; + + return data; + } + + static string GetOrganizationNameFromData(string data) + { + // data is in format: 151d73c7-38cb-4eec-b11e-34764e707226-danipen-unity + int guidLenght = 36; + + if (data.Length < guidLenght + 1) + return null; + + return data.Substring(guidLenght + 1); + } + + const string CLOUD_PROJECT = "-cloudProject"; + const string CLOUD_ORGANIZATION = "-cloudOrganization"; + const string CREATE_PROJECT = "-createProject"; + + } +} diff --git a/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs.meta b/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs.meta new file mode 100644 index 0000000..ba74f2b --- /dev/null +++ b/Editor/PlasticSCM/CloudProjectDownloader/ParseArguments.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f6b5d170f39144847822c10b478f25e5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/CollabPlugin.cs b/Editor/PlasticSCM/CollabPlugin.cs new file mode 100644 index 0000000..147737e --- /dev/null +++ b/Editor/PlasticSCM/CollabPlugin.cs @@ -0,0 +1,110 @@ +using System; +using System.Reflection; + +using UnityEditor; + +namespace Unity.PlasticSCM.Editor +{ + internal static class CollabPlugin + { + internal static bool IsEnabled() + { + return IsCollabInstanceEnabled(); + } + + internal static void Disable() + { + DisableCollabInstance(); + + DisableCollabInProjectSettings(); + } + + static void DisableCollabInstance() + { + object collabInstance = GetCollabInstance(); + + if (collabInstance == null) + return; + + // Invokes Collab.instance.SetCollabEnabledForCurrentProject(false) + SetCollabEnabledForCurrentProject(collabInstance, false); + } + + static void DisableCollabInProjectSettings() + { + // Invokes PlayerSettings.SetCloudServiceEnabled("Collab", false) + SetCloudServiceEnabled("Collab", false); + + AssetDatabase.SaveAssets(); + } + + static bool IsCollabInstanceEnabled() + { + object collabInstance = GetCollabInstance(); + + if (collabInstance == null) + return false; + + // Invokes Collab.instance.IsCollabEnabledForCurrentProject() + return IsCollabEnabledForCurrentProject(collabInstance); + } + + static void SetCollabEnabledForCurrentProject(object collabInstance, bool enable) + { + MethodInfo InternalSetCollabEnabledForCurrentProject = + CollabType.GetMethod("SetCollabEnabledForCurrentProject"); + + if (InternalSetCollabEnabledForCurrentProject == null) + return; + + InternalSetCollabEnabledForCurrentProject. + Invoke(collabInstance, new object[] { enable }); + } + + static void SetCloudServiceEnabled(string setting, bool enable) + { + MethodInfo InternalSetCloudServiceEnabled = PlayerSettingsType.GetMethod( + "SetCloudServiceEnabled", + BindingFlags.NonPublic | BindingFlags.Static); + + if (InternalSetCloudServiceEnabled == null) + return; + + InternalSetCloudServiceEnabled. + Invoke(null, new object[] { setting, enable }); + } + + static object GetCollabInstance() + { + if (CollabType == null) + return null; + + PropertyInfo InternalInstance = + CollabType.GetProperty("instance"); + + if (InternalInstance == null) + return null; + + return InternalInstance.GetValue(null, null); + } + + static bool IsCollabEnabledForCurrentProject(object collabInstance) + { + MethodInfo InternalIsCollabEnabledForCurrentProject = + CollabType.GetMethod("IsCollabEnabledForCurrentProject"); + + if (InternalIsCollabEnabledForCurrentProject == null) + return false; + + return (bool)InternalIsCollabEnabledForCurrentProject. + Invoke(collabInstance, null); + } + + static readonly Type CollabType = + typeof(UnityEditor.Editor).Assembly. + GetType("UnityEditor.Collaboration.Collab"); + + static readonly Type PlayerSettingsType = + typeof(UnityEditor.PlayerSettings); + } +} diff --git a/Editor/PlasticSCM/CollabPlugin.cs.meta b/Editor/PlasticSCM/CollabPlugin.cs.meta new file mode 100644 index 0000000..3722406 --- /dev/null +++ b/Editor/PlasticSCM/CollabPlugin.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8b1d1407c22e5844698f18df6a9f1781 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration.meta b/Editor/PlasticSCM/Configuration.meta new file mode 100644 index 0000000..2df003c --- /dev/null +++ b/Editor/PlasticSCM/Configuration.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec63ff75b0076d64fb0a5cf58170501f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs b/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs new file mode 100644 index 0000000..71849fe --- /dev/null +++ b/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs @@ -0,0 +1,93 @@ +using Codice.Client.Common; +using Codice.CM.Common; +using PlasticGui; +using PlasticPipe.Certificates; +using Unity.PlasticSCM.Editor.UI; +using UnityEditor; + +namespace Unity.PlasticSCM.Editor.Configuration +{ + internal class ChannelCertificateUiImpl : IChannelCertificateUI + { + internal ChannelCertificateUiImpl() + { + } + + CertOperationResult IChannelCertificateUI.AcceptNewServerCertificate(PlasticCertInfo serverCertificate) + { + return GetUserResponse( + PlasticLocalization.GetString( + PlasticLocalization.Name.NewCertificateTitle), + PlasticLocalization.GetString( + PlasticLocalization.Name.NewCertificateMessage), + serverCertificate); + } + + CertOperationResult IChannelCertificateUI.AcceptChangedServerCertificate(PlasticCertInfo serverCertificate) + { + return GetUserResponse( + PlasticLocalization.GetString( + PlasticLocalization.Name.ExistingCertificateChangedTitle), + PlasticLocalization.GetString( + PlasticLocalization.Name.ExistingCertificateChangedMessage), + serverCertificate); + } + + bool IChannelCertificateUI.AcceptInvalidHostname(string certHostname, string serverHostname) + { + bool result = false; + + GUIActionRunner.RunGUIAction(delegate { + result = EditorUtility.DisplayDialog( + PlasticLocalization.GetString( + PlasticLocalization.Name.InvalidCertificateHostnameTitle), + PlasticLocalization.GetString( + PlasticLocalization.Name.InvalidCertificateHostnameMessage, + certHostname, serverHostname), + PlasticLocalization.GetString(PlasticLocalization.Name.YesButton), + PlasticLocalization.GetString(PlasticLocalization.Name.NoButton)); + }); + + return result; + } + + CertOperationResult GetUserResponse( + string title, string message, PlasticCertInfo serverCertificate) + { + GuiMessage.GuiMessageResponseButton result = + GuiMessage.GuiMessageResponseButton.Third; + + GUIActionRunner.RunGUIAction(delegate { + result = GuiMessage.ShowQuestion( + title, GetCertificateMessageString(message, serverCertificate), + PlasticLocalization.GetString(PlasticLocalization.Name.YesButton), + PlasticLocalization.GetString(PlasticLocalization.Name.NoButton), + PlasticLocalization.GetString(PlasticLocalization.Name.CancelButton), + true); + }); + + switch (result) + { + case GuiMessage.GuiMessageResponseButton.First: + return CertOperationResult.AddToStore; + case GuiMessage.GuiMessageResponseButton.Second: + return CertOperationResult.DoNotAddToStore; + case GuiMessage.GuiMessageResponseButton.Third: + return CertOperationResult.Cancel; + default: + return CertOperationResult.Cancel; + } + } + + string GetCertificateMessageString(string message, PlasticCertInfo serverCertificate) + { + return string.Format(message, + CertificateUi.GetCnField(serverCertificate.Subject), + CertificateUi.GetCnField(serverCertificate.Issuer), + serverCertificate.Format, + serverCertificate.ExpirationDateString, + serverCertificate.KeyAlgorithm, + serverCertificate.CertHashString); + } + } +} diff --git a/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs.meta b/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs.meta new file mode 100644 index 0000000..dbcf2c5 --- /dev/null +++ b/Editor/PlasticSCM/Configuration/ChannelCertificateUiImpl.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 628bc1ed591aa164ab9124ac22e02d9a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration/CloudEdition.meta b/Editor/PlasticSCM/Configuration/CloudEdition.meta new file mode 100644 index 0000000..9cffe8f --- /dev/null +++ b/Editor/PlasticSCM/Configuration/CloudEdition.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b593e05bcd27824eb229f8c6b20e13b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration/CloudEdition/Welcome.meta b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome.meta new file mode 100644 index 0000000..c3448ba --- /dev/null +++ b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86d9084a265d35f4db65c4e31e0b6769 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs new file mode 100644 index 0000000..4e2ea2f --- /dev/null +++ b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs @@ -0,0 +1,70 @@ +using UnityEditor; +using UnityEngine; +using UnityEngine.UIElements; + +using PlasticGui; +using PlasticGui.WebApi; +using Unity.PlasticSCM.Editor.UI.UIElements; + +namespace Unity.PlasticSCM.Editor.Configuration.CloudEdition.Welcome +{ + internal class CloudEditionWelcomeWindow : EditorWindow + { + internal static void ShowWindow(IPlasticWebRestApi restApi) + { + CloudEditionWelcomeWindow window = GetWindow(); + window.mRestApi = restApi; + window.titleContent = new GUIContent( + PlasticLocalization.GetString(PlasticLocalization.Name.SignInToPlasticSCM)); + window.minSize = new Vector2(800, 460); + window.Show(); + } + + void OnEnable() + { + BuildComponents(); + } + + void OnDestroy() + { + Dispose(); + } + + void Dispose() + { + mSignInPanel.Dispose(); + mSSOSignUpPanel.Dispose(); + } + + internal void BuildComponents() + { + VisualElement root = rootVisualElement; + + root.Clear(); + mTabView = new TabView(); + + mSignInPanel = new SignInPanel(this); + mSSOSignUpPanel = new SSOSignUpPanel(this, mRestApi); + + mTabView.AddTab( + PlasticLocalization.GetString(PlasticLocalization.Name.Login), + mSignInPanel); + mTabView.AddTab( + PlasticLocalization.GetString(PlasticLocalization.Name.SignUp), + mSSOSignUpPanel).clicked += () => + { + titleContent = new GUIContent( + PlasticLocalization.GetString(PlasticLocalization.Name.SignUp)); + }; + + root.Add(mTabView); + } + + internal TabView mTabView; + + SignInPanel mSignInPanel; + SSOSignUpPanel mSSOSignUpPanel; + + IPlasticWebRestApi mRestApi; + } +} \ No newline at end of file diff --git a/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs.meta b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs.meta new file mode 100644 index 0000000..44fcd41 --- /dev/null +++ b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CloudEditionWelcomeWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0ad54f9e1bb701142b116d0d1ed98437 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CreateOrganizationPanel.cs b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CreateOrganizationPanel.cs new file mode 100644 index 0000000..3d5e130 --- /dev/null +++ b/Editor/PlasticSCM/Configuration/CloudEdition/Welcome/CreateOrganizationPanel.cs @@ -0,0 +1,167 @@ +using System.Collections.Generic; +using System.Linq; + +using UnityEditor.UIElements; +using UnityEngine.UIElements; + +using PlasticGui; +using Unity.PlasticSCM.Editor.UI.UIElements; + +namespace Unity.PlasticSCM.Editor.Configuration.CloudEdition.Welcome +{ + internal class CreateOrganizationPanel : VisualElement + { + internal CreateOrganizationPanel(VisualElement rootPanel) + { + mRootPanel = rootPanel; + + InitializeLayoutAndStyles(); + + BuildComponents(); + } + + internal void Dispose() + { + mLoadingSpinner.Dispose(); + + mCreateButton.clicked -= CreateButton_Clicked; + + mOrganizationNameTextField.UnregisterValueChangedCallback( + OnOrganizationNameTextFieldChanged); + } + + void StartProgress() + { + mGettingDatacenters.RemoveFromClassList("hidden"); + mLoadingSpinner.Start(); + } + + void StopProgress() + { + mGettingDatacenters.AddToClassList("hidden"); + mLoadingSpinner.Stop(); + } + + void OnOrganizationNameTextFieldChanged(ChangeEvent evt) + { + mOrganizationNameNotification.text = ""; + } + + void DataCenterClicked(DropdownMenuAction action) + { + mSelectedDatacenter = action.name; + mDatacenter.text = action.name; + } + + void CreateButton_Clicked() + { + //TODO: Launch organization creation task + + mRootPanel.Clear(); + mRootPanel.Add(new CreatedOrganizationPanel(mOrganizationNameTextField.text)); + } + + DropdownMenuAction.Status DataCenterActive(DropdownMenuAction action) + { + if (action.name == mSelectedDatacenter) + return DropdownMenuAction.Status.Checked; + + return DropdownMenuAction.Status.Normal; + } + + IEnumerable GetDatacenters() + { + // TODO: Replace with call + return new string[] + { + "Test Server 1", + "Test Server 2", + "Test Server 3", + "Test Server 4", + "Test Server 5" + }; + } + + static void SetGettingDatacentersVisibility( + VisualElement gettingDatacenters, + bool visible) + { + if (visible) + { + gettingDatacenters.AddToClassList("hidden"); + return; + } + + gettingDatacenters.RemoveFromClassList("hidden"); + } + + void BuildComponents() + { + this.SetControlImage("buho", + PlasticGui.Help.HelpImage.ColorBuho); + + VisualElement spinnerControl = this.Query("gdSpinner").First(); + mLoadingSpinner = new LoadingSpinner(); + spinnerControl.Add(mLoadingSpinner); + + IEnumerable datacenters = GetDatacenters(); + mSelectedDatacenter = datacenters.FirstOrDefault(); + mDatacenter = new ToolbarMenu { text = mSelectedDatacenter }; + foreach (string datacenter in GetDatacenters()) + mDatacenter.menu.AppendAction(datacenter, DataCenterClicked, DataCenterActive); + VisualElement datacenterContainer = this.Query("datacenter").First(); + datacenterContainer.Add(mDatacenter); + + mOrganizationNameTextField = this.Query("orgName").First(); + mOrganizationNameNotification = this.Query