blob: 8fe36a7eabb45b30f13337c574d412f80f82a767 [file] [log] [blame]
Zesstra18626972017-01-31 10:38:27 +01001GetMatMembership()
2==================
3
4FUNKTION
5--------
6::
7
8 string *GetMatMembership(string mat)
9
10DEFINIERT IN
11------------
12::
13
14 /p/daemon/materialdb.c (MATERIALDB)
15
16ARGUMENTE
17---------
18::
19
20 string mat - ein Material
21
22BESCHREIBUNG
23------------
24::
25
26 Gibt alle Gruppen, denen das Material angehoert zurueck. Geeignet, um
27 die Eigenschaften eines Materials zu ueberpruefen.
28
29RUECKGABEWERT
30-------------
31::
32
33 Array von Strings mit Materialiengruppen oder ({})
34
35BEISPIELE
36---------
37::
38
39 // ein weiser Schmied:
40 int i;
41 string *mat, mname, mgroup;
42 mat=m_indices(ob->QueryProp(P_MATERIAL));
43 i=sizeof(mat);
44
45 write("Der Schmied sagt: "+ob->Name(WER)+" besteht aus ...\n");
46 while(i--) {
47 // den Namen erkennen/aussprechen:
48 // Materialien werden allgemein etwas besser erkannt (zu 5%), aber
49 // alles aus Metall wird zu +100% besser erkannt ...
50 mname=MATERIALDB->MaterialName(mat[i], WER,
51 ({5, ([MATRGROUP_METAL, 100])}));
52
53 // und nur Metalle analysieren ...
54 if(MATERIALDB->MaterialGroup(([mat[i]:100]),MATGROUP_METAL)>=100) {
55 int j;
56 string *mgr;
57 mgr=MATERIALDB->GetMatMembership(mat[i]);
58 j=sizeof(mgr);
59 mgroup=" gehoert zu ";
60 while(j--) {
61 mgroup+=MATERIALDB->GroupName(mgr[j]);
62 if(j>0) mgroup+=", ";
63 }
64 } else mgroup=" kenne ich nicht";
65 printf("%-12.12s: %s\n",mname, mgroup);
66 }
67
68SIEHE AUCH
69----------
70::
71
72 Konzepte: material, materialerkennung
73 Grundlegend: P_MATERIAL, /sys/thing/material.h
74 Master: AddMaterial(), ConvMaterialList(), MaterialGroup(),
75 GroupName(), MaterialName(),
76 GetGroupMembers()
77
787. Mai 2004 Gloinson
79