Skip to content

Commit aeed683

Browse files
Fix #115: [editor] add some attributes for objects / vehicles, and cleanups (#95)
* editor_main: add frozen attribute for objects and vehicles * edf: xml cleanup * editor: xml cleanup * editor_main: xml cleanup * editor_gui: xml cleanup * editor_main: edf cleanup * edf: edf xml cleanup * edf: don't require breakable attribute * editor_main: typo fix * edf: add missing alpha attribute for vehicles * edf, editor: add more missing attributes * edf: addendum to previous commit, also add support in getters/setters * edf: add temporary hardcoded support for validModels attribute * editor_gui: only create property control if in validModels table
1 parent 2286bc4 commit aeed683

File tree

14 files changed

+11269
-11119
lines changed

14 files changed

+11269
-11119
lines changed

[editor]/edf/edf.edf

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,89 @@
11
<def name="Basic element types definition">
22
<element name="object" friendlyname="Object">
3-
<data name="model" type="objectID" description="object model" default="1337" />
3+
<data name="model" type="objectID" description="Object model" default="1337" />
44
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
55
<data name="rotation" type="coord3d" description="XYZ rotation" default="0,0,0" />
66
<data name="interior" type="integer" description="GTA interior world" default="0" />
77
<data name="dimension" type="integer" description="MTA dimension" default="0" />
8-
<data name="alpha" type="integer" description="Alpha" default="255" />
8+
<data name="alpha" type="integer" description="Alpha level" default="255" />
99
<data name="doublesided" type="selection:false,true" description="MTA double sidedness" required="false" />
10-
<data name="scale" type="number" description="Object scale" default="1" required="false"/>
10+
<data name="scale" type="number" description="Object scale" default="1" required="false" />
1111
<data name="collisions" type="selection:true,false" description="Object collisions" required="false" default="true" />
12-
<data name="breakable" type="selection:true,false" description="Object breakablity" required="true" default="true" />
12+
<data name="breakable" type="selection:true,false" description="Object breakablity" required="false" default="true" />
13+
<data name="frozen" type="selection:false,true" description="Frozen" required="false" default="false" />
1314
</element>
1415
<element name="marker" friendlyname="Marker">
1516
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
16-
<data name="type" type="markerType" description="marker type" default="cylinder" />
17-
<data name="size" type="number" description="marker size" default="1" />
18-
<data name="color" type="color" description="color (#RRGGBBAA hex string)" default="#00F9" />
17+
<data name="type" type="markerType" description="Marker type" default="cylinder" />
18+
<data name="size" type="number" description="Marker size" default="1" />
19+
<data name="color" type="color" description="Color (#RRGGBBAA hex string)" default="#00F9" />
1920
<data name="interior" type="integer" description="GTA interior world" default="0" />
2021
<data name="dimension" type="integer" description="MTA dimension" default="0" />
2122
</element>
2223
<element name="pickup" friendlyname="Pickup">
2324
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
24-
<data name="type" type="pickupType" description="pickup type" default="health" />
25-
<data name="amount" type="number" description="hp points, armor points or weapon ammo" default="100" />
26-
<data name="respawn" type="integer" description="respawn time in miliseconds" default="30000" />
25+
<data name="type" type="pickupType" description="Pickup type" default="health" />
26+
<data name="amount" type="number" description="Health points, armor points or weapon ammo" default="100" />
27+
<data name="respawn" type="integer" description="Respawn time in miliseconds" default="30000" />
2728
<data name="interior" type="integer" description="GTA interior world" default="0" />
2829
<data name="dimension" type="integer" description="MTA dimension" default="0" />
2930
</element>
3031
<element name="vehicle" friendlyname="Vehicle">
31-
<data name="model" type="vehicleID" description="vehicle model" default="405" />
32+
<data name="model" type="vehicleID" description="Vehicle model" default="405" />
3233
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
3334
<data name="rotation" type="coord3d" description="XYZ rotation" default="0,0,0" />
3435
<data name="color1" type="color" description="RGB vehicle color 1" required="false" />
3536
<data name="color2" type="color" description="RGB vehicle color 2" required="false" />
3637
<data name="color3" type="color" description="RGB vehicle color 3" required="false" />
3738
<data name="color4" type="color" description="RGB vehicle color 4" required="false" />
38-
<data name="paintjob" type="selection:0,1,2,3" description="vehicle paintjob" required="false" />
39-
<data name="upgrades" type="vehicleupgrades" description="installed vehicle upgrades" required="false" />
40-
<data name="plate" type="plate" description="number plate" required="false" />
41-
<data name="sirens" type="selection:false,true" description="Vehicle sirens" required="false" default="false"/>
39+
<data name="paintjob" type="selection:0,1,2,3" description="Vehicle paintjob" required="false" />
40+
<data name="upgrades" type="vehicleupgrades" description="Installed vehicle upgrades" required="false" />
41+
<data name="plate" type="plate" description="Number plate" required="false" />
42+
<data name="sirens" type="selection:false,true" description="Vehicle sirens" required="false" default="false" />
43+
<data name="health" type="integer" description="Vehicle health (0-1000)" default="1000" />
4244
<data name="interior" type="integer" description="GTA interior world" default="0" />
4345
<data name="dimension" type="integer" description="MTA dimension" default="0" />
46+
<data name="alpha" type="integer" description="Alpha level" default="255" />
47+
<data name="frozen" type="selection:false,true" description="Frozen" required="false" default="false" />
48+
<data name="collisions" type="selection:true,false" description="Vehicle collisions" required="false" default="true" />
49+
<data name="locked" type="selection:false,true" description="Locked" required="false" default="false" />
50+
<data name="landingGearDown" type="selection:false,true" description="Set landing gear down" required="false" default="true" />
4451
</element>
4552
<element name="blip" friendlyname="Radar blip">
4653
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
47-
<data name="icon" type="blipID" description="blip icon" default="0" />
48-
<data name="size" type="integer" description="blip size" default="2" />
49-
<data name="color" type="color" description="color (#RRGGBBAA hex string)" default="#00F9" />
54+
<data name="icon" type="blipID" description="Blip icon" default="0" />
55+
<data name="size" type="integer" description="Blip size" default="2" />
56+
<data name="color" type="color" description="Color (#RRGGBBAA hex string)" default="#00F9" />
5057
<data name="dimension" type="integer" description="MTA dimension" default="0" />
5158
</element>
5259
<element name="radararea" friendlyname="Radar area">
53-
<data name="posX" type="number" description="x axis west corner position" default="0" />
54-
<data name="posY" type="number" description="y axis south corner position" default="0" />
55-
<data name="sizeX" type="number" description="x axis size" default="20" />
56-
<data name="sizeY" type="number" description="y axis size" default="20" />
57-
<data name="color" type="color" description="color (#RRGGBBAA hex string)" default="#00F9" />
60+
<data name="posX" type="number" description="X axis west corner position" default="0" />
61+
<data name="posY" type="number" description="Y axis south corner position" default="0" />
62+
<data name="sizeX" type="number" description="X axis size" default="20" />
63+
<data name="sizeY" type="number" description="Y axis size" default="20" />
64+
<data name="color" type="color" description="Color (#RRGGBBAA hex string)" default="#00F9" />
5865
<data name="dimension" type="integer" description="MTA dimension" default="0" />
5966
</element>
6067
<element name="colshape" friendlyname="Collision shape">
6168
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
62-
<data name="type" type="colshapeType" description="colshape type" default="sphere" />
63-
<data name="radius" type="number" description="colshape radius" default="1" />
64-
<data name="width" type="number" description="colshape width" default="1" />
65-
<data name="depth" type="number" description="colshape height" default="1" />
66-
<data name="height" type="number" description="colshape depth" default="1" />
69+
<data name="type" type="colshapeType" description="Colshape type" default="sphere" />
70+
<data name="radius" type="number" description="Colshape radius" default="1" />
71+
<data name="width" type="number" description="Colshape width" default="1" />
72+
<data name="depth" type="number" description="Colshape height" default="1" />
73+
<data name="height" type="number" description="Colshape depth" default="1" />
6774
<data name="dimension" type="integer" description="MTA dimension" default="0" />
6875
</element>
6976
<element name="ped" friendlyname="Ped">
70-
<data name="model" type="skinID" description="ped skin model" default="0" />
77+
<data name="model" type="skinID" description="Ped skin model" default="0" />
7178
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />
7279
<data name="rotZ" type="number" description="Z rotation" default="0" />
7380
<data name="interior" type="integer" description="GTA interior world" default="0" />
7481
<data name="dimension" type="integer" description="MTA dimension" default="0" />
75-
<data name="frozen" type="selection:false,true" description="Frozen" default="false"/>
82+
<data name="frozen" type="selection:false,true" description="Frozen" required="false" default="false" />
83+
<data name="collisions" type="selection:true,false" description="Ped collisions" required="false" default="true" />
84+
<data name="health" type="integer" description="Ped health" default="100" />
85+
<data name="armor" type="integer" description="Ped armor" default="0" />
86+
<data name="alpha" type="integer" description="Alpha level" default="255" />
7687
</element>
7788
<element name="water" friendlyname="Water" icon="client/images/icons/water.png">
7889
<data name="position" type="coord3d" description="XYZ position" default="0,0,0" />

