208 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			208 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
## 0.2.5.1
 | 
						|
Experimenting with the way multiple CUIs resolve conflicts
 | 
						|
Renamed CUI.UpdateHookIdentifier => CUI.HookIdentifier
 | 
						|
now i'm using it in harmony patches to
 | 
						|
 | 
						|
added warning if it's not set
 | 
						|
 | 
						|
fixed crash in GUI_UpdateMouseOn_Postfix
 | 
						|
Added null checks in GUI_UpdateMouseOn_Postfix
 | 
						|
 | 
						|
## 0.2.5.0
 | 
						|
Added CUI.UpdateHookIdentifier it will be set as identifier to CUI think hook, it very important to set it or hooks from different CUIs will conflict
 | 
						|
 | 
						|
Added CUIAnimation
 | 
						|
Added IgnoreTransparent prop, if true mouse events will work only on not transparent sprites
 | 
						|
Added Transparency prop, it multiplies BackgroundColor.A and is propagated to Children
 | 
						|
 | 
						|
Made CUISpite an object... again
 | 
						|
Added Rotation, Origin and Offset to CUISprite
 | 
						|
Added option to load CUISprites with base folder, which allows deserialized components to load sprites from the same folder with relative paths
 | 
						|
 | 
						|
Added CUIMenu, check "Custom Menus" mod, CUIRadialMenu (the ugly brother of CUIMenu)
 | 
						|
 | 
						|
Added more docs
 | 
						|
 | 
						|
## 0.2.4.0
 | 
						|
 | 
						|
"Fixed" cursed bug that made MainComponents become in GameMain.Update patch after multiple lobbies in compiled version
 | 
						|
But this "fix" seems to decrease update smoothness, so i might rethink later
 | 
						|
Set CUI.UseCursedPatches to true if you're not affraid
 | 
						|
 | 
						|
Added more performance measurements, shortcutted dumb class scanning in CUILuaRegistrar that happened even if you didn't use lua
 | 
						|
 | 
						|
Buttons now update their color only on events and not in draw cycle, added AutoUpdateColor to prevent this color change in case you want to control it manually (why?)
 | 
						|
 | 
						|
Added confusing event InvokeOnMouseOff which is symmetrical to InvokeOnMouseOn but happens on previous MouseOn list, and it turned out to be essential to e.g. switch color when mouse leaves a button
 | 
						|
 | 
						|
You can now limit resize directions with CUIComponent.ResizeDirection
 | 
						|
 | 
						|
Fixed forsed size not reseting after removing a textblock
 | 
						|
 | 
						|
Added cuiprinttree command along with cuidraworder
 | 
						|
 | 
						|
 | 
						|
## 0.2.3.0
 | 
						|
 | 
						|
Made CUITextInput, CUITickBox and CUISlider use commands and consume data
 | 
						|
 | 
						|
Added Gap to CUIVerticalList
 | 
						|
 | 
						|
Made OnAnyCommand,OnAnyData,OnConsume events instead of delegates
 | 
						|
 | 
						|
added ReflectCommands and RetranslateCommands props, so you could define in xml that a wrapper should sync state between its children
 | 
						|
 | 
						|
Setting a Palette prop now won't automatically set palette for all children because it doesn't work as intended on deserialized components, use DeepPalette instead
 | 
						|
 | 
						|
CUISlider now have Range and Precision
 | 
						|
 | 
						|
CUI.OnPauseMenuToggled will now trigger even when resume button in pause menu is pressed
 | 
						|
 | 
						|
You can no just set CUIPalette.DefaultPalette before CUI.Initialize instead of manually loading it
 | 
						|
 | 
						|
Palettes now remember their BaseColor so you could replicate them
 | 
						|
 | 
						|
Added more useless CUIPrefabs, i think they are too specific and need some redesign, perhaps i need to create some builder 
 | 
						|
 | 
						|
Added FloatRange alongside with IntRange
 | 
						|
 | 
						|
fixed crash in KeyboardDispatcher_set_Subscriber_Replace in compiled mods
 | 
						|
 | 
						|
## 0.2.2.1
 | 
						|
 | 
						|
Minor stuff: multibutton dispatches the command, CUIPages resizes page to [0,0,1,1], maincomponent flatten tree is a bit more thread safe
 | 
						|
 | 
						|
Added IRefreshable interface and CUIComponent.CascadeRefresh
 | 
						|
CascadeRefresh will recursivelly call Refresh on every child that implements IRefreshable
 | 
						|
 | 
						|
## 0.2.2.0
 | 
						|
 | 
						|
Added to CUI.cs
 | 
						|
```
 | 
						|
using System.Runtime.CompilerServices;
 | 
						|
[assembly: IgnoresAccessChecksTo("Barotrauma")]
 | 
						|
[assembly: IgnoresAccessChecksTo("DedicatedServer")]
 | 
						|
[assembly: IgnoresAccessChecksTo("BarotraumaCore")]
 | 
						|
```
 | 
						|
So it could be compiled
 | 
						|
 | 
						|
#### Temporary solution to pathing:
 | 
						|
 | 
						|
Now mod won't automatially find its folders
 | 
						|
 | 
						|
If you want to use lua you need to set CUI.ModDir to the mod folder path
 | 
						|
 | 
						|
Also you need to place Assets folder with CUI stuff somewhere in your mod and set CUI.AssetsPath to it  
 | 
						|
You can rename it, just set the path
 | 
						|
 | 
						|
All this needs to be done before CUI.Initialize()
 | 
						|
 | 
						|
## 0.2.1.0
 | 
						|
 | 
						|
