├── .gitattributes ├── .gitignore ├── LOVC.sln ├── LOVC.userprefs ├── LOVC.v12.suo ├── LOVC ├── AssemblyInfo.cs ├── Gamedata │ └── Rooms │ │ ├── model1.map │ │ ├── model2.map │ │ ├── model3.map │ │ └── model4.map ├── LOVC.csproj ├── LOVC │ ├── Chat │ │ └── SayMode.cs │ ├── GameService.cs │ ├── Player │ │ ├── Player.cs │ │ └── Players.cs │ └── Room │ │ ├── LeaveReason.cs │ │ ├── LocationType.cs │ │ ├── Room.cs │ │ ├── RoomInfo.cs │ │ ├── RoomManager.cs │ │ └── RoomModel.cs ├── Platform │ ├── Utils │ │ ├── HttpClient.cs │ │ └── MD5.cs │ ├── VK │ │ ├── Responses │ │ │ ├── Response.cs │ │ │ └── UserInfo.cs │ │ ├── VK.cs │ │ └── VKClient.cs │ ├── Vectors │ │ ├── Vector2.cs │ │ └── Vector3.cs │ └── WebSockets │ │ ├── NetAccessible.cs │ │ ├── NetService.cs │ │ └── Packets │ │ └── InvokePackage.cs ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── Thirtparty │ ├── WebSockets │ │ ├── ByteOrder.cs │ │ ├── CloseEventArgs.cs │ │ ├── CloseStatusCode.cs │ │ ├── CompressionMethod.cs │ │ ├── ErrorEventArgs.cs │ │ ├── Ext.cs │ │ ├── Fin.cs │ │ ├── Handshake.cs │ │ ├── Mask.cs │ │ ├── MessageEventArgs.cs │ │ ├── Net │ │ │ ├── AuthenticationSchemeSelector.cs │ │ │ ├── AuthenticationSchemes.cs │ │ │ ├── ChunkStream.cs │ │ │ ├── ChunkedInputStream.cs │ │ │ ├── Cookie.cs │ │ │ ├── CookieCollection.cs │ │ │ ├── CookieException.cs │ │ │ ├── EndPointListener.cs │ │ │ ├── EndPointManager.cs │ │ │ ├── HttpConnection.cs │ │ │ ├── HttpHeaderInfo.cs │ │ │ ├── HttpHeaderType.cs │ │ │ ├── HttpListener.cs │ │ │ ├── HttpListenerContext.cs │ │ │ ├── HttpListenerException.cs │ │ │ ├── HttpListenerPrefixCollection.cs │ │ │ ├── HttpListenerRequest.cs │ │ │ ├── HttpListenerResponse.cs │ │ │ ├── HttpStatusCode.cs │ │ │ ├── HttpStreamAsyncResult.cs │ │ │ ├── HttpUtility.cs │ │ │ ├── HttpVersion.cs │ │ │ ├── ListenerAsyncResult.cs │ │ │ ├── ListenerPrefix.cs │ │ │ ├── RequestStream.cs │ │ │ ├── ResponseStream.cs │ │ │ ├── Security │ │ │ │ └── SslStream.cs │ │ │ ├── WebHeaderCollection.cs │ │ │ └── WebSockets │ │ │ │ ├── HttpListenerWebSocketContext.cs │ │ │ │ ├── TcpListenerWebSocketContext.cs │ │ │ │ └── WebSocketContext.cs │ │ ├── Opcode.cs │ │ ├── PayloadData.cs │ │ ├── RequestHandshake.cs │ │ ├── ResponseHandshake.cs │ │ ├── Rsv.cs │ │ ├── Server │ │ │ ├── HttpRequestEventArgs.cs │ │ │ ├── HttpServer.cs │ │ │ ├── IServiceHost.cs │ │ │ ├── ServiceHostManager.cs │ │ │ ├── WebSocketServer.cs │ │ │ ├── WebSocketServerBase.cs │ │ │ ├── WebSocketService.cs │ │ │ ├── WebSocketServiceHost.cs │ │ │ └── WebSocketServiceManager.cs │ │ ├── WebSocket.cs │ │ ├── WebSocketException.cs │ │ ├── WsFrame.cs │ │ ├── WsState.cs │ │ └── WsStream.cs │ └── fastJSON │ │ ├── Formatter.cs │ │ ├── Getters.cs │ │ ├── JSON.cs │ │ ├── JsonParser.cs │ │ ├── JsonSerializer.cs │ │ ├── Reflection.cs │ │ └── SafeDictionary.cs ├── bin │ └── Debug │ │ ├── Gamedata │ │ └── Rooms │ │ │ ├── model1.json │ │ │ ├── model1.map │ │ │ ├── model2.map │ │ │ ├── model3.map │ │ │ └── model4.map │ │ ├── LOVC.exe │ │ ├── LOVC.exe.mdb │ │ ├── LOVC.pdb │ │ ├── LOVC.vshost.exe │ │ ├── LOVC.vshost.exe.manifest │ │ └── htdocs │ │ ├── css │ │ ├── Game.css │ │ ├── bootstrap.min.css │ │ ├── default.css │ │ ├── font-awesome-ie7.css │ │ ├── font-awesome-ie7.min.css │ │ ├── font-awesome.css │ │ ├── font-awesome.min.css │ │ └── terminal.css │ │ ├── font │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ └── fontawesome-webfont.woff │ │ ├── gamedata │ │ ├── character │ │ │ ├── clothes │ │ │ │ ├── 1.png │ │ │ │ └── 1.psd │ │ │ └── model │ │ │ │ ├── 0.png │ │ │ │ ├── 0.png.json │ │ │ │ ├── 1.png │ │ │ │ ├── 3.png │ │ │ │ ├── 3.png.json │ │ │ │ ├── Character.png │ │ │ │ ├── Character.psd │ │ │ │ ├── Character_r2.psd │ │ │ │ ├── Character_r3.psd │ │ │ │ ├── Character_r4.psd │ │ │ │ ├── Character_r5.psd │ │ │ │ ├── Character_r6.psd │ │ │ │ ├── Character_r7.png │ │ │ │ ├── Character_r7.psd │ │ │ │ ├── Character_r8.psd │ │ │ │ ├── DENFER.png.json │ │ │ │ ├── DENFER2.png │ │ │ │ ├── LOVC_Character.psd │ │ │ │ ├── actor1m.png │ │ │ │ ├── box.psd │ │ │ │ ├── char.png │ │ │ │ ├── char.psd │ │ │ │ ├── char_sit.png │ │ │ │ ├── char_sit.psd │ │ │ │ ├── female.png │ │ │ │ ├── head.png │ │ │ │ ├── head │ │ │ │ └── Character.png │ │ │ │ ├── headMask.png │ │ │ │ ├── headMask.psd │ │ │ │ ├── loading.png │ │ │ │ ├── loading.psd │ │ │ │ ├── male.png │ │ │ │ ├── r.png │ │ │ │ ├── rel.png │ │ │ │ └── sit.png │ │ ├── crud │ │ │ ├── 00.png │ │ │ ├── 18316.jpg │ │ │ ├── 76448_492257947485034_478192062_n.png │ │ │ ├── BE2.gif │ │ │ ├── BOT.gif │ │ │ ├── Untitled-1.psd │ │ │ ├── Untitled-2.psd │ │ │ ├── Z63.gif │ │ │ ├── block.png │ │ │ ├── block.png.json │ │ │ ├── block.psd │ │ │ ├── block2.png │ │ │ ├── block2.psd │ │ │ ├── block_x.png │ │ │ ├── block_x.png.json │ │ │ ├── block_x.png.poly.png │ │ │ ├── block_x.psd │ │ │ ├── box.png │ │ │ ├── box.png.json │ │ │ ├── box.psd │ │ │ ├── char.psd │ │ │ ├── compass.png │ │ │ ├── computer_laptop.gif │ │ │ ├── computer_laptop.png │ │ │ ├── desk.png │ │ │ ├── desk.png.json │ │ │ ├── desk.psd │ │ │ ├── desk_1.gif │ │ │ ├── fFspT.png │ │ │ ├── form.png │ │ │ ├── hc2_carpet.png │ │ │ ├── hc2_carpet.png.json │ │ │ ├── jszq84 — копия.png │ │ │ ├── jszq84.png │ │ │ ├── laptop.png │ │ │ ├── laptop.png.json │ │ │ ├── navbar.png │ │ │ ├── navbar.psd │ │ │ ├── rwallhy.png │ │ │ ├── rwallhy.png.json │ │ │ ├── rwallx.png │ │ │ ├── rwallx.png.json │ │ │ ├── rwallx_e.png │ │ │ ├── rwallxd.png │ │ │ ├── rwallxd.png.json │ │ │ ├── rwallxy.png │ │ │ ├── rwallxy.psd │ │ │ ├── rwallxy2.psd │ │ │ ├── rwallxy_e.png │ │ │ ├── rwallxy_e.psd │ │ │ ├── rwallxy_ne.psd │ │ │ ├── rwally.png │ │ │ ├── rwally.png.json │ │ │ ├── rwally.psd │ │ │ ├── rwally_e.png │ │ │ ├── rwally_h.png │ │ │ ├── screen.png │ │ │ ├── screen2.png │ │ │ ├── sofa.gif │ │ │ ├── sofa.png │ │ │ ├── sofa.png.json │ │ │ ├── sofa.psd │ │ │ ├── sofar.png │ │ │ ├── sofar.psd │ │ │ ├── sofax.png │ │ │ ├── sofax.psd │ │ │ ├── sofaxd.png │ │ │ ├── tile.png │ │ │ ├── tile.png.json │ │ │ ├── tile.psd │ │ │ ├── vcity_x.png │ │ │ ├── waasa_desk.gif │ │ │ ├── waasa_desk.png │ │ │ ├── waasa_table_1.gif │ │ │ ├── wall.png │ │ │ ├── wall.png.json │ │ │ ├── wall.psd │ │ │ ├── wall_rx.png │ │ │ ├── wall_rx.png.json │ │ │ ├── wall_x.png │ │ │ ├── wall_x.png.json │ │ │ ├── wall_x.psd │ │ │ ├── wall_x2.png │ │ │ ├── wall_x2.png.json │ │ │ ├── wall_xy.png │ │ │ ├── wall_xy.png.json │ │ │ ├── wall_xy.psd │ │ │ ├── wall_y.png │ │ │ ├── wall_y.png.json │ │ │ ├── wallf.png.json │ │ │ ├── wallf.psd │ │ │ ├── wallfx.png │ │ │ ├── wallfxy.png │ │ │ ├── wallfxy.png.json │ │ │ ├── wallfxy.psd │ │ │ ├── wallfy.png │ │ │ ├── wallfy.png.json │ │ │ ├── wallfy.psd │ │ │ ├── wally.png │ │ │ ├── wally.psd │ │ │ └── wallye.png │ │ ├── furni │ │ │ ├── area_sofa.json │ │ │ ├── area_sofa.png │ │ │ ├── picture.json │ │ │ └── picture.png │ │ └── gui │ │ │ ├── box_btn.png │ │ │ ├── chat-bubble.png │ │ │ ├── games_btn.png │ │ │ ├── head.png │ │ │ ├── rooms.gif │ │ │ ├── shark_btn.png │ │ │ ├── spider_btn.png │ │ │ └── star_btn.png │ │ ├── imagesx │ │ ├── black-icons.png │ │ ├── vCity.png │ │ ├── vCity.psd │ │ ├── vk.png │ │ ├── white-icons.png │ │ └── wiDeYHqa-4o.jpg │ │ ├── img │ │ ├── glyphicons-halflings-white.png │ │ ├── glyphicons-halflings.png │ │ └── load.gif │ │ ├── index.html │ │ ├── js │ │ ├── bootstrap.js │ │ └── bootstrap.min.js │ │ └── scripts │ │ ├── Actor.js │ │ ├── Block.js │ │ ├── Box2D.js │ │ ├── Box2D │ │ ├── .gitignore │ │ ├── README.md │ │ ├── angryshapes.js │ │ ├── box2d.js │ │ ├── changelog.txt │ │ ├── demo1.html │ │ ├── demo2.html │ │ ├── demo2.js │ │ ├── demo3.html │ │ ├── demo3.js │ │ ├── demo4.html │ │ ├── img │ │ │ ├── ball.png │ │ │ ├── shapes.png │ │ │ ├── shapesBig.png │ │ │ └── turret.png │ │ ├── libs │ │ │ ├── Box2dWeb-2.1.a.3.js │ │ │ └── crafty.js │ │ ├── package.json │ │ ├── pong.js │ │ ├── test.html │ │ └── test.js │ │ ├── BoxOverlays.js │ │ ├── Chat.js │ │ ├── Chat_bak.js │ │ ├── GameObject.js │ │ ├── HUD.js │ │ ├── InfoBox.js │ │ ├── Inventory.js │ │ ├── Isometric.js │ │ ├── Navigation.js │ │ ├── Network │ │ └── Network.js │ │ ├── RealDelay.js │ │ ├── Space.js │ │ ├── Sprite.js │ │ ├── SpriteColor.js │ │ ├── astar.js │ │ ├── bootbox.js │ │ ├── bootstrap.js │ │ ├── bootstrap.min.js │ │ ├── config.js │ │ ├── core.js │ │ ├── crafty.js │ │ ├── crafty.min.js │ │ ├── dterm.js │ │ ├── ext-all.js │ │ ├── game.js │ │ ├── game2.js │ │ ├── graph.js │ │ ├── input.js │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ ├── lang.ru.js │ │ ├── localization.js │ │ ├── mousewheel.js │ │ ├── rainbow.min.js │ │ ├── terminal.js │ │ ├── terminal.min.js │ │ ├── tilda.js │ │ └── utils.js └── obj │ └── x86 │ └── Debug │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ ├── LOVC.csproj.FileListAbsolute.txt │ ├── LOVC.csprojResolveAssemblyReference.cache │ ├── LOVC.exe │ └── LOVC.pdb └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Standard to msysgit 13 | *.doc diff=astextplain 14 | *.DOC diff=astextplain 15 | *.docx diff=astextplain 16 | *.DOCX diff=astextplain 17 | *.dot diff=astextplain 18 | *.DOT diff=astextplain 19 | *.pdf diff=astextplain 20 | *.PDF diff=astextplain 21 | *.rtf diff=astextplain 22 | *.RTF diff=astextplain 23 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # ========================= 18 | # Operating System Files 19 | # ========================= 20 | 21 | # OSX 22 | # ========================= 23 | 24 | .DS_Store 25 | .AppleDouble 26 | .LSOverride 27 | 28 | # Icon must end with two \r 29 | Icon 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear on external disk 35 | .Spotlight-V100 36 | .Trashes 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | -------------------------------------------------------------------------------- /LOVC.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LOVC", "LOVC\LOVC.csproj", "{34D3A851-4212-4851-AC66-5D62DA3EEA5A}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|x86 = Debug|x86 9 | Release|x86 = Release|x86 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {34D3A851-4212-4851-AC66-5D62DA3EEA5A}.Debug|x86.ActiveCfg = Debug|x86 13 | {34D3A851-4212-4851-AC66-5D62DA3EEA5A}.Debug|x86.Build.0 = Debug|x86 14 | {34D3A851-4212-4851-AC66-5D62DA3EEA5A}.Release|x86.ActiveCfg = Release|x86 15 | {34D3A851-4212-4851-AC66-5D62DA3EEA5A}.Release|x86.Build.0 = Release|x86 16 | EndGlobalSection 17 | GlobalSection(MonoDevelopProperties) = preSolution 18 | StartupItem = LOVC\LOVC.csproj 19 | Policies = $0 20 | $0.TextStylePolicy = $1 21 | $1.inheritsSet = VisualStudio 22 | $1.inheritsScope = text/plain 23 | $1.scope = text/x-csharp 24 | $0.CSharpFormattingPolicy = $2 25 | $2.IndentSwitchBody = True 26 | $2.AnonymousMethodBraceStyle = NextLine 27 | $2.PropertyBraceStyle = NextLine 28 | $2.PropertyGetBraceStyle = NextLine 29 | $2.PropertySetBraceStyle = NextLine 30 | $2.EventBraceStyle = NextLine 31 | $2.EventAddBraceStyle = NextLine 32 | $2.EventRemoveBraceStyle = NextLine 33 | $2.StatementBraceStyle = NextLine 34 | $2.ArrayInitializerBraceStyle = NextLine 35 | $2.BeforeMethodDeclarationParentheses = False 36 | $2.BeforeMethodCallParentheses = False 37 | $2.BeforeConstructorDeclarationParentheses = False 38 | $2.BeforeDelegateDeclarationParentheses = False 39 | $2.NewParentheses = False 40 | $2.inheritsSet = Mono 41 | $2.inheritsScope = text/x-csharp 42 | $2.scope = text/x-csharp 43 | EndGlobalSection 44 | EndGlobal 45 | -------------------------------------------------------------------------------- /LOVC.userprefs: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | OnRequest 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /LOVC.v12.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC.v12.suo -------------------------------------------------------------------------------- /LOVC/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("LOVC")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("DENFER")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.0.*")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /LOVC/Gamedata/Rooms/model1.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 8 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 9 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 10 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 12 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 13 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 14 | 15 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 22 | 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/Gamedata/Rooms/model2.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 2 | 1 0 0 0 0 0 0 0 0 0 3 | -1 0 0 1 1 1 0 0 0 0 4 | 1 0 0 1 1 1 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 1 0 1 0 1 1 1 1 1 1 8 | 1 0 0 0 1 1 1 1 1 1 9 | 10 | 0 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 12 | 3 3 3 0 0 0 3 3 3 3 13 | 0 3 3 0 0 0 3 3 3 3 14 | 0 3 3 3 3 3 3 3 3 3 15 | 0 3 3 3 3 3 3 3 3 3 16 | 0 3 0 3 0 0 0 0 0 0 17 | 0 3 3 3 0 0 0 0 0 0 18 | 19 | 0 4 0 0 0 0 0 0 0 0 20 | 0 4 0 0 0 0 0 0 0 0 21 | 0 6 0 0 0 0 0 0 0 0 22 | 0 4 0 0 0 0 0 0 0 0 23 | 0 4 0 0 0 0 0 0 0 0 24 | 0 4 0 0 0 0 0 0 0 0 25 | 0 4 0 0 0 0 0 0 0 0 26 | 0 5 0 0 0 0 0 0 0 0 27 | 28 | 0 7 7 7 7 7 7 7 7 8 29 | 0 0 0 0 0 0 0 0 0 0 30 | 0 0 0 0 0 0 0 0 0 0 31 | 0 0 0 0 0 0 0 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 33 | 0 0 0 0 0 0 0 0 0 0 34 | 0 0 0 0 0 0 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/Gamedata/Rooms/model3.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 2 | -1 0 0 0 0 0 0 0 0 0 3 | 1 0 0 0 0 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 8 | 0 3 3 3 3 3 3 3 3 3 9 | 3 3 3 3 3 3 3 3 3 3 10 | 0 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 12 | 0 3 3 3 3 3 3 3 3 3 13 | 0 3 3 3 3 3 3 3 3 3 14 | 15 | 0 4 0 0 0 0 0 0 0 0 16 | 0 6 0 0 0 0 0 0 0 0 17 | 0 4 0 0 0 0 0 0 0 0 18 | 0 4 0 0 0 0 0 0 0 0 19 | 0 4 0 0 0 0 0 0 0 0 20 | 0 5 0 0 0 0 0 0 0 0 21 | 22 | 0 7 7 7 7 7 7 7 7 8 23 | 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/Gamedata/Rooms/model4.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 1 0 0 0 0 0 2 | 1 0 0 0 1 0 0 0 0 0 3 | 1 1 1 1 1 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 5 | -1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 1 0 0 0 0 0 0 0 0 0 8 | 1 0 0 0 0 0 0 0 0 0 9 | 1 0 0 0 0 0 0 0 0 0 10 | 11 | 0 0 0 0 0 3 3 3 3 3 12 | 0 0 0 0 0 3 3 3 3 3 13 | 0 0 0 0 0 3 3 3 3 3 14 | 0 3 3 3 3 3 3 3 3 3 15 | 3 3 3 3 3 3 3 3 3 3 16 | 0 3 3 3 3 3 3 3 3 3 17 | 0 3 3 3 3 3 3 3 3 3 18 | 0 3 3 3 3 3 3 3 3 3 19 | 0 3 3 3 3 3 3 3 3 3 20 | 21 | 0 0 0 0 0 4 0 0 0 0 22 | 0 0 0 0 0 4 0 0 0 0 23 | 0 0 0 0 0 4 0 0 0 0 24 | 0 4 0 0 0 0 0 0 0 0 25 | 0 6 0 0 0 0 0 0 0 0 26 | 0 4 0 0 0 0 0 0 0 0 27 | 0 4 0 0 0 0 0 0 0 0 28 | 0 4 0 0 0 0 0 0 0 0 29 | 0 5 0 0 0 0 0 0 0 0 30 | 31 | 0 0 0 0 0 7 7 7 7 8 32 | 0 0 0 0 0 0 0 0 0 0 33 | 0 0 0 0 0 0 0 0 0 0 34 | 0 7 7 7 7 0 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 36 | 0 0 0 0 0 0 0 0 0 0 37 | 0 0 0 0 0 0 0 0 0 0 38 | 0 0 0 0 0 0 0 0 0 0 39 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/LOVC/Chat/SayMode.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public enum SayMode 6 | { 7 | Normal = 0, 8 | Shout = 1, 9 | Whisper = 2, 10 | Action = 3 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /LOVC/LOVC/GameService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | 5 | using WebSocketSharp; 6 | 7 | namespace LOVC 8 | { 9 | public class GameService : NetService 10 | { 11 | public static Players players = new Players(); 12 | protected Player player; 13 | protected bool authenticated = false; 14 | 15 | protected override void connect() 16 | { 17 | try 18 | { 19 | var id = DateTime.Now.Millisecond; 20 | var auth_key = "empty"; 21 | authenticated = true; 22 | 23 | /* Real authentication for VK social 24 | var id = Convert.ToInt32(Query("viewer_id")); 25 | var auth_key = Query("auth_key"); 26 | VK.Authenticate(id, auth_key); 27 | */ 28 | 29 | 30 | if (authenticated) 31 | { 32 | if (players.ContainsKey(id)) 33 | { 34 | players [id].connection.Kick("You already connected from other window"); 35 | players.Remove(id); 36 | } 37 | var info = VK.getInfo(id); 38 | player = new Player(){ connection = this, id = Convert.ToInt32(id), name = info.first_name, room = RoomManager.lobby }; 39 | player.Initialize(); 40 | players.Add(player.id, player); 41 | return; 42 | } 43 | Kick("Invalid auth key"); 44 | } catch (Exception e) 45 | { 46 | Console.WriteLine("[GameService:Exception] " + e); 47 | } 48 | 49 | Kick("Invalid identifier"); 50 | } 51 | 52 | protected override void disconnect(CloseEventArgs e) 53 | { 54 | if (authenticated) 55 | { 56 | player.room.Leave(player, LeaveReason.Disconnect); 57 | players.Remove(player.id); 58 | } 59 | } 60 | 61 | [NetAccessible] 62 | public void GetRooms() 63 | { 64 | var list = new List(); 65 | foreach (var room in RoomManager.rooms) 66 | list.Add(room.Value.info); 67 | Invoke("RoomList", list); 68 | list.Clear(); 69 | list = null; 70 | } 71 | 72 | [NetAccessible] 73 | public void PlayerSay(string message, int mode){ 74 | player.room.Chat(player, message, (SayMode)mode); 75 | } 76 | 77 | [NetAccessible] 78 | public void gotoRoom(string roomId) 79 | { 80 | var room = RoomManager.Get(roomId); 81 | if (room != null) 82 | player.room = room; 83 | } 84 | 85 | [NetAccessible] 86 | public void playerMove(int x, int y){ 87 | Console.WriteLine("MOVE PLAYER TO: {0}x{1}", x, y); 88 | player.room.Move(player, x,y); 89 | } 90 | 91 | [NetAccessible] 92 | public void onlines(){ 93 | Console.WriteLine("Onlines called"); 94 | Invoke("count", players.Count); 95 | } 96 | } 97 | } 98 | 99 | -------------------------------------------------------------------------------- /LOVC/LOVC/Player/Player.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public class Player 6 | { 7 | public string name { get; set; } 8 | public int id { get; set; } 9 | public GameService connection { get; set; } 10 | public Vector3 position = new Vector3(); 11 | protected Room _room = null; 12 | public VKClient VKCli; 13 | public Room room 14 | { 15 | get 16 | { 17 | return _room; 18 | } 19 | 20 | set 21 | { 22 | if(_room != null) 23 | _room.Leave(this); 24 | value.Join(this, _room); 25 | _room = value; 26 | } 27 | } 28 | 29 | public void Initialize() 30 | { 31 | connection.Invoke("Initialize", id); 32 | Console.WriteLine(room); 33 | // room.Join(this); 34 | } 35 | 36 | /*public void move(int x, int y){ 37 | // position.x = x; 38 | // position.y = y; 39 | foreach (var player in room.players) 40 | connection.Invoke("PlayerMove", player.Value.id, x, y); 41 | } 42 | 43 | public void Spawn(Vector3 Position) 44 | { 45 | this.position = Position; 46 | foreach (var player in room.players) 47 | if(player.Value.id != id) 48 | player.Value.connection.Invoke("PlayerSpawn", id, name, position); 49 | 50 | foreach (var player in room.players) 51 | if(player.Value.id != id) 52 | connection.Invoke("PlayerSpawn", player.Value.id, player.Value.name, player.Value.position); 53 | }*/ 54 | } 55 | } 56 | 57 | -------------------------------------------------------------------------------- /LOVC/LOVC/Player/Players.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace LOVC 5 | { 6 | public class Players : Dictionary 7 | { 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/LeaveReason.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public enum LeaveReason 6 | { 7 | SwitchRoom, 8 | Disconnect 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/LocationType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public enum LocationType 6 | { 7 | Spawn = -1, 8 | Invalid = -9 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/Room.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | 5 | using fastJSON; 6 | 7 | namespace LOVC 8 | { 9 | public class Room 10 | { 11 | public RoomInfo info; 12 | public Vector3 spawn 13 | { 14 | get { 15 | if (model != null) 16 | if (model.spawn != null) 17 | return model.spawn; 18 | return Vector3.Zero; 19 | } 20 | set { } 21 | } 22 | public List moderators = new List(); 23 | public Players players = new Players(); 24 | 25 | public RoomModel model; 26 | 27 | public Room() 28 | { 29 | 30 | } 31 | 32 | public Room(string modelName) 33 | { 34 | loadModel(modelName); 35 | } 36 | 37 | public Room loadModel(string name) 38 | { 39 | model = RoomModel.loadFrom(name); 40 | return this; 41 | } 42 | 43 | public virtual void Move(Player player, int x, int y) 44 | { 45 | player.position.x = x; 46 | player.position.y = y; 47 | 48 | foreach (var pl in players) 49 | if(pl.Value.id != player.id) 50 | pl.Value.connection.Invoke("PlayerMove", player.id, x, y); 51 | } 52 | 53 | public virtual void Chat(Player player, string message, SayMode mode) 54 | { 55 | Console.WriteLine("Player {0} say {1} ({2})", player.name, message, mode); 56 | if ((message.StartsWith("/") || message.StartsWith("!")) && message.Length > 1) 57 | { 58 | Command(player, message.Substring(1).Split(new[]{' '}, 2), mode); 59 | return; 60 | } 61 | foreach (var pl in players) 62 | if(pl.Value.id != player.id) 63 | pl.Value.connection.Invoke("PlayerSay", player.id, message, mode); 64 | } 65 | 66 | public virtual void Command(Player player, string[] command, SayMode mode = SayMode.Normal) 67 | { 68 | if (command[0].ToLower() == "me" && command.Length > 1) 69 | { 70 | foreach (var pl in players) 71 | if(pl.Value.id != player.id) 72 | pl.Value.connection.Invoke("PlayerSay", player.id, command[1], SayMode.Action); 73 | } 74 | } 75 | 76 | public virtual void Join(Player player, Room fromRoom = null) 77 | { 78 | info.count++; 79 | players [player.id] = player; 80 | 81 | player.connection.Invoke("RoomJoin", info.id, model.map, model.spawn); 82 | 83 | player.position.x = spawn.x; 84 | player.position.y = spawn.y; 85 | 86 | 87 | foreach (var pl in players) 88 | if(pl.Value.id != player.id) 89 | pl.Value.connection.Invoke("PlayerSpawn", player.id, player.name, spawn); 90 | 91 | foreach (var pl in players) 92 | if(pl.Value.id != player.id) 93 | player.connection.Invoke("PlayerSpawn", pl.Value.id, pl.Value.name, pl.Value.position); 94 | 95 | Console.WriteLine("Player {0} join to room {1} from {2}", player.name, info.name, fromRoom != null ? fromRoom.info.name : "black hole"); 96 | } 97 | 98 | public virtual void Leave(Player player, LeaveReason reason = LeaveReason.SwitchRoom) 99 | { 100 | info.count--; 101 | if(players.ContainsKey(player.id)) 102 | players.Remove(player.id); 103 | Console.WriteLine("Player " + player.id + " leave " + info.name); 104 | foreach (var pl in players) 105 | { 106 | pl.Value.connection.Invoke("PlayerDestroy", player.id); 107 | player.connection.Invoke("PlayerDestroy", pl.Value.id); 108 | player = null; 109 | } 110 | // InvokeGlobal("playerDestroy", player.id); 111 | } 112 | } 113 | } 114 | 115 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/RoomInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public struct RoomInfo 6 | { 7 | public string id; 8 | public string name; 9 | public string description; 10 | public int likes; 11 | public int dislikes; 12 | public int owner; 13 | public int count; 14 | public int capacity; 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/RoomManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace LOVC 5 | { 6 | public static class RoomManager 7 | { 8 | public static Dictionary rooms = new Dictionary(); 9 | public static Room lobby { get; set; } 10 | public static Room createRoom(string id, string model, int owner) 11 | { 12 | var r = new Room(model) { info = new RoomInfo(){ id = id, name = id, owner = owner, count = 0, capacity = 200 } }; 13 | rooms.Add( id, r ); 14 | return r; 15 | } 16 | 17 | public static Room Get(string id) 18 | { 19 | if (rooms.ContainsKey(id)) 20 | return rooms [id]; 21 | return null; 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /LOVC/LOVC/Room/RoomModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | using System.Collections.Generic; 4 | 5 | namespace LOVC 6 | { 7 | public class RoomModel 8 | { 9 | protected int[][][] model; 10 | public Vector3 spawn { get; protected set; } 11 | public string map; 12 | 13 | public RoomModel() 14 | { 15 | 16 | } 17 | 18 | public RoomModel(string modelObject) 19 | { 20 | load(modelObject); 21 | } 22 | 23 | public int this[int layer, int x, int y]{ 24 | get { 25 | try 26 | { 27 | return model[layer][x][y]; 28 | } catch (Exception ex) { 29 | #if DEBUG 30 | Console.WriteLine(ex); 31 | #endif 32 | } 33 | return (int)LocationType.Invalid; 34 | } 35 | 36 | set { 37 | try 38 | { 39 | model[layer][x][y] = value; 40 | } catch (Exception ex) { 41 | #if DEBUG 42 | Console.WriteLine(ex); 43 | #endif 44 | } 45 | } 46 | } 47 | 48 | public void regenerate() 49 | { 50 | map = fastJSON.JSON.Instance.ToJSON(model); 51 | } 52 | 53 | public static RoomModel loadFrom(string name) 54 | { 55 | var file = Environment.CurrentDirectory + "/Gamedata/Rooms/" + name + ".map"; 56 | RoomModel roomModel = null; 57 | if(File.Exists(file)) 58 | roomModel = new RoomModel(File.ReadAllText(file)); 59 | return roomModel; 60 | } 61 | 62 | public RoomModel load(string modelObject) 63 | { 64 | var lines = modelObject.Replace("\r", "").Split('\n'); 65 | int layerId = 0, layers = 1, vertical = 0, horisontal = 0, y = 0; 66 | for (var lineId = 0; lineId < lines.Length; lineId++) 67 | { 68 | var line = lines [lineId].Trim(); 69 | if (layers == 1 && vertical == 0) 70 | horisontal = line.Split(' ').Length; 71 | if (layers == 1) 72 | vertical++; 73 | if (line.Length <= 0) 74 | layers++; 75 | } 76 | model = new int[layers][][]; 77 | for (var l = 0; l < layers; l++) 78 | { 79 | model [l] = new int[horisontal][]; 80 | for(var h = 0; h < horisontal; h++) 81 | model[l][h] = new int[vertical]; 82 | } 83 | for (var lineId = 0; lineId < lines.Length; lineId++) 84 | { 85 | var line = lines[lineId].Trim(); 86 | if (line.Length <= 0) 87 | { 88 | y = 0; 89 | layerId++; 90 | continue; 91 | } 92 | var locs = line.Split(' '); 93 | for (var x = 0; x < horisontal; x++) 94 | { 95 | var loc = Convert.ToInt32(locs[x]); 96 | if (loc == (int)LocationType.Spawn) 97 | spawn = new Vector3(x, y, 0); 98 | model [layerId] [x] [y] = loc; 99 | } 100 | y++; 101 | } 102 | regenerate(); 103 | return this; 104 | } 105 | } 106 | } 107 | 108 | -------------------------------------------------------------------------------- /LOVC/Platform/Utils/HttpClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Net; 5 | using System.Text; 6 | 7 | namespace LOVC 8 | { 9 | public class HttpClient 10 | { 11 | public string ClientName = "LOVC Server Wrapper"; 12 | private readonly CookieContainer _cookies = new CookieContainer(); 13 | public string Post(string address){ 14 | return Post (address, ""); 15 | } 16 | public string Post(string address, string data) 17 | { 18 | ServicePointManager.Expect100Continue = false; 19 | var result = ""; 20 | var request = (HttpWebRequest)WebRequest.Create(address); 21 | request.CookieContainer = _cookies; 22 | request.Method = "POST"; 23 | request.UserAgent = ClientName; 24 | request.ContentType = "application/x-www-form-urlencoded"; 25 | using (Stream requestStream = request.GetRequestStream()) 26 | using (StreamWriter writer = new StreamWriter(requestStream)) 27 | { 28 | writer.Write(data); 29 | } 30 | using (var responseStream = request.GetResponse().GetResponseStream()) 31 | if (responseStream != null) 32 | using (var reader = new StreamReader(responseStream)) 33 | result = reader.ReadToEnd(); 34 | request = null; 35 | return result; 36 | } 37 | 38 | public string Get(string address) 39 | { 40 | ServicePointManager.Expect100Continue = false; 41 | var result = ""; 42 | var request = (HttpWebRequest)WebRequest.Create(address); 43 | request.CookieContainer = _cookies; 44 | request.Method = "GET"; 45 | request.UserAgent = ClientName; 46 | using (var responseStream = request.GetResponse().GetResponseStream()) 47 | if (responseStream != null) 48 | using (var reader = new StreamReader(responseStream)) 49 | result = reader.ReadToEnd(); 50 | request = null; 51 | return result; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /LOVC/Platform/Utils/MD5.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using System.Security.Cryptography; 4 | 5 | namespace LOVC 6 | { 7 | public static class MD5 8 | { 9 | public static string Encode(string input) 10 | { 11 | var result = string.Empty; 12 | foreach (var b in new MD5CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(input))) 13 | result += b.ToString("X2").ToLower(); 14 | return result; 15 | } 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /LOVC/Platform/VK/Responses/Response.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public struct Response 6 | { 7 | public T response; 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /LOVC/Platform/VK/Responses/UserInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public struct UserInfo 6 | { 7 | public int uid; 8 | public string first_name; 9 | public string last_name; 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /LOVC/Platform/VK/VK.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace LOVC 5 | { 6 | public class VK 7 | { 8 | private static int AppId = 0; 9 | private static string AppSecret = ""; 10 | public static bool Authenticate(int viewer_id, string auth_key) 11 | { 12 | return MD5.Encode(AppId + "_" + viewer_id + "_" + AppSecret) == auth_key; 13 | } 14 | public static UserInfo getInfo(int id) 15 | { 16 | try 17 | { 18 | var client = new HttpClient(); 19 | var json = client.Get("https://api.vk.com/method/users.get?uid=" + id); 20 | var uinfo = fastJSON.JSON.Instance.ToObject>>(json); 21 | client = null; 22 | return uinfo.response[0]; 23 | } catch(Exception ex) { 24 | Console.WriteLine(ex); 25 | } 26 | return default(UserInfo); 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /LOVC/Platform/VK/VKClient.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public class VKClient 6 | { 7 | protected HttpClient client = new HttpClient(); 8 | 9 | public VKClient(string access_token) 10 | { 11 | 12 | } 13 | 14 | public static T API(string method, string args) 15 | { 16 | try 17 | { 18 | 19 | } catch { 20 | } 21 | return default(T); 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /LOVC/Platform/Vectors/Vector2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public class Vector2 6 | { 7 | public static readonly Vector2 Zero = new Vector2(); 8 | 9 | public int x = 0, y = 0; 10 | 11 | public Vector2() 12 | { 13 | } 14 | 15 | public Vector2(int x, int y) 16 | { 17 | this.x = y; 18 | this.y = y; 19 | } 20 | } 21 | } 22 | 23 | -------------------------------------------------------------------------------- /LOVC/Platform/Vectors/Vector3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public class Vector3 6 | { 7 | public static readonly Vector3 Zero = new Vector3(); 8 | 9 | public int x = 0, y = 0, z = 0; 10 | 11 | public Vector3() 12 | { 13 | } 14 | 15 | public Vector3(int x, int y) 16 | { 17 | this.x = y; 18 | this.y = y; 19 | } 20 | 21 | public Vector3(int x, int y, int z) 22 | { 23 | this.x = x; 24 | this.y = y; 25 | this.z = z; 26 | } 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /LOVC/Platform/WebSockets/NetAccessible.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public class NetAccessible : Attribute { } 6 | } -------------------------------------------------------------------------------- /LOVC/Platform/WebSockets/NetService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Collections.Specialized; 5 | using System.Reflection; 6 | 7 | using WebSocketSharp; 8 | using WebSocketSharp.Server; 9 | 10 | using fastJSON; 11 | 12 | namespace LOVC 13 | { 14 | public class NetService : WebSocketService 15 | { 16 | protected virtual void connect(){} 17 | protected virtual void disconnect(CloseEventArgs e){} 18 | 19 | protected override void OnOpen() 20 | { 21 | this.connect(); 22 | } 23 | 24 | protected override void OnClose(CloseEventArgs e) 25 | { 26 | this.disconnect(e); 27 | } 28 | 29 | protected void Kick(string reason = "No reason") 30 | { 31 | Invoke("Kick", reason); 32 | Stop(); 33 | } 34 | 35 | protected string Query(string key){ 36 | if (QueryString.Contains(key)) 37 | return QueryString [key]; 38 | return null; 39 | } 40 | 41 | protected string Invoke_package(string function, object[] args) 42 | { 43 | var Packet = new InvokePackage() 44 | { 45 | function = function, 46 | args = args 47 | }; 48 | return JSON.Instance.ToJSON(Packet); 49 | } 50 | 51 | public void Invoke(string function, params object[] args) 52 | { 53 | Send(Invoke_package(function, args)); 54 | } 55 | 56 | public void InvokeGlobal(string function, params object[] args) 57 | { 58 | Broadcast(Invoke_package(function, args)); 59 | } 60 | 61 | protected override void OnMessage(MessageEventArgs e) 62 | { 63 | try { 64 | var packet = JSON.Instance.ToObject(e.Data); 65 | trigger(packet.function, packet.args); 66 | } catch (Exception ex) { 67 | Console.WriteLine(ex); 68 | } 69 | } 70 | 71 | protected void trigger(string function, object[] args) 72 | { 73 | try 74 | { 75 | var methodInfo = GetType().GetMethod(function); 76 | if(methodInfo == null) 77 | return; 78 | var safe = false; 79 | foreach(Object attr in methodInfo.GetCustomAttributes(false)) 80 | if(attr.GetType().Name == "NetAccessible") 81 | safe = true; 82 | if(!safe) 83 | return; 84 | var paramsInfo = methodInfo.GetParameters(); 85 | object[] @params = new object[paramsInfo.Length]; 86 | for(var i = 0; i < paramsInfo.Length; i++) 87 | if (args.Length > i) 88 | @params [i] = JSON.Instance.ToObject((string)args[i], paramsInfo[i].ParameterType); 89 | else 90 | if(!Convert.IsDBNull(paramsInfo[i].DefaultValue)) 91 | @params [i] = paramsInfo[i].DefaultValue; 92 | else 93 | return; 94 | methodInfo.Invoke(this, @params); 95 | } catch (Exception ex) { 96 | Console.WriteLine(ex); 97 | } 98 | } 99 | } 100 | } 101 | 102 | -------------------------------------------------------------------------------- /LOVC/Platform/WebSockets/Packets/InvokePackage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace LOVC 4 | { 5 | public struct InvokePackage 6 | { 7 | public string function; 8 | public object[] args; 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /LOVC/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using WebSocketSharp; 4 | using WebSocketSharp.Net; 5 | using WebSocketSharp.Server; 6 | 7 | namespace LOVC { 8 | class MainClass { 9 | private static HttpServer _httpsv; 10 | public static void Main(string[] args){ 11 | // Main spawn room for all 12 | RoomManager.lobby = RoomManager.createRoom("lobby", "model1", 12075682); 13 | // additional rooms 14 | RoomManager.createRoom("test", "model2", 12075682); 15 | RoomManager.createRoom("ЗБТ комната", "model4", 12075682); 16 | RoomManager.createRoom("GamesHumor :D", "model3", 12075682); 17 | 18 | // http server 19 | _httpsv = new HttpServer(7172); 20 | _httpsv.OnGet += (sender, e) => OnGet(e); 21 | _httpsv.OnError += (sender, e) => Console.WriteLine(e.Message); 22 | 23 | _httpsv.AddWebSocketService("/Game"); 24 | 25 | //var socket = new WebSocketServer(IPAddress.Any, 7421); 26 | //socket.AddWebSocketService("/Game"); 27 | //socket.Start(); 28 | _httpsv.Start(); 29 | Console.ReadLine(); 30 | _httpsv.Stop(); 31 | //socket.Stop(); 32 | } 33 | 34 | private static byte[] GetContent(string path) 35 | { 36 | path = path.Split('?')[0]; 37 | if (path == "/") 38 | path += "index.html"; 39 | return _httpsv.GetFile("./htdocs/"+path); 40 | } 41 | 42 | private static void OnGet(HttpRequestEventArgs eventArgs) 43 | { 44 | var request = eventArgs.Request; 45 | var response = eventArgs.Response; 46 | response.ContentEncoding = Encoding.UTF8; 47 | var content = GetContent(request.RawUrl); 48 | if (content != null) 49 | { 50 | response.WriteContent(content); 51 | return; 52 | } 53 | 54 | response.StatusCode = (int)HttpStatusCode.NotFound; 55 | } 56 | } 57 | } -------------------------------------------------------------------------------- /LOVC/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | 4 | // Information about this assembly is defined by the following attributes. 5 | // Change them to the values specific to your project. 6 | 7 | [assembly: AssemblyTitle("LOVC")] 8 | [assembly: AssemblyDescription("")] 9 | [assembly: AssemblyConfiguration("")] 10 | [assembly: AssemblyCompany("")] 11 | [assembly: AssemblyProduct("")] 12 | [assembly: AssemblyCopyright("DENFER")] 13 | [assembly: AssemblyTrademark("")] 14 | [assembly: AssemblyCulture("")] 15 | 16 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 17 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 18 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 19 | 20 | [assembly: AssemblyVersion("1.0.*")] 21 | 22 | // The following attributes are used to specify the signing key for the assembly, 23 | // if desired. See the Mono documentation for more information about signing. 24 | 25 | //[assembly: AssemblyDelaySign(false)] 26 | //[assembly: AssemblyKeyFile("")] 27 | 28 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/ByteOrder.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * ByteOrder.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Contains the values that indicate whether the byte order is a Little-endian or Big-endian. 35 | /// 36 | public enum ByteOrder : byte 37 | { 38 | /// 39 | /// Indicates a Little-endian. 40 | /// 41 | LITTLE, 42 | /// 43 | /// Indicates a Big-endian. 44 | /// 45 | BIG 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/CloseEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * CloseEventArgs.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using System.Text; 31 | 32 | namespace WebSocketSharp { 33 | 34 | /// 35 | /// Contains the event data associated with a event. 36 | /// 37 | /// 38 | /// The event occurs when the WebSocket receives a close control frame or 39 | /// the WebSocket.Close method is called. If you want to get the reason for closure, you should access 40 | /// the or properties. 41 | /// 42 | public class CloseEventArgs : MessageEventArgs 43 | { 44 | #region Fields 45 | 46 | private bool _clean; 47 | private ushort _code; 48 | private string _reason; 49 | 50 | #endregion 51 | 52 | #region Constructors 53 | 54 | internal CloseEventArgs(PayloadData data) 55 | : base(Opcode.CLOSE, data) 56 | { 57 | _code = getCodeFrom(data); 58 | _reason = getReasonFrom(data); 59 | _clean = false; 60 | } 61 | 62 | #endregion 63 | 64 | #region Properties 65 | 66 | /// 67 | /// Gets the status code for closure. 68 | /// 69 | /// 70 | /// A that contains a status code for closure. 71 | /// 72 | public ushort Code { 73 | get { 74 | return _code; 75 | } 76 | } 77 | 78 | /// 79 | /// Gets the reason for closure. 80 | /// 81 | /// 82 | /// A that contains a reason for closure. 83 | /// 84 | public string Reason { 85 | get { 86 | return _reason; 87 | } 88 | } 89 | 90 | /// 91 | /// Indicates whether the WebSocket connection closed cleanly. 92 | /// 93 | /// 94 | /// true if the WebSocket connection closed cleanly; otherwise, false. 95 | /// 96 | public bool WasClean { 97 | get { 98 | return _clean; 99 | } 100 | 101 | internal set { 102 | _clean = value; 103 | } 104 | } 105 | 106 | #endregion 107 | 108 | #region Private Methods 109 | 110 | private static ushort getCodeFrom(PayloadData data) 111 | { 112 | var appData = data.ApplicationData; 113 | return appData.Length >= 2 114 | ? appData.SubArray(0, 2).To(ByteOrder.BIG) 115 | : (ushort)CloseStatusCode.NO_STATUS_CODE; 116 | } 117 | 118 | private static string getReasonFrom(PayloadData data) 119 | { 120 | var appData = data.ApplicationData; 121 | var appDataLen = appData.Length; 122 | if (appDataLen <= 2) 123 | return String.Empty; 124 | 125 | var buffer = appData.SubArray(2, appDataLen - 2); 126 | return Encoding.UTF8.GetString(buffer); 127 | } 128 | 129 | #endregion 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/CompressionMethod.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * CompressionMethod.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Contains the values of the compression methods used to compress the payload data of the WebSocket Data frame. 35 | /// 36 | /// 37 | /// The CompressionMethod enumeration contains the values of the compression methods defined in 38 | /// Compression Extensions for WebSocket. 39 | /// 40 | public enum CompressionMethod : byte 41 | { 42 | /// 43 | /// Indicates non compression. 44 | /// 45 | NONE, 46 | /// 47 | /// Indicates using DEFLATE. 48 | /// 49 | DEFLATE 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/ErrorEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * ErrorEventArgs.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Contains the event data associated with a error event. 35 | /// 36 | /// 37 | /// The error event occurs when this event sender gets an error. 38 | /// If you want to get the error message, you should access the property. 39 | /// 40 | public class ErrorEventArgs : EventArgs 41 | { 42 | #region Internal Constructors 43 | 44 | internal ErrorEventArgs(string message) 45 | { 46 | Message = message; 47 | } 48 | 49 | #endregion 50 | 51 | #region Public Properties 52 | 53 | /// 54 | /// Gets the error message. 55 | /// 56 | /// 57 | /// A that contains a error message. 58 | /// 59 | public string Message { get; private set; } 60 | 61 | #endregion 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Fin.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * Fin.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | internal enum Fin : byte 34 | { 35 | MORE = 0x0, 36 | FINAL = 0x1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Handshake.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * Handshake.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using System.Collections.Specialized; 31 | using System.Text; 32 | using WebSocketSharp.Net; 33 | 34 | namespace WebSocketSharp { 35 | 36 | internal abstract class Handshake { 37 | 38 | #region Protected Const Fields 39 | 40 | protected const string CrLf = "\r\n"; 41 | 42 | #endregion 43 | 44 | #region Protected Constructors 45 | 46 | protected Handshake() 47 | { 48 | ProtocolVersion = HttpVersion.Version11; 49 | Headers = new NameValueCollection(); 50 | } 51 | 52 | #endregion 53 | 54 | #region Public Properties 55 | 56 | public NameValueCollection Headers { 57 | get; protected set; 58 | } 59 | 60 | public Version ProtocolVersion { 61 | get; protected set; 62 | } 63 | 64 | #endregion 65 | 66 | #region Public Methods 67 | 68 | public void AddHeader(string name, string value) 69 | { 70 | Headers.Add(name, value); 71 | } 72 | 73 | public bool ContainsHeader(string name) 74 | { 75 | return Headers.Contains(name); 76 | } 77 | 78 | public bool ContainsHeader(string name, string value) 79 | { 80 | return Headers.Contains(name, value); 81 | } 82 | 83 | public string[] GetHeaderValues(string name) 84 | { 85 | return Headers.GetValues(name); 86 | } 87 | 88 | public byte[] ToByteArray() 89 | { 90 | return Encoding.UTF8.GetBytes(ToString()); 91 | } 92 | 93 | #endregion 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Mask.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * Mask.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | internal enum Mask : byte 34 | { 35 | UNMASK = 0x0, 36 | MASK = 0x1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/MessageEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * MessageEventArgs.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using System.Text; 31 | 32 | namespace WebSocketSharp { 33 | 34 | /// 35 | /// Contains the event data associated with a event. 36 | /// 37 | /// 38 | /// The event occurs when the WebSocket receives a text or binary data frame. 39 | /// If you want to get the received data, you should access the or 40 | /// properties. 41 | /// 42 | public class MessageEventArgs : EventArgs 43 | { 44 | #region Private Fields 45 | 46 | private string _data; 47 | private Opcode _opcode; 48 | private byte[] _rawData; 49 | 50 | #endregion 51 | 52 | #region Internal Constructors 53 | 54 | internal MessageEventArgs(Opcode opcode, byte[] rawData) 55 | { 56 | if ((ulong)rawData.LongLength > PayloadData.MaxLength) 57 | throw new WebSocketException(CloseStatusCode.TOO_BIG); 58 | 59 | _opcode = opcode; 60 | _rawData = rawData; 61 | } 62 | 63 | internal MessageEventArgs(Opcode opcode, PayloadData data) 64 | { 65 | _opcode = opcode; 66 | _rawData = data.ApplicationData; 67 | } 68 | 69 | #endregion 70 | 71 | #region Public Properties 72 | 73 | /// 74 | /// Gets the received data as a . 75 | /// 76 | /// 77 | /// A that contains the received data. 78 | /// 79 | public string Data { 80 | get { 81 | if (_data == null) 82 | _data = _rawData.LongLength == 0 83 | ? String.Empty 84 | : _opcode == Opcode.TEXT 85 | ? Encoding.UTF8.GetString(_rawData) 86 | : _opcode.ToString(); 87 | 88 | return _data; 89 | } 90 | } 91 | 92 | /// 93 | /// Gets the received data as an array of . 94 | /// 95 | /// 96 | /// An array of that contains the received data. 97 | /// 98 | public byte[] RawData { 99 | get { 100 | return _rawData; 101 | } 102 | } 103 | 104 | /// 105 | /// Gets the type of the received data. 106 | /// 107 | /// 108 | /// One of the values that indicates the type of the received data. 109 | /// 110 | public Opcode Type { 111 | get { 112 | return _opcode; 113 | } 114 | } 115 | 116 | #endregion 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/AuthenticationSchemeSelector.cs: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationSchemeSelector.cs 3 | // Copied from System.Net.AuthenticationSchemeSelector.cs 4 | // 5 | // Author: 6 | // Gonzalo Paniagua Javier 7 | // 8 | // Copyright (c) 2005 Novell, Inc. (http://www.novell.com) 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining 11 | // a copy of this software and associated documentation files (the 12 | // "Software"), to deal in the Software without restriction, including 13 | // without limitation the rights to use, copy, modify, merge, publish, 14 | // distribute, sublicense, and/or sell copies of the Software, and to 15 | // permit persons to whom the Software is furnished to do so, subject to 16 | // the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be 19 | // included in all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | // 29 | 30 | using System; 31 | 32 | namespace WebSocketSharp.Net { 33 | 34 | /// 35 | /// Selects the authentication scheme for a instance. 36 | /// 37 | /// 38 | /// One of the values that indicates the scheme used to authenticate the specified client request. 39 | /// 40 | /// 41 | /// A that contains a client request information. 42 | /// 43 | public delegate AuthenticationSchemes AuthenticationSchemeSelector (HttpListenerRequest httpRequest); 44 | } 45 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/AuthenticationSchemes.cs: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationSchemes.cs 3 | // Copied from System.Net.AuthenticationSchemes.cs 4 | // 5 | // Author: 6 | // Atsushi Enomoto 7 | // 8 | // Copyright (C) 2005 Novell, Inc. (http://www.novell.com) 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining 11 | // a copy of this software and associated documentation files (the 12 | // "Software"), to deal in the Software without restriction, including 13 | // without limitation the rights to use, copy, modify, merge, publish, 14 | // distribute, sublicense, and/or sell copies of the Software, and to 15 | // permit persons to whom the Software is furnished to do so, subject to 16 | // the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be 19 | // included in all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | // 29 | 30 | using System; 31 | 32 | namespace WebSocketSharp.Net { 33 | 34 | /// 35 | /// Contains the values of the schemes for authentication. 36 | /// 37 | [Flags] 38 | public enum AuthenticationSchemes { 39 | 40 | /// 41 | /// Indicates that no authentication is allowed. 42 | /// 43 | None, 44 | /// 45 | /// Indicates digest authentication. 46 | /// 47 | Digest = 1, 48 | /// 49 | /// Indicates negotiating with the client to determine the authentication scheme. 50 | /// 51 | Negotiate = 2, 52 | /// 53 | /// Indicates NTLM authentication. 54 | /// 55 | Ntlm = 4, 56 | /// 57 | /// Indicates Windows authentication. 58 | /// 59 | IntegratedWindowsAuthentication = 6, 60 | /// 61 | /// Indicates basic authentication. 62 | /// 63 | Basic = 8, 64 | /// 65 | /// Indicates anonymous authentication. 66 | /// 67 | Anonymous = 0x8000, 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/HttpHeaderInfo.cs: -------------------------------------------------------------------------------- 1 | // 2 | // HttpHeaderInfo.cs 3 | // 4 | // Authors: 5 | // sta (sta.blockhead@gmail.com) 6 | // 7 | // Copyright (c) 2013 sta.blockhead 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining 10 | // a copy of this software and associated documentation files (the 11 | // "Software"), to deal in the Software without restriction, including 12 | // without limitation the rights to use, copy, modify, merge, publish, 13 | // distribute, sublicense, and/or sell copies of the Software, and to 14 | // permit persons to whom the Software is furnished to do so, subject to 15 | // the following conditions: 16 | // 17 | // The above copyright notice and this permission notice shall be 18 | // included in all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 24 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 26 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27 | // 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp.Net { 32 | 33 | class HttpHeaderInfo { 34 | 35 | #region Constructor 36 | 37 | public HttpHeaderInfo () 38 | { 39 | } 40 | 41 | #endregion 42 | 43 | #region Properties 44 | 45 | public bool IsMultiValueInRequest { 46 | get { 47 | return (Type & HttpHeaderType.MultiValueInRequest) == HttpHeaderType.MultiValueInRequest; 48 | } 49 | } 50 | 51 | public bool IsMultiValueInResponse { 52 | get { 53 | return (Type & HttpHeaderType.MultiValueInResponse) == HttpHeaderType.MultiValueInResponse; 54 | } 55 | } 56 | 57 | public bool IsRequest { 58 | get { 59 | return (Type & HttpHeaderType.Request) == HttpHeaderType.Request; 60 | } 61 | } 62 | 63 | public bool IsResponse { 64 | get { 65 | return (Type & HttpHeaderType.Response) == HttpHeaderType.Response; 66 | } 67 | } 68 | 69 | public string Name { get; set; } 70 | 71 | public HttpHeaderType Type { get; set; } 72 | 73 | #endregion 74 | 75 | #region Methods 76 | 77 | public bool IsMultiValue (bool response) 78 | { 79 | return (Type & HttpHeaderType.MultiValue) != HttpHeaderType.MultiValue 80 | ? response 81 | ? IsMultiValueInResponse 82 | : IsMultiValueInRequest 83 | : response 84 | ? IsResponse 85 | : IsRequest; 86 | } 87 | 88 | public bool IsRestricted (bool response) 89 | { 90 | return (Type & HttpHeaderType.Restricted) != HttpHeaderType.Restricted 91 | ? false 92 | : response 93 | ? IsResponse 94 | : IsRequest; 95 | } 96 | 97 | #endregion 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/HttpHeaderType.cs: -------------------------------------------------------------------------------- 1 | // 2 | // HttpHeaderType.cs 3 | // 4 | // Authors: 5 | // sta (sta.blockhead@gmail.com) 6 | // 7 | // Copyright (c) 2013 sta.blockhead 8 | // 9 | // Permission is hereby granted, free of charge, to any person obtaining 10 | // a copy of this software and associated documentation files (the 11 | // "Software"), to deal in the Software without restriction, including 12 | // without limitation the rights to use, copy, modify, merge, publish, 13 | // distribute, sublicense, and/or sell copies of the Software, and to 14 | // permit persons to whom the Software is furnished to do so, subject to 15 | // the following conditions: 16 | // 17 | // The above copyright notice and this permission notice shall be 18 | // included in all copies or substantial portions of the Software. 19 | // 20 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 24 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 25 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 26 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 27 | // 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp.Net { 32 | 33 | [Flags] 34 | enum HttpHeaderType 35 | { 36 | Unspecified = 0, 37 | Request = 1, 38 | Response = 1 << 1, 39 | Restricted = 1 << 2, 40 | MultiValue = 1 << 3, 41 | MultiValueInRequest = 1 << 4, 42 | MultiValueInResponse = 1 << 5 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/HttpListenerException.cs: -------------------------------------------------------------------------------- 1 | // 2 | // HttpListenerException.cs 3 | // Copied from System.Net.HttpListenerException.cs 4 | // 5 | // Author: 6 | // Gonzalo Paniagua Javier (gonzalo@novell.com) 7 | // 8 | // Copyright (c) 2005 Novell, Inc. (http://www.novell.com) 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining 11 | // a copy of this software and associated documentation files (the 12 | // "Software"), to deal in the Software without restriction, including 13 | // without limitation the rights to use, copy, modify, merge, publish, 14 | // distribute, sublicense, and/or sell copies of the Software, and to 15 | // permit persons to whom the Software is furnished to do so, subject to 16 | // the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be 19 | // included in all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | // 29 | 30 | using System; 31 | using System.ComponentModel; 32 | using System.Runtime.Serialization; 33 | 34 | namespace WebSocketSharp.Net { 35 | 36 | /// 37 | /// The exception that is thrown when an error occurs processing an HTTP request. 38 | /// 39 | [Serializable] 40 | public class HttpListenerException : Win32Exception { 41 | 42 | #region Public Constructors 43 | 44 | /// 45 | /// Initializes a new instance of the class. 46 | /// 47 | public HttpListenerException () 48 | { 49 | } 50 | 51 | /// 52 | /// Initializes a new instance of the class 53 | /// with the specified . 54 | /// 55 | /// 56 | /// An that contains an error code. 57 | /// 58 | public HttpListenerException (int errorCode) : base (errorCode) 59 | { 60 | } 61 | 62 | /// 63 | /// Initializes a new instance of the class 64 | /// with the specified and . 65 | /// 66 | /// 67 | /// An that contains an error code. 68 | /// 69 | /// 70 | /// A that describes the error. 71 | /// 72 | public HttpListenerException (int errorCode, string message) : base (errorCode, message) 73 | { 74 | } 75 | 76 | #endregion 77 | 78 | #region Protected Constructor 79 | 80 | /// 81 | /// Initializes a new instance of the class 82 | /// from the specified and classes. 83 | /// 84 | /// 85 | /// A that contains the information required to deserialize 86 | /// the new object. 87 | /// 88 | /// 89 | /// A . 90 | /// 91 | protected HttpListenerException (SerializationInfo serializationInfo, StreamingContext streamingContext) : base (serializationInfo, streamingContext) 92 | { 93 | } 94 | 95 | #endregion 96 | 97 | #region Property 98 | 99 | /// 100 | /// Gets a value that represents the error that occurred. 101 | /// 102 | /// 103 | /// An that contains an error code. 104 | /// 105 | public override int ErrorCode { 106 | get { return base.ErrorCode; } 107 | } 108 | 109 | #endregion 110 | } 111 | } 112 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/HttpStreamAsyncResult.cs: -------------------------------------------------------------------------------- 1 | // 2 | // HttpStreamAsyncResult.cs 3 | // Copied from System.Net.HttpStreamAsyncResult.cs 4 | // 5 | // Authors: 6 | // Gonzalo Paniagua Javier (gonzalo@novell.com) 7 | // 8 | // Copyright (C) 2005 Novell, Inc (http://www.novell.com) 9 | // 10 | // Permission is hereby granted, free of charge, to any person obtaining 11 | // a copy of this software and associated documentation files (the 12 | // "Software"), to deal in the Software without restriction, including 13 | // without limitation the rights to use, copy, modify, merge, publish, 14 | // distribute, sublicense, and/or sell copies of the Software, and to 15 | // permit persons to whom the Software is furnished to do so, subject to 16 | // the following conditions: 17 | // 18 | // The above copyright notice and this permission notice shall be 19 | // included in all copies or substantial portions of the Software. 20 | // 21 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 24 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 25 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 26 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 27 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | // 29 | 30 | using System; 31 | using System.Threading; 32 | 33 | namespace WebSocketSharp.Net { 34 | 35 | class HttpStreamAsyncResult : IAsyncResult { 36 | 37 | #region Private Fields 38 | 39 | bool completed; 40 | ManualResetEvent handle; 41 | object locker = new object (); 42 | 43 | #endregion 44 | 45 | #region Internal Fields 46 | 47 | internal AsyncCallback Callback; 48 | internal int Count; 49 | internal byte [] Buffer; 50 | internal Exception Error; 51 | internal int Offset; 52 | internal object State; 53 | internal int SyncRead; 54 | 55 | #endregion 56 | 57 | #region Properties 58 | 59 | public object AsyncState { 60 | get { return State; } 61 | } 62 | 63 | public WaitHandle AsyncWaitHandle { 64 | get { 65 | lock (locker) { 66 | if (handle == null) 67 | handle = new ManualResetEvent (completed); 68 | } 69 | 70 | return handle; 71 | } 72 | } 73 | 74 | public bool CompletedSynchronously { 75 | get { return (SyncRead == Count); } 76 | } 77 | 78 | public bool IsCompleted { 79 | get { 80 | lock (locker) { 81 | return completed; 82 | } 83 | } 84 | } 85 | 86 | #endregion 87 | 88 | #region Public Methods 89 | 90 | public void Complete () 91 | { 92 | lock (locker) { 93 | if (completed) 94 | return; 95 | 96 | completed = true; 97 | if (handle != null) 98 | handle.Set (); 99 | 100 | if (Callback != null) 101 | Callback.BeginInvoke (this, null, null); 102 | } 103 | } 104 | 105 | public void Complete (Exception e) 106 | { 107 | Error = e; 108 | Complete (); 109 | } 110 | 111 | #endregion 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/HttpVersion.cs: -------------------------------------------------------------------------------- 1 | // 2 | // HttpVersion.cs 3 | // Copied from System.Net.HttpVersion.cs 4 | // 5 | // Author: 6 | // Lawrence Pit (loz@cable.a2000.nl) 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining 9 | // a copy of this software and associated documentation files (the 10 | // "Software"), to deal in the Software without restriction, including 11 | // without limitation the rights to use, copy, modify, merge, publish, 12 | // distribute, sublicense, and/or sell copies of the Software, and to 13 | // permit persons to whom the Software is furnished to do so, subject to 14 | // the following conditions: 15 | // 16 | // The above copyright notice and this permission notice shall be 17 | // included in all copies or substantial portions of the Software. 18 | // 19 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 20 | // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 21 | // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 22 | // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 23 | // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 24 | // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 25 | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 26 | // 27 | 28 | using System; 29 | 30 | namespace WebSocketSharp.Net { 31 | 32 | /// 33 | /// Provides the HTTP version numbers. 34 | /// 35 | public class HttpVersion { 36 | 37 | /// 38 | /// Provides a instance for HTTP 1.0. 39 | /// 40 | public static readonly Version Version10 = new Version (1, 0); 41 | 42 | /// 43 | /// Provides a instance for HTTP 1.1. 44 | /// 45 | public static readonly Version Version11 = new Version (1, 1); 46 | 47 | /// 48 | /// Initializes a new instance of the class. 49 | /// 50 | public HttpVersion () {} 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Net/Security/SslStream.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * SslStream.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using System.Net.Security; 31 | using System.Net.Sockets; 32 | 33 | namespace WebSocketSharp.Net.Security { 34 | 35 | internal class SslStream : System.Net.Security.SslStream 36 | { 37 | #region Public Constructors 38 | 39 | public SslStream(NetworkStream innerStream) 40 | : base(innerStream) 41 | { 42 | } 43 | 44 | public SslStream(NetworkStream innerStream, bool leaveInnerStreamOpen) 45 | : base(innerStream, leaveInnerStreamOpen) 46 | { 47 | } 48 | 49 | public SslStream( 50 | NetworkStream innerStream, 51 | bool leaveInnerStreamOpen, 52 | RemoteCertificateValidationCallback userCertificateValidationCallback 53 | ) : base(innerStream, leaveInnerStreamOpen, userCertificateValidationCallback) 54 | { 55 | } 56 | 57 | public SslStream( 58 | NetworkStream innerStream, 59 | bool leaveInnerStreamOpen, 60 | RemoteCertificateValidationCallback userCertificateValidationCallback, 61 | LocalCertificateSelectionCallback userCertificateSelectionCallback 62 | ) : base( 63 | innerStream, 64 | leaveInnerStreamOpen, 65 | userCertificateValidationCallback, 66 | userCertificateSelectionCallback 67 | ) 68 | { 69 | } 70 | 71 | #endregion 72 | 73 | #region Public Properties 74 | 75 | public bool DataAvailable { 76 | get { 77 | return ((NetworkStream)InnerStream).DataAvailable; 78 | } 79 | } 80 | 81 | #endregion 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Opcode.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * Opcode.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Contains the values of the opcodes that denotes the frame type of the WebSocket frame. 35 | /// 36 | /// 37 | /// The Opcode enumeration contains the values of the opcodes defined in 38 | /// RFC 6455 for the WebSocket protocol. 39 | /// 40 | public enum Opcode : byte 41 | { 42 | /// 43 | /// Equivalent to numeric value 0. Indicates a continuation frame. 44 | /// 45 | CONT = 0x0, 46 | /// 47 | /// Equivalent to numeric value 1. Indicates a text frame. 48 | /// 49 | TEXT = 0x1, 50 | /// 51 | /// Equivalent to numeric value 2. Indicates a binary frame. 52 | /// 53 | BINARY = 0x2, 54 | /// 55 | /// Equivalent to numeric value 8. Indicates a connection close frame. 56 | /// 57 | CLOSE = 0x8, 58 | /// 59 | /// Equivalent to numeric value 9. Indicates a ping frame. 60 | /// 61 | PING = 0x9, 62 | /// 63 | /// Equivalent to numeric value 10. Indicates a pong frame. 64 | /// 65 | PONG = 0xa 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Rsv.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * Rsv.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | internal enum Rsv : byte 34 | { 35 | OFF = 0x0, 36 | ON = 0x1 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Server/HttpRequestEventArgs.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * HttpRequestEventArgs.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using WebSocketSharp.Net; 31 | 32 | namespace WebSocketSharp.Server { 33 | 34 | /// 35 | /// Contains the event data associated with the HTTP request events of the class. 36 | /// 37 | /// 38 | /// An HTTP request event occurs when a instance receives an HTTP request. 39 | /// If you want to get the HTTP request objects, you should access the property. 40 | /// If you want to get the HTTP response objects to send, you should access the property. 41 | /// 42 | public class HttpRequestEventArgs : EventArgs 43 | { 44 | #region Internal Constructors 45 | 46 | internal HttpRequestEventArgs(HttpListenerContext context) 47 | { 48 | Request = context.Request; 49 | Response = context.Response; 50 | } 51 | 52 | #endregion 53 | 54 | #region Public Properties 55 | 56 | /// 57 | /// Gets the HTTP request objects sent from a client. 58 | /// 59 | /// 60 | /// A that contains the HTTP request objects. 61 | /// 62 | public HttpListenerRequest Request { get; private set; } 63 | 64 | /// 65 | /// Gets the HTTP response objects to send to the client in response to the client's request. 66 | /// 67 | /// 68 | /// A that contains the HTTP response objects. 69 | /// 70 | public HttpListenerResponse Response { get; private set; } 71 | 72 | #endregion 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Server/IServiceHost.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * IServiceHost.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using WebSocketSharp.Net.WebSockets; 31 | 32 | namespace WebSocketSharp.Server { 33 | 34 | /// 35 | /// Exposes the methods and property for the host that provides a . 36 | /// 37 | /// 38 | /// 39 | public interface IServiceHost { 40 | 41 | /// 42 | /// Gets or sets a value indicating whether the WebSocket service host cleans up the inactive service clients periodically. 43 | /// 44 | /// 45 | /// true if the WebSocket service host cleans up the inactive service clients periodically; otherwise, false. 46 | /// 47 | bool Sweeped { get; set; } 48 | 49 | /// 50 | /// Binds the specified to a instance. 51 | /// 52 | /// 53 | /// A that contains the WebSocket connection request objects to bind. 54 | /// 55 | void BindWebSocket(WebSocketContext context); 56 | 57 | /// 58 | /// Broadcasts the specified to all service clients. 59 | /// 60 | /// 61 | /// A to broadcast. 62 | /// 63 | void Broadcast(string data); 64 | 65 | /// 66 | /// Starts the WebSocket service host. 67 | /// 68 | void Start(); 69 | 70 | /// 71 | /// Stops the WebSocket service host. 72 | /// 73 | void Stop(); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/Server/ServiceHostManager.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * ServiceHostManager.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | using System.Collections.Generic; 31 | 32 | namespace WebSocketSharp.Server { 33 | 34 | internal class ServiceHostManager { 35 | 36 | #region Private Fields 37 | 38 | private Dictionary _svcHosts; 39 | private bool _sweeped; 40 | 41 | #endregion 42 | 43 | #region Public Constructors 44 | 45 | public ServiceHostManager() 46 | { 47 | _svcHosts = new Dictionary(); 48 | _sweeped = true; 49 | } 50 | 51 | #endregion 52 | 53 | #region Public Properties 54 | 55 | public int Count { 56 | get { 57 | return _svcHosts.Count; 58 | } 59 | } 60 | 61 | public IEnumerable Paths { 62 | get { 63 | return _svcHosts.Keys; 64 | } 65 | } 66 | 67 | public IEnumerable ServiceHosts { 68 | get { 69 | return _svcHosts.Values; 70 | } 71 | } 72 | 73 | public bool Sweeped { 74 | get { 75 | return _sweeped; 76 | } 77 | 78 | set { 79 | if (_sweeped ^ value) 80 | { 81 | _sweeped = value; 82 | foreach (var svcHost in _svcHosts.Values) 83 | svcHost.Sweeped = value; 84 | } 85 | } 86 | } 87 | 88 | #endregion 89 | 90 | #region Public Methods 91 | 92 | public void Add(string absPath, IServiceHost svcHost) 93 | { 94 | _svcHosts.Add(absPath.UrlDecode(), svcHost); 95 | } 96 | 97 | public void Broadcast(string data) 98 | { 99 | foreach (var svcHost in _svcHosts.Values) 100 | svcHost.Broadcast(data); 101 | } 102 | 103 | public void Stop() 104 | { 105 | foreach (var svcHost in _svcHosts.Values) 106 | svcHost.Stop(); 107 | 108 | _svcHosts.Clear(); 109 | } 110 | 111 | public bool TryGetServiceHost(string absPath, out IServiceHost svcHost) 112 | { 113 | return _svcHosts.TryGetValue(absPath, out svcHost); 114 | } 115 | 116 | #endregion 117 | } 118 | } 119 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/WebSocketException.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * WebSocketException.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2012-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Represents the exception that occurred when attempting to perform an operation on the WebSocket connection. 35 | /// 36 | public class WebSocketException : Exception 37 | { 38 | #region Internal Constructors 39 | 40 | internal WebSocketException() 41 | : this(CloseStatusCode.ABNORMAL) 42 | { 43 | } 44 | 45 | internal WebSocketException(CloseStatusCode code) 46 | : this(code, code.GetMessage()) 47 | { 48 | } 49 | 50 | internal WebSocketException(CloseStatusCode code, string message) 51 | : base(message) 52 | { 53 | Code = code; 54 | } 55 | 56 | #endregion 57 | 58 | #region Public Properties 59 | 60 | /// 61 | /// Gets the associated with a . 62 | /// 63 | /// 64 | /// One of the values that indicates the cause of the exception. 65 | /// 66 | public CloseStatusCode Code { 67 | get; private set; 68 | } 69 | 70 | #endregion 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/WebSockets/WsState.cs: -------------------------------------------------------------------------------- 1 | #region License 2 | /* 3 | * WsState.cs 4 | * 5 | * The MIT License 6 | * 7 | * Copyright (c) 2010-2013 sta.blockhead 8 | * 9 | * Permission is hereby granted, free of charge, to any person obtaining a copy 10 | * of this software and associated documentation files (the "Software"), to deal 11 | * in the Software without restriction, including without limitation the rights 12 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | * copies of the Software, and to permit persons to whom the Software is 14 | * furnished to do so, subject to the following conditions: 15 | * 16 | * The above copyright notice and this permission notice shall be included in 17 | * all copies or substantial portions of the Software. 18 | * 19 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 22 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 23 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 24 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 25 | * THE SOFTWARE. 26 | */ 27 | #endregion 28 | 29 | using System; 30 | 31 | namespace WebSocketSharp { 32 | 33 | /// 34 | /// Contains the values of the state of the WebSocket connection. 35 | /// 36 | /// 37 | /// The WsState enumeration contains the values of the state of the WebSocket connection defined in 38 | /// The WebSocket API. 39 | /// 40 | public enum WsState : ushort 41 | { 42 | /// 43 | /// Equivalent to numeric value 0. Indicates that the connection has not yet been established. 44 | /// 45 | CONNECTING = 0, 46 | /// 47 | /// Equivalent to numeric value 1. Indicates that the connection is established and communication is possible. 48 | /// 49 | OPEN = 1, 50 | /// 51 | /// Equivalent to numeric value 2. Indicates that the connection is going through the closing handshake, or the Close method has been invoked. 52 | /// 53 | CLOSING = 2, 54 | /// 55 | /// Equivalent to numeric value 3. Indicates that the connection has been closed or could not be opened. 56 | /// 57 | CLOSED = 3 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/fastJSON/Formatter.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text; 3 | 4 | namespace fastJSON 5 | { 6 | internal static class Formatter 7 | { 8 | public static string Indent = " "; 9 | 10 | public static void AppendIndent(StringBuilder sb, int count) 11 | { 12 | for (; count > 0; --count) sb.Append(Indent); 13 | } 14 | 15 | public static bool IsEscaped(StringBuilder sb, int index) 16 | { 17 | bool escaped = false; 18 | while (index > 0 && sb[--index] == '\\') escaped = !escaped; 19 | return escaped; 20 | } 21 | 22 | public static string PrettyPrint(string input) 23 | { 24 | var output = new StringBuilder(input.Length * 2); 25 | char? quote = null; 26 | int depth = 0; 27 | 28 | for (int i = 0; i < input.Length; ++i) 29 | { 30 | char ch = input[i]; 31 | 32 | switch (ch) 33 | { 34 | case '{': 35 | case '[': 36 | output.Append(ch); 37 | if (!quote.HasValue) 38 | { 39 | output.AppendLine(); 40 | AppendIndent(output, ++depth); 41 | } 42 | break; 43 | case '}': 44 | case ']': 45 | if (quote.HasValue) 46 | output.Append(ch); 47 | else 48 | { 49 | output.AppendLine(); 50 | AppendIndent(output, --depth); 51 | output.Append(ch); 52 | } 53 | break; 54 | case '"': 55 | case '\'': 56 | output.Append(ch); 57 | if (quote.HasValue) 58 | { 59 | if (!IsEscaped(output, i)) 60 | quote = null; 61 | } 62 | else quote = ch; 63 | break; 64 | case ',': 65 | output.Append(ch); 66 | if (!quote.HasValue) 67 | { 68 | output.AppendLine(); 69 | AppendIndent(output, depth); 70 | } 71 | break; 72 | case ':': 73 | if (quote.HasValue) output.Append(ch); 74 | else output.Append(" : "); 75 | break; 76 | default: 77 | if (quote.HasValue || !char.IsWhiteSpace(ch)) 78 | output.Append(ch); 79 | break; 80 | } 81 | } 82 | 83 | return output.ToString(); 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /LOVC/Thirtparty/fastJSON/Getters.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace fastJSON 5 | { 6 | public sealed class DatasetSchema 7 | { 8 | public List Info { get; set; } 9 | public string Name { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /LOVC/Thirtparty/fastJSON/SafeDictionary.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace fastJSON 5 | { 6 | internal sealed class SafeDictionary 7 | { 8 | private readonly object _Padlock = new object(); 9 | private readonly Dictionary _Dictionary; 10 | 11 | public SafeDictionary(int capacity) 12 | { 13 | _Dictionary = new Dictionary(capacity); 14 | } 15 | 16 | public SafeDictionary() 17 | { 18 | _Dictionary = new Dictionary(); 19 | } 20 | 21 | public bool TryGetValue(TKey key, out TValue value) 22 | { 23 | lock (_Padlock) 24 | return _Dictionary.TryGetValue(key, out value); 25 | } 26 | 27 | public TValue this[TKey key] 28 | { 29 | get 30 | { 31 | lock (_Padlock) 32 | return _Dictionary[key]; 33 | } 34 | set 35 | { 36 | lock (_Padlock) 37 | _Dictionary[key] = value; 38 | } 39 | } 40 | 41 | public void Add(TKey key, TValue value) 42 | { 43 | lock (_Padlock) 44 | { 45 | if (_Dictionary.ContainsKey(key) == false) 46 | _Dictionary.Add(key, value); 47 | } 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/Gamedata/Rooms/model1.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 4 | [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 5 | [-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 6 | [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 7 | [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 8 | [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 9 | ], 10 | 11 | [ 12 | [0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3], 13 | [0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3], 14 | [3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3], 15 | [0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3], 16 | [0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3], 17 | [0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3] 18 | ], 19 | 20 | [ 21 | [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 22 | [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 23 | [0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 24 | [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 25 | [0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 26 | [0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 27 | ], 28 | 29 | [ 30 | [0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8], 31 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 32 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 33 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 34 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], 35 | [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] 36 | ] 37 | ] -------------------------------------------------------------------------------- /LOVC/bin/Debug/Gamedata/Rooms/model1.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 | -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 | 8 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 9 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 10 | 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 12 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 13 | 0 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 14 | 15 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 17 | 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 19 | 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 | 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 | 22 | 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 8 23 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/bin/Debug/Gamedata/Rooms/model2.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 2 | 1 0 0 0 0 0 0 0 0 0 3 | -1 0 0 1 1 1 0 0 0 0 4 | 1 0 0 1 1 1 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 1 0 1 0 1 1 1 1 1 1 8 | 1 0 0 0 1 1 1 1 1 1 9 | 10 | 0 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 12 | 3 3 3 0 0 0 3 3 3 3 13 | 0 3 3 0 0 0 3 3 3 3 14 | 0 3 3 3 3 3 3 3 3 3 15 | 0 3 3 3 3 3 3 3 3 3 16 | 0 3 0 3 0 0 0 0 0 0 17 | 0 3 3 3 0 0 0 0 0 0 18 | 19 | 0 4 0 0 0 0 0 0 0 0 20 | 0 4 0 0 0 0 0 0 0 0 21 | 0 6 0 0 0 0 0 0 0 0 22 | 0 4 0 0 0 0 0 0 0 0 23 | 0 4 0 0 0 0 0 0 0 0 24 | 0 4 0 0 0 0 0 0 0 0 25 | 0 4 0 0 0 0 0 0 0 0 26 | 0 5 0 0 0 0 0 0 0 0 27 | 28 | 0 7 7 7 7 7 7 7 7 8 29 | 0 0 0 0 0 0 0 0 0 0 30 | 0 0 0 0 0 0 0 0 0 0 31 | 0 0 0 0 0 0 0 0 0 0 32 | 0 0 0 0 0 0 0 0 0 0 33 | 0 0 0 0 0 0 0 0 0 0 34 | 0 0 0 0 0 0 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/bin/Debug/Gamedata/Rooms/model3.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 0 0 0 0 0 0 2 | -1 0 0 0 0 0 0 0 0 0 3 | 1 0 0 0 0 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 5 | 1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 8 | 0 3 3 3 3 3 3 3 3 3 9 | 3 3 3 3 3 3 3 3 3 3 10 | 0 3 3 3 3 3 3 3 3 3 11 | 0 3 3 3 3 3 3 3 3 3 12 | 0 3 3 3 3 3 3 3 3 3 13 | 0 3 3 3 3 3 3 3 3 3 14 | 15 | 0 4 0 0 0 0 0 0 0 0 16 | 0 6 0 0 0 0 0 0 0 0 17 | 0 4 0 0 0 0 0 0 0 0 18 | 0 4 0 0 0 0 0 0 0 0 19 | 0 4 0 0 0 0 0 0 0 0 20 | 0 5 0 0 0 0 0 0 0 0 21 | 22 | 0 7 7 7 7 7 7 7 7 8 23 | 0 0 0 0 0 0 0 0 0 0 24 | 0 0 0 0 0 0 0 0 0 0 25 | 0 0 0 0 0 0 0 0 0 0 26 | 0 0 0 0 0 0 0 0 0 0 27 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/bin/Debug/Gamedata/Rooms/model4.map: -------------------------------------------------------------------------------- 1 | 1 0 0 0 1 0 0 0 0 0 2 | 1 0 0 0 1 0 0 0 0 0 3 | 1 1 1 1 1 0 0 0 0 0 4 | 1 0 0 0 0 0 0 0 0 0 5 | -1 0 0 0 0 0 0 0 0 0 6 | 1 0 0 0 0 0 0 0 0 0 7 | 1 0 0 0 0 0 0 0 0 0 8 | 1 0 0 0 0 0 0 0 0 0 9 | 1 0 0 0 0 0 0 0 0 0 10 | 11 | 0 0 0 0 0 3 3 3 3 3 12 | 0 0 0 0 0 3 3 3 3 3 13 | 0 0 0 0 0 3 3 3 3 3 14 | 0 3 3 3 3 3 3 3 3 3 15 | 3 3 3 3 3 3 3 3 3 3 16 | 0 3 3 3 3 3 3 3 3 3 17 | 0 3 3 3 3 3 3 3 3 3 18 | 0 3 3 3 3 3 3 3 3 3 19 | 0 3 3 3 3 3 3 3 3 3 20 | 21 | 0 0 0 0 0 4 0 0 0 0 22 | 0 0 0 0 0 4 0 0 0 0 23 | 0 0 0 0 0 4 0 0 0 0 24 | 0 4 0 0 0 0 0 0 0 0 25 | 0 6 0 0 0 0 0 0 0 0 26 | 0 4 0 0 0 0 0 0 0 0 27 | 0 4 0 0 0 0 0 0 0 0 28 | 0 4 0 0 0 0 0 0 0 0 29 | 0 5 0 0 0 0 0 0 0 0 30 | 31 | 0 0 0 0 0 7 7 7 7 8 32 | 0 0 0 0 0 0 0 0 0 0 33 | 0 0 0 0 0 0 0 0 0 0 34 | 0 7 7 7 7 0 0 0 0 0 35 | 0 0 0 0 0 0 0 0 0 0 36 | 0 0 0 0 0 0 0 0 0 0 37 | 0 0 0 0 0 0 0 0 0 0 38 | 0 0 0 0 0 0 0 0 0 0 39 | 0 0 0 0 0 0 0 0 0 0 -------------------------------------------------------------------------------- /LOVC/bin/Debug/LOVC.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/LOVC.exe -------------------------------------------------------------------------------- /LOVC/bin/Debug/LOVC.exe.mdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/LOVC.exe.mdb -------------------------------------------------------------------------------- /LOVC/bin/Debug/LOVC.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/LOVC.pdb -------------------------------------------------------------------------------- /LOVC/bin/Debug/LOVC.vshost.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/LOVC.vshost.exe -------------------------------------------------------------------------------- /LOVC/bin/Debug/LOVC.vshost.exe.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/css/default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Default page body and demo CSS structure 3 | * also includes styles overwriting bootstrap defaults 4 | **/ 5 | body { 6 | background-color: #eef3f6; 7 | } 8 | 9 | #w { 10 | margin-top: 45px; 11 | padding: 20px 11px; 12 | background: #fff; 13 | -webkit-border-radius: 4px; 14 | -moz-border-radius: 4px; 15 | border-radius: 4px; 16 | -webkit-box-shadow: 0 1px 6px -1px rgba(0,0,0,0.7); 17 | -moz-box-shadow: 0 1px 6px -1px rgba(0,0,0,0.7); 18 | box-shadow: 0 1px 6px -1px rgba(0,0,0,0.7); 19 | } 20 | 21 | /** Bootstrap Dark Modal Styles **/ 22 | .modal-open .modal, .btn:focus { 23 | outline: none !important; 24 | } 25 | 26 | .modal.dark { background-color: #2d3032; } 27 | .modal.dark .modal-body { 28 | background: #40464b; 29 | } 30 | 31 | .modal.dark .modal-header { 32 | background: #2d3032; 33 | border-bottom: 1px solid #2a2c2e; 34 | } 35 | .modal.dark .modal-header h1, .modal.dark .modal-header h2, .modal.dark .modal-header h3, .modal.dark .modal-header h4 { 36 | color: #ccc; 37 | } 38 | 39 | .modal.dark .modal-footer { 40 | background: #2d3032; 41 | border-top: 1px solid #2a2c2e; 42 | -webkit-box-shadow: none; 43 | -moz-box-shadow: none; 44 | box-shadow: none; 45 | } 46 | 47 | 48 | /** 49 | * Custom CSS3 Checkboxes for modal windows 50 | * Source: http://webdesign.tutsplus.com/tutorials/htmlcss-tutorials/quick-tip-easy-css3-checkboxes-and-radio-buttons/ 51 | **/ 52 | input[type="checkbox"] { display: none; } 53 | input[type="checkbox"] + label { color: #f2f2f2; font-size: 14px; } 54 | 55 | input[type="checkbox"] + label span { 56 | display: inline-block; 57 | width: 19px; 58 | height: 19px; 59 | margin: -1px 4px 0 0; 60 | vertical-align: middle; 61 | background: url('check_radio_sheet.png') left top no-repeat; 62 | cursor: pointer; 63 | } 64 | 65 | input[type="checkbox"]:checked + label span { 66 | background: url('check_radio_sheet.png') -19px top no-repeat; 67 | } 68 | 69 | input[type="radio"] { display: none; } 70 | 71 | input[type="radio"] + label { color: #f2f2f2; font-size: 14px; } 72 | 73 | input[type="radio"] + label span { 74 | display: inline-block; 75 | width: 19px; 76 | height: 19px; 77 | margin: -1px 4px 0 0; 78 | vertical-align: middle; 79 | background: url('check_radio_sheet.png') -38px top no-repeat; 80 | cursor: pointer; 81 | } 82 | 83 | input[type="radio"]:checked + label span { 84 | background: url('check_radio_sheet.png') -57px top no-repeat; 85 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/css/terminal.css: -------------------------------------------------------------------------------- 1 | .terminal .terminal-output .format, .terminal .cmd .format, 2 | .terminal .cmd .prompt, .terminal .cmd .prompt div, .terminal .terminal-output div div{ 3 | display: inline-block; 4 | } 5 | .terminal .clipboard { 6 | position: absolute; 7 | bottom: 0; 8 | left: 0; 9 | opacity: 0.01; 10 | filter: alpha(opacity = 0.01); 11 | filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.01); 12 | width: 2px; 13 | } 14 | .cmd > .clipboard { 15 | position: fixed; 16 | } 17 | .terminal { 18 | padding: 10px; 19 | position: relative; 20 | overflow: hidden; 21 | } 22 | .cmd { 23 | padding: 0; 24 | margin: 0; 25 | height: 1.3em; 26 | margin-top: 3px; 27 | } 28 | .terminal .terminal-output div div, .terminal .prompt { 29 | display: block; 30 | line-height: 14px; 31 | height: auto; 32 | } 33 | .terminal .prompt { 34 | float: left; 35 | } 36 | 37 | .terminal { 38 | font-family: FreeMono, monospace; 39 | color: #aaa; 40 | background-color: #000; 41 | font-size: 12px; 42 | line-height: 14px; 43 | } 44 | .terminal-output > div { 45 | padding-top: 3px; 46 | } 47 | .terminal .terminal-output div span { 48 | display: inline-block; 49 | } 50 | .terminal .cmd span { 51 | float: left; 52 | /*display: inline-block; */ 53 | } 54 | .terminal .cmd span.inverted { 55 | background-color: #aaa; 56 | color: #000; 57 | } 58 | .terminal .terminal-output div div::-moz-selection, 59 | .terminal .terminal-output div span::-moz-selection, 60 | .terminal .terminal-output div div a::-moz-selection { 61 | background-color: #aaa; 62 | color: #000; 63 | } 64 | .terminal .terminal-output div div::selection, 65 | .terminal .terminal-output div div a::selection, 66 | .terminal .terminal-output div span::selection, 67 | .terminal .cmd > span::selection, 68 | .terminal .prompt span::selection { 69 | background-color: #aaa; 70 | color: #000; 71 | } 72 | .terminal .terminal-output div.error, .terminal .terminal-output div.error div { 73 | color: red; 74 | } 75 | .tilda { 76 | position: fixed; 77 | top: 0; 78 | left: 0; 79 | width: 100%; 80 | z-index: 1100; 81 | } 82 | .clear { 83 | clear: both; 84 | } 85 | .terminal a { 86 | color: #0F60FF; 87 | } 88 | .terminal a:hover { 89 | color: red; 90 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/font/FontAwesome.otf -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/clothes/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/clothes/1.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/clothes/1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/clothes/1.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/0.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/0.png.json: -------------------------------------------------------------------------------- 1 | [[16,53],[22,22],[23,21],[30,15],[32,14],[44,14],[46,15],[49,18],[51,22],[54,31],[60,56],[60,58],[59,76],[53,103],[52,104],[24,104],[23,103],[18,90],[16,65]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/1.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/3.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/3.png.json: -------------------------------------------------------------------------------- 1 | [[16,53],[22,22],[23,21],[30,15],[32,14],[44,14],[46,15],[49,18],[51,22],[54,31],[60,56],[60,58],[59,76],[53,103],[52,104],[24,104],[23,103],[18,90],[16,65]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r2.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r3.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r3.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r4.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r4.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r5.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r5.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r6.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r6.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r7.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r7.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r7.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r8.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/Character_r8.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/DENFER.png.json: -------------------------------------------------------------------------------- 1 | [[250,55],[256,24],[257,23],[264,17],[266,16],[278,16],[280,17],[283,20],[285,24],[288,33],[293,55],[293,58],[291,73],[285,99],[282,102],[279,104],[272,104],[263,100],[257,97],[252,92],[250,67]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/DENFER2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/DENFER2.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/LOVC_Character.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/LOVC_Character.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/actor1m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/actor1m.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/box.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/box.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/char.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/char.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/char.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/char.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/char_sit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/char_sit.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/char_sit.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/char_sit.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/female.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/head.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/head/Character.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/head/Character.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/headMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/headMask.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/headMask.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/headMask.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/loading.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/loading.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/loading.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/male.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/male.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/r.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/rel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/rel.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/character/model/sit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/character/model/sit.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/00.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/18316.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/18316.jpg -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/76448_492257947485034_478192062_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/76448_492257947485034_478192062_n.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/BE2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/BE2.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/BOT.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/BOT.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/Untitled-1.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/Untitled-1.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/Untitled-2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/Untitled-2.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/Z63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/Z63.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block.png.json: -------------------------------------------------------------------------------- 1 | [[0,15],[30,0],[33,0],[63,15],[63,23],[33,38],[30,38],[0,23]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block2.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block2.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block_x.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block_x.png.json: -------------------------------------------------------------------------------- 1 | [[96,124],[126,109],[129,109],[159,124],[159,132],[129,147],[126,147],[96,132]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block_x.png.poly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block_x.png.poly.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/block_x.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/block_x.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/box.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/box.png.json: -------------------------------------------------------------------------------- 1 | [[0,15],[30,0],[33,0],[63,15],[63,48],[33,63],[30,63],[0,48]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/box.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/box.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/char.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/char.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/compass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/compass.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/computer_laptop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/computer_laptop.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/computer_laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/computer_laptop.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/desk.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/desk.png.json: -------------------------------------------------------------------------------- 1 | [[34,50],[96,19],[97,19],[127,34],[127,37],[125,70],[65,100],[63,100],[37,87],[36,86],[34,53]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/desk.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/desk.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/desk_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/desk_1.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/fFspT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/fFspT.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/form.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/hc2_carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/hc2_carpet.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/hc2_carpet.png.json: -------------------------------------------------------------------------------- 1 | [[1,42],[2,41],[81,1],[86,1],[89,2],[233,74],[233,77],[151,118],[147,118],[144,117],[2,46],[1,45]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/jszq84 — копия.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/jszq84 — копия.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/jszq84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/jszq84.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/laptop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/laptop.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/laptop.png.json: -------------------------------------------------------------------------------- 1 | [[47,74],[65,65],[66,65],[82,84],[82,85],[64,94],[62,94],[54,90],[51,87],[47,75]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/navbar.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/navbar.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/navbar.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallhy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallhy.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallhy.png.json: -------------------------------------------------------------------------------- 1 | [[24,23],[54,8],[57,8],[63,11],[63,44],[33,59],[30,59],[24,56]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallx.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallx.png.json: -------------------------------------------------------------------------------- 1 | [[64,12],[65,12],[103,31],[103,154],[97,157],[94,157],[64,142]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallx_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallx_e.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxd.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxd.png.json: -------------------------------------------------------------------------------- 1 | [[24,23],[62,4],[63,4],[63,134],[33,149],[30,149],[24,146]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy2.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy2.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_e.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_e.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_e.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_ne.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwallxy_ne.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwally.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwally.png.json: -------------------------------------------------------------------------------- 1 | [[24,31],[62,12],[63,12],[63,142],[33,157],[30,157],[24,154]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwally.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwally.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwally_e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwally_e.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/rwally_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/rwally_h.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/screen.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/screen2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/screen2.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofa.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofa.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofa.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofa.png.json: -------------------------------------------------------------------------------- 1 | [[47,37],[48,36],[100,10],[103,9],[110,9],[113,10],[123,15],[128,20],[131,26],[133,32],[134,36],[134,58],[132,60],[78,87],[75,88],[69,88],[66,87],[48,78],[47,77]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofa.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofa.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofar.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofar.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofar.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofax.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofax.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofax.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/sofaxd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/sofaxd.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/tile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/tile.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/tile.png.json: -------------------------------------------------------------------------------- 1 | [[0,16],[32,0],[33,0],[65,16],[65,17],[33,33],[32,33],[0,17]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/tile.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/tile.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/vcity_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/vcity_x.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/waasa_desk.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/waasa_desk.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/waasa_desk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/waasa_desk.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/waasa_table_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/waasa_table_1.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall.png.json: -------------------------------------------------------------------------------- 1 | [[0,0],[1,0],[63,31],[63,154],[57,157],[54,157],[0,130]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_rx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_rx.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_rx.png.json: -------------------------------------------------------------------------------- 1 | [[0,0],[1,0],[39,19],[39,150],[33,153],[32,153],[0,131]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_x.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_x.png.json: -------------------------------------------------------------------------------- 1 | [[120,11],[121,11],[167,34],[167,128],[161,131],[158,131],[120,112]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_x.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_x.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_x2.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_x2.png.json: -------------------------------------------------------------------------------- 1 | [[88,23],[134,0],[135,0],[135,112],[97,131],[94,131],[88,128]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_xy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_xy.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_xy.png.json: -------------------------------------------------------------------------------- 1 | [[88,23],[126,4],[129,4],[167,23],[167,117],[161,120],[94,120],[88,117]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_xy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_xy.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_y.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wall_y.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wall_y.png.json: -------------------------------------------------------------------------------- 1 | [[88,34],[134,11],[135,11],[135,112],[97,131],[94,131],[88,128]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallf.png.json: -------------------------------------------------------------------------------- 1 | [[57,0],[58,0],[104,23],[104,146],[98,149],[95,149],[57,130]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallf.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallf.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallfx.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallfxy.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfxy.png.json: -------------------------------------------------------------------------------- 1 | [[25,23],[63,4],[66,4],[104,23],[104,146],[98,149],[31,149],[25,146]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfxy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallfxy.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallfy.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfy.png.json: -------------------------------------------------------------------------------- 1 | [[25,23],[71,0],[72,0],[72,130],[34,149],[31,149],[25,146]] -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallfy.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallfy.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wally.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wally.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wally.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wally.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/crud/wallye.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/crud/wallye.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/furni/area_sofa.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "area_sofa", 3 | "sprite": "/furni/area_sofa.png", 4 | "size": [70, 82], 5 | "isoSize": 2, 6 | "type": "seat", 7 | "map": 8 | { 9 | "origin": [0,32], 10 | "height": 41, 11 | "sides": 12 | [ 13 | { 14 | "0x1": 15 | [ 16 | { "frame": [0,0], "offset": [-1, -24], "origin": [0,40] }, 17 | { "frame": [1,0], "offset": [-1, -24] } 18 | ], 19 | "0x0": 20 | [ 21 | { "frame": [2,0], "offset": [-1, -24] } 22 | ] 23 | }, 24 | 25 | { 26 | "0x0": 27 | [ 28 | { "frame": [2,1], "offset": [-5, -33], "origin": [0,40] }, 29 | { "frame": [1,1], "offset": [-5, -33] } 30 | ], 31 | "-1x0": 32 | [ 33 | { "frame": [0,1], "offset": [-5, -33] } 34 | ] 35 | }, 36 | 37 | { 38 | "0x0": 39 | [ 40 | { "frame": [2,2], "offset": [-18, -16], "origin": [0,0] }, 41 | { "frame": [0,2], "offset": [-3, -35], "origin": [45,45] } 42 | ], 43 | "0x-1": 44 | [ 45 | { "frame": [1,2], "offset": [-25, -30], "origin": [45,45] } 46 | ] 47 | }, 48 | 49 | { 50 | "1x0": 51 | [ 52 | { "frame": [0,3], "offset": [14, -15], "origin": [0,0] }, 53 | { "frame": [2,3], "offset": [-1, -35], "origin": [45,45] } 54 | ], 55 | "0x0": 56 | [ 57 | { "frame": [1,3], "offset": [21, -30], "origin": [45,45] } 58 | ] 59 | } 60 | ] 61 | } 62 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/furni/area_sofa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/furni/area_sofa.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/furni/picture.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "mona", 3 | "sprite": "/furni/picture.png", 4 | "size": [40, 71], 5 | "isoSize": 1, 6 | "type": "none", 7 | "map": 8 | { 9 | "origin": [0,16], 10 | "height": 40, 11 | "sides": 12 | [ 13 | { 14 | "0x0": 15 | [ 16 | { "frame": [0,0], "offset": [0,71] } 17 | ] 18 | }, 19 | 20 | { 21 | "0x0": 22 | [ 23 | { "frame": [1,0], "offset": [0,71] } 24 | ] 25 | } 26 | ] 27 | } 28 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/furni/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/furni/picture.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/box_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/box_btn.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/chat-bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/chat-bubble.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/games_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/games_btn.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/head.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/rooms.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/rooms.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/shark_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/shark_btn.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/spider_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/spider_btn.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/gamedata/gui/star_btn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/gamedata/gui/star_btn.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/black-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/black-icons.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/vCity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/vCity.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/vCity.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/vCity.psd -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/vk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/vk.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/white-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/white-icons.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/imagesx/wiDeYHqa-4o.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/imagesx/wiDeYHqa-4o.jpg -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/img/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/img/load.gif -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 26 | 27 | 38 | ЛОВЦ 39 | 40 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Actor.js: -------------------------------------------------------------------------------- 1 | function Actor(id, w, h){ 2 | if(DEBUG) 3 | console.log("Create actor " + id); 4 | var $this = this; 5 | this.name = ""; 6 | this.id = id; 7 | this.w = w ? w : ACTOR_WIDTH / 5; 8 | this.h = h ? h : ACTOR_HEIGHT / 5; 9 | this.actorModel = "@ActorModel::"+id; 10 | this.animationSpeed = 12; 11 | this.side = "SE"; 12 | this.step = null; 13 | this.position = [0,0,0]; 14 | if(typeof Actor._models !== "object") Actor._models = {}; 15 | if(typeof Actor._models[this.actorModel] === "undefined"){ 16 | var model_map = {}; 17 | model_map[this.actorModel] = [0,0]; 18 | Actor._models[id] = Crafty.sprite(this.w,this.h,format(CHARACTER_URL, id)+"?v="+VERSION,model_map); 19 | } 20 | this.entity = Crafty.e("2D, " + RENDER + ", " + this.actorModel + ", Keyboard, Tween, Isometric, SpriteAnimation") 21 | .animate("Watch_SE", 0, 0, 0) 22 | .animate("Watch_SW", 0, 1, 0) 23 | .animate("Watch_NE", 0, 2, 0) 24 | .animate("Watch_NW", 0, 3, 0) 25 | 26 | .animate("Walk_SE", 1, 0, 4) 27 | .animate("Walk_SW", 1, 1, 4) 28 | .animate("Walk_NE", 1, 2, 4) 29 | .animate("Walk_NW", 1, 3, 4) 30 | 31 | .animate("Sit_SE", 0, 4, 0) 32 | .animate("Sit_SW", 1, 4, 1) 33 | .animate("Sit_NE", 2, 4, 2) 34 | .animate("Sit_NW", 3, 4, 3) 35 | 36 | .bind("MoveStep", function(e){ 37 | $this.side = e.direction; 38 | $this.step = e; 39 | var animationDirection = "Walk_" + e.direction; 40 | if(!this.isPlaying(animationDirection)){ 41 | this.reset(); 42 | this.animate(animationDirection, $this.animationSpeed, -1); 43 | } 44 | $this.position = e.to; 45 | }) 46 | 47 | .bind("MoveDone", function(){ 48 | $this.setWatchAnimation($this.side); 49 | var obj = GameObject.objects[$this.position[0]+"x"+$this.position[1]+"x"+$this.position[2]]; 50 | if(typeof obj === "object"){ 51 | if(typeof obj.onInteract === "function") 52 | obj.onInteract($this); 53 | this.trigger("ObjectInteraction", obj); 54 | } 55 | }) 56 | 57 | .bind("MoveChange", function(){ 58 | $this.setWatchAnimation($this.side); 59 | }) 60 | 61 | .isometric() 62 | .iso.set({ 63 | "h": 80, 64 | "origin": [0,120], 65 | "objOffset": [0,86] 66 | }); 67 | 68 | this.getReverseDirection = function(side){ 69 | if(typeof side !== "string") 70 | side = this.side; 71 | if(side == "SE") 72 | return "NW"; 73 | if(side == "NW") 74 | return "SE"; 75 | if(side == "NE") 76 | return "SW"; 77 | if(side == "SW") 78 | return "NE"; 79 | return "SE"; 80 | }; 81 | 82 | this.destroy = function(){ 83 | this.entity.destroy(); 84 | }; 85 | 86 | this.setName = function(name){ 87 | this.name = name; 88 | return this; 89 | }; 90 | 91 | this.say = function(message, mode){ 92 | if(DEBUG) 93 | console.log("[chat] Actor " + id + " "+(function(){ if(mode == 1) return "Shout"; else if(mode == 2) return "Whisper"; return "Say" })()+": " + message); 94 | // chatbox.println(id, message); 95 | Crafty.e("ChatBubble").text(message, mode).attr({"x": $this.entity.x, "y": $this.entity.y}).center().float(); 96 | }; 97 | 98 | this.attr = function(e){ 99 | this.entity.attr(e); 100 | return this; 101 | }; 102 | 103 | this.move = function(x, y, path){ 104 | return $this.entity.move(x,y,path); 105 | }; 106 | 107 | this.setStaticAnimation = function(name){ 108 | if(DEBUG) 109 | console.log("Set actor "+ id +" animation to " + name); 110 | this.entity.animate(name, $this.animationSpeed, 0); 111 | return this; 112 | }; 113 | 114 | this.setSitAnimation = function(direction){ 115 | this.setStaticAnimation('Sit_'+direction.trim().toUpperCase()); 116 | }; 117 | 118 | this.setWalkAnimation = function(direction){ 119 | this.setStaticAnimation('Walk_'+direction.trim().toUpperCase()); 120 | }; 121 | 122 | this.setWatchAnimation = function(direction){ 123 | this.setStaticAnimation('Watch_'+direction.trim().toUpperCase()); 124 | }; 125 | 126 | this.setWatchAnimation(this.side); 127 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Block.js: -------------------------------------------------------------------------------- 1 | function Block(id){ this.init(id); } 2 | Block.list = {}; 3 | 4 | Block.type = { 5 | SPAWN: -1, 6 | AIR: 0, 7 | SOLID: 1, 8 | CAMERA: 2 9 | }; 10 | 11 | Block.prototype.init = function(id){ 12 | this.id = id; 13 | this.entity = null; 14 | this.parent = null; 15 | this.attr = { 16 | polygon: null, 17 | height: null, 18 | sprite: null, 19 | flip: [], 20 | props: {}, 21 | components: {}, 22 | events: {}, 23 | collide: {}, 24 | offset: [0,0], 25 | origin: [0,0], 26 | clr: [0,0], 27 | isoOffset: [0,0], 28 | placeOffset: [0,0] 29 | }; 30 | Block.list[id] = this; 31 | }; 32 | 33 | Block.prototype.getEntity = function(){ 34 | return this.entity; 35 | }; 36 | 37 | Block.prototype.build = function(){ 38 | var entity = Crafty.e("2D, "+(ORIGIN_DEBUG ? "Draggable, " : "")+", "+RENDER+", "+(this.attr.polygon !== null ? "Collision, " : "")+"Isometric, " + (this.attr.components.length > 0 ? ", " + this.attr.components.join(', ') : "")+", "+this.attr.sprite) 39 | .isometric(); 40 | if(this.attr.polygon !== null) 41 | entity.collision.apply(entity, JSON.parse(this.attr.polygon)); 42 | for(var i = 0; i < this.attr.flip.length; i++) 43 | entity.flip(this.attr.flip[i].toUpperCase().trim()); 44 | for(var key in this.attr.props) 45 | if(this.attr.props.hasOwnProperty(key)) 46 | entity[key] = this.attr.props[key]; 47 | for(var event in this.attr.events) 48 | if(this.attr.events.hasOwnProperty(event)) 49 | entity.bind(event.trim(), this.attr.events[event]); 50 | for(var target in this.attr.collide) 51 | if(this.attr.collide.hasOwnProperty(target)) 52 | if(this.attr.collide[target].length > 1) 53 | entity.onHit(target.trim(), this.attr.collide[target][0], this.attr.collide[target][1]); 54 | else 55 | entity.onHit(target.trim(), this.attr.collide[target][0], this.attr.collide[target][1]); 56 | entity.iso.set({ 57 | "offset": this.attr.offset, 58 | "h": this.attr.height, 59 | "origin": this.attr.origin, 60 | "clrOffset": this.attr.clr, 61 | "isoOffset": this.attr.isoOffset, 62 | "placeOffset": this.attr.placeOffset 63 | }); 64 | entity.blockId = this.id; 65 | entity.parent = this; 66 | if(ORIGIN_DEBUG){ 67 | entity.debug = {}; 68 | entity 69 | .bind("StartDrag", function(){ 70 | if(typeof this.debug.origin === "undefined") 71 | this.debug.origin = [this.x, this.y]; 72 | this.alpha = 0.5; 73 | }) 74 | .bind("StopDrag", function(){ 75 | console.debug("Origin: ", this.debug.origin[0] - this.x, this.debug.origin[1] - this.y); 76 | this.alpha = 1; 77 | }); 78 | } 79 | this.entity = entity; 80 | return entity; 81 | }; 82 | 83 | Block.prototype.set = function(attr){ 84 | for(var attrName in attr) 85 | if(attr.hasOwnProperty(attrName)) 86 | if(typeof this.attr[attrName] !== "undefined") 87 | this.attr[attrName] = attr[attrName]; 88 | return this; 89 | }; 90 | 91 | Block.create = function(id, attr){ 92 | return new Block(id).set(attr); 93 | }; 94 | 95 | Block.extend = function(id, fid){ 96 | return Block.create(id, Block.get(fid) !== null ? Block.get(fid).attr : {} ); 97 | }; 98 | 99 | Block.get = function(id){ 100 | if(typeof Block.list[id] !== "undefined") 101 | return Block.list[id]; 102 | return null; 103 | }; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/.gitignore: -------------------------------------------------------------------------------- 1 | .*.sw? 2 | .DS_store 3 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/README.md: -------------------------------------------------------------------------------- 1 | # CraftyBox2D 2 | It's a component that facilitates the use of the Physics Engine Box2D in [Crafty](http://craftyjs.com/). The Box2D implementation 3 | that the component use is [box2dweb](http://code.google.com/p/box2dweb/). 4 | 5 | *** 6 | 7 | ##Using CraftyBox2D 8 | First you must init the box2dWorld as follow 9 | 10 | Crafty.box2D.init(0, 10, 32, true); 11 | 12 | 13 | The above code initialize the world with 0 for the world gravity in the x-axis, 10 for the world gravity in the y-axis 14 | 32 for the pixel-to-meter ratio, and allow the world sleep. The init method also attach the world.steep() function tho 15 | the stage "EnterFrame" event 16 | 17 | Once the world has been initialized, you can start to add entitys with the Box2D component 18 | 19 | 20 | // Setup floor 21 | var floor = Crafty.e("2D, Canvas, Box2D") 22 | .attr({ x: 0, y: 0}) 23 | .box2d({ 24 | bodyType: 'static', 25 | shape: [ 26 | [0, 300], 27 | [400, 300] 28 | ] 29 | }); 30 | 31 | // Add simple box 32 | var box = Crafty.e("2D, Canvas, Color, Box2D") 33 | .attr({ x: 0, y: 0, w:20, h:20}) 34 | .color("#FF0000") 35 | .box2d({ 36 | bodyType: 'dynamic' 37 | }); 38 | 39 | 40 | Above first we create the floor, set the bodyType to static, and set the collition box in the botom of the stage 41 | then we create a box with 20x20 pixels, red color and set the body type to dynamic and left the collition area to 42 | the default values. Running the game a see the box falling to the floor. 43 | 44 | the are more options that you can set, please see the demo game code for more. -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/changelog.txt: -------------------------------------------------------------------------------- 1 | v0.1 - 28/01/2012 2 | 3 | * First release -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/demo1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .::Crafty Demo::. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/demo2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .::Crafty Demo > Drop Box::. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/demo3.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .::Crafty Demo > Drop Box::. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/demo4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .::Crafty Demo::. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/img/ball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/scripts/Box2D/img/ball.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/img/shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/scripts/Box2D/img/shapes.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/img/shapesBig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/scripts/Box2D/img/shapesBig.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/img/turret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/scripts/Box2D/img/turret.png -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "CraftyBox2d", 3 | "version": "0.2", 4 | "title": "Crafty Box2D component", 5 | "author": { 6 | "name": "Jhean Ceballos", 7 | "url": "http://zombirriondo.com/" 8 | }, 9 | "licenses": [ 10 | { 11 | "type": "MIT", 12 | "url": "http://www.opensource.org/licenses/mit-license.php" 13 | }, 14 | { 15 | "type": "GPL", 16 | "url": "http://www.opensource.org/licenses/gpl-license.php" 17 | } 18 | ], 19 | "description": "CraftyBox2d is a component that facilitates the use of the Physics Engine Box2D.", 20 | "keywords": [ 21 | "framework", 22 | "javascript" 23 | ], 24 | "jsfiddle" : "http://jsfiddle.net/shogoki_vnz/ksUhA/102/embedded/", 25 | "homepage": "https://github.com/shogoki-vnz/CraftyBox2D", 26 | "files": [ 27 | "box2d.js" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | .::Crafty Demo::. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Box2D/test.js: -------------------------------------------------------------------------------- 1 | window.onload = function () { 2 | gameInit(); 3 | }; 4 | 5 | gameInit = function(){ 6 | //start crafty 7 | Crafty.init(400, 300); 8 | Crafty.canvas.init(); 9 | Crafty.box2D.init(0, 10, 32, true); 10 | 11 | var floor = Crafty.e("2D, Canvas, Box2D") 12 | .attr({ x: 0, y: 0}) 13 | .box2d({ 14 | bodyType: 'static', 15 | shape: [ 16 | [0, 300], 17 | [400, 300] 18 | ] 19 | }); 20 | 21 | var box = Crafty.e("2D, Canvas, Color, Box2D") 22 | .attr({ x: 0, y: 0, w:20, h:20}) 23 | .color("#FF0000") 24 | .box2d({ 25 | bodyType: 'dynamic' 26 | }); 27 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Chat_bak.js: -------------------------------------------------------------------------------- 1 | Crafty.c("ChatInput", { 2 | id: 0, 3 | init: function(){ 4 | var $this = this; 5 | this.id++; 6 | if(!this.has("2D")) 7 | this.addComponent("2D"); 8 | if(!this.has("HTML")) 9 | this.addComponent("HTML"); 10 | if(!this.has("DOM")) 11 | this.addComponent("DOM"); 12 | if(!this.has("HUD")) 13 | this.addComponent("HUD"); 14 | this.domId = "MessageInput_"+this.id; 15 | var offset = CHAT_INPUT_OFFSET; 16 | this.Head = Crafty.e("2D, " + RENDER + ", @ActorModel::DENFER2:Head").attr({"x": 20, "z":GUI_Z,"w":78,"h":128,"y": GAME_HEIGHT - offset - 25}); 17 | this.replace('
').attr({"x": offset + 32, "y": GAME_HEIGHT - offset}); 18 | this.$dom = $("#"+this.domId+" > input[type=text]"); 19 | this.$dom.css("max-width", GAME_WIDTH - this.x - offset); 20 | this.$dom.focus(input.pause); 21 | this.$dom.blur(input.resume); 22 | this.$dom.bind("change paste keydown keyup", function(){ 23 | var Label = $(".MessageInput > label"); 24 | Label.html("["+escapeHtml(this.value).split(' ').join(' ')+"]"); 25 | this.style.width = (Label.width()+5) + "px"; 26 | }); 27 | this.$dom.keydown(function(e){ 28 | if(e.keyCode == 13){ 29 | var val = this.value; 30 | this.value = ""; 31 | if(val.trim().length <= 0) return; 32 | var mode = 0; 33 | if(e.altKey) 34 | mode = 2; 35 | else if(e.shiftKey) 36 | mode = 1; 37 | $this.trigger("ChatSay", {"mode": mode, "message": val}); 38 | } 39 | }); 40 | this.bind("ChatSay", function(e){ 41 | Crafty.e("ChatBubble").text(e.message, e.mode).attr({"x": player.entity.x, "y": player.entity.y}).center().float(); 42 | }); 43 | } 44 | }); 45 | 46 | Crafty.c("ChatBubble", { 47 | stack: [], 48 | init: function(){ 49 | if(!this.has("2D")) 50 | this.addComponent("2D"); 51 | if(!this.has("Tween")) 52 | this.addComponent("Tween"); 53 | if(!this.has("HTML")) 54 | this.addComponent("HTML"); 55 | if(!this.has("DOM")) 56 | this.addComponent("DOM"); 57 | this.h = 20; 58 | this.stack_id = this.stack.length; 59 | this.domId = "ChatMessage_" + this.stack.length; 60 | this.css("visibility", "hidden"); 61 | this.replace(''); 62 | this.$dom = $("#" + this.domId); 63 | this.stack.push(this); 64 | }, 65 | 66 | text: function(text, mode){ 67 | if(!mode) mode = "Normal"; 68 | else if(mode == 1) mode = "Shout"; 69 | else if(mode == 2) mode = "Whisper"; 70 | this.$dom.html(replaceLinks(escapeHtml(text))); 71 | this.$dom.addClass("ChatMessage-" + mode); 72 | return this; 73 | }, 74 | 75 | center: function(){ 76 | this.x = this.x - (this.$dom.width()/2) + 12; 77 | return this; 78 | }, 79 | 80 | float: function(){ 81 | var $this = this; 82 | this.alpha = 1; 83 | this.alpha_down = false; 84 | for(var i = 0; i < this.stack.length; i++) 85 | if(typeof this.stack[i] == "object") 86 | this.stack[i].y -= $this.h; 87 | this.timer = setInterval(function(){ 88 | $this.y -= $this.h; 89 | if($this.y < -$this.h){ 90 | $this.$dom.remove(); 91 | $this.destroy(); 92 | clearInterval($this.timer); 93 | delete $this.stack[$this.stack_id]; 94 | } 95 | if($this.y < $this.h && !$this.alpha_down){ 96 | $this.alpha_down = true; 97 | $this.tween({"alpha":0}, 40); 98 | } 99 | }, 3000); 100 | } 101 | }); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/HUD.js: -------------------------------------------------------------------------------- 1 | Crafty.c("HUD", { 2 | init: function() { 3 | if (this.has("DOM")) { 4 | this._element.parentNode.removeChild(this._element); 5 | Crafty.stage.elem.appendChild(this._element); 6 | this.z = 100; 7 | Crafty.addEvent(this, this._element, "click", function() { }); 8 | } 9 | } 10 | }); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/InfoBox.js: -------------------------------------------------------------------------------- 1 | function InfoBox(){ 2 | /* 3 | 4 | [Bot] Jimmy 5 | 6 | 7 | 8 | 9 | 10 | 11 | Добавить в друзья 12 | Обмен 13 | Модерация 14 | 15 | 16 | */ 17 | this.id = InfoBox.stack.length; 18 | InfoBox.stack.push(this); 19 | this.entity = Crafty.e("2D, DOM, HTML") 20 | .replace('empty') 21 | .attr({"x":GAME_WIDTH-185,"y":GAME_HEIGHT-285}); 22 | } 23 | 24 | InfoBox.stack = []; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Inventory.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/bin/Debug/htdocs/scripts/Inventory.js -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Navigation.js: -------------------------------------------------------------------------------- 1 | Crafty.c("Navigation", { 2 | stack: [], 3 | init: function(){ 4 | var $this = this; 5 | if(!this.has("2D")) 6 | this.addComponent("2D"); 7 | if(!this.has("HTML")) 8 | this.addComponent("HTML"); 9 | if(!this.has("DOM")) 10 | this.addComponent("DOM"); 11 | if(!this.has("HUD")) 12 | this.addComponent("HUD"); 13 | if(!this.has("Tween")) 14 | this.addComponent("Tween"); 15 | this.autoHide = true; 16 | this.closed = true; 17 | this.openX = 0; 18 | this.fixed = false; 19 | this.stack_id = this.stack.length; 20 | this.domId = "TNavBar"+this.stack_id; 21 | this.replace(''); 22 | /* 23 | 24 | 25 | Achievements 26 | 27 | 28 | 29 | 30 | Games 31 | 32 | 33 | 34 | 35 | Stuffs 36 | 37 | */ 38 | this.$dom = $("#"+this.domId); 39 | this.$dom.mouseenter(function(){ 40 | if(!$this.fixed) 41 | $this.open(); 42 | }).mouseleave(function(){ 43 | if(!$this.fixed) 44 | $this.close(); 45 | }); 46 | this.bind("TweenEnd", function(){ 47 | if(this.x < 0) 48 | this.closed = true; 49 | }); 50 | this.stack.push(this); 51 | }, 52 | 53 | addLink: function(label, image, onclick){ 54 | var link = $( 55 | ''+ 56 | ''+ 57 | ''+label+'' + 58 | '' 59 | ); 60 | if(typeof onclick === "function") 61 | link.click(onclick); 62 | this.$dom.append(link); 63 | }, 64 | 65 | open: function(){ 66 | if(this.closed){ 67 | this.closedX = this.x; 68 | this.closed = false; 69 | this.tween({"x":this.openX}, 10); 70 | } 71 | }, 72 | 73 | close: function(){ 74 | if(typeof this.closedX === "number") 75 | this.tween({"x":this.closedX}, 10); 76 | } 77 | }); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Network/Network.js: -------------------------------------------------------------------------------- 1 | var NetworkSocket = window.WebSocket || window.MozWebSocket; 2 | 3 | function Network(channel){ 4 | var $this = this; 5 | if(typeof Network.connections[channel] !== "undefined") 6 | return Network.connections[channel]; 7 | this.connections = {}; 8 | this.functions = {}; 9 | this.socket = null; 10 | this.connected = false; 11 | this.reconnect = true; 12 | this.timeout = 5000; 13 | 14 | if(DEBUG) 15 | console.log("[net] Connecting to channel " + channel); 16 | 17 | this.connect = function(){ 18 | $this.socket = new NetworkSocket("ws://"+HOST_SOCKET+"/"+channel+"?"+window.location.search.substring(1)); 19 | $this.socket.onmessage = function (e) { 20 | if(DEBUG) 21 | console.log("[net]["+channel+"] Message: " + e.data); 22 | var packet = JSON.parse(e.data); 23 | $this.trigger(packet["function"], packet["args"]); 24 | }; 25 | 26 | $this.socket.onopen = function (e) { 27 | $this.connected = true; 28 | if(DEBUG) 29 | console.log("[net]["+channel+"] Connected ", e); 30 | $this.trigger("connect", e); 31 | }; 32 | 33 | $this.socket.onclose = function (e) { 34 | $this.connected = false; 35 | if(DEBUG) 36 | console.log("[net]["+channel+"] Disconnect ", e); 37 | if($this.reconnect && !e.wasClean) 38 | setTimeout($this.connect, $this.timeout); 39 | $this.trigger("disconnect", e); 40 | }; 41 | return this; 42 | }; 43 | 44 | this.bind = function(func, callback, self){ 45 | if(typeof this.functions[func] !== "object") 46 | this.functions[func] = []; 47 | this.functions[func].push([typeof self === "object" ? self : $this, callback]); 48 | }; 49 | 50 | this.trigger = function(func, args){ 51 | if(DEBUG) 52 | console.log("[net]["+channel+"] Trigger: "+func+"( ",args," )"); 53 | if(typeof $this.functions[func] === "object") 54 | if(typeof $this.functions[func] === "object") 55 | for(var i = 0; i < $this.functions[func].length; i++) 56 | $this.functions[func][i][1].apply($this.functions[func][i][0], args); 57 | }; 58 | 59 | this.invoke = function(func){ 60 | if(typeof $this.socket !== "object" || !$this.connected) return false; 61 | var args = []; 62 | for(var i = 1; i < arguments.length; i++) 63 | args.push(JSON.stringify(arguments[i])); 64 | $this.socket.send(JSON.stringify({"function": func, "args": args})); 65 | return true; 66 | }; 67 | 68 | Network.connections[channel] = this; 69 | } 70 | 71 | Network.get = function(channel){ 72 | var connection = Network.connections[channel]; 73 | if(typeof connection !== "undefined") 74 | return connection; 75 | return null; 76 | }; 77 | 78 | Network.views = 0; 79 | 80 | Network.type = { 81 | "none": 0 82 | }; 83 | 84 | Network.connections = {}; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/RealDelay.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * RealDelay Component for CraftyJS 3 | * https://github.com/hugeen/Crafty-RealDelay-component 4 | * 5 | * Copyright 2012 by hugeen. 6 | * Licensed under the MIT license. 7 | */ 8 | 9 | /**@ 10 | * #RealDelay 11 | * @category Core 12 | * a delay component, can be paused, destroys itself with its entity 13 | */ 14 | Crafty.c("RealDelay", { 15 | init : function() { 16 | this._realDelays = []; 17 | this.bind("EnterFrame", function() { 18 | var now = new Date().getTime(); 19 | for(var index in this._realDelays) { 20 | var item = this._realDelays[index]; 21 | if(!item.triggered && item.start + item.delay + item.pause < now) { 22 | item.triggered=true; 23 | item.func.call(this); 24 | } 25 | } 26 | }); 27 | this.bind("Pause", function() { 28 | var now = new Date().getTime(); 29 | for(var index in this._realDelays) { 30 | var item = this._realDelays[index]; 31 | item.pauseBuffer = now; 32 | } 33 | }); 34 | this.bind("Unpause", function() { 35 | var now = new Date().getTime(); 36 | for(var index in this._realDelays) { 37 | var item = this._realDelays[index]; 38 | item.pause += now-item.pauseBuffer; 39 | } 40 | }); 41 | }, 42 | /**@ 43 | * Set a new delay. 44 | * @param func the callback function 45 | * @param delay the delay in ms 46 | */ 47 | realDelay : function(func, delay) { 48 | return this._realDelays.push({ 49 | start : new Date().getTime(), 50 | func : func, 51 | delay : delay, 52 | triggered : false, 53 | pauseBuffer: 0, 54 | pause: 0 55 | }); 56 | } 57 | }); 58 | -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/Sprite.js: -------------------------------------------------------------------------------- 1 | function Sprite(){} 2 | Sprite.list = {}; 3 | Sprite.cache = {}; 4 | Sprite.id = 0; 5 | 6 | Sprite.get = function(width, height, uri, map){ 7 | if(typeof Sprite.list[uri] !== "undefined" && typeof map !== "object") 8 | return Sprite.list[uri]; 9 | var id = "SPRITE:"+Sprite.id; 10 | Sprite.id++; 11 | var _map = {}; 12 | if(typeof map === "object") 13 | _map = map; 14 | else 15 | _map[id] = [0,0]; 16 | if(typeof Sprite.cache[uri] === "undefined") 17 | Sprite.cache[uri] = Crafty.sprite(width,height,GAMEDATA+uri+"?v="+VERSION,_map); 18 | Sprite.list[uri] = id; 19 | if(typeof map === "object"){ 20 | var elems = []; 21 | for(var spr in map) 22 | if(map.hasOwnProperty(spr)) 23 | elems.push(spr); 24 | return elems; 25 | } 26 | return id; 27 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/SpriteColor.js: -------------------------------------------------------------------------------- 1 | Crafty.c("SpriteColor", { 2 | _color: "rgba(0,0,0,0)", 3 | spriteColor: function(hexcolor, strength){ 4 | this._color = Crafty.toRGB(hexcolor,strength); 5 | this.trigger("Change"); 6 | return this; 7 | }, 8 | _drawSpriteColor: function(){ 9 | var co = this.__coord, 10 | ctx = this._spriteColorCanvas.getContext('2d'); 11 | ctx.drawImage(this.img, 12 | co[0], 13 | co[1], 14 | co[2], 15 | co[3], 0, 0, 16 | this._w, 17 | this._h 18 | ); 19 | ctx.save(); 20 | ctx.globalCompositeOperation = "source-in"; 21 | ctx.fillStyle = this._color; 22 | ctx.fillRect(0, 0, this._w, this._h); 23 | ctx.restore(); 24 | Crafty.canvas.context.drawImage(this._spriteColorCanvas, this._x, this._y); 25 | }, 26 | init: function(){ 27 | this._spriteColorCanvas = document.getElementById('SpriteColorCanvas'); 28 | if (!this._spriteColorCanvas){ 29 | var c = document.createElement('canvas'); 30 | c.id = 'SpriteColorCanvas'; 31 | c.style.display = 'none'; 32 | c.style.zIndex = '1000'; 33 | Crafty.stage.elem.appendChild(c); 34 | this._spriteColorCanvas = c; 35 | } 36 | this 37 | .bind("Draw", this._drawSpriteColor) 38 | .bind("RemoveComponent", function(c) { 39 | if (c == "SpriteColor") this.unbind("Draw", this._drawSpriteColor); 40 | }); 41 | } 42 | }); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/config.js: -------------------------------------------------------------------------------- 1 | var DEBUG = true, ORIGIN_DEBUG = false; 2 | 3 | var RENDER_CANVAS = "Canvas", RENDER_DOM = "DOM"; 4 | var RENDER = RENDER_CANVAS; 5 | 6 | var ASTAR_DIAGONAL = false; 7 | 8 | var VERSION = 0; 9 | 10 | var GAME_WIDTH = $(window).width(), GAME_HEIGHT = $(window).height(), 11 | HOST_ADDR = "127.0.0.1"; 12 | HOST_URI = 'http://' + HOST_ADDR + ':7172', 13 | HOST_PORT = 7172; 14 | HOST_SOCKET = HOST_ADDR + ':' + HOST_PORT; 15 | 16 | var GAMEDATA = HOST_URI + '/gamedata', 17 | CHARACTER_MODELS = GAMEDATA + '/character/model', 18 | ZBUFFER = 64000; 19 | 20 | var ACTOR_WIDTH = 320, ACTOR_HEIGHT = 640; 21 | // 78x128 22 | 23 | var WALL_SIZE = 123; 24 | 25 | var CHARACTER_URL = HOST_URI+"/gamedata/character/model/{0}.png", 26 | CHARACTER_HEAD_URL = HOST_URI+"/head.php?u={0}&/head.png"; 27 | 28 | var MAX_CHAT_LENGTH = 120; 29 | var CHAT_INPUT_OFFSET = 50; 30 | 31 | var GUI_Z = 1000000; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/core.js: -------------------------------------------------------------------------------- 1 | /** 2 | * References array 3 | * @type {Array} 4 | * @private 5 | */ 6 | var _references = []; 7 | 8 | /** 9 | * Include script into project 10 | * @param file 11 | */ 12 | function include(/* string */ file){ 13 | _references.push(HOST_URI+"/scripts/"+file); 14 | } 15 | 16 | /** 17 | * Main project function 18 | * @param callback Call when initialization is complete 19 | * @returns {null|jQuery|HTMLElement} 20 | */ 21 | function main(callback){ 22 | if(_references.length <= 0) 23 | return typeof callback === 'function' ? $(callback) : null; 24 | $.getScript(_references.shift(), function(){main(callback);}); 25 | return null; 26 | } -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/dterm.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.extend_if_has = function(desc, source, array) { 3 | for (var i=array.length;i--;) { 4 | if (typeof source[array[i]] != 'undefined') { 5 | desc[array[i]] = source[array[i]]; 6 | } 7 | } 8 | return desc; 9 | }; 10 | $.fn.dterm = function(eval, options) { 11 | var op = $.extend_if_has({}, options, 12 | ['greetings', 'prompt', 13 | 'history', 'clear', 14 | 'exit', 'login', 15 | 'name', 'keypress', 16 | 'keydown', 'onExit', 17 | 'onInit']); 18 | 19 | var term = this.append('
'). 20 | terminal(eval,op); 21 | if (!options.title) { 22 | options.title = 'JQuery Terminal Emulator'; 23 | } 24 | if (options.logoutOnClose) { 25 | options.close = function(e, ui) { 26 | term.logout(); 27 | term.clear(); 28 | }; 29 | } else { 30 | options.close = function(e, ui) { 31 | term.focus(false); 32 | }; 33 | } 34 | var self = this; 35 | var dialog = this.dialog($.extend(options, { 36 | resize: function(e, ui) { 37 | var c = self.find('.ui-dialog-content'); 38 | term.resize(c.width(), c.height()); 39 | }, 40 | open: function(e, ui) { 41 | term.focus(); 42 | }, 43 | closeOnEscape: false 44 | })); 45 | this.terminal = term; 46 | return this; 47 | }; 48 | })(jQuery); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/input.js: -------------------------------------------------------------------------------- 1 | var input = { 2 | listen: true, 3 | pause: function(){ 4 | if(DEBUG) 5 | console.log("Pause keyboard listen"); 6 | Crafty.removeEvent(Crafty, "keydown", Crafty.keyboardDispatch); 7 | Crafty.removeEvent(Crafty, "keyup", Crafty.keyboardDispatch); 8 | this.listen = false; 9 | }, 10 | 11 | resume: function(){ 12 | if(DEBUG) 13 | console.log("Resumed keyboard listen"); 14 | Crafty.addEvent(Crafty, "keydown", Crafty.keyboardDispatch); 15 | Crafty.addEvent(Crafty, "keyup", Crafty.keyboardDispatch); 16 | this.listen = true; 17 | } 18 | }; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/lang.ru.js: -------------------------------------------------------------------------------- 1 | $l.words = { 2 | "Achievements": "Достижения", 3 | "Chat...": "Чат...", 4 | "Games": "Игры", 5 | "Inventory": "Инвентарь", 6 | "Level": "Уровень", 7 | "Add to friends": "Добавить в друзья", 8 | "Trade": "Обмен", 9 | "Moderate": "Управление", 10 | "Rooms": "Комнаты" 11 | }; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/localization.js: -------------------------------------------------------------------------------- 1 | function $l(word){ 2 | var tmp = $l.words[word]; 3 | return typeof tmp === "string" ? tmp : word; 4 | } 5 | $l.words = {}; -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/mousewheel.js: -------------------------------------------------------------------------------- 1 | /*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net) 2 | * Licensed under the MIT License (LICENSE.txt). 3 | * 4 | * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. 5 | * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. 6 | * Thanks to: Seamus Leahy for adding deltaX and deltaY 7 | * 8 | * Version: 3.1.3 9 | * 10 | * Requires: 1.2.2+ 11 | */ 12 | 13 | (function (factory) { 14 | if ( typeof define === 'function' && define.amd ) { 15 | // AMD. Register as an anonymous module. 16 | define(['jquery'], factory); 17 | } else if (typeof exports === 'object') { 18 | // Node/CommonJS style for Browserify 19 | module.exports = factory; 20 | } else { 21 | // Browser globals 22 | factory(jQuery); 23 | } 24 | }(function ($) { 25 | 26 | var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll']; 27 | var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll']; 28 | var lowestDelta, lowestDeltaXY; 29 | 30 | if ( $.event.fixHooks ) { 31 | for ( var i = toFix.length; i; ) { 32 | $.event.fixHooks[ toFix[--i] ] = $.event.mouseHooks; 33 | } 34 | } 35 | 36 | $.event.special.mousewheel = { 37 | setup: function() { 38 | if ( this.addEventListener ) { 39 | for ( var i = toBind.length; i; ) { 40 | this.addEventListener( toBind[--i], handler, false ); 41 | } 42 | } else { 43 | this.onmousewheel = handler; 44 | } 45 | }, 46 | 47 | teardown: function() { 48 | if ( this.removeEventListener ) { 49 | for ( var i = toBind.length; i; ) { 50 | this.removeEventListener( toBind[--i], handler, false ); 51 | } 52 | } else { 53 | this.onmousewheel = null; 54 | } 55 | } 56 | }; 57 | 58 | $.fn.extend({ 59 | mousewheel: function(fn) { 60 | return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel"); 61 | }, 62 | 63 | unmousewheel: function(fn) { 64 | return this.unbind("mousewheel", fn); 65 | } 66 | }); 67 | 68 | 69 | function handler(event) { 70 | var orgEvent = event || window.event, 71 | args = [].slice.call(arguments, 1), 72 | delta = 0, 73 | deltaX = 0, 74 | deltaY = 0, 75 | absDelta = 0, 76 | absDeltaXY = 0, 77 | fn; 78 | event = $.event.fix(orgEvent); 79 | event.type = "mousewheel"; 80 | 81 | // Old school scrollwheel delta 82 | if ( orgEvent.wheelDelta ) { delta = orgEvent.wheelDelta; } 83 | if ( orgEvent.detail ) { delta = orgEvent.detail * -1; } 84 | 85 | // New school wheel delta (wheel event) 86 | if ( orgEvent.deltaY ) { 87 | deltaY = orgEvent.deltaY * -1; 88 | delta = deltaY; 89 | } 90 | if ( orgEvent.deltaX ) { 91 | deltaX = orgEvent.deltaX; 92 | delta = deltaX * -1; 93 | } 94 | 95 | // Webkit 96 | if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY; } 97 | if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = orgEvent.wheelDeltaX * -1; } 98 | 99 | // Look for lowest delta to normalize the delta values 100 | absDelta = Math.abs(delta); 101 | if ( !lowestDelta || absDelta < lowestDelta ) { lowestDelta = absDelta; } 102 | absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX)); 103 | if ( !lowestDeltaXY || absDeltaXY < lowestDeltaXY ) { lowestDeltaXY = absDeltaXY; } 104 | 105 | // Get a whole value for the deltas 106 | fn = delta > 0 ? 'floor' : 'ceil'; 107 | delta = Math[fn](delta / lowestDelta); 108 | deltaX = Math[fn](deltaX / lowestDeltaXY); 109 | deltaY = Math[fn](deltaY / lowestDeltaXY); 110 | 111 | // Add event and delta to the front of the arguments 112 | args.unshift(event, delta, deltaX, deltaY); 113 | 114 | return ($.event.dispatch || $.event.handle).apply(this, args); 115 | } 116 | 117 | })); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/tilda.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.fn.tilda = function(eval, options) { 3 | var body = $("body"); 4 | if (body.data('tilda')) { 5 | return $('body').data('tilda').terminal; 6 | } 7 | this.addClass('tilda'); 8 | options = options || {}; 9 | eval = eval || function(command, term) { 10 | term.echo("you don't set eval for tilda"); 11 | }; 12 | var settings = { 13 | prompt: 'tilda> ', 14 | name: 'tilda', 15 | height: 100, 16 | enabled: false, 17 | greetings: 'Quake like console', 18 | keypress: function(e) { 19 | if (e.which == 96) { 20 | return false; 21 | } 22 | } 23 | }; 24 | if (options) { 25 | $.extend(settings, options); 26 | } 27 | this.append('
'); 28 | var self = this; 29 | self.terminal = this.find('.td').terminal(eval, settings); 30 | var focus = false; 31 | $(document.documentElement).keypress(function(e) { 32 | if (e.which == 96) { 33 | self.slideToggle('fast'); 34 | self.terminal.focus(focus = !focus); 35 | self.terminal.attr({ 36 | scrollTop: self.terminal.attr("scrollHeight") 37 | }); 38 | } 39 | }); 40 | body.data('tilda', this); 41 | this.hide(); 42 | return self; 43 | }; 44 | })(jQuery); -------------------------------------------------------------------------------- /LOVC/bin/Debug/htdocs/scripts/utils.js: -------------------------------------------------------------------------------- 1 | function format(input){ 2 | if(arguments.length > 1) 3 | for(var i = 1; i < arguments.length; i++) 4 | input = input.replace("{"+(i-1)+"}", arguments[i]); 5 | return input; 6 | } 7 | 8 | function escapeHtml(text) { 9 | return text 10 | .replace(/&/g, "&") 11 | .replace(//g, ">") 13 | .replace(/"/g, """) 14 | .replace(/'/g, "'"); 15 | } 16 | 17 | 18 | function replaceLinks(text){ 19 | var exp = /(\b(http|https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; 20 | return text.replace(exp,'$1'); 21 | } 22 | 23 | 24 | var modal = new (function(){ 25 | this._main = $("#modal"); 26 | this._title = this._main.find(".modal-header > h3"); 27 | this._body = this._main.find(".modal-body"); 28 | this._footer = this._main.find(".modal-footer"); 29 | this.show = function(title, content, footer){ 30 | this._title.html(title); 31 | this._body.html(content); 32 | this._footer.html(footer); 33 | this._main.modal("show"); 34 | }; 35 | this.hide = function(){ 36 | this._main.modal("hide"); 37 | this._title.html(""); 38 | this._body.html(""); 39 | this._footer.html(""); 40 | }; 41 | this.close = this.hide; 42 | }); 43 | 44 | function getQueryArgs() { 45 | var $_GET = {}; 46 | var __GET = window.location.search.substring(1).split("&"); 47 | for(var i=0; i<__GET.length; i++) { 48 | var getVar = __GET[i].split("="); 49 | $_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1]; 50 | } 51 | return $_GET; 52 | } 53 | 54 | function ScrollDown(id){ 55 | var doc = document.getElementById(id); 56 | doc.scrollTop = doc.scrollHeight; 57 | } 58 | 59 | function ScrollDownDom(dom){ 60 | dom.scrollTop = dom.scrollHeight; 61 | } -------------------------------------------------------------------------------- /LOVC/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache -------------------------------------------------------------------------------- /LOVC/obj/x86/Debug/LOVC.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\Gamedata\Rooms\model1.map 2 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\Gamedata\Rooms\model2.map 3 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\Gamedata\Rooms\model3.map 4 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\Gamedata\Rooms\model4.map 5 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\LOVC.exe 6 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\bin\Debug\LOVC.pdb 7 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\obj\x86\Debug\LOVC.csprojResolveAssemblyReference.cache 8 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\obj\x86\Debug\LOVC.exe 9 | C:\Users\DENFER\Downloads\LOVC+Zelectro\LOVC\LOVC\obj\x86\Debug\LOVC.pdb 10 | -------------------------------------------------------------------------------- /LOVC/obj/x86/Debug/LOVC.csprojResolveAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/obj/x86/Debug/LOVC.csprojResolveAssemblyReference.cache -------------------------------------------------------------------------------- /LOVC/obj/x86/Debug/LOVC.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/obj/x86/Debug/LOVC.exe -------------------------------------------------------------------------------- /LOVC/obj/x86/Debug/LOVC.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d3n4/LOVC/2d23065b7df2252dbbf00557283986368e98df5b/LOVC/obj/x86/Debug/LOVC.pdb -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | LOVC 2 | ==== 3 | 4 | OpenSource Isometric Game Engine Like a Habbo 5 | 6 | 7 | === 8 | Fast startup: 9 | Run (or compile and run): LOVC\LOVC\bin\Debug\LOVC.exe 10 | then go in browser to: 11 | http://127.0.0.1:7172 12 | --------------------------------------------------------------------------------