Add AbstractGameRule.cs & derived classes

This commit is contained in:
miku-666
2025-11-09 22:45:29 +01:00
parent 56e381af24
commit dc69ddc433
9 changed files with 251 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OMI.Formats.GameRule;
namespace PckStudio.Core.GameRule
{
internal abstract class AbstractGameRule
{
private List<AbstractGameRule> _gameRules = new List<AbstractGameRule>();
protected void AddRule(AbstractGameRule gameRule) => _gameRules.Add(gameRule);
protected abstract GameRuleFile.GameRule GetGameRule();
public static implicit operator GameRuleFile.GameRule(AbstractGameRule abstractGameRule)
{
GameRuleFile.GameRule gameRule = abstractGameRule.GetGameRule();
gameRule.AddRules(abstractGameRule._gameRules.Select(agr => agr.GetGameRule()));
return gameRule;
}
}
}