[editor]/edf/edf.lua

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1132,6 +1132,10 @@ function edfAddElementNodeData(node, resource)
11321132
-- update the data field description
11331133
dataFields[dname].description = xmlNodeGetAttribute(subnode,"description")
11341134
or dataFields[dname].description
1135+
-- update the valid models value
1136+
local validModels = xmlNodeGetAttribute(subnode, "validModels")
1137+
dataFields[dname].validModels = validModels and split(validModels, ",") or dataFields[dname].validModels
1138+
11351139
-- update the required flag (default: true)
11361140
local requiredAttribute = xmlNodeGetAttribute(subnode,"required")
11371141
if requiredAttribute then

[editor]/edf/meta.xml

Lines changed: 58 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,75 @@
11
<meta>
2-
<min_mta_version client="1.3.5" server="1.3.5"/>
32
<info author="jbeta" description="Element Definition Format" edf:definition="edf.edf" />
4-
<script src="sharedutil.lua" />
5-
<script src="sharedutil.lua" type="client" />
3+
4+
<min_mta_version client="1.3.5" server="1.3.5" />
5+
6+
<script src="sharedutil.lua" type="shared" />
67
<script src="interface.lua" />
78
<script src="properties.lua" />
89
<script src="properties_client.lua" type="client" />
910
<script src="datatypes.lua" />
1011
<script src="edf.lua" />
1112
<script src="edf_client.lua" type="client" />
12-
<script src="scriptreadereventhandlers.lua" />
13-
<script src="scriptreadereventhandlers.lua" type="client" />
14-
<script src="scriptreadercommandhandlers.lua" />
15-
<script src="scriptreadercommandhandlers.lua" type="client" />
16-
<script src="scriptreaderkeybinds.lua" />
17-
<script src="scriptreaderkeybinds.lua" type="client" />
13+
<script src="scriptreadereventhandlers.lua" type="shared" />
14+
<script src="scriptreadercommandhandlers.lua" type="shared" />
15+
<script src="scriptreaderkeybinds.lua" type="shared" />
1816
<script src="scriptreader.lua" />
1917
<script src="scriptreader_client.lua" type="client" />
18+
2019
<oop>true</oop>
2120

