예제 #1
0
        //private bool childShadowAvatar = false;
        public Avatar(SimClient TheClient, World world, string regionName, Dictionary<uint, SimClient> clientThreads, ulong regionHandle, bool regionTerraform, ushort regionWater)
        {
            m_world = world;
            m_clientThreads = clientThreads;
            m_regionName = regionName;
            m_regionHandle = regionHandle;
            m_regionTerraform = regionTerraform;
            m_regionWaterHeight = regionWater;

            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs - Loading details from grid (DUMMY)");
            ControllingClient = TheClient;
            localid = 8880000 + (this.m_world._localNumber++);
            Pos = ControllingClient.startpos;
            visualParams = new byte[218];
            for (int i = 0; i < 218; i++)
            {
                visualParams[i] = 100;
            }
            Wearables = new AvatarWearable[13]; //should be 13 of these
            for (int i = 0; i < 13; i++)
            {
                Wearables[i] = new AvatarWearable();
            }
            this.Wearables[0].AssetID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
            this.Wearables[0].ItemID = LLUUID.Random();

            this.avatarAppearanceTexture = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
        }
예제 #2
0
 public Primitive2(Dictionary<uint, SimClient> clientThreads, ulong regionHandle, World world)
 {
     m_clientThreads = clientThreads;
     m_regionHandle = regionHandle;
     m_world = world;
     inventoryItems = new Dictionary<LLUUID, InventoryItem>();
 }
예제 #3
0
 public AdminWebFront(string password, World world, InventoryCache inventoryCache, LoginServer userserver)
 {
     _inventoryCache = inventoryCache;
     _userServer = userserver;
     m_world = world;
     passWord = password;
     LoadAdminPage();
 }
예제 #4
0
        public Primitive(Dictionary<uint, SimClient> clientThreads, ulong regionHandle, World world)
        {
            mesh_cutbegin = 0.0f;
            mesh_cutend = 1.0f;

            m_clientThreads = clientThreads;
            m_regionHandle = regionHandle;
            m_world = world;
        }
예제 #5
0
 public OpenSimView(OpenSimGame game, World world)
 {
     m_game = game;
     m_world = world;
 }
예제 #6
0
        protected virtual void CustomiseStartup()
        {
            PacketServer packetServer = new PacketServer(this);

            m_console.WriteLine("Main.cs:Startup() - We are " + regionData.RegionName + " at " + regionData.RegionLocX.ToString() + "," + regionData.RegionLocY.ToString());
            m_console.WriteLine("Initialising world");
            LocalWorld = new World(this._packetServer.ClientThreads, regionData.RegionHandle, regionData.RegionName);
            LocalWorld.InventoryCache = InventoryCache;
            LocalWorld.AssetCache = AssetCache;

            this._packetServer.LocalWorld = LocalWorld;
            this._packetServer.RegisterClientPacketHandlers();

            LocalWorld.m_datastore = this.regionData.DataStore;

            LocalWorld.LoadStorageDLL("OpenSim.Storage.LocalStorageDb4o.dll"); //all these dll names shouldn't be hard coded.
            LocalWorld.LoadWorldMap();

            m_console.WriteLine("Main.cs:Startup() - Starting up messaging system");
            LocalWorld.PhysScene = this.physManager.GetPhysicsScene(this.m_physicsEngine);
            LocalWorld.PhysScene.SetTerrain(LocalWorld.Terrain.getHeights1D());
            LocalWorld.LoadPrimsFromStorage();
        }
