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,41 @@
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 sealed class DistributeItems : AbstractGameRule
{
private static string[] _strings =
{
"StartItems",
"OuterItems",
"HVItems"
};
internal enum DistributeItemsId
{
StartItems,
OuterItems,
HighValueItems
}
private DistributeItemsId _id;
internal void AddPosition(int x, int y, int z) => AddRule(new WorldPosition(x, y, z));
public DistributeItems(DistributeItemsId id)
{
_id = id;
}
protected override GameRuleFile.GameRule GetGameRule()
{
var gameRule = new GameRuleFile.GameRule("DistributeItems");
gameRule.AddParameter(new GameRuleFile.GameRuleParameter("id", _strings[(int)_id]));
return gameRule;
}
}
}