public CutscenesWindowAppearance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; video = new FileChooser() { Label = TC.get("Resources.DescriptionVideoscenes"), FileType = FileType.CUTSCENE_VIDEO }; slides = new AnimationField() { Label = TC.get("Resources.DescriptionSlidesceneSlides"), FileType = FileType.CUTSCENE_SLIDES }; music = new FileChooser() { Label = TC.get("Resources.DescriptionSceneMusic"), FileType = FileType.CUTSCENE_MUSIC }; }
public ScenesWindowAppearance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, SceneEditor sceneEditor, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, sceneEditor, aOptions) { appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; appearanceEditor.onAppearanceSelected = sceneEditor.RefreshSceneResources; PreviewTitle = "Scene.Preview".Traslate(); // Fields background = new FileChooser() { Label = TC.get("Resources.DescriptionSceneBackground"), FileType = FileType.SCENE_BACKGROUND, Empty = SpecialAssetPaths.ASSET_EMPTY_BACKGROUND }; foreground = new FileChooser() { Label = TC.get("Resources.DescriptionSceneForeground"), FileType = FileType.SCENE_FOREGROUND }; music = new FileChooser() { Label = TC.get("Resources.DescriptionSceneMusic"), FileType = FileType.SCENE_MUSIC }; }
public CharactersWindowAppearance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { IsPlayer = false; PreviewTitle = "Character.Preview".Traslate(); appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; appearanceEditor.onAppearanceSelected = RefreshPathInformation; if (groups == null) { groups = Enum.GetValues(typeof(CharacterAnimationsGroup)).Cast <CharacterAnimationsGroup>().ToArray(); } if (types == null) { types = Enum.GetValues(typeof(CharacterAnimationType)).Cast <CharacterAnimationType>().ToArray(); } foreach (var animationType in types) { fields[animationType] = new AnimationField() { Label = TC.get(fieldNames[animationType]), FileType = FileType.CHARACTER_ANIM }; } }
public ItemsWindowAppearance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; appearanceEditor.onAppearanceSelected = RefreshResources; PreviewTitle = "Item.Preview".Traslate(); // File selectors image = new FileChooser() { Label = TC.get("Resources.DescriptionItemImage"), FileType = FileType.ITEM_IMAGE, Empty = SpecialAssetPaths.ASSET_EMPTY_IMAGE }; icon = new FileChooser() { Label = TC.get("Resources.DescriptionItemIcon"), FileType = FileType.ITEM_ICON, Empty = SpecialAssetPaths.ASSET_EMPTY_ICON }; image_over = new FileChooser() { Label = TC.get("Resources.DescriptionItemImageOver"), FileType = FileType.ITEM_IMAGE_OVER }; }
public override void Initialize(InitializationContext context) { _extensionHost = (LiteExtensionHost)context.Host; _extensionHost.TemplateService.AddFileSearchDirectory(new FilePath(Application.StartupPath).Combine("Templates", "File")); _extensionHost.TemplateService.AddProjectSearchDirectory(new FilePath(Application.StartupPath).Combine("Templates", "Project")); _extensionHost.TemplateService.AddIconSearchDirectory(new FilePath(Application.StartupPath).Combine("Templates", "Icons")); var generalSettingsEditorControl = new GeneralSettingsEditor(_settings = LiteDevelopSettings.Instance) { Dock = DockStyle.Fill }; var internationalSettingsEditorControl = new InternationalSettingsEditor(_settings) { Dock = DockStyle.Fill }; var appearanceEditorControl = new AppearanceEditor() { Dock = DockStyle.Fill }; var generalSettingsNode = new SettingsNode("General", generalSettingsEditorControl); var internationalSettingsNode = new SettingsNode("International", internationalSettingsEditorControl); var appearanceNode = new SettingsNode("Appearance", appearanceEditorControl); _settingsNode = new SettingsNode("LiteDevelop", generalSettingsEditorControl); _settingsNode.Nodes.AddRange(new TreeNode[] { generalSettingsNode, appearanceNode, internationalSettingsNode, }); _componentMuiIdentifiers = new Dictionary <object, string>() { { generalSettingsNode, "LiteDevelopExtension.GeneralSettings" }, { appearanceNode, "LiteDevelopExtension.Appearance" }, { internationalSettingsNode, "LiteDevelopExtension.InternationalSettings" }, }; _extensionHost.UILanguageChanged += extensionHost_UILanguageChanged; extensionHost_UILanguageChanged(null, null); _appearanceMapPath = Path.Combine(Constants.AppDataDirectory, "appearance.xml"); _defaultAppearanceMap = AppearanceMap.LoadFromFile(Path.Combine( Path.GetDirectoryName(typeof(LiteDevelopExtension).Assembly.Location), "default_appearance.xml")); try { _appearanceMap = AppearanceMap.LoadFromFile(_appearanceMapPath); } catch { _appearanceMap = _defaultAppearanceMap; } }
public static void ShowWindow() { AppearanceEditor window = GetWindow(typeof(AppearanceEditor)) as AppearanceEditor; int width = 400; int height = 850; int screen_widht = 1920; int screen_height = 1080; int x = (screen_widht - width) / 2; int y = (screen_height - height) / 2; window.position = new Rect(x, y, width, height); window.InitData(); }
public SetItemsWindowApperance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; PreviewTitle = "Atrezzo.Preview".Traslate(); // File selectors image = new FileChooser() { Label = TC.get("Resources.DescriptionItemImage"), FileType = FileType.SET_ITEM_IMAGE }; }
public BooksWindowAppearance(Rect aStartPos, GUIContent aContent, GUIStyle aStyle, params GUILayoutOption[] aOptions) : base(aStartPos, aContent, aStyle, aOptions) { appearanceEditor = ScriptableObject.CreateInstance <AppearanceEditor>(); appearanceEditor.height = 160; appearanceEditor.onAppearanceSelected = RefreshPathInformation; PreviewTitle = "BackgroundAssets.Preview".Traslate(); background = new FileChooser() { Label = TC.get("Resources.DescriptionBookBackground"), FileType = FileType.SCENE_BACKGROUND, Empty = SpecialAssetPaths.ASSET_EMPTY_IMAGE }; left = new FileChooser() { Label = TC.get("Resources.ArrowLeftNormal"), FileType = FileType.BOOK_ARROW_LEFT_NORMAL, Empty = SpecialAssetPaths.ASSET_DEFAULT_ARROW_NORMAL }; left_over = new FileChooser() { Label = TC.get("Resources.ArrowLeftOver"), FileType = FileType.BOOK_ARROW_LEFT_OVER, Empty = SpecialAssetPaths.ASSET_DEFAULT_ARROW_OVER }; right = new FileChooser() { Label = TC.get("Resources.ArrowRightNormal"), FileType = FileType.BOOK_ARROW_RIGHT_NORMAL, Empty = SpecialAssetPaths.ASSET_DEFAULT_ARROW_NORMAL_RIGHT }; right_over = new FileChooser() { Label = TC.get("Resources.ArrowRightOver"), FileType = FileType.BOOK_ARROW_RIGHT_OVER, Empty = SpecialAssetPaths.ASSET_DEFAULT_ARROW_OVER_RIGHT }; }
/// <summary> /// Edits the specified object's value using the editor style indicated by the <see cref="M:System.Drawing.Design.UITypeEditor.GetEditStyle"/> method. /// </summary> /// <returns> /// The new value of the object. If the value of the object has not changed, this should return the same object it was passed. /// </returns> /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that can be used to gain additional context information. </param><param name="provider">An <see cref="T:System.IServiceProvider"/> that this editor can use to obtain services. </param><param name="value">The object to edit. </param> public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { AppearanceEditor editor; if (context != null && context.Instance != null && provider != null) { object currentValue = value; if (value is string) { var convet = new GenericConverter <MonthCalanderAppearance>(); currentValue = convet.ConvertTo(value, typeof(MonthCalanderAppearance)); } editor = new AppearanceEditor((MonthCalanderAppearance)currentValue); editor.ShowDialog(); value = editor.Value; if (context.Instance is MonthCalander) { ((MonthCalander)context.Instance).Appearance.Assign(editor.Value); ((MonthCalander)context.Instance).SetThemeDefaults(); } } return(value); }
public void Write(AppearanceEditor ap, EquipmentEditor eq, SaveModes mode) { if (mode.HasFlag(SaveModes.EquipmentGear)) { if (this.MainHand?.ModelSet != 0) { this.MainHand?.Write(eq.MainHand); } this.OffHand?.Write(eq.OffHand); this.HeadGear?.Write(eq.Head); this.Body?.Write(eq.Body); this.Hands?.Write(eq.Hands); this.Legs?.Write(eq.Legs); this.Feet?.Write(eq.Feet); Write(this.MainHandScale, (v) => eq.MainHand.Scale = v); Write(this.MainHandColor, (v) => eq.MainHand.Color = v); Write(this.OffHandScale, (v) => eq.OffHand.Scale = v); Write(this.OffHandColor, (v) => eq.OffHand.Color = v); } if (mode.HasFlag(SaveModes.EquipmentAccessories)) { this.Ears?.Write(eq.Ears); this.Neck?.Write(eq.Neck); this.Wrists?.Write(eq.Wrists); this.LeftRing?.Write(eq.LeftRing); this.RightRing?.Write(eq.RightRing); } if (mode.HasFlag(SaveModes.AppearanceHair)) { Write(this.Hair, (v) => ap.Appearance.Hair = v); Write(this.EnableHighlights, (v) => ap.Appearance.EnableHighlights = v); Write(this.HairTone, (v) => ap.Appearance.HairTone = v); Write(this.Highlights, (v) => ap.Appearance.Highlights = v); ap.HairTint = this.HairTint; ap.HairGlow = this.HairGlow; ap.HighlightTint = this.HighlightTint; } if (mode.HasFlag(SaveModes.AppearanceFace) || mode.HasFlag(SaveModes.AppearanceBody)) { Write(this.Race, (v) => ap.Appearance.Race = v); Write(this.Gender, (v) => ap.Appearance.Gender = v); Write(this.Tribe, (v) => ap.Appearance.Tribe = v); Write(this.Age, (v) => ap.Appearance.Age = v); } if (mode.HasFlag(SaveModes.AppearanceFace)) { Write(this.Head, (v) => ap.Appearance.Head = v); Write(this.REyeColor, (v) => ap.Appearance.REyeColor = v); Write(this.FacialFeatures, (v) => ap.Appearance.FacialFeatures = v); Write(this.LimbalEyes, (v) => ap.Appearance.LimbalEyes = v); Write(this.Eyebrows, (v) => ap.Appearance.Eyebrows = v); Write(this.LEyeColor, (v) => ap.Appearance.LEyeColor = v); Write(this.Eyes, (v) => ap.Appearance.Eyes = v); Write(this.Nose, (v) => ap.Appearance.Nose = v); Write(this.Jaw, (v) => ap.Appearance.Jaw = v); Write(this.Mouth, (v) => ap.Appearance.Mouth = v); Write(this.LipsToneFurPattern, (v) => ap.Appearance.LipsToneFurPattern = v); Write(this.FacePaint, (v) => ap.Appearance.FacePaint = v); Write(this.FacePaintColor, (v) => ap.Appearance.FacePaintColor = v); ap.LeftEyeColor = this.LeftEyeColor; ap.RightEyeColor = this.RightEyeColor; ap.LimbalRingColor = this.LimbalRingColor; ap.LipTint = this.LipTint; } if (mode.HasFlag(SaveModes.AppearanceBody)) { Write(this.Height, (v) => ap.Appearance.Height = v); Write(this.Skintone, (v) => ap.Appearance.Skintone = v); Write(this.EarMuscleTailSize, (v) => ap.Appearance.EarMuscleTailSize = v); Write(this.TailEarsType, (v) => ap.Appearance.TailEarsType = v); Write(this.Bust, (v) => ap.Appearance.Bust = v); ap.SkinTint = this.SkinTint; ap.SkinGlow = this.SkinGlow; } }
public void Read(AppearanceEditor ed, EquipmentEditor eq, SaveModes mode) { if (mode.HasFlag(SaveModes.EquipmentGear)) { this.MainHand = new Weapon(eq.MainHand); this.MainHandScale = eq.MainHand.Scale; this.MainHandColor = eq.MainHand.Color; this.OffHand = new Weapon(eq.OffHand); this.OffHandScale = eq.OffHand.Scale; this.OffHandColor = eq.OffHand.Color; this.HeadGear = new Item(eq.Head); this.Body = new Item(eq.Body); this.Hands = new Item(eq.Hands); this.Legs = new Item(eq.Legs); this.Feet = new Item(eq.Feet); } if (mode.HasFlag(SaveModes.EquipmentAccessories)) { this.Ears = new Item(eq.Ears); this.Neck = new Item(eq.Neck); this.Wrists = new Item(eq.Wrists); this.LeftRing = new Item(eq.LeftRing); this.RightRing = new Item(eq.RightRing); } if (mode.HasFlag(SaveModes.AppearanceHair)) { this.Hair = ed.Appearance.Hair; this.EnableHighlights = ed.Appearance.EnableHighlights; this.HairTone = ed.Appearance.HairTone; this.Highlights = ed.Appearance.Highlights; this.HairTint = ed.HairTint; this.HairGlow = ed.HairGlow; this.HighlightTint = ed.HighlightTint; } if (mode.HasFlag(SaveModes.AppearanceFace) || mode.HasFlag(SaveModes.AppearanceBody)) { this.Race = ed.Appearance.Race; this.Gender = ed.Appearance.Gender; this.Tribe = ed.Appearance.Tribe; this.Age = ed.Appearance.Age; } if (mode.HasFlag(SaveModes.AppearanceFace)) { this.Head = ed.Appearance.Head; this.REyeColor = ed.Appearance.REyeColor; this.LimbalEyes = ed.Appearance.LimbalEyes; this.FacialFeatures = ed.Appearance.FacialFeatures; this.Eyebrows = ed.Appearance.Eyebrows; this.LEyeColor = ed.Appearance.LEyeColor; this.Eyes = ed.Appearance.Eyes; this.Nose = ed.Appearance.Nose; this.Jaw = ed.Appearance.Jaw; this.Mouth = ed.Appearance.Mouth; this.LipsToneFurPattern = ed.Appearance.LipsToneFurPattern; this.FacePaint = ed.Appearance.FacePaint; this.FacePaintColor = ed.Appearance.FacePaintColor; this.LeftEyeColor = ed.LeftEyeColor; this.RightEyeColor = ed.RightEyeColor; this.LimbalRingColor = ed.LimbalRingColor; this.LipTint = ed.LipTint; } if (mode.HasFlag(SaveModes.AppearanceBody)) { this.Height = ed.Appearance.Height; this.Skintone = ed.Appearance.Skintone; this.EarMuscleTailSize = ed.Appearance.EarMuscleTailSize; this.TailEarsType = ed.Appearance.TailEarsType; this.Bust = ed.Appearance.Bust; this.SkinTint = ed.SkinTint; this.SkinGlow = ed.SkinGlow; } }
public void Awake() { appearances = ScriptableObject.CreateInstance <AppearanceEditor>(); conditionsTex = Resources.Load <Texture2D>("EAdventureData/img/icons/conditions-24x24"); noConditionsTex = Resources.Load <Texture2D>("EAdventureData/img/icons/no-conditions-24x24"); actionsList = new DataControlList() { footerHeight = 25, elementHeight = 40, Columns = new System.Collections.Generic.List <ColumnList.Column>() { new ColumnList.Column() { Text = TC.get("ActionsList.ActionName"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(150) } }, new ColumnList.Column() { Text = TC.get("DescriptionList.Description"), SizeOptions = new GUILayoutOption[] { GUILayout.ExpandWidth(true) } }, new ColumnList.Column() { Text = TC.get("ActionsList.NeedsGoTo"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(120) } }, new ColumnList.Column() { Text = TC.get("ActionsList.Conditions"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(70) } }, new ColumnList.Column() { Text = TC.get("Element.Effects"), SizeOptions = new GUILayoutOption[] { GUILayout.Width(70) } } }, drawCell = (rect, index, column, isActive, isFocused) => { var action = actionsList.list[index] as ActionDataControl; switch (column) { case 0: { var name = action.getContent() is CustomAction ? ((CustomAction)action.getContent()).getName() : action.getTypeName(); var leftHalf = new Rect(rect); leftHalf.width /= 2f; var rightHalf = new Rect(leftHalf); rightHalf.x += leftHalf.width; if (action.hasIdTarget()) { rightHalf.height = 25; EditorGUI.LabelField(leftHalf, name); if (!isActive) { EditorGUI.LabelField(rightHalf, !string.IsNullOrEmpty(action.getIdTarget()) ? action.getIdTarget() : "---"); } else { EditorGUI.BeginChangeCheck(); string selected = string.Empty; string[] choices = new string[0]; switch ((action.getContent() as Action).getType()) { case Action.DRAG_TO: case Action.CUSTOM_INTERACT: choices = Controller.Instance.IdentifierSummary.combineIds(new System.Type[] { typeof(Item), typeof(NPC), typeof(ActiveArea) }); break; case Action.GIVE_TO: choices = Controller.Instance.IdentifierSummary.getIds <NPC>(); break; case Action.USE_WITH: choices = Controller.Instance.IdentifierSummary.combineIds(new System.Type[] { typeof(Item), typeof(ActiveArea) }); break; } var selectedIndex = EditorGUI.Popup(rightHalf, System.Array.FindIndex(choices, action.getIdTarget().Equals), choices); if (EditorGUI.EndChangeCheck()) { if (selectedIndex >= 0 && selectedIndex < choices.Length) { selected = choices[selectedIndex]; action.setIdTarget(selected); } } } } else if (action.getType() == Controller.ACTION_TALK_TO) { EditorGUI.LabelField(leftHalf, name); var triggerConversationEffect = action.getEffects().getEffects().Find(e => e is TriggerConversationEffect) as TriggerConversationEffect; if (triggerConversationEffect != null) { var conversationId = triggerConversationEffect.getTargetId(); if (GUI.Button(rightHalf, "Open")) { var conversationsList = Controller.Instance.SelectedChapterDataControl.getConversationsList(); var conversation = conversationsList.getConversations().Find(c => c.getId() == conversationId); Controller.Instance.SelectElement(conversation); } } } else { EditorGUI.LabelField(rect, name); } } break; case 1: EditorGUI.BeginChangeCheck(); var documentation = EditorGUI.TextArea(rect, action.getDocumentation() ?? string.Empty); if (EditorGUI.EndChangeCheck()) { action.setDocumentation(documentation); } break; case 2: if (Controller.Instance.PlayerMode == Controller.FILE_ADVENTURE_1STPERSON_PLAYER) { EditorGUI.LabelField(rect, TC.get("ActionsList.NotRelevant")); } else { var leftHalf = new Rect(rect); leftHalf.width /= 2f; var rightHalf = new Rect(leftHalf); rightHalf.x += leftHalf.width; EditorGUI.BeginChangeCheck(); var needsToGo = EditorGUI.Toggle(leftHalf, action.getNeedsGoTo()); if (EditorGUI.EndChangeCheck()) { action.setNeedsGoTo(needsToGo); } EditorGUI.BeginChangeCheck(); var distance = EditorGUI.IntField(rightHalf, action.getKeepDistance()); if (EditorGUI.EndChangeCheck()) { action.setKeepDistance(distance); } ; } break; case 3: if (GUI.Button(rect, action.getConditions().getBlocksCount() > 0 ? conditionsTex : noConditionsTex)) { ConditionEditorWindow window = ScriptableObject.CreateInstance <ConditionEditorWindow>(); window.Init(action.getConditions()); } break; case 4: if (GUI.Button(rect, "Effects")) { EffectEditorWindow window = ScriptableObject.CreateInstance <EffectEditorWindow>(); window.Init(action.getEffects()); } break; } } }; actionsList.onSelectCallback += (list) => { var i = list.index; var actions = ActionsListDataControl.getActions(); customAction = i != -1 && actions[i] is CustomActionDataControl ? actions[i] as CustomActionDataControl : null; if (customAction != null) { appearances.Data = customAction; } }; actionsList.onRemoveCallback += (list) => { customAction = null; }; appearances = CreateInstance <AppearanceEditor>(); file = new FileChooser() { FileType = FileType.BUTTON, }; animation = new AnimationField() { FileType = FileType.CHARACTER_ANIM, }; }