TinyLifeExampleMod/CustomTable.cs

38 lines
1.3 KiB
C#
Raw Permalink Normal View History

2020-11-25 00:33:47 +01:00
using System;
using System.Runtime.Serialization;
2020-11-25 00:33:47 +01:00
using TinyLife.Objects;
using TinyLife.World;
2021-12-25 18:05:47 +01:00
namespace ExampleMod;
// note that having a custom class for a furniture item like this is entirely optional
// but it allows for additional functionalities as displayed in this example
public class CustomTable : Furniture {
// 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) {
2022-06-15 10:53:51 +02:00
this.TestValue = Furniture.Random.NextSingle();
2020-11-25 00:33:47 +01:00
}
public override void OnAdded() {
base.OnAdded();
2022-03-21 18:56:23 +01:00
ExampleMod.Logger.Info("The custom table was added at " + this.Position);
}
public override void OnRemoved() {
base.OnRemoved();
2022-03-21 18:56:23 +01:00
ExampleMod.Logger.Info("The custom table was 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;
}
2022-06-17 18:05:34 +02:00
}