private ArtifactSaveData ArtifactToSaveData(Artifact artifact) { if (artifact == null) { return(null); } var artifactInfo = new ArtifactSaveData(); artifactInfo.type = artifact.GetType().ToString(); Texture2D texture = artifact.ArtifactSprite.texture; artifactInfo.spriteBytes = ImageConversion.EncodeToPNG(texture); artifactInfo.spriteX = artifact.ArtifactSprite.texture.width; artifactInfo.spriteY = artifact.ArtifactSprite.texture.height; if (artifact.unityShell != null) { artifactInfo.gameName = artifact.unityShell.gameObject.name; } artifactInfo.name = artifact.Name; artifactInfo.description = artifact.Description; artifactInfo.hasPower = artifact.HasPower; artifactInfo.power = (int)artifact.Power; if (artifact.GetType().IsSubclassOf(typeof(Bottle))) { artifactInfo.power = (int)(artifact as Bottle).Volume; } artifactInfo.isFightOnly = artifact.IsFightOnly; artifactInfo.used = artifact.Used; return(artifactInfo); }
private Artifact SaveDataToArtifact(ArtifactSaveData artifactInfo) { if (artifactInfo == null) { return(null); } var artifact = UnityArtifact.StringToArtifact(UnityArtifact.TypeToString[artifactInfo.type], artifactInfo.name, artifactInfo.description, artifactInfo.power); /* if (artifact.unityShell != null) * artifact.unityShell = new UnityArtifact();*/ artifact.IsFightOnly = artifactInfo.isFightOnly; artifact.Used = artifactInfo.used; Texture2D tex = new Texture2D(artifactInfo.spriteX, artifactInfo.spriteY); ImageConversion.LoadImage(tex, artifactInfo.spriteBytes); Sprite mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), Vector2.one); artifact.ArtifactSprite = mySprite; // artifactInfo.gameName = artifact.unityShell.gameObject.name; return(artifact); }
public PickUpSaveData(string tag, string name, bool isDestroyed, ArtifactSaveData artifact) { this.tag = tag; this.gameName = name; this.isDestroyed = isDestroyed; this.artifact = artifact; }