초기커밋
This commit is contained in:
130
GameServer/Contents/MyHome/Myhome.cs
Normal file
130
GameServer/Contents/MyHome/Myhome.cs
Normal file
@@ -0,0 +1,130 @@
|
||||
using ServerCommon;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ServerCore; using ServerBase;
|
||||
using OWNER_GUID = System.String;
|
||||
using MASTER_GUID = System.String;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class Myhome : EntityBase, IMergeWithInventory
|
||||
{
|
||||
public Myhome(MASTER_GUID masterGuid)
|
||||
: base(EntityType.MyHome, masterGuid)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<Result> onInit()
|
||||
{
|
||||
addEntityAttribute(new MyhomeAttribute(this));
|
||||
|
||||
addEntityAction(new MyhomeAction(this));
|
||||
addEntityAction(new MyhomeInventoryAction(this));
|
||||
|
||||
return await base.onInit();
|
||||
}
|
||||
|
||||
public async Task<Result> onMerge(List<ReservedSlotOnInven> reservedSlotOnInvens, TransactionRunner transactionRunner)
|
||||
{
|
||||
var result = new Result();
|
||||
|
||||
var inventory_action = getEntityAction<InventoryActionBase>();
|
||||
ArgumentNullException.ThrowIfNull(inventory_action, $"inventory_action is null !!! - {toBasicStringWithMaster()}");
|
||||
ArgumentNullException.ThrowIfNull(transactionRunner, $"transactionRunner is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
result = await inventory_action.onMergeInventory(reservedSlotOnInvens, transactionRunner);
|
||||
if (result.isFail())
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public override EntityBase? onGetMasterEntity()
|
||||
{
|
||||
if (false == hasMasterGuid())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var err_msg = string.Empty;
|
||||
|
||||
var master_guid = getMasterGuid();
|
||||
ArgumentNullException.ThrowIfNull(master_guid, $"master_guid is null !!! - {toBasicString()}");
|
||||
|
||||
var server_logc = GameServerApp.getServerLogic();
|
||||
ArgumentNullException.ThrowIfNull(server_logc, $"server_logc is null !!! - {toBasicString()}");
|
||||
var player_manager = server_logc.getPlayerManager();
|
||||
ArgumentNullException.ThrowIfNull(player_manager, $"player_manager is null !!! - {toBasicString()}");
|
||||
|
||||
if (false == player_manager.tryGetUserByPrimaryKey(master_guid, out var found_player))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return found_player;
|
||||
}
|
||||
|
||||
public override TAction getEntityAction<TAction>()
|
||||
{
|
||||
if (typeof(TAction) == typeof(InventoryActionBase))
|
||||
{
|
||||
var myhome_action = base.getEntityAction<MyhomeInventoryAction>() as TAction;
|
||||
NullReferenceCheckHelper.throwIfNull(myhome_action, () => $"myhome_action is null !!!");
|
||||
return myhome_action;
|
||||
}
|
||||
|
||||
var action = base.getEntityAction<TAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(action, () => $"action is null !!!");
|
||||
return action;
|
||||
}
|
||||
|
||||
public override Type onGetAvailableItemAttributeType()
|
||||
{
|
||||
return typeof(MyhomeItemAttribute);
|
||||
}
|
||||
|
||||
public override OWNER_GUID onGetGuidOfOwnerEntityType()
|
||||
{
|
||||
var myhome_attribute = getEntityAttributeWithReadOnly<MyhomeAttribute>();
|
||||
ArgumentNullException.ThrowIfNull(myhome_attribute, $"myhome_attribute is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
return myhome_attribute.MyhomeGuid;
|
||||
}
|
||||
|
||||
public bool isAnchorInMyhome(string anchor_guid)
|
||||
{
|
||||
var myhome_attribute = getEntityAttributeWithReadOnly<MyhomeAttribute>();
|
||||
ArgumentNullException.ThrowIfNull(myhome_attribute, $"myhome_attribute is null !!! - {toBasicStringWithMaster()}");
|
||||
|
||||
foreach(var anchor in myhome_attribute.UgcInfo.AnchorInfos)
|
||||
{
|
||||
if(anchor.AnchorGuid == anchor_guid)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public override OwnerEntityType onGetOwnerEntityType()
|
||||
{
|
||||
return OwnerEntityType.Myhome;
|
||||
}
|
||||
|
||||
public override string toBasicString()
|
||||
{
|
||||
return $"{this.getTypeName()}, MyHomeGuid:{getOriginEntityAttribute<MyhomeAttribute>()?.MyhomeGuid}";
|
||||
}
|
||||
|
||||
public override string toSummaryString()
|
||||
{
|
||||
return $"{this.getTypeName()}, {getEntityAttribute<MyhomeAttribute>()?.toBasicString()}";
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user