public DirtyObjectController(NetReplicationController netreplicationcontroller, NetworkLevel2Controller network, RpcController rpc) { if (!network.IsServer) { throw new Exception("Shouldnt be instantiating dirtyobjectcontroller on client"); } this.netreplicationcontroller = netreplicationcontroller; this.rpc = rpc; this.network = network; //network = NetworkControllerFactory.GetInstance(); network.NewConnection += new Level2NewConnectionHandler(network_NewConnection); network.Disconnection += new Level2DisconnectionHandler(network_Disconnection); }
public int Init(IConfigSource commandlineConfig, IClientControllers controllers) { Type type = Type.GetType("OSMP.ObjectReplicationClientToServer"); LogFile.WriteLine("type: [" + type + "] " + type.AssemblyQualifiedName); //System.Environment.Exit( 0 ); Tao.DevIl.Il.ilInit(); Tao.DevIl.Ilu.iluInit(); config = Config.GetInstance(); string serverip = commandlineConfig.Configs["CommandLineArgs"].GetString("serverip", config.ServerIPAddress); int port = commandlineConfig.Configs["CommandLineArgs"].GetInt("serverport", config.ServerPort); network = new NetworkLevel2Controller(); network.NewConnection += new Level2NewConnectionHandler(network_NewConnection); network.ConnectAsClient(serverip, port); rpc = new RpcController(network); netreplicationcontroller = new NetReplicationController(rpc); renderer = RendererFactory.GetInstance(); renderer.Tick += new OSMP.TickHandler(MainLoop); renderer.Init(); worldstorage = new WorldModel(netreplicationcontroller); worldview = new WorldView(worldstorage); playermovement = PlayerMovement.GetInstance(); InitializePlayermovement(); myavatar = new Avatar(); worldstorage.AddEntity(myavatar); controllers.Plugin.LoadClientPlugins(); if (!commandlineConfig.Configs["CommandLineArgs"].Contains("nochat")) { LoadChat(); } if (commandlineConfig.Configs["CommandLineArgs"].Contains("url")) { string url = commandlineConfig.Configs["CommandLineArgs"].GetString("url"); LogFile.WriteLine("url: " + url); if (url.StartsWith("osmp://")) { targettoload = "http://" + url.Substring("osmp://".Length); LogFile.WriteLine("target: " + targettoload); } else { targettoload = url; } } renderer.StartMainLoop(); return(0); }
public void RequestNewReferenceRpc( object connection, Type targettype, RefToLocalObject requester ) { int nextreference = _GetNextReferenceForType( targettype ); RpcController.GetInstance().NetObject( this ).ReferenceResponse( connection, nextreference, targettype, requester ); }