Dried tree building methods, added tests for them
 | 
						|
 | 
						|
Added insert method along with append and prepend, unlike List.Insert it won't throw on "index out of bounds"
 | 
						|
 | 
						|
## 0.2.0.1
 | 
						|
 | 
						|
.nojekyll moment
 | 
						|
 | 
						|
## 0.2.0.0
 | 
						|
 | 
						|
Reworked CUIPalette, and CUICommand, check docs
 | 
						|
 | 
						|
Reworked border, added separate borders for each side, border sprite, outline
 | 
						|
 | 
						|
Changed how zindex is calculated, now every next child will have higher zindex -> everything in one frame will be above or below everything in the other
 | 
						|
 | 
						|
optimized CUITextBlock measurements, added some validation to CUITextInput
 | 
						|
 | 
						|
Added CUIPresets with... presets. Which you can use to reduce boilerplate code 
 | 
						|
 | 
						|
Made more stuff parsable and serializble
 | 
						|
 | 
						|
And tons of other things i'm too lazy to write down, compare commits if you're curious
 | 
						|
 | 
						|
 | 
						|
## 0.1.0.0
 | 
						|
 | 
						|
You can now use relative paths for sprite textures  
 | 
						|
You can set CUI.PGNAssets to the folder with your assets, CUI will also search for textures there
 | 
						|
 | 
						|
Reworked MasterColorOpaque, it now just uses base color alpha
 | 
						|
 | 
						|
Synced vertical and horizontal lists, added ScrollSpeed
 | 
						|
 | 
						|
OnUpdate event now invoked before layout calcs, Also added OnLayoutUpdated event, it's invoked before recalc of children layouts
 | 
						|
 | 
						|
"Fixed" imprecise rects that e.g. caused sprite overlap and gaps
 | 
						|
 | 
						|
Added CrossRelative prop, it's like Relative but values are relative to the oposite value, e.g. CrossRelative.Width = Host.Real.Height, convinient for making square things
 | 
						|
 | 
						|
Reworked slider component
 | 
						|
 | 
						|
DragHandle can now DragRelative to the parent 
 | 
						|
 | 
						|
#### Serialization 
 | 
						|
 | 
						|
Added BreakSerialization prop, if true serrialization will stop on this component
 | 
						|
 | 
						|
Added LoadSelfFromFile, SaveToTheSamePath methods
 | 
						|
 | 
						|
Added Hydrate method, it will run right after deserizlization, allowing you to access children with Get<> and e.g. save them to local vars
 | 
						|
 | 
						|
Added SaveAfterLoad prop, it's mostly for serialization debugging
 | 
						|
 | 
						|
Added more Custom ToString and parsed methods to CUIExtensions, Added native enum serialization, Vector2 and Rectangle is now serialized into [ x, y ], be carefull
 | 
						|
 | 
						|
Sprite is now fully serializable
 | 
						|
 | 
						|
## 0.0.5.1
 | 
						|
 | 
						|
Added "[CUISerializable] public string Command { get; set; }"" to CUIButton so you could define command that is called on click in xml
 | 
						|
 | 
						|
Splitted MasterColor into MasterColor and MasterColorOpaque
 | 
						|
 | 
						|
CUITextBlock RealTextSize is now rounded because 2.199999 is prone to floating-point errors 
 | 
						|
 | 
						|
Added MasterColor to CUIToggleButton
 | 
						|
 | 
						|
Buttons now will folow a pattern: if state is changed by user input then it'll invoke StateChanged event  
 | 
						|
If state is changed from code then it won't invoke the event
 | 
						|
 | 
						|
When you change state from code you already know about that so you don't need an event  
 | 
						|
And on the other side if event is always fired it will create un-untangleable loops when you try to sync state between two buttons
 | 
						|
 | 
						|
Fixed CUIComponent.Get< T > method, i forgot to add it to docs, it gives you memorized component by its name, so it's same as frame["header"], but it can also give you nested components like that `Header = Frame.Get<CUIHorizontalList>("layout.content.header");`
 | 
						|
 | 
						|
Exposed ResizeHandles, you can hide them separately
 | 
						|
 | 
						|
Fixed crash when serializing a Vector2, added more try-catches and warnings there
 | 
						|
 | 
						|
Fixed Sprites in CUI.png being 33x33, i just created a wrong first rectangle and then copy-pasted it, guh
 | 
						|
 | 
						|
Added sprites to resize handles, and gradient sprite that's not used yet
 | 
						|
 | 
						|
Added `public SpriteEffects Effects;` to CUISprite, it controls texture flipping
 | 
						|
 | 
						|
More params in CUITextureManager.GetSprite
 | 
						|
 | 
						|
## 0.0.5.0
 | 
						|
 | 
						|
Added Styles
 | 
						|
 | 
						|
Every component has a Style and every Type has a DefaultStyle
 | 
						|
 | 
						|
Styles are observable dicts with pairs { "prop name", "prop value" } and can be used to assign any parsable string to any prop or reference some value from CUIPalette
 | 
						|
 | 
						|
## 0.0.4.0
 | 
						|
Added CUICanvas.Render(Action< SpriteBatch > renderFunc) method that allows you to render anything you want onto the canvas texture
 | 
						|
 | 
						|
## 0.0.3.0
 | 
						|
Added Changelog.md :BaroDev:
 | 
						|
 | 
						|
Added CUI.TopMain, it's the second CUIMainComponent which exists above vanilla GUI
 | 
						|
 | 
						|
Added printsprites command, it prints styles from GUIStyle.ComponentStyles
 | 
						|
 | 
						|
More fabric methods for CUISprite |