CanTeleportDeepSea
OxideCarbonNavalobject CanTeleportDeepSea(BaseEntity entity, DeepSeaPortal portal)Works — the game method in this build is the one the hook was written for.
Parameters
- entity
- BaseEntity
- portal
- DeepSeaPortal
Return value
objectThe returned value replaces the game result; null lets the game decide.
Example
object — you can affect the game: return a value to change or cancel the action.
private object CanTeleportDeepSea(BaseEntity entity, DeepSeaPortal portal)
{
Puts("CanTeleportDeepSea");
// change nothing — the game continues as usual
return null;
// to affect the game:
// return default(System.ValueTuple<bool, Translate.Phrase>); // your value instead of the game result
}Works in both Oxide and Carbon: Carbon loads Oxide plugins as is.
Injection point
Rust.opj (Oxide)
ValueTuple<bool, Translate.Phrase> TriggerDeepSeaPortal.CanEntityTeleport(BaseEntity)
Passes: BaseEntity entity, DeepSeaPortal portal
WorksReturnBehavior: ExitWhenValidTypeArgumentBehavior: UseArgumentString (a0, this.Portal)Assembly-CSharp.dll
Where it is called (this branch's game code)
private (bool, Translate.Phrase) CanEntityTeleport(BaseEntity entity)
{
object returnvar = Interface.CallHook("CanTeleportDeepSea", entity, this.Portal);
if (returnvar is ValueTuple<bool, Translate.Phrase>)
{
return (ValueTuple<bool, Translate.Phrase>)returnvar;
}
if (Portal.PortalMode == DeepSeaPortal.PortalModeEnum.Entrance)
{
return DeepSeaManager.CanTeleportToDeepSea(entity);
}
// …Sources: Rust.opj from OxideMod/Oxide.Rust (MIT) and hook metadata of the Carbon documentation (MIT). Method code is decompiled from this branch's server.