This commit is contained in:
DESKTOP-5RP3AKU\Jisol
2024-09-14 04:37:53 +08:00
parent 880c054c6c
commit c59ebd6280
33 changed files with 104 additions and 115 deletions

View File

@@ -18,26 +18,9 @@ namespace JNGame.Sync.State.Tile.Entity
foreach (var entity in base.GetEntities())
{
//生命周期
bool isContains = SyncTile.IsContains(entity.Position);
bool isHost = entity.IsHost;
//更新权限
entity.HostUpdate();
//从服务器 如果数据不是自己创建的则自己永远没有权限
if (SyncTile.IsSlave && !(entity.IsSelfCreate)) isContains = false;
entity.IsHost = isContains;
//区块进入生命周期
if (!isHost && isContains)
{
entity.OnTileEnter();
}
//区块移出生命周期
if (isHost && !isContains)
{
entity.OnTileExit();
}
//判断实体是否在所属区块 在则 更新
if (entity.IsHost)
{

View File

@@ -38,6 +38,8 @@ namespace JNGame.Sync.State.Tile.Entity
public abstract class JNTileEntity : JNEntity,IJNTileCycle,IJNTileEntity
{
private JNSSTileServerService SyncTile => Context.GetSync() as JNSSTileServerService;
/// <summary>
/// 是否有权限
/// </summary>
@@ -84,6 +86,28 @@ namespace JNGame.Sync.State.Tile.Entity
public abstract void TileSyncData(ISTileData data);
public virtual void HostUpdate()
{
bool isContains = SyncTile.IsContains(Position);
bool isHost = IsHost;
//从服务器 如果数据不是自己创建的则自己永远没有权限
if (SyncTile.IsSlave && !(IsSelfCreate)) isContains = false;
IsHost = isContains;
//区块进入生命周期
if (!isHost && isContains)
{
OnTileEnter();
}
//区块移出生命周期
if (isHost && !isContains)
{
OnTileExit();
}
}
//区块生命周期
public virtual void OnTileEnter()
{