Show / Hide Table of Contents

# Class HumanControllerLogic<TInput>

Base class for human Controller entities

##### Inheritance

object
InternalBaseClass
InternalEntity
ControllerLogic
HumanControllerLogic
HumanControllerLogic<TInput>
HumanControllerLogic<TInput, T>

##### Implements

IComparable<InternalEntity>

##### Inherited Members

HumanControllerLogic.ChangeEntityDiffSync(EntityLogic, bool)
HumanControllerLogic.OnConstructed()
HumanControllerLogic.IsEntityDiffSyncDisabled(EntitySharedReference)
HumanControllerLogic.ResetEntitiesDiffSync()
HumanControllerLogic.OnDestroy()
HumanControllerLogic.OnEntityDiffSyncChanged(EntityLogic, bool)
ControllerLogic.GetControlledEntity<T>()
ControllerLogic.BeforeControlledUpdate()
ControllerLogic.DestroyWithControlledEntity()
ControllerLogic.StartControl(PawnLogic)
ControllerLogic.StopControl()
InternalEntity.ClassId
InternalEntity.Id
InternalEntity.EntityManager
InternalEntity.IsServer
InternalEntity.IsClient
InternalEntity.Version
InternalEntity.IsDestroyed
InternalEntity.IsLocalControlled
InternalEntity.IsRemoteControlled
InternalEntity.IsServerControlled
InternalEntity.ClientManager
InternalEntity.ServerManager
InternalEntity.OwnerId
InternalEntity.IsLocal
InternalEntity.Destroy()
InternalEntity.Update()
InternalEntity.OnBeforeRollback()
InternalEntity.OnRollback()
InternalEntity.VisualUpdate()
InternalEntity.CompareTo(InternalEntity)
InternalEntity.GetHashCode()
InternalEntity.ToString()
InternalBaseClass.ExecuteRPC(in RemoteCall)
InternalBaseClass.ExecuteRPC<T>(in RemoteCall<T>, T)
InternalBaseClass.ExecuteRPC<T>(in RemoteCallSpan<T>, ReadOnlySpan<T>)
InternalBaseClass.ExecuteRPC<T>(in RemoteCallSerializable<T>, T)
InternalBaseClass.OnSyncRequested()

###### Namespace: LiteEntitySystem

###### Assembly: LiteEntitySystem.dll

##### Syntax

    [EntityFlags(EntityFlags.UpdateOnClient)]
    public abstract class HumanControllerLogic<TInput> : HumanControllerLogic, IComparable<InternalEntity> where TInput : unmanaged

##### Type Parameters

Name | Description
--- | ---
TInput |

### Constructors

#### HumanControllerLogic(EntityParams)

##### Declaration

    protected HumanControllerLogic(EntityParams entityParams)

##### Parameters

Type | Name | Description
--- | --- | ---
EntityParams | entityParams |

### Fields

#### StringSizeLimit

##### Declaration

    public const int StringSizeLimit = 1024

##### Field Value

Type | Description
--- | ---
int |

### Properties

#### CurrentInput

Input that created by ReadInput before all entity updates

##### Declaration

    public TInput CurrentInput { get; }

##### Property Value

Type | Description
--- | ---
TInput |

#### IsBot

Is controller - AI controller

##### Declaration

    public override bool IsBot { get; }

##### Property Value

Type | Description
--- | ---
bool |

##### Overrides

ControllerLogic.IsBot

### Methods

#### GenerateInput(out TInput)

Called on client to generate input

##### Declaration

    protected abstract void GenerateInput(out TInput input)

##### Parameters

Type | Name | Description
--- | --- | ---
TInput | input |

#### GetAssignedPlayer()

Get player that uses this controller

##### Declaration

    public NetPlayer GetAssignedPlayer()

##### Returns

Type | Description
--- | ---
NetPlayer | assigned player

#### ReadInput(in TInput)

Called on client and server to read generated from GenerateInput(out TInput) input

