/* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠDe fl ated Pick le Ġunder Ġthe ĠMIT Ġlicense Ġ*/ Ċ Ċ package Ġcom . def lated pickle . mm f . util Ċ Ċ import Ġcom . def lated pickle . mm f . util . serializer . Asset Path Serializer Ċ import Ġkotlinx . serialization . Experimental Serialization Api Ċ import Ġkotlinx . serialization . Serial Name Ċ import Ġkotlinx . serialization . Serializable Ċ Ċ /** Ċ Ġ* ĠA ĠMinecraft Ġasset Ġpath Ċ Ġ*/ Ċ @ Experimental Serialization Api Ċ @ Serializable ( with Ġ= ĠAsset Path Serializer :: class ) Ċ @ Suppress (" Member Visibility Can Be Private ") Ċ data Ġclass ĠAsset Path ( ĊĠĠĠ Ġval Ġid : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġpath : ĠString Ġ= Ġ"", ĊĠĠĠ Ġval Ġasset : ĠString Ġ= Ġ"", ĊĠĠĠ Ġ@ Serial Name ("__ comment ") ĊĠĠĠ Ġval Ġcomment : ĠString Ġ= Ġ"" Ċ ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġa Ġ[ String ] Ġinto Ġan Ġ[ Asset Path ] ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom ( s : ĠString ): ĠAsset Path Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġns Ġ= Ġs . replace (" \"", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSometimes Ġan ĠID Ġisn 't Ġgiven Ġ- Ġit Ġdefaults Ġto Ġm inecraft ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġns . substring Before (' :', Ġ" minecraft ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġns . substring After ("$ id : "). substring Before Last ('/') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġasset Ġ= Ġns . substring After Last ('/') ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠAsset Path ( id , Ġpath , Ġasset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTurn Ġthis Ġ[ Asset Path ] Ġinto Ġa Ġ[ String ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġif Ġ(" $ id $ path $ asset ". isEmpty ()) Ġ"" Ġelse Ġ"$ id :$ path /$ asset " Ċ } Ċ Ċ @ Experimental Serialization Api Ċ fun ĠString . to Asset Path (): ĠAsset Path Ġ= ĠAsset Path . from ( this ) Ċ @ Experimental Serialization Api Ċ fun ĠString . from ( s : ĠAsset Path ): ĠString Ġ= Ġs . toString () Ċ