Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1 | -- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved. |
2 | |
3 | ChainsawDelimbEvent = {}; |
4 | ChainsawDelimbEvent_mt = Class(ChainsawDelimbEvent, Event); |
5 | |
6 | InitStaticEventClass(ChainsawDelimbEvent, "ChainsawDelimbEvent", EventIds.EVENT_CHAINSAW_DELIMB); |
7 | |
8 | function ChainsawDelimbEvent:emptyNew() |
9 | local self = Event:new(ChainsawDelimbEvent_mt); |
10 | return self; |
11 | end; |
12 | |
13 | function ChainsawDelimbEvent:new(player, x,y,z, nx,ny,nz, yx,yy,yz, onDelimb) |
14 | local self = ChainsawDelimbEvent:emptyNew() |
15 | self.player = player; |
16 | self.x, self.y, self.z = x, y, z; |
17 | self.nx, self.ny, self.nz = nx, ny, nz; |
18 | self.yx, self.yy, self.yz = yx, yy, yz; |
19 | self.onDelimb = onDelimb; |
20 | return self; |
21 | end; |
22 | |
23 | function ChainsawDelimbEvent:readStream(streamId, connection) |
24 | if not connection:getIsServer() then -- server side |
25 | self.player = networkGetObject(streamReadInt32(streamId)); |
26 | self.x = streamReadFloat32(streamId); |
27 | self.y = streamReadFloat32(streamId); |
28 | self.z = streamReadFloat32(streamId); |
29 | self.nx = streamReadFloat32(streamId); |
30 | self.ny = streamReadFloat32(streamId); |
31 | self.nz = streamReadFloat32(streamId); |
32 | self.yx = streamReadFloat32(streamId); |
33 | self.yy = streamReadFloat32(streamId); |
34 | self.yz = streamReadFloat32(streamId); |
35 | self.onDelimb = false; |
36 | if self.player ~= nil then |
37 | local chainsaw = self.player.currentTool; |
38 | if chainsaw ~= nil then |
39 | local ret = findAndRemoveSplitShapeAttachments(self.x,self.y,self.z, self.nx,self.ny,self.nz, self.yx,self.yy,self.yz, 0.7, chainsaw.cutSizeY, chainsaw.cutSizeZ); |
40 | if ret then |
41 | self.onDelimb = true; |
42 | connection:sendEvent(self); |
43 | end; |
44 | end; |
45 | end; |
46 | else -- client side |
47 | self.player = networkGetObject(streamReadInt32(streamId)); |
48 | self.onDelimb = streamReadBool(streamId); |
49 | if self.player ~= nil and self.player.currentTool ~= nil then |
50 | if self.player.currentTool.setOnDelimb ~= nil then |
51 | self.player.currentTool:setOnDelimb(self.onDelimb); |
52 | end; |
53 | end; |
54 | end |
55 | end; |
56 | |
57 | function ChainsawDelimbEvent:writeStream(streamId, connection) |
58 | if connection:getIsServer() then -- client |
59 | streamWriteInt32(streamId, networkGetObjectId(self.player)); |
60 | streamWriteFloat32(streamId, self.x); |
61 | streamWriteFloat32(streamId, self.y); |
62 | streamWriteFloat32(streamId, self.z); |
63 | streamWriteFloat32(streamId, self.nx); |
64 | streamWriteFloat32(streamId, self.ny); |
65 | streamWriteFloat32(streamId, self.nz); |
66 | streamWriteFloat32(streamId, self.yx); |
67 | streamWriteFloat32(streamId, self.yy); |
68 | streamWriteFloat32(streamId, self.yz); |
69 | else |
70 | streamWriteInt32(streamId, networkGetObjectId(self.player)); |
71 | streamWriteBool(streamId, self.onDelimb); |
72 | end |
73 | end; |
74 | |
75 | function ChainsawDelimbEvent:run(connection) |
76 | print("Error: ChainsawDelimbEvent is not allowed to be executed on a local client"); |
77 | end;
|
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de