##### Declaration

    protected abstract void ReadInput(in TInput input)

##### Parameters

Type | Name | Description
--- | --- | ---
TInput | input | user defined input structure

#### RegisterClientCustomType<T>()

##### Declaration

    protected void RegisterClientCustomType<T>() where T : struct, INetSerializable

##### Type Parameters

Name | Description
--- | ---
T |

#### RegisterClientCustomType<T>(Action<NetDataWriter, T>, Func<NetDataReader, T>)

##### Declaration

    protected void RegisterClientCustomType<T>(Action<NetDataWriter, T> writeDelegate, Func<NetDataReader, T> readDelegate)

##### Parameters

Type | Name | Description
--- | --- | ---
Action<NetDataWriter, T> | writeDelegate |
Func<NetDataReader, T> | readDelegate |

##### Type Parameters

Name | Description
--- | ---
T |

#### RegisterRPC(ref RPCRegistrator)

Method for registering RPCs and OnChange notifications

##### Declaration

    protected override void RegisterRPC(ref RPCRegistrator r)

##### Parameters

Type | Name | Description
--- | --- | ---
RPCRegistrator | r |

##### Overrides

HumanControllerLogic.RegisterRPC(ref RPCRegistrator)

#### SendRequestStruct<T>(T)

##### Declaration

    protected void SendRequestStruct<T>(T request) where T : struct, INetSerializable

##### Parameters

Type | Name | Description
--- | --- | ---
T | request |

##### Type Parameters

Name | Description
--- | ---
T |

#### SendRequestStruct<T>(T, Action<bool>)

##### Declaration

    protected void SendRequestStruct<T>(T request, Action<bool> onResult) where T : struct, INetSerializable

##### Parameters

Type | Name | Description
--- | --- | ---
T | request |
Action<bool> | onResult |

##### Type Parameters

Name | Description
--- | ---
T |

#### SendRequest<T>(T)

##### Declaration

    protected void SendRequest<T>(T request) where T : class, new()

##### Parameters

Type | Name | Description
--- | --- | ---
T | request |

##### Type Parameters

Name | Description
--- | ---
T |

#### SendRequest<T>(T, Action<bool>)

##### Declaration

    protected void SendRequest<T>(T request, Action<bool> onResult) where T : class, new()

##### Parameters

Type | Name | Description
--- | --- | ---
T | request |
Action<bool> | onResult |

##### Type Parameters

Name | Description
--- | ---
T |

#### SubscribeToClientRequestStruct<T>(Action<T>)

##### Declaration

    protected void SubscribeToClientRequestStruct<T>(Action<T> onRequestReceived) where T : struct, INetSerializable

##### Parameters

Type | Name | Description
--- | --- | ---
Action<T> | onRequestReceived |

##### Type Parameters

Name | Description
--- | ---
T |

#### SubscribeToClientRequestStruct<T>(Func<T, bool>)

##### Declaration

    protected void SubscribeToClientRequestStruct<T>(Func<T, bool> onRequestReceived) where T : struct, INetSerializable

##### Parameters

Type | Name | Description
--- | --- | ---
Func<T, bool> | onRequestReceived |

##### Type Parameters

Name | Description
--- | ---
T |

#### SubscribeToClientRequest<T>(Action<T>)

##### Declaration

    protected void SubscribeToClientRequest<T>(Action<T> onRequestReceived) where T : class, new()

##### Parameters

Type | Name | Description
--- | --- | ---
Action<T> | onRequestReceived |

##### Type Parameters

Name | Description
--- | ---
T |

#### SubscribeToClientRequest<T>(Func<T, bool>)

##### Declaration

    protected void SubscribeToClientRequest<T>(Func<T, bool> onRequestReceived) where T : class, new()

##### Parameters

Type | Name | Description
--- | --- | ---
Func<T, bool> | onRequestReceived |

##### Type Parameters

Name | Description
--- | ---
T |

### Implements

IComparable<T>