using System; using JNGame.Math; using JNGame.Sync.System; using Plugins.JNGame.Util; namespace JNGame.Sync.Frame.Service { /// /// 随机数 /// public class JNRandomSystem : SLogicSystem { //随机数 private Func nRandomFloat; private Func nRandomInt; //Id private long _id = 0; private long _idMin = long.MinValue; private long _idMax = long.MaxValue; public JNRandomSystem(int seed) { nRandomFloat = RandomUtil.SyncRandomFloat(seed); nRandomInt = RandomUtil.SyncRandomInt(seed); } public LFloat Float() { return Float(0,1); } public LFloat Float(LFloat min,LFloat max) { return nRandomFloat(min,max); } public int Int(int max,int min) { return nRandomInt(max,min); } public long NextId() { return ++_id; } public void SetIdValue(long min,long max) { if (_id < min) { _id = min; } _idMin = min; _idMax = max; } /// /// 适配Id 用于 历史Id和新Id重复问题 /// /// /// public void AdaptId(long id) { if (_idMin <= id && id >= _idMax) { if (id > _id) { _id = id; } } } } }