mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-09-27 10:46:17 +00:00
提交
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
@@ -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()
|
||||
{
|
||||
|
Reference in New Issue
Block a user