예제 #7
0
        public SimClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, World world, Dictionary<uint, SimClient> clientThreads, AssetCache assetCache, IGridServer gridServer, OpenSimNetworkHandler application, InventoryCache inventoryCache, bool sandboxMode, bool child, RegionInfo regionDat)
        {
            m_world = world;
            m_clientThreads = clientThreads;
            m_assetCache = assetCache;
            m_gridServer = gridServer;
            m_application = application;
            m_inventoryCache = inventoryCache;
            m_sandboxMode = sandboxMode;
            m_child = child;
            m_regionData = regionDat;

            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("OpenSimClient.cs - Started up new client thread to handle incoming request");
            cirpack = initialcirpack;
            userEP = remoteEP;
            if (m_gridServer.GetName() == "Remote")
            {
                this.startpos = ((RemoteGridBase)m_gridServer).agentcircuits[initialcirpack.CircuitCode.Code].startpos;
            }
            else
            {
                this.startpos = new LLVector3(128, 128, m_world.Terrain[(int)128, (int)128] + 15.0f); // new LLVector3(128.0f, 128.0f, 60f);
            }
            PacketQueue = new BlockingQueue<QueItem>();

            this.UploadAssets = new AgentAssetUpload(this, m_assetCache, m_inventoryCache);
            AckTimer = new System.Timers.Timer(500);
            AckTimer.Elapsed += new ElapsedEventHandler(AckTimer_Elapsed);
            AckTimer.Start();

            this.RegisterLocalPacketHandlers();

            ClientThread = new Thread(new ThreadStart(AuthUser));
            ClientThread.IsBackground = true;
            ClientThread.Start();
        }
예제 #8
0
        //really really should be moved somewhere else (RegionInfo.cs ?)
        public void SendRegionHandshake(World RegionInfo)
        {
            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
            System.Text.Encoding _enc = System.Text.Encoding.ASCII;
            RegionHandshakePacket handshake = new RegionHandshakePacket();

            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details");
            handshake.RegionInfo.BillableFactor = 0;
            handshake.RegionInfo.IsEstateManager = false;
            handshake.RegionInfo.TerrainHeightRange00 = 60;
            handshake.RegionInfo.TerrainHeightRange01 = 60;
            handshake.RegionInfo.TerrainHeightRange10 = 60;
            handshake.RegionInfo.TerrainHeightRange11 = 60;
            handshake.RegionInfo.TerrainStartHeight00 = 10;
            handshake.RegionInfo.TerrainStartHeight01 = 10;
            handshake.RegionInfo.TerrainStartHeight10 = 10;
            handshake.RegionInfo.TerrainStartHeight11 = 10;
            handshake.RegionInfo.SimAccess = 13;
            handshake.RegionInfo.WaterHeight = m_regionWaterHeight;
            uint regionFlags = 72458694;
            if (this.m_regionTerraform)
            {
                regionFlags -= 64;
            }
            handshake.RegionInfo.RegionFlags = regionFlags;
            handshake.RegionInfo.SimName = _enc.GetBytes(m_regionName + "\0");
            handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000");
            handshake.RegionInfo.TerrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975");
            handshake.RegionInfo.TerrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3");
            handshake.RegionInfo.TerrainBase2 = new LLUUID("179cdabd-398a-9b6b-1391-4dc333ba321f");
            handshake.RegionInfo.TerrainBase3 = new LLUUID("beb169c7-11ea-fff2-efe5-0f24dc881df2");
            handshake.RegionInfo.TerrainDetail0 = new LLUUID("00000000-0000-0000-0000-000000000000");
            handshake.RegionInfo.TerrainDetail1 = new LLUUID("00000000-0000-0000-0000-000000000000");
            handshake.RegionInfo.TerrainDetail2 = new LLUUID("00000000-0000-0000-0000-000000000000");
            handshake.RegionInfo.TerrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000");
            handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37");

            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:SendRegionHandshake() - Sending RegionHandshake packet");
            this.ControllingClient.OutPacket(handshake);
        }
예제 #9
0
        public void CompleteMovement(World RegionInfo)
        {
            OpenSim.Framework.Console.MainConsole.Instance.WriteLine("Avatar.cs:CompleteMovement() - Constructing AgentMovementComplete packet");
            AgentMovementCompletePacket mov = new AgentMovementCompletePacket();
            mov.AgentData.SessionID = this.ControllingClient.SessionID;
            mov.AgentData.AgentID = this.ControllingClient.AgentID;
            mov.Data.RegionHandle = this.m_regionHandle;
            // TODO - dynamicalise this stuff
            mov.Data.Timestamp = 1172750370;
            mov.Data.Position = this.ControllingClient.startpos;
            mov.Data.LookAt = new LLVector3(0.99f, 0.042f, 0);

            ControllingClient.OutPacket(mov);
        }
예제 #10
0
 public ScriptHandler(Script script, Entity entity, World world)
 {
     m_script = script;
     m_entity = entity;
     m_world = world;
 }