diff options
-rw-r--r-- | src/Config/SimConfig/SimConfig.csproj | 2 | ||||
-rw-r--r-- | src/Main.cs | 18 | ||||
-rw-r--r-- | src/OpenSimConsole.cs | 43 | ||||
-rw-r--r-- | src/Properties/AssemblyInfo.cs | 33 | ||||
-rw-r--r-- | src/Second-server.csproj | 17 | ||||
-rw-r--r-- | src/ServerConsole/ServerConsole/ServerConsole.cs | 22 | ||||
-rw-r--r-- | src/opensim.sln | 62 | ||||
-rw-r--r-- | src/physics/PhysicsManager.cs | 119 |
8 files changed, 273 insertions, 43 deletions
diff --git a/src/Config/SimConfig/SimConfig.csproj b/src/Config/SimConfig/SimConfig.csproj index 3131405..5aee907 100644 --- a/src/Config/SimConfig/SimConfig.csproj +++ b/src/Config/SimConfig/SimConfig.csproj | |||
@@ -8,7 +8,7 @@ | |||
8 | <ProjectGuid>{B063760D-DB8D-4F64-B6FE-335FAD1E650A}</ProjectGuid> | 8 | <ProjectGuid>{B063760D-DB8D-4F64-B6FE-335FAD1E650A}</ProjectGuid> |
9 | </PropertyGroup> | 9 | </PropertyGroup> |
10 | <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> | 10 | <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> |
11 | <OutputPath>bin\Debug\</OutputPath> | 11 | <OutputPath>..\..\..\bin\</OutputPath> |
12 | <Optimize>False</Optimize> | 12 | <Optimize>False</Optimize> |
13 | <DefineConstants>DEBUG;TRACE</DefineConstants> | 13 | <DefineConstants>DEBUG;TRACE</DefineConstants> |
14 | <DebugSymbols>True</DebugSymbols> | 14 | <DebugSymbols>True</DebugSymbols> |
diff --git a/src/Main.cs b/src/Main.cs index 3103ea3..0680cbb 100644 --- a/src/Main.cs +++ b/src/Main.cs | |||
@@ -71,7 +71,7 @@ namespace OpenSim | |||
71 | private PhysicsManager physManager; | 71 | private PhysicsManager physManager; |
72 | private System.Timers.Timer timer1 = new System.Timers.Timer(); | 72 | private System.Timers.Timer timer1 = new System.Timers.Timer(); |
73 | private string ConfigDll = "SimConfig.dll"; | 73 | private string ConfigDll = "SimConfig.dll"; |
74 | private string _physicsEngine = "PhysX"; | 74 | private string _physicsEngine = ""; |
75 | public bool sandbox = false; | 75 | public bool sandbox = false; |
76 | public bool loginserver = false; | 76 | public bool loginserver = false; |
77 | 77 | ||
@@ -83,13 +83,18 @@ namespace OpenSim | |||
83 | ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local,"",0); | 83 | ServerConsole.MainConsole.Instance = new MServerConsole(ServerConsole.ConsoleBase.ConsoleType.Local,"",0); |
84 | 84 | ||
85 | sim = new OpenSim_Main(); | 85 | sim = new OpenSim_Main(); |
86 | 86 | ||
87 | sim.sandbox = false; | ||
88 | sim.loginserver = false; | ||
89 | sim._physicsEngine = ""; | ||
90 | |||
87 | for (int i = 0; i < args.Length; i++) | 91 | for (int i = 0; i < args.Length; i++) |
88 | { | 92 | { |
89 | if(args[i] == "-sandbox") | 93 | if(args[i] == "-sandbox") |
90 | { | 94 | { |
91 | sim.sandbox = true; | 95 | sim.sandbox = true; |
92 | } | 96 | } |
97 | |||
93 | if(args[i] == "-loginserver") | 98 | if(args[i] == "-loginserver") |
94 | { | 99 | { |
95 | sim.loginserver = true; | 100 | sim.loginserver = true; |
@@ -136,9 +141,6 @@ namespace OpenSim | |||
136 | 141 | ||
137 | private void Startup() { | 142 | private void Startup() { |
138 | startuptime=DateTime.Now; | 143 | startuptime=DateTime.Now; |
139 | timer1.Enabled = true; | ||
140 | timer1.Interval = 100; | ||
141 | timer1.Elapsed +=new ElapsedEventHandler( this.Timer1Tick ); | ||
142 | 144 | ||
143 | // We check our local database first, then the grid for config options | 145 | // We check our local database first, then the grid for config options |
144 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); | 146 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Loading configuration"); |
@@ -150,7 +152,11 @@ namespace OpenSim | |||
150 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - We are " + cfg.RegionName + " at " + cfg.RegionLocX.ToString() + "," + cfg.RegionLocY.ToString()); | 152 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - We are " + cfg.RegionName + " at " + cfg.RegionLocX.ToString() + "," + cfg.RegionLocY.ToString()); |
151 | ServerConsole.MainConsole.Instance.WriteLine("Initialising world"); | 153 | ServerConsole.MainConsole.Instance.WriteLine("Initialising world"); |
152 | local_world = cfg.LoadWorld(); | 154 | local_world = cfg.LoadWorld(); |
153 | 155 | ||
156 | timer1.Enabled = true; | ||
157 | timer1.Interval = 100; | ||
158 | timer1.Elapsed += new ElapsedEventHandler(this.Timer1Tick); | ||
159 | |||
154 | this.physManager = new PhysicsSystem.PhysicsManager(); | 160 | this.physManager = new PhysicsSystem.PhysicsManager(); |
155 | this.physManager.LoadPlugins(); | 161 | this.physManager.LoadPlugins(); |
156 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting up messaging system"); | 162 | ServerConsole.MainConsole.Instance.WriteLine("Main.cs:Startup() - Starting up messaging system"); |
diff --git a/src/OpenSimConsole.cs b/src/OpenSimConsole.cs index 11bc648..00a4cee 100644 --- a/src/OpenSimConsole.cs +++ b/src/OpenSimConsole.cs | |||
@@ -61,6 +61,7 @@ namespace OpenSim | |||
61 | ConsType = constype; | 61 | ConsType = constype; |
62 | switch(constype) { | 62 | switch(constype) { |
63 | case ConsoleType.Local: | 63 | case ConsoleType.Local: |
64 | |||
64 | Console.WriteLine("ServerConsole.cs - creating new local console"); | 65 | Console.WriteLine("ServerConsole.cs - creating new local console"); |
65 | Console.WriteLine("Logs will be saved to current directory in opensim-console.log"); | 66 | Console.WriteLine("Logs will be saved to current directory in opensim-console.log"); |
66 | Log=File.AppendText("opensim-console.log"); | 67 | Log=File.AppendText("opensim-console.log"); |
@@ -75,22 +76,30 @@ namespace OpenSim | |||
75 | default: | 76 | default: |
76 | Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!"); | 77 | Console.WriteLine("ServerConsole.cs - what are you smoking? that isn't a valid console type!"); |
77 | break; | 78 | break; |
78 | } | 79 | } |
79 | } | 80 | } |
80 | 81 | ||
81 | public override void Close() { | 82 | public override void Close() { |
82 | Log.WriteLine("OpenSim shutdown at " + DateTime.Now.ToString()); | 83 | Log.WriteLine("OpenSim shutdown at " + DateTime.Now.ToString()); |
83 | Log.Close(); | 84 | Log.Close(); |
84 | } | 85 | } |
85 | 86 | ||
86 | // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here | 87 | public override void Write(string format, params object[] args) |
87 | public override void WriteLine(string Line) { | 88 | { |
88 | Log.WriteLine(Line); | 89 | Log.Write(format, args); |
89 | Console.WriteLine(Line); | 90 | Console.Write(format, args); |
90 | return; | 91 | return; |
91 | } | 92 | } |
92 | 93 | ||
93 | public override string ReadLine() { | 94 | public override void WriteLine(string format, params object[] args) |
95 | { | ||
96 | Log.WriteLine(format, args); | ||
97 | Console.WriteLine(format, args); | ||
98 | return; | ||
99 | } | ||
100 | |||
101 | public override string ReadLine() | ||
102 | { | ||
94 | string TempStr=Console.ReadLine(); | 103 | string TempStr=Console.ReadLine(); |
95 | Log.WriteLine(TempStr); | 104 | Log.WriteLine(TempStr); |
96 | return TempStr; | 105 | return TempStr; |
@@ -102,12 +111,6 @@ namespace OpenSim | |||
102 | return TempInt; | 111 | return TempInt; |
103 | } | 112 | } |
104 | 113 | ||
105 | public override void Write(string Line) { | ||
106 | Console.Write(Line); | ||
107 | Log.Write(Line); | ||
108 | return; | ||
109 | } | ||
110 | |||
111 | // Displays a command prompt and waits for the user to enter a string, then returns that string | 114 | // Displays a command prompt and waits for the user to enter a string, then returns that string |
112 | public override string CmdPrompt(string prompt) { | 115 | public override string CmdPrompt(string prompt) { |
113 | this.Write(prompt); | 116 | this.Write(prompt); |
@@ -196,7 +199,13 @@ namespace OpenSim | |||
196 | string[] cmdparams=(string[])tempstrarray; | 199 | string[] cmdparams=(string[])tempstrarray; |
197 | RunCmd(cmd,cmdparams); | 200 | RunCmd(cmd,cmdparams); |
198 | } | 201 | } |
199 | } | 202 | |
203 | |||
204 | public override void SetStatus(string status) | ||
205 | { | ||
206 | Console.Write( status + "\r" ); | ||
207 | } | ||
208 | } | ||
200 | } | 209 | } |
201 | 210 | ||
202 | 211 | ||
diff --git a/src/Properties/AssemblyInfo.cs b/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..90fc127 --- /dev/null +++ b/src/Properties/AssemblyInfo.cs | |||
@@ -0,0 +1,33 @@ | |||
1 | using System.Reflection; | ||
2 | using System.Runtime.CompilerServices; | ||
3 | using System.Runtime.InteropServices; | ||
4 | |||
5 | // General Information about an assembly is controlled through the following | ||
6 | // set of attributes. Change these attribute values to modify the information | ||
7 | // associated with an assembly. | ||
8 | [assembly: AssemblyTitle("opensim")] | ||
9 | [assembly: AssemblyDescription("")] | ||
10 | [assembly: AssemblyConfiguration("")] | ||
11 | [assembly: AssemblyCompany("Playahead AB")] | ||
12 | [assembly: AssemblyProduct("opensim")] | ||
13 | [assembly: AssemblyCopyright("Copyright © Playahead AB 2007")] | ||
14 | [assembly: AssemblyTrademark("")] | ||
15 | [assembly: AssemblyCulture("")] | ||
16 | |||
17 | // Setting ComVisible to false makes the types in this assembly not visible | ||
18 | // to COM components. If you need to access a type in this assembly from | ||
19 | // COM, set the ComVisible attribute to true on that type. | ||
20 | [assembly: ComVisible(false)] | ||
21 | |||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | ||
23 | [assembly: Guid("1d09756b-a461-4302-b6fe-15c455317909")] | ||
24 | |||
25 | // Version information for an assembly consists of the following four values: | ||
26 | // | ||
27 | // Major Version | ||
28 | // Minor Version | ||
29 | // Build Number | ||
30 | // Revision | ||
31 | // | ||
32 | [assembly: AssemblyVersion("1.0.0.0")] | ||
33 | [assembly: AssemblyFileVersion("1.0.0.0")] | ||
diff --git a/src/Second-server.csproj b/src/Second-server.csproj index 81399ce..89b508a 100644 --- a/src/Second-server.csproj +++ b/src/Second-server.csproj | |||
@@ -35,6 +35,9 @@ | |||
35 | <PlatformTarget>AnyCPU</PlatformTarget> | 35 | <PlatformTarget>AnyCPU</PlatformTarget> |
36 | <FileAlignment>4096</FileAlignment> | 36 | <FileAlignment>4096</FileAlignment> |
37 | </PropertyGroup> | 37 | </PropertyGroup> |
38 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||
39 | <OutputPath>..\bin\</OutputPath> | ||
40 | </PropertyGroup> | ||
38 | <ItemGroup> | 41 | <ItemGroup> |
39 | <Reference Include="System" /> | 42 | <Reference Include="System" /> |
40 | <Reference Include="System.Data" /> | 43 | <Reference Include="System.Data" /> |
@@ -73,16 +76,26 @@ | |||
73 | <Compile Include="VersionInfo.cs" /> | 76 | <Compile Include="VersionInfo.cs" /> |
74 | </ItemGroup> | 77 | </ItemGroup> |
75 | <ItemGroup> | 78 | <ItemGroup> |
76 | <Folder Include="GridServers" /> | ||
77 | <Folder Include="Assets" /> | ||
78 | <ProjectReference Include="GridInterfaces\GridInterfaces.csproj"> | 79 | <ProjectReference Include="GridInterfaces\GridInterfaces.csproj"> |
79 | <Project>{5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}</Project> | 80 | <Project>{5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}</Project> |
80 | <Name>GridInterfaces</Name> | 81 | <Name>GridInterfaces</Name> |
81 | </ProjectReference> | 82 | </ProjectReference> |
83 | <ProjectReference Include="LocalServers\LocalGridServers\LocalGridServers.csproj"> | ||
84 | <Project>{D7F0395B-FADC-4936-80A0-D95AACE92F62}</Project> | ||
85 | <Name>LocalGridServers</Name> | ||
86 | </ProjectReference> | ||
87 | <ProjectReference Include="LocalStorage\Db4LocalStorage\Db4LocalStorage.csproj"> | ||
88 | <Project>{74784F23-B0FD-484C-82C1-96C0215733DC}</Project> | ||
89 | <Name>Db4LocalStorage</Name> | ||
90 | </ProjectReference> | ||
82 | <ProjectReference Include="physics\PhysicsManager.csproj"> | 91 | <ProjectReference Include="physics\PhysicsManager.csproj"> |
83 | <Project>{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}</Project> | 92 | <Project>{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}</Project> |
84 | <Name>PhysicsManager</Name> | 93 | <Name>PhysicsManager</Name> |
85 | </ProjectReference> | 94 | </ProjectReference> |
95 | <ProjectReference Include="RemoteServers\RemoteGridServers\RemoteGridServers.csproj"> | ||
96 | <Project>{CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}</Project> | ||
97 | <Name>RemoteGridServers</Name> | ||
98 | </ProjectReference> | ||
86 | <ProjectReference Include="ServerConsole\ServerConsole\ServerConsole.csproj"> | 99 | <ProjectReference Include="ServerConsole\ServerConsole\ServerConsole.csproj"> |
87 | <Project>{C9A6026D-8E0C-4FE4-8691-FB2A566AA245}</Project> | 100 | <Project>{C9A6026D-8E0C-4FE4-8691-FB2A566AA245}</Project> |
88 | <Name>ServerConsole</Name> | 101 | <Name>ServerConsole</Name> |
diff --git a/src/ServerConsole/ServerConsole/ServerConsole.cs b/src/ServerConsole/ServerConsole/ServerConsole.cs index 93c8114..27d97e5 100644 --- a/src/ServerConsole/ServerConsole/ServerConsole.cs +++ b/src/ServerConsole/ServerConsole/ServerConsole.cs | |||
@@ -43,12 +43,7 @@ namespace ServerConsole | |||
43 | instance = value; | 43 | instance = value; |
44 | } | 44 | } |
45 | } | 45 | } |
46 | 46 | } | |
47 | public MainConsole() | ||
48 | { | ||
49 | |||
50 | } | ||
51 | } | ||
52 | 47 | ||
53 | public abstract class ConsoleBase | 48 | public abstract class ConsoleBase |
54 | { | 49 | { |
@@ -60,16 +55,15 @@ namespace ServerConsole | |||
60 | } | 55 | } |
61 | 56 | ||
62 | public abstract void Close(); | 57 | public abstract void Close(); |
63 | 58 | ||
64 | // You know what ReadLine() and WriteLine() do, right? And Read() and Write()? Right, you do actually know C#, right? Are you actually a programmer? Do you know english? Do you find my sense of humour in comments irritating? Good, glad you're still here | 59 | public abstract void Write(string format, params object[] args); |
65 | public abstract void WriteLine(string Line) ; | 60 | |
66 | 61 | public abstract void WriteLine(string format, params object[] args); | |
62 | |||
67 | public abstract string ReadLine(); | 63 | public abstract string ReadLine(); |
68 | 64 | ||
69 | public abstract int Read() ; | 65 | public abstract int Read() ; |
70 | 66 | ||
71 | public abstract void Write(string Line) ; | ||
72 | |||
73 | // Displays a command prompt and waits for the user to enter a string, then returns that string | 67 | // Displays a command prompt and waits for the user to enter a string, then returns that string |
74 | public abstract string CmdPrompt(string prompt) ; | 68 | public abstract string CmdPrompt(string prompt) ; |
75 | 69 | ||
@@ -87,5 +81,7 @@ namespace ServerConsole | |||
87 | 81 | ||
88 | // Displays a prompt to the user and then runs the command they entered | 82 | // Displays a prompt to the user and then runs the command they entered |
89 | public abstract void MainConsolePrompt() ; | 83 | public abstract void MainConsolePrompt() ; |
90 | } | 84 | |
85 | public abstract void SetStatus( string status ); | ||
86 | } | ||
91 | } | 87 | } |
diff --git a/src/opensim.sln b/src/opensim.sln new file mode 100644 index 0000000..930bf09 --- /dev/null +++ b/src/opensim.sln | |||
@@ -0,0 +1,62 @@ | |||
1 | | ||
2 | Microsoft Visual Studio Solution File, Format Version 9.00 | ||
3 | # Visual Studio 2005 | ||
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Second-server", "Second-server.csproj", "{132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}" | ||
5 | EndProject | ||
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GridInterfaces", "GridInterfaces\GridInterfaces.csproj", "{5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}" | ||
7 | EndProject | ||
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PhysicsManager", "physics\PhysicsManager.csproj", "{3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}" | ||
9 | EndProject | ||
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerConsole", "ServerConsole\ServerConsole\ServerConsole.csproj", "{C9A6026D-8E0C-4FE4-8691-FB2A566AA245}" | ||
11 | EndProject | ||
12 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LocalGridServers", "LocalServers\LocalGridServers\LocalGridServers.csproj", "{D7F0395B-FADC-4936-80A0-D95AACE92F62}" | ||
13 | EndProject | ||
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RemoteGridServers", "RemoteServers\RemoteGridServers\RemoteGridServers.csproj", "{CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}" | ||
15 | EndProject | ||
16 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimConfig", "Config\SimConfig\SimConfig.csproj", "{B063760D-DB8D-4F64-B6FE-335FAD1E650A}" | ||
17 | EndProject | ||
18 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Db4LocalStorage", "LocalStorage\Db4LocalStorage\Db4LocalStorage.csproj", "{74784F23-B0FD-484C-82C1-96C0215733DC}" | ||
19 | EndProject | ||
20 | Global | ||
21 | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
22 | Debug|Any CPU = Debug|Any CPU | ||
23 | Release|Any CPU = Release|Any CPU | ||
24 | EndGlobalSection | ||
25 | GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
26 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
27 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
28 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
29 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.Build.0 = Release|Any CPU | ||
30 | {5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
31 | {5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
32 | {5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
33 | {5DA3174D-42F9-416D-9F0B-AF41FA2BE2F9}.Release|Any CPU.Build.0 = Release|Any CPU | ||
34 | {3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
35 | {3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
36 | {3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
37 | {3C86A846-7977-4EE7-A8DC-DD487FA5DC2B}.Release|Any CPU.Build.0 = Release|Any CPU | ||
38 | {C9A6026D-8E0C-4FE4-8691-FB2A566AA245}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
39 | {C9A6026D-8E0C-4FE4-8691-FB2A566AA245}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
40 | {C9A6026D-8E0C-4FE4-8691-FB2A566AA245}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
41 | {C9A6026D-8E0C-4FE4-8691-FB2A566AA245}.Release|Any CPU.Build.0 = Release|Any CPU | ||
42 | {D7F0395B-FADC-4936-80A0-D95AACE92F62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
43 | {D7F0395B-FADC-4936-80A0-D95AACE92F62}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
44 | {D7F0395B-FADC-4936-80A0-D95AACE92F62}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
45 | {D7F0395B-FADC-4936-80A0-D95AACE92F62}.Release|Any CPU.Build.0 = Release|Any CPU | ||
46 | {CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
47 | {CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
48 | {CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
49 | {CF0E7E62-34F4-4AB2-BDBD-AFC63224A7E5}.Release|Any CPU.Build.0 = Release|Any CPU | ||
50 | {B063760D-DB8D-4F64-B6FE-335FAD1E650A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
51 | {B063760D-DB8D-4F64-B6FE-335FAD1E650A}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
52 | {B063760D-DB8D-4F64-B6FE-335FAD1E650A}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
53 | {B063760D-DB8D-4F64-B6FE-335FAD1E650A}.Release|Any CPU.Build.0 = Release|Any CPU | ||
54 | {74784F23-B0FD-484C-82C1-96C0215733DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
55 | {74784F23-B0FD-484C-82C1-96C0215733DC}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
56 | {74784F23-B0FD-484C-82C1-96C0215733DC}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
57 | {74784F23-B0FD-484C-82C1-96C0215733DC}.Release|Any CPU.Build.0 = Release|Any CPU | ||
58 | EndGlobalSection | ||
59 | GlobalSection(SolutionProperties) = preSolution | ||
60 | HideSolutionNode = FALSE | ||
61 | EndGlobalSection | ||
62 | EndGlobal | ||
diff --git a/src/physics/PhysicsManager.cs b/src/physics/PhysicsManager.cs index e5d5bd6..1fee628 100644 --- a/src/physics/PhysicsManager.cs +++ b/src/physics/PhysicsManager.cs | |||
@@ -46,15 +46,21 @@ namespace PhysicsSystem | |||
46 | 46 | ||
47 | public PhysicsScene GetPhysicsScene(string engineName) | 47 | public PhysicsScene GetPhysicsScene(string engineName) |
48 | { | 48 | { |
49 | if(_plugins.ContainsKey(engineName)) | 49 | if( String.IsNullOrEmpty( engineName ) ) |
50 | { | ||
51 | return new NullPhysicsScene(); | ||
52 | } | ||
53 | |||
54 | if(_plugins.ContainsKey(engineName)) | ||
50 | { | 55 | { |
51 | ServerConsole.MainConsole.Instance.WriteLine("creating "+engineName); | 56 | ServerConsole.MainConsole.Instance.WriteLine("creating "+engineName); |
52 | return _plugins[engineName].GetScene(); | 57 | return _plugins[engineName].GetScene(); |
53 | } | 58 | } |
54 | else | 59 | else |
55 | { | 60 | { |
56 | ServerConsole.MainConsole.Instance.WriteLine("couldn't find physicsEngine: "+ engineName); | 61 | string error = String.Format("couldn't find physicsEngine: {0}", engineName); |
57 | return null; | 62 | ServerConsole.MainConsole.Instance.WriteLine( error ); |
63 | throw new ArgumentException( error ); | ||
58 | } | 64 | } |
59 | } | 65 | } |
60 | 66 | ||
@@ -108,6 +114,14 @@ namespace PhysicsSystem | |||
108 | 114 | ||
109 | public abstract class PhysicsScene | 115 | public abstract class PhysicsScene |
110 | { | 116 | { |
117 | public static PhysicsScene Null | ||
118 | { | ||
119 | get | ||
120 | { | ||
121 | return new NullPhysicsScene(); | ||
122 | } | ||
123 | } | ||
124 | |||
111 | public abstract PhysicsActor AddAvatar(PhysicsVector position); | 125 | public abstract PhysicsActor AddAvatar(PhysicsVector position); |
112 | 126 | ||
113 | public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size); | 127 | public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size); |
@@ -124,8 +138,49 @@ namespace PhysicsSystem | |||
124 | } | 138 | } |
125 | } | 139 | } |
126 | 140 | ||
141 | public class NullPhysicsScene : PhysicsScene | ||
142 | { | ||
143 | private static int m_workIndicator; | ||
144 | |||
145 | public override PhysicsActor AddAvatar(PhysicsVector position) | ||
146 | { | ||
147 | ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : AddAvatar({0})", position ); | ||
148 | return PhysicsActor.Null; | ||
149 | } | ||
150 | |||
151 | public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size) | ||
152 | { | ||
153 | ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : AddPrim({0},{1})", position, size ); | ||
154 | return PhysicsActor.Null; | ||
155 | } | ||
156 | |||
157 | public override void Simulate(float timeStep) | ||
158 | { | ||
159 | m_workIndicator = ( m_workIndicator + 1 ) % 10; | ||
160 | |||
161 | ServerConsole.MainConsole.Instance.SetStatus( m_workIndicator.ToString() ); | ||
162 | } | ||
163 | |||
164 | public override void GetResults() | ||
165 | { | ||
166 | ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : GetResults()" ); | ||
167 | } | ||
168 | |||
169 | public override void SetTerrain(float[] heightMap) | ||
170 | { | ||
171 | ServerConsole.MainConsole.Instance.WriteLine("NullPhysicsScene : SetTerrain({0} items)", heightMap.Length ); | ||
172 | } | ||
173 | |||
174 | public override bool IsThreaded | ||
175 | { | ||
176 | get { return false; } | ||
177 | } | ||
178 | } | ||
179 | |||
127 | public abstract class PhysicsActor | 180 | public abstract class PhysicsActor |
128 | { | 181 | { |
182 | public static readonly PhysicsActor Null = new NullPhysicsActor(); | ||
183 | |||
129 | public abstract PhysicsVector Position | 184 | public abstract PhysicsVector Position |
130 | { | 185 | { |
131 | get; | 186 | get; |
@@ -153,7 +208,61 @@ namespace PhysicsSystem | |||
153 | public abstract void SetMomentum(PhysicsVector momentum); | 208 | public abstract void SetMomentum(PhysicsVector momentum); |
154 | } | 209 | } |
155 | 210 | ||
156 | public class PhysicsVector | 211 | public class NullPhysicsActor : PhysicsActor |
212 | { | ||
213 | public override PhysicsVector Position | ||
214 | { | ||
215 | get | ||
216 | { | ||
217 | return PhysicsVector.Zero; | ||
218 | } | ||
219 | set | ||
220 | { | ||
221 | return; | ||
222 | } | ||
223 | } | ||
224 | |||
225 | public override PhysicsVector Velocity | ||
226 | { | ||
227 | get | ||
228 | { | ||
229 | return PhysicsVector.Zero; | ||
230 | } | ||
231 | set | ||
232 | { | ||
233 | return; | ||
234 | } | ||
235 | } | ||
236 | |||
237 | public override PhysicsVector Acceleration | ||
238 | { | ||
239 | get { return PhysicsVector.Zero; } | ||
240 | } | ||
241 | |||
242 | public override bool Flying | ||
243 | { | ||
244 | get | ||
245 | { | ||
246 | return false; | ||
247 | } | ||
248 | set | ||
249 | { | ||
250 | return; | ||
251 | } | ||
252 | } | ||
253 | |||
254 | public override void AddForce(PhysicsVector force) | ||
255 | { | ||
256 | return; | ||
257 | } | ||
258 | |||
259 | public override void SetMomentum(PhysicsVector momentum) | ||
260 | { | ||
261 | return; | ||
262 | } | ||
263 | } | ||
264 | |||
265 | public class PhysicsVector | ||
157 | { | 266 | { |
158 | public float X; | 267 | public float X; |
159 | public float Y; | 268 | public float Y; |
@@ -170,5 +279,7 @@ namespace PhysicsSystem | |||
170 | Y = y; | 279 | Y = y; |
171 | Z = z; | 280 | Z = z; |
172 | } | 281 | } |
282 | |||
283 | public static readonly PhysicsVector Zero = new PhysicsVector(0f, 0f, 0f); | ||
173 | } | 284 | } |
174 | } | 285 | } |