更新构造方法

This commit is contained in:
风吹落的叶子 2023-03-19 01:33:18 +08:00
parent 3575600161
commit 57417a33ac
5 changed files with 23 additions and 11 deletions

View File

@ -5,9 +5,9 @@ namespace Milimoe.FunGame.Core.Api.Factory
{ {
internal class RoomFactory internal class RoomFactory
{ {
internal static Room GetInstance(DataSet? DataSet) internal static Room GetInstance(DataSet? DsRoom, DataSet? DsUser)
{ {
return new Room(DataSet); return new Room(DsRoom, DsUser);
} }
} }
} }

View File

@ -14,6 +14,7 @@ namespace Milimoe.FunGame.Core.Api.Transmittal
public abstract string Script { get; set; } public abstract string Script { get; set; }
public abstract CommandType CommandType { get; set; } public abstract CommandType CommandType { get; set; }
public abstract SQLResult Result { get; } public abstract SQLResult Result { get; }
public abstract bool Success { get; }
public abstract SQLServerInfo ServerInfo { get; } public abstract SQLServerInfo ServerInfo { get; }
public abstract int UpdateRows { get; } public abstract int UpdateRows { get; }
public abstract DataSet DataSet { get; } public abstract DataSet DataSet { get; }

View File

@ -14,26 +14,27 @@ namespace Milimoe.FunGame.Core.Api.Utility
/// <para>若无法找到T返回唯一的空对象</para> /// <para>若无法找到T返回唯一的空对象</para>
/// </summary> /// </summary>
/// <typeparam name="T">Entity类</typeparam> /// <typeparam name="T">Entity类</typeparam>
/// <param name="DataSet">使用DataSet构造对象真香</param> /// <param name="DataSets">使用DataSet构造对象真香</param>
/// <returns></returns> /// <returns></returns>
public static T GetInstance<T>(DataSet? DataSet) public static T GetInstance<T>(params DataSet?[] DataSets)
{ {
if (DataSets is null || DataSets.Length == 0) throw new GetInstanceException();
object instance = General.EntityInstance; object instance = General.EntityInstance;
if (typeof(T) == typeof(User)) if (typeof(T) == typeof(User))
{ {
instance = UserFactory.GetInstance(DataSet); instance = UserFactory.GetInstance(DataSets[0]);
} }
else if (typeof(T) == typeof(Skill) || typeof(T) == typeof(PassiveSkill)) else if (typeof(T) == typeof(Skill) || typeof(T) == typeof(PassiveSkill))
{ {
instance = SkillFactory.GetInstance(DataSet); instance = SkillFactory.GetInstance(DataSets[0]);
} }
else if (typeof(T) == typeof(ActiveSkill)) else if (typeof(T) == typeof(ActiveSkill))
{ {
instance = SkillFactory.GetInstance(DataSet, SkillType.Active); instance = SkillFactory.GetInstance(DataSets[0], SkillType.Active);
} }
else if (typeof(T) == typeof(Room)) else if (typeof(T) == typeof(Room))
{ {
instance = RoomFactory.GetInstance(DataSet); instance = RoomFactory.GetInstance(DataSets[0], DataSets[1]);
} }
return (T)instance; return (T)instance;
} }

View File

@ -2,11 +2,13 @@
using System.Collections; using System.Collections;
using Milimoe.FunGame.Core.Interface.Entity; using Milimoe.FunGame.Core.Interface.Entity;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
namespace Milimoe.FunGame.Core.Entity namespace Milimoe.FunGame.Core.Entity
{ {
public class Room : BaseEntity public class Room : BaseEntity
{ {
public override long Id { get => base.Id ; set => base.Id = value; }
public string Roomid { get; set; } = ""; public string Roomid { get; set; } = "";
public DateTime CreateTime { get; set; } = DateTime.Now; public DateTime CreateTime { get; set; } = DateTime.Now;
public Hashtable PlayerList { get; set; } = new Hashtable(); public Hashtable PlayerList { get; set; } = new Hashtable();
@ -25,11 +27,18 @@ namespace Milimoe.FunGame.Core.Entity
public string Password { get; set; } = ""; public string Password { get; set; } = "";
public GameStatistics? Statistics { get; set; } = null; public GameStatistics? Statistics { get; set; } = null;
internal Room(DataSet? DataSet) internal Room(DataSet? DsRoom, DataSet? DsUser)
{ {
if (DataSet != null && DataSet.Tables.Count > 0 && DataSet.Tables[0].Rows.Count > 0) if (DsRoom != null && DsRoom.Tables.Count > 0 && DsRoom.Tables[0].Rows.Count > 0)
{ {
DataRow row = DsRoom.Tables[0].Rows[0];
Id = (long)row[RoomQuery.Column_ID];
Roomid = (string)row[RoomQuery.Column_RoomID];
CreateTime = (DateTime)row[RoomQuery.Column_CreateTime];
RoomMaster = Api.Utility.Factory.GetInstance<User>(DsUser);
RoomType = (RoomType)Convert.ToInt32(row[RoomQuery.Column_RoomType]);
RoomState = (RoomState)Convert.ToInt32(row[RoomQuery.Column_RoomState]);
Password = (string)row[RoomQuery.Column_Password];
} }
} }

View File

@ -3,6 +3,7 @@
public class RoomQuery public class RoomQuery
{ {
public const string TableName = "Rooms"; public const string TableName = "Rooms";
public const string Column_ID = "Id";
public const string Column_RoomID = "Roomid"; public const string Column_RoomID = "Roomid";
public const string Column_CreateTime = "CreateTime"; public const string Column_CreateTime = "CreateTime";
public const string Column_RoomMaster = "RoomMaster"; public const string Column_RoomMaster = "RoomMaster";