The 'Party Party Groupie Groupie Life is a game' commit:
* Added prototypical MoneyBalance support * Finalized konceptual touch wiring * Turned SimpleApp into a tedious harvesting game.afrisby
parent
6831c42fe2
commit
94af938742
|
@ -216,5 +216,6 @@ namespace OpenSim.Framework.Interfaces
|
||||||
void SendAlertMessage(string message);
|
void SendAlertMessage(string message);
|
||||||
void SendAgentAlertMessage(string message, bool modal);
|
void SendAgentAlertMessage(string message, bool modal);
|
||||||
void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url);
|
void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url);
|
||||||
|
bool AddMoney( int debit );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,6 +145,11 @@ namespace OpenSim.Framework
|
||||||
public void SendAgentAlertMessage(string message, bool modal) { }
|
public void SendAgentAlertMessage(string message, bool modal) { }
|
||||||
public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url) { }
|
public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url) { }
|
||||||
|
|
||||||
|
|
||||||
|
public bool AddMoney(int debit)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,27 @@ namespace OpenSim.Region.ClientStack
|
||||||
{
|
{
|
||||||
public partial class ClientView
|
public partial class ClientView
|
||||||
{
|
{
|
||||||
|
private int m_moneyBalance;
|
||||||
|
|
||||||
|
public int MoneyBalance
|
||||||
|
{
|
||||||
|
get { return m_moneyBalance; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AddMoney( int debit )
|
||||||
|
{
|
||||||
|
if( m_moneyBalance + debit >= 0 )
|
||||||
|
{
|
||||||
|
m_moneyBalance += debit;
|
||||||
|
SendMoneyBalance( LLUUID.Zero, true, Helpers.StringToField("Poof Poof!"), m_moneyBalance );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void ProcessInPacket(Packet Pack)
|
protected override void ProcessInPacket(Packet Pack)
|
||||||
{
|
{
|
||||||
ack_pack(Pack);
|
ack_pack(Pack);
|
||||||
|
@ -521,7 +542,7 @@ namespace OpenSim.Region.ClientStack
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
case PacketType.MoneyBalanceRequest:
|
case PacketType.MoneyBalanceRequest:
|
||||||
this.SendMoneyBalance(LLUUID.Zero, true, new byte[0], 1000);
|
SendMoneyBalance(LLUUID.Zero, true, new byte[0], MoneyBalance);
|
||||||
break;
|
break;
|
||||||
case PacketType.UUIDNameRequest:
|
case PacketType.UUIDNameRequest:
|
||||||
UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
|
UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
|
||||||
|
|
|
@ -87,6 +87,8 @@ namespace OpenSim.Region.ClientStack
|
||||||
|
|
||||||
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IScene scene, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AgentCircuitManager authenSessions )
|
public ClientView(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, Dictionary<uint, ClientView> clientThreads, IScene scene, AssetCache assetCache, PacketServer packServer, InventoryCache inventoryCache, AgentCircuitManager authenSessions )
|
||||||
{
|
{
|
||||||
|
m_moneyBalance = 1000;
|
||||||
|
|
||||||
m_scene = scene;
|
m_scene = scene;
|
||||||
m_clientThreads = clientThreads;
|
m_clientThreads = clientThreads;
|
||||||
m_assetCache = assetCache;
|
m_assetCache = assetCache;
|
||||||
|
|
|
@ -91,16 +91,23 @@ namespace OpenSim.Region.Environment
|
||||||
|
|
||||||
#region Object Permissions
|
#region Object Permissions
|
||||||
|
|
||||||
protected virtual bool GenericObjectPermission(LLUUID user, LLUUID obj)
|
protected virtual bool GenericObjectPermission(LLUUID user, LLUUID objId)
|
||||||
{
|
{
|
||||||
// Default: deny
|
// Default: deny
|
||||||
bool permission = false;
|
bool permission = false;
|
||||||
|
|
||||||
// If it's not an object, we cant edit it.
|
if( !m_scene.Entities.ContainsKey( objId ))
|
||||||
if (!(m_scene.Entities[obj] is SceneObjectGroup))
|
{
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[obj];
|
|
||||||
|
// If it's not an object, we cant edit it.
|
||||||
|
if (!(m_scene.Entities[objId] is SceneObjectGroup))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[objId];
|
||||||
LLUUID taskOwner = null;
|
LLUUID taskOwner = null;
|
||||||
|
|
||||||
// Object owners should be able to edit their own content
|
// Object owners should be able to edit their own content
|
||||||
|
|
|
@ -752,7 +752,7 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
|
public virtual void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
{
|
{
|
||||||
this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
|
this.EventManager.TriggerObjectGrab(localID, offsetPos, remoteClient);
|
||||||
}
|
}
|
||||||
|
|
|
@ -863,5 +863,28 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
m_rootPart.Text = text;
|
m_rootPart.Text = text;
|
||||||
m_rootPart.ScheduleTerseUpdate();
|
m_rootPart.ScheduleTerseUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ObjectGrabHandler(uint localId, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
if( m_rootPart.LocalID == localId )
|
||||||
|
{
|
||||||
|
OnGrabGroup(offsetPos, remoteClient);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SceneObjectPart part = GetChildPrim(localId);
|
||||||
|
OnGrabPart(part, offsetPos, remoteClient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnGrabPart(SceneObjectPart part, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
part.OnGrab(offsetPos, remoteClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual void OnGrabGroup(LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -566,6 +566,10 @@ namespace OpenSim.Region.Environment.Scenes
|
||||||
public virtual void UpdateMovement()
|
public virtual void UpdateMovement()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual void OnGrab(LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ using OpenSim.Region.Environment.Scenes;
|
||||||
using Axiom.Math;
|
using Axiom.Math;
|
||||||
using libsecondlife;
|
using libsecondlife;
|
||||||
using OpenSim.Framework.Types;
|
using OpenSim.Framework.Types;
|
||||||
|
using OpenSim.Framework.Interfaces;
|
||||||
|
|
||||||
namespace SimpleApp
|
namespace SimpleApp
|
||||||
{
|
{
|
||||||
|
@ -35,6 +36,8 @@ namespace SimpleApp
|
||||||
base.UpdateMovement();
|
base.UpdateMovement();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos )
|
public ComplexObject(Scene scene, ulong regionHandle, LLUUID ownerID, uint localID, LLVector3 pos )
|
||||||
: base(scene, regionHandle, ownerID, localID, pos, BoxShape.Default )
|
: base(scene, regionHandle, ownerID, localID, pos, BoxShape.Default )
|
||||||
{
|
{
|
||||||
|
@ -51,5 +54,25 @@ namespace SimpleApp
|
||||||
|
|
||||||
UpdateParentIDs();
|
UpdateParentIDs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void OnGrabPart(SceneObjectPart part, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
m_parts.Remove(part.UUID);
|
||||||
|
remoteClient.SendKillObject(m_regionHandle, part.LocalID);
|
||||||
|
remoteClient.AddMoney(1);
|
||||||
|
remoteClient.SendChatMessage("Poof!", 1, Pos, "Party Party", LLUUID.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnGrabGroup( LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
if( m_parts.Count == 1 )
|
||||||
|
{
|
||||||
|
m_parts.Remove(m_rootPart.UUID);
|
||||||
|
m_scene.RemoveEntity(this);
|
||||||
|
remoteClient.SendKillObject(m_regionHandle, m_rootPart.LocalID);
|
||||||
|
remoteClient.AddMoney(50);
|
||||||
|
remoteClient.SendChatMessage("KABLAM!!!", 1, Pos, "Groupie Groupie", LLUUID.Zero);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,5 +202,10 @@ namespace SimpleApp
|
||||||
|
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool AddMoney(int debit)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,38 +41,43 @@ namespace SimpleApp
|
||||||
this.CreateTerrainTexture();
|
this.CreateTerrainTexture();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void ProcessObjectGrab(uint localID, LLVector3 offsetPos, IClientAPI remoteClient)
|
||||||
|
{
|
||||||
|
foreach (EntityBase ent in Entities.Values)
|
||||||
|
{
|
||||||
|
if (ent is SceneObjectGroup)
|
||||||
|
{
|
||||||
|
SceneObjectGroup obj = ent as SceneObjectGroup;
|
||||||
|
|
||||||
|
if( obj.HasChildPrim( localID ) )
|
||||||
|
{
|
||||||
|
obj.ObjectGrabHandler(localID, offsetPos, remoteClient);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
base.ProcessObjectGrab(localID, offsetPos, remoteClient);
|
||||||
|
}
|
||||||
|
|
||||||
#region IWorld Members
|
#region IWorld Members
|
||||||
|
|
||||||
override public void AddNewClient(IClientAPI client, bool child)
|
override public void AddNewClient(IClientAPI client, bool child)
|
||||||
{
|
{
|
||||||
|
SubscribeToClientEvents(client);
|
||||||
|
|
||||||
|
ScenePresence avatar = CreateAndAddScenePresence(client);
|
||||||
|
avatar.Pos = new LLVector3(128, 128, 26);
|
||||||
|
|
||||||
LLVector3 pos = new LLVector3(128, 128, 128);
|
LLVector3 pos = new LLVector3(128, 128, 128);
|
||||||
|
|
||||||
client.OnRegionHandShakeReply += SendLayerData;
|
|
||||||
/*client.OnChatFromViewer +=
|
|
||||||
delegate(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID)
|
|
||||||
{
|
|
||||||
// Echo it (so you know what you typed)
|
|
||||||
client.SendChatMessage(message, type, fromPos, fromName, fromAgentID);
|
|
||||||
client.SendChatMessage("Ready.", 1, pos, "System", LLUUID.Zero );
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
client.OnChatFromViewer += this.SimChat;
|
|
||||||
client.OnAddPrim += AddNewPrim;
|
|
||||||
client.OnUpdatePrimGroupPosition += this.UpdatePrimPosition;
|
|
||||||
client.OnRequestMapBlocks += this.RequestMapBlocks;
|
|
||||||
client.OnTeleportLocationRequest += this.RequestTeleportLocation;
|
|
||||||
client.OnGrabUpdate += this.MoveObject;
|
|
||||||
client.OnNameFromUUIDRequest += this.commsManager.HandleUUIDNameRequest;
|
|
||||||
|
|
||||||
client.OnCompleteMovementToRegion += delegate()
|
client.OnCompleteMovementToRegion += delegate()
|
||||||
{
|
{
|
||||||
client.SendChatMessage("Welcome to My World.", 1, pos, "System", LLUUID.Zero );
|
client.SendChatMessage("Welcome to My World.", 1, pos, "System", LLUUID.Zero );
|
||||||
};
|
};
|
||||||
|
|
||||||
client.SendRegionHandshake(m_regInfo);
|
|
||||||
|
|
||||||
ScenePresence avatar = CreateAndAddScenePresence(client);
|
client.SendRegionHandshake(m_regInfo);
|
||||||
avatar.Pos = new LLVector3(128, 128, 26);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
Loading…
Reference in New Issue