mirror of
https://github.com/Ellpeck/TinyLifeExampleMod.git
synced 2024-11-25 21:28:33 +01:00
added information on saving/loading data
This commit is contained in:
parent
45c21080c5
commit
461ab8a8db
2 changed files with 17 additions and 0 deletions
|
@ -1,12 +1,22 @@
|
|||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
using Microsoft.Xna.Framework;
|
||||
using MonoGame.Extended;
|
||||
using TinyLife.Objects;
|
||||
using TinyLife.World;
|
||||
|
||||
namespace ExampleMod {
|
||||
public class CustomTable : Furniture {
|
||||
|
||||
private static readonly Random Random = new();
|
||||
|
||||
// anything whose base classes have the DataContract attribute automatically gets saved and loaded to and from disk
|
||||
// this means that you can add custom DataMember members to have them saved and loaded
|
||||
[DataMember]
|
||||
public float TestValue;
|
||||
|
||||
public CustomTable(Guid id, FurnitureType type, int[] colors, Map map, Vector2 pos) : base(id, type, colors, map, pos) {
|
||||
this.TestValue = Random.NextSingle();
|
||||
}
|
||||
|
||||
public override void OnAdded() {
|
||||
|
@ -19,5 +29,11 @@ namespace ExampleMod {
|
|||
ExampleMod.Logger.Info("We were removed from " + this.Position);
|
||||
}
|
||||
|
||||
// validate is called when this object is loaded from disk
|
||||
// returning false causes the object to be marked as invalid and removed
|
||||
public override bool Validate() {
|
||||
return base.Validate() && this.TestValue <= 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -9,6 +9,7 @@ using Action = TinyLife.Actions.Action;
|
|||
|
||||
namespace ExampleMod {
|
||||
// we use a multi action because we want to walk to the location, and then execute the main sitting part
|
||||
// see CustomTable for information on how to store custom action-specific information to disk as well
|
||||
public class SitDownOnGrassAction : MultiAction {
|
||||
|
||||
public SitDownOnGrassAction(ActionType type, ActionInfo info) : base(type, info) {
|
||||
|
|
Loading…
Reference in a new issue