mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-08-02 16:01:15 +00:00
Core - Add LevelRules class
This commit is contained in:
@@ -11,6 +11,7 @@ namespace PckStudio.Core.GameRule
|
||||
{
|
||||
private List<AbstractGameRule> _gameRules = new List<AbstractGameRule>();
|
||||
protected void AddRule(AbstractGameRule gameRule) => _gameRules.Add(gameRule);
|
||||
protected void AddRules(IEnumerable<AbstractGameRule> gameRules) => _gameRules.AddRange(gameRules);
|
||||
|
||||
protected abstract GameRuleFile.GameRule GetGameRule();
|
||||
public static implicit operator GameRuleFile.GameRule(AbstractGameRule abstractGameRule)
|
||||
|
||||
31
PckStudio.Core/GameRule/LevelRules.cs
Normal file
31
PckStudio.Core/GameRule/LevelRules.cs
Normal file
@@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using OMI.Formats.GameRule;
|
||||
|
||||
namespace PckStudio.Core.GameRule
|
||||
{
|
||||
internal sealed class LevelRules : AbstractGameRule
|
||||
{
|
||||
private readonly GameRuleFile.GameRuleParameter[] _parameters;
|
||||
|
||||
public static LevelRules Default { get; } = new LevelRules([new UpdatePlayer(Vector3.Zero, Vector2.Zero)]);
|
||||
public static LevelRules GetLevelRules(MiniGameId miniGame) => new LevelRules(Enumerable.Empty<AbstractGameRule>(), new GameRuleFile.IntParameter("ruleType", (int)miniGame));
|
||||
|
||||
public LevelRules(IEnumerable<AbstractGameRule> gameRules, params GameRuleFile.GameRuleParameter[] parameters)
|
||||
{
|
||||
AddRules(gameRules);
|
||||
_parameters = parameters;
|
||||
}
|
||||
|
||||
protected override GameRuleFile.GameRule GetGameRule()
|
||||
{
|
||||
var gameRule = new GameRuleFile.GameRule("LevelRules");
|
||||
gameRule.AddParameters(_parameters);
|
||||
return gameRule;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user