22-
<export function="edfStartResource" /> <!--bool-->
23-
<export function="edfStopResource" /> <!--bool-->
21+
<export function="edfStartResource" /> <!-- bool -->
22+
<export function="edfStopResource" /> <!-- bool -->
2423

25-
<export function="edfLoadDefinition" /> <!--bool-->
26-
<export function="edfUnloadDefinition" /> <!--bool-->
27-
<export function="edfCreateElement" /> <!--element-->
28-
<export function="edfCloneElement" /> <!--element-->
29-
<export function="edfRepresentElement" /> <!--element-->
30-
<export function="edfUpdateRepresentation" /> <!--element-->
31-
<export function="edfGetLoadedEDFResources" /> <!--table-->
32-
<export function="edfGetDefinition" /> <!--table-->
33-
<export function="edfHasDefinition" /> <!--bool-->
24+
<export function="edfLoadDefinition" /> <!-- bool -->
25+
<export function="edfUnloadDefinition" /> <!-- bool -->
26+
<export function="edfCreateElement" /> <!-- element -->
27+
<export function="edfCloneElement" /> <!-- element -->
28+
<export function="edfRepresentElement" /> <!-- element -->
29+
<export function="edfUpdateRepresentation" /> <!-- element -->
30+
<export function="edfGetLoadedEDFResources" /> <!-- table -->
31+
<export function="edfGetDefinition" /> <!-- table -->
32+
<export function="edfHasDefinition" /> <!-- bool -->
3433

