* Other then the prim update experiments that are going on now, llTakeControls works now along with the 'release controls button'. llReleaseControls() works mostly :D.
parent
b77aa39d64
commit
86669a1664
|
@ -531,6 +531,8 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
public delegate void RequestPayPrice(IClientAPI remoteClient, LLUUID objectID);
|
public delegate void RequestPayPrice(IClientAPI remoteClient, LLUUID objectID);
|
||||||
|
|
||||||
|
public delegate void ForceReleaseControls(IClientAPI remoteClient, LLUUID agentID);
|
||||||
|
|
||||||
//Estate Requests
|
//Estate Requests
|
||||||
public delegate void DetailedEstateDataRequest(IClientAPI remoteClient, LLUUID invoice);
|
public delegate void DetailedEstateDataRequest(IClientAPI remoteClient, LLUUID invoice);
|
||||||
public delegate void SetEstateFlagsRequest(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor, int matureLevel, bool restrictPushObject, bool allowParcelChanges);
|
public delegate void SetEstateFlagsRequest(bool blockTerraform, bool noFly, bool allowDamage, bool blockLandResell, int maxAgents, float objectBonusFactor, int matureLevel, bool restrictPushObject, bool allowParcelChanges);
|
||||||
|
@ -702,6 +704,8 @@ namespace OpenSim.Framework
|
||||||
|
|
||||||
event AgentSit OnUndo;
|
event AgentSit OnUndo;
|
||||||
|
|
||||||
|
event ForceReleaseControls OnForceReleaseControls;
|
||||||
|
|
||||||
event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
||||||
event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
||||||
event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
||||||
|
|
|
@ -240,6 +240,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
private ObjectDeselect handlerObjectDetach = null;
|
private ObjectDeselect handlerObjectDetach = null;
|
||||||
private AgentSit handlerOnUndo = null;
|
private AgentSit handlerOnUndo = null;
|
||||||
|
|
||||||
|
private ForceReleaseControls handlerForceReleaseControls = null;
|
||||||
|
|
||||||
/* Properties */
|
/* Properties */
|
||||||
|
|
||||||
public LLUUID SecureSessionId
|
public LLUUID SecureSessionId
|
||||||
|
@ -802,6 +804,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
public event RequestPayPrice OnRequestPayPrice;
|
public event RequestPayPrice OnRequestPayPrice;
|
||||||
public event AgentSit OnUndo;
|
public event AgentSit OnUndo;
|
||||||
|
|
||||||
|
public event ForceReleaseControls OnForceReleaseControls;
|
||||||
|
|
||||||
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
||||||
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
||||||
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
||||||
|
@ -4004,6 +4008,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PacketType.ForceScriptControlRelease:
|
||||||
|
handlerForceReleaseControls = OnForceReleaseControls;
|
||||||
|
if (handlerForceReleaseControls != null)
|
||||||
|
{
|
||||||
|
handlerForceReleaseControls(this, AgentId);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Objects/m_sceneObjects
|
#region Objects/m_sceneObjects
|
||||||
|
|
|
@ -137,6 +137,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
public event ScriptChangedEvent OnScriptChangedEvent;
|
public event ScriptChangedEvent OnScriptChangedEvent;
|
||||||
|
|
||||||
|
public delegate void ScriptControlEvent(uint localID, LLUUID item, LLUUID avatarID, uint held, uint changed);
|
||||||
|
|
||||||
|
public event ScriptControlEvent OnScriptControlEvent;
|
||||||
|
|
||||||
public delegate void ScriptAtTargetEvent(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos);
|
public delegate void ScriptAtTargetEvent(uint localID, uint handle, LLVector3 targetpos, LLVector3 atpos);
|
||||||
|
|
||||||
public event ScriptAtTargetEvent OnScriptAtTargetEvent;
|
public event ScriptAtTargetEvent OnScriptAtTargetEvent;
|
||||||
|
@ -274,6 +278,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps;
|
private DeregisterCapsEvent handlerDeregisterCaps = null; // OnDeregisterCaps;
|
||||||
private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null;
|
private NewInventoryItemUploadComplete handlerNewInventoryItemUpdateComplete = null;
|
||||||
private RequestChangeWaterHeight handlerRequestChangeWaterHeight = null; //OnRequestChangeWaterHeight
|
private RequestChangeWaterHeight handlerRequestChangeWaterHeight = null; //OnRequestChangeWaterHeight
|
||||||
|
private ScriptControlEvent handlerScriptControlEvent = null;
|
||||||
|
|
||||||
private LandBuy handlerLandBuy = null;
|
private LandBuy handlerLandBuy = null;
|
||||||
private LandBuy handlerValidateLandBuy = null;
|
private LandBuy handlerValidateLandBuy = null;
|
||||||
|
@ -603,9 +608,13 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void TriggerControlEvent(uint p, LLUUID scriptUUID, uint p_3, uint p_4)
|
internal void TriggerControlEvent(uint p, LLUUID scriptUUID, LLUUID avatarID, uint held, uint _changed)
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
handlerScriptControlEvent = OnScriptControlEvent;
|
||||||
|
if (handlerScriptControlEvent != null)
|
||||||
|
{
|
||||||
|
handlerScriptControlEvent(p, scriptUUID, avatarID, held, _changed);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -443,6 +443,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_controllingClient.OnSetAlwaysRun += HandleSetAlwaysRun;
|
m_controllingClient.OnSetAlwaysRun += HandleSetAlwaysRun;
|
||||||
m_controllingClient.OnStartAnim += HandleStartAnim;
|
m_controllingClient.OnStartAnim += HandleStartAnim;
|
||||||
m_controllingClient.OnStopAnim += HandleStopAnim;
|
m_controllingClient.OnStopAnim += HandleStopAnim;
|
||||||
|
m_controllingClient.OnForceReleaseControls += HandleForceReleaseControls;
|
||||||
|
|
||||||
// ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
|
// ControllingClient.OnChildAgentStatus += new StatusChange(this.ChildStatusChange);
|
||||||
// ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
|
// ControllingClient.OnStopMovement += new GenericCall2(this.StopMovement);
|
||||||
|
@ -2491,6 +2492,15 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public void HandleForceReleaseControls(IClientAPI remoteClient, LLUUID agentID)
|
||||||
|
{
|
||||||
|
IgnoredControls = ScriptControlled.CONTROL_ZERO;
|
||||||
|
lock (scriptedcontrols)
|
||||||
|
{
|
||||||
|
scriptedcontrols.Clear();
|
||||||
|
}
|
||||||
|
ControllingClient.SendTakeControls(int.MaxValue, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
public void UnRegisterControlEventsToScript(uint Obj_localID, LLUUID Script_item_LLUUID)
|
public void UnRegisterControlEventsToScript(uint Obj_localID, LLUUID Script_item_LLUUID)
|
||||||
{
|
{
|
||||||
|
@ -2512,6 +2522,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
|
|
||||||
ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
|
ScriptControlled allflags = ScriptControlled.CONTROL_ZERO;
|
||||||
|
|
||||||
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS) != 0)
|
if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_AT_POS) != 0 || (flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_AT_POS) != 0)
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_FWD;
|
allflags |= ScriptControlled.CONTROL_FWD;
|
||||||
|
@ -2552,6 +2563,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
allflags |= ScriptControlled.CONTROL_LBUTTON;
|
allflags |= ScriptControlled.CONTROL_LBUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
ScriptControlled held = ScriptControlled.CONTROL_ZERO;
|
ScriptControlled held = ScriptControlled.CONTROL_ZERO;
|
||||||
ScriptControlled change = ScriptControlled.CONTROL_ZERO;
|
ScriptControlled change = ScriptControlled.CONTROL_ZERO;
|
||||||
|
|
||||||
|
@ -2584,12 +2596,16 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
{
|
{
|
||||||
ScriptControllers scriptControlData = scriptedcontrols[scriptUUID];
|
ScriptControllers scriptControlData = scriptedcontrols[scriptUUID];
|
||||||
ScriptControlled localHeld = held & scriptControlData.eventControls;
|
ScriptControlled localHeld = held & scriptControlData.eventControls;
|
||||||
|
//if (localHeld != ScriptControlled.CONTROL_ZERO)
|
||||||
|
//{
|
||||||
|
//int i = 1;
|
||||||
|
//}
|
||||||
ScriptControlled localChange = change & scriptControlData.eventControls;
|
ScriptControlled localChange = change & scriptControlData.eventControls;
|
||||||
m_scene.EventManager.TriggerControlEvent(scriptControlData.objID, scriptUUID, (uint)localHeld, (uint)localChange);
|
m_scene.EventManager.TriggerControlEvent(scriptControlData.objID, scriptUUID, UUID, (uint)localHeld, (uint)localChange);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LastCommands = allflags;
|
LastCommands = allflags;
|
||||||
//foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof (Dir_ControlFlags)))
|
|
||||||
}
|
}
|
||||||
internal uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored)
|
internal uint RemoveIgnoredControls(uint flags, ScriptControlled Ignored)
|
||||||
{
|
{
|
||||||
|
|
|
@ -172,6 +172,8 @@ namespace OpenSim.Region.Examples.SimpleModule
|
||||||
public event RequestPayPrice OnRequestPayPrice;
|
public event RequestPayPrice OnRequestPayPrice;
|
||||||
public event AgentSit OnUndo;
|
public event AgentSit OnUndo;
|
||||||
|
|
||||||
|
public event ForceReleaseControls OnForceReleaseControls;
|
||||||
|
|
||||||
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
|
||||||
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
|
||||||
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
|
||||||
|
|
|
@ -72,6 +72,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase
|
||||||
myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
|
myScriptEngine.World.EventManager.OnScriptChangedEvent += changed;
|
||||||
myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
|
myScriptEngine.World.EventManager.OnScriptAtTargetEvent += at_target;
|
||||||
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
|
myScriptEngine.World.EventManager.OnScriptNotAtTargetEvent += not_at_target;
|
||||||
|
myScriptEngine.World.EventManager.OnScriptControlEvent += control;
|
||||||
|
|
||||||
// TODO: HOOK ALL EVENTS UP TO SERVER!
|
// TODO: HOOK ALL EVENTS UP TO SERVER!
|
||||||
IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>();
|
IMoneyModule money=myScriptEngine.World.RequestModuleInterface<IMoneyModule>();
|
||||||
|
|
Loading…
Reference in New Issue