Material definitions
        public MaterialPresence(Material definition, decimal presence)
        {
            this.definition = definition;
            this.name = definition.name;
            this.rarity= definition.rarity;
            this.percentage = presence;

        }
 public MaterialDiscoveredEvent(DateTime timestamp, Material material) : base(timestamp, NAME)
 {
     this.name = (material == null ? null : material.name);
 }
 public static Material FromEDName(string from)
 {
     string tidiedFrom = from == null ? null : from.ToLowerInvariant();
     Material result = MATERIALS.FirstOrDefault(v => v.EDName.ToLowerInvariant() == tidiedFrom);
     if (result == null)
     {
         Logging.Report("Unknown material ED name " + from);
         result = new Material(from, "Unknown", tidiedFrom, Rarity.Unknown);
     }
     return result;
 }
 public MaterialCollectedEvent(DateTime timestamp, Material material, int amount) : base(timestamp, NAME)
 {
     this.name = (material == null ? null : material.name);
     this.amount = amount;
 }
 public MaterialAmount(Material material, int amount)
 {
     this.material = material.name;
     this.amount = amount;
 }