35-
<export function="edfGetHandle" /> <!--element-->
36-
<export function="edfGetParent" /> <!--element-->
37-
<export function="edfIsRepresentation" /> <!--element-->
38-
<export function="edfGetAncestor" /> <!--element-->
39-
<export function="edfGetCreatorResource" /> <!--resource-->
40-
<export function="edfSetCreatorResource" /> <!--bool-->
41-
<export function="edfGetCreatorClient" /> <!--resource-->
42-
<export function="edfSetCreatorClient" /> <!--bool-->
43-
<export function="edfGetElementPosition" /> <!--number, number, number-->
44-
<export function="edfSetElementPosition" /> <!--bool-->
45-
<export function="edfGetElementRotation" /> <!--number, number, number-->
46-
<export function="edfSetElementRotation" /> <!--bool-->
47-
<export function="edfGetElementInterior" /> <!--number-->
48-
<export function="edfSetElementInterior" /> <!--bool-->
49-
<export function="edfGetElementDimension" /> <!--number-->
50-
<export function="edfSetElementDimension" /> <!--bool-->
51-
<export function="edfGetElementAlpha" /> <!--number-->
52-
<export function="edfSetElementAlpha" /> <!--bool-->
53-
<export function="edfGetElementProperty" /> <!--var-->
54-
<export function="edfSetElementProperty" /> <!--bool-->
34+
<export function="edfGetHandle" /> <!-- element -->
35+
<export function="edfGetParent" /> <!-- element -->
36+
<export function="edfIsRepresentation" /> <!-- element -->
37+
<export function="edfGetAncestor" /> <!-- element -->
38+
<export function="edfGetCreatorResource" /> <!-- resource -->
39+
<export function="edfSetCreatorResource" /> <!-- bool -->
40+
<export function="edfGetCreatorClient" /> <!-- resource -->
41+
<export function="edfSetCreatorClient" /> <!-- bool -->
42+
<export function="edfGetElementPosition" /> <!-- number, number, number -->
43+
<export function="edfSetElementPosition" /> <!-- bool -->
44+
<export function="edfGetElementRotation" /> <!-- number, number, number -->
45+
<export function="edfSetElementRotation" /> <!-- bool -->
46+
<export function="edfGetElementInterior" /> <!-- number -->
47+
<export function="edfSetElementInterior" /> <!-- bool -->
48+
<export function="edfGetElementDimension" /> <!-- number -->
49+
<export function="edfSetElementDimension" /> <!-- bool -->
50+
<export function="edfGetElementAlpha" /> <!-- number -->
51+
<export function="edfSetElementAlpha" /> <!-- bool -->
52+
<export function="edfGetElementProperty" /> <!-- var -->
53+
<export function="edfSetElementProperty" /> <!-- bool -->
5554
<export function="edfGetResourceForElementType" /> <!-- string -->
5655

57-
<export function="edfGetHandle" type="client" /> <!--element-->
58-
<export function="edfGetParent" type="client" /> <!--element-->
59-
<export function="edfGetAncestor" type="client" /> <!--element-->
60-
<export function="edfGetCreatorResource" type="client" /> <!--resource-->
61-
<export function="edfGetElementPosition" type="client" /> <!--number, number, number-->
62-
<export function="edfSetElementPosition" type="client" /> <!--bool-->
63-
<export function="edfGetElementRotation" type="client" /> <!--number, number, number-->
64-
<export function="edfSetElementRotation" type="client" /> <!--bool-->
65-
<export function="edfGetElementInterior" type="client" /> <!--number-->
66-
<export function="edfSetElementInterior" type="client" /> <!--bool-->
67-
<export function="edfGetElementDimension" type="client" /> <!--number-->
68-
<export function="edfSetElementDimension" type="client" /> <!--bool-->
69-
<export function="edfGetElementAlpha" type="client" /> <!--number-->
70-
<export function="edfSetElementAlpha" type="client" /> <!--bool-->
71-
<export function="edfGetElementProperty" type="client" /> <!--var-->
72-
<export function="edfSetElementProperty" type="client" /> <!--bool-->
73-
<export function="edfGetElementDistanceToBase" type="client" /> <!--number-->
74-
<export function="edfGetElementBoundingBox" type="client" /> <!--number,number,number,number,number,number-->
75-
<export function="edfGetElementRadius" type="client" /> <!--number-->
56+
<export function="edfGetHandle" type="client" /> <!-- element -->
57+
<export function="edfGetParent" type="client" /> <!-- element -->
58+
<export function="edfGetAncestor" type="client" /> <!-- element -->
59+
<export function="edfGetCreatorResource" type="client" /> <!-- resource -->
60+
<export function="edfGetElementPosition" type="client" /> <!-- number, number, number -->
61+
<export function="edfSetElementPosition" type="client" /> <!-- bool -->
62+
<export function="edfGetElementRotation" type="client" /> <!-- number, number, number -->
63+
<export function="edfSetElementRotation" type="client" /> <!-- bool -->
64+
<export function="edfGetElementInterior" type="client" /> <!-- number -->
65+
<export function="edfSetElementInterior" type="client" /> <!-- bool -->
66+
<export function="edfGetElementDimension" type="client" /> <!-- number -->
67+
<export function="edfSetElementDimension" type="client" /> <!-- bool -->
68+
<export function="edfGetElementAlpha" type="client" /> <!-- number -->
69+
<export function="edfSetElementAlpha" type="client" /> <!-- bool -->
70+
<export function="edfGetElementProperty" type="client" /> <!-- var -->
71+
<export function="edfSetElementProperty" type="client" /> <!-- bool -->
72+
<export function="edfGetElementDistanceToBase" type="client" /> <!-- number -->
73+
<export function="edfGetElementBoundingBox" type="client" /> <!-- number, number, number, number, number, number -->
74+
<export function="edfGetElementRadius" type="client" /> <!-- number -->
7675
</meta>

0 commit comments

Comments
 (0)