]> git.lizzy.rs Git - Crafter.git/blob - mods/main/tools.lua
remove server debug
[Crafter.git] / mods / main / tools.lua
1 --Quick definition of tools
2 local tool = {"shovel","axe","pick"}
3 local material =        {"coal","wood","stone","lapis","iron","gold","diamond","emerald","sapphire","ruby"}
4 local sword_durability ={10    ,52    ,131    ,200    ,250    ,32    ,1561    ,2300     ,3000      ,5000  }
5
6 --unbreakable time definition
7 --this is used so ores still have sounds
8 --and particles but don't drop anything or
9 --finish mining, 32 bit integer limit
10 --32 bit integer limit so that the initial
11 --mining texture does not show up until a week
12 --after you've continuously held down the button
13 local ub = 2147483647 -- unbreakable 
14
15 for level_id,material in pairs(material) do
16         for id,tool in pairs(tool) do
17
18                 --print(id,tool,level,material)
19                 local groupcaps
20                 local damage
21                 local wear
22 --[[
23 ███████╗██╗  ██╗ ██████╗ ██╗   ██╗███████╗██╗     
24 ██╔════╝██║  ██║██╔═══██╗██║   ██║██╔════╝██║     
25 ███████╗███████║██║   ██║██║   ██║█████╗  ██║     
26 ╚════██║██╔══██║██║   ██║╚██╗ ██╔╝██╔══╝  ██║     
27 ███████║██║  ██║╚██████╔╝ ╚████╔╝ ███████╗███████╗
28 ╚══════╝╚═╝  ╚═╝ ╚═════╝   ╚═══╝  ╚══════╝╚══════╝
29 ]]--
30                 if tool == "shovel" then
31                         if material == "wood" then
32                                 groupcaps2={
33                                         dirt =  {times={[1]=0.4,[2]=1.5,[3]=3,[4]=6,[5]=12},    uses=59, maxlevel=1},
34                                         snow =  {times={[1]=0.4,[2]=1.5,[3]=3,[4]=6,[5]=12},    uses=59, maxlevel=1},
35                                         grass = {times={[1]=0.45,[2]=1.5,[3]=3,[4]=6,[5]=12},   uses=59, maxlevel=1},
36                                         sand =  {times={[1]=0.4,[2]=1.5,[3]=3,[4]=6,[5]=12},    uses=59, maxlevel=1},
37                                 }
38                                 damage = 2.5
39                                 wear = 500
40                         elseif material == "stone" then
41                                 groupcaps2={
42                                         dirt =  {times={[1]=0.2,[2]=0.2,[3]=1.5,[4]=3,[5]=6},   uses=131, maxlevel=1},
43                                         snow =  {times={[1]=0.2,[2]=0.2,[3]=1.5,[4]=3,[5]=6},   uses=131, maxlevel=1},
44                                         grass = {times={[1]=0.25,[2]=0.25,[3]=1.5,[4]=3,[5]=6}, uses=131, maxlevel=1},
45                                         sand =  {times={[1]=0.2,[2]=0.2,[3]=1.5,[4]=3,[5]=6},   uses=131, maxlevel=1},
46                                 }
47                                 damage = 3.5
48                                 wear = 400
49                         elseif material == "coal" then
50                                 groupcaps2={
51                                         dirt =  {times={[1]=0.02,[2]=0.02,[3]=1.5,[4]=3,[5]=6},   uses=10, maxlevel=1},
52                                         snow =  {times={[1]=0.02,[2]=0.02,[3]=1.5,[4]=3,[5]=6},   uses=10, maxlevel=1},
53                                         grass = {times={[1]=0.025,[2]=0.025,[3]=1.5,[4]=3,[5]=6}, uses=10, maxlevel=1},
54                                         sand =  {times={[1]=0.02,[2]=0.02,[3]=1.5,[4]=3,[5]=6},   uses=10, maxlevel=1},
55                                 }
56                                 damage = 3.5
57                                 wear = 2000
58                         elseif material == "lapis" then
59                                         groupcaps2={
60                                                 dirt =  {times={[1]=0.17,[2]=0.17,[3]=0.17,[4]=1.5,[5]=4.5}, uses=190, maxlevel=1},
61                                                 snow =  {times={[1]=0.17,[2]=0.17,[3]=0.17,[4]=1.5,[5]=4.5}, uses=190, maxlevel=1},
62                                                 grass = {times={[1]=0.17,[2]=0.17,[3]=0.17,[4]=1.5,[5]=4.5}, uses=190, maxlevel=1},
63                                                 sand =  {times={[1]=0.17,[2]=0.17,[3]=0.17,[4]=1.5,[5]=4.5}, uses=190, maxlevel=1},
64                                         }
65                                         damage = 4
66                                         wear = 350
67                         elseif material == "iron" then
68                                 groupcaps2={
69                                         dirt =  {times={[1]=0.15,[2]=0.15,[3]=0.15,[4]=1.5,[5]=3}, uses=250, maxlevel=1},
70                                         snow =  {times={[1]=0.15,[2]=0.15,[3]=0.15,[4]=1.5,[5]=3}, uses=250, maxlevel=1},
71                                         grass = {times={[1]=0.15,[2]=0.15,[3]=0.15,[4]=1.5,[5]=3}, uses=250, maxlevel=1},
72                                         sand =  {times={[1]=0.15,[2]=0.15,[3]=0.15,[4]=1.5,[5]=3}, uses=250, maxlevel=1},
73                                 }
74                                 damage = 4.5
75                                 wear = 300
76                         elseif material == "gold" then
77                                 groupcaps2={
78                                         dirt =  {times={[1]=0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5}, uses=32, maxlevel=1},
79                                         snow =  {times={[1]=0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5}, uses=32, maxlevel=1},
80                                         grass = {times={[1]=0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5}, uses=32, maxlevel=1},
81                                         sand =  {times={[1]=0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5}, uses=32, maxlevel=1},
82                                 }
83                                 damage = 2.5
84                                 wear = 1000
85                         elseif material == "diamond" then
86                                 groupcaps2={
87                                         dirt =  {times={[1]= 0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5},     uses=1561, maxlevel=1},
88                                         snow =  {times={[1]= 0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5},     uses=1561, maxlevel=1},
89                                         grass = {times={[1]= 0.15,[2]=0.15,[3]=0.15,[4]=0.15,[5]=1.5}, uses=1561, maxlevel=1},
90                                         sand =  {times={[1]= 0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1.5},     uses=1561, maxlevel=1},
91                                 }
92                                 damage = 5.5
93                                 wear = 100
94                         elseif material == "emerald" then
95                                 groupcaps2={
96                                         dirt =  {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=0.05}, uses=2300, maxlevel=1},
97                                         snow =  {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=0.05}, uses=2300, maxlevel=1},
98                                         grass = {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=0.05}, uses=2300, maxlevel=1},
99                                         sand =  {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=0.05}, uses=2300, maxlevel=1},
100                                 }
101                                 damage = 7
102                                 wear = 50
103                         elseif material == "sapphire" then
104                                 groupcaps2={
105                                         dirt =  {times={[1]= 0.025,[2]=0.025,[3]=0.025,[4]=0.025,[5]=0.025}, uses=3000, maxlevel=1},
106                                         snow =  {times={[1]= 0.025,[2]=0.025,[3]=0.025,[4]=0.025,[5]=0.025}, uses=3000, maxlevel=1},
107                                         grass = {times={[1]= 0.025,[2]=0.025,[3]=0.025,[4]=0.025,[5]=0.025}, uses=3000, maxlevel=1},
108                                         sand =  {times={[1]= 0.025,[2]=0.025,[3]=0.025,[4]=0.025,[5]=0.025}, uses=3000, maxlevel=1},
109                                 }
110                                 damage = 9
111                                 wear = 25
112                         elseif material == "ruby" then
113                                 groupcaps2={
114                                         dirt =  {times={[1]= 0.01,[2]=0.01,[3]=0.01,[4]=0.01,[5]=0.01}, uses=5000, maxlevel=1},
115                                         snow =  {times={[1]= 0.01,[2]=0.01,[3]=0.01,[4]=0.01,[5]=0.01}, uses=5000, maxlevel=1},
116                                         grass = {times={[1]= 0.01,[2]=0.01,[3]=0.01,[4]=0.01,[5]=0.01}, uses=5000, maxlevel=1},
117                                         sand =  {times={[1]= 0.01,[2]=0.01,[3]=0.01,[4]=0.01,[5]=0.01}, uses=5000, maxlevel=1},
118                                 }
119                                 damage = 12
120                                 wear = 10
121                         end
122                 end             
123 --[[
124  █████╗ ██╗  ██╗███████╗
125 ██╔══██╗╚██╗██╔╝██╔════╝
126 ███████║ ╚███╔╝ █████╗  
127 ██╔══██║ ██╔██╗ ██╔══╝  
128 ██║  ██║██╔╝ ██╗███████╗
129 ╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝
130 ]]--
131                 if tool == "axe" then
132                         if material == "wood" then
133                                 groupcaps2={
134                                         wood = {times={[1]=1.5,[2]=3,[3]=6,[4]=9,[5]=12}, uses=59, maxlevel=1}
135                                 }
136                                 damage = 4
137                                 wear = 500
138                         elseif material == "stone" then
139                                 groupcaps2={
140                                         wood = {times={[1]=0.75,[2]=0.75,[3]=3,[4]=6,[5]=9}, uses=131, maxlevel=1}
141                                 }
142                                 damage=6
143                                 wear = 400
144                         elseif material == "coal" then
145                                 groupcaps2={
146                                         wood = {times={[1]=0.075,[2]=0.075,[3]=3,[4]=6,[5]=9}, uses=10, maxlevel=1}
147                                 }
148                                 damage=3
149                                 wear = 2000
150                         elseif material == "lapis" then
151                                 groupcaps2={
152                                         wood = {times={[1]=0.6,[2]=0.6,[3]=1,[4]=4,[5]=7}, uses=200, maxlevel=1}
153                                 }
154                                 damage=7
155                                 wear = 350
156                         elseif material == "iron" then
157                                 groupcaps2={
158                                         wood = {times={[1]=0.5,[2]=0.5,[3]=0.5,[4]=3,[5]=6}, uses=250, maxlevel=1}
159                                 }
160                                 damage = 8
161                                 wear = 300
162                         elseif material == "gold" then
163                                 groupcaps2={
164                                         wood = {times={[1]=0.25,[2]=0.25,[3]=0.25,[4]=0.25,[5]=3}, uses=32, maxlevel=1}
165                                 }
166                                 damage = 7
167                                 wear = 1000
168                         elseif material == "diamond" then
169                                 groupcaps2={
170                                         wood = {times={[1]= 0.4,[2]=0.4,[3]=0.4,[4]=0.4,[5]=3}, uses=1561, maxlevel=1}
171                                 }
172                                 damage = 9
173                                 wear = 100
174                         elseif material == "emerald" then
175                                 groupcaps2={
176                                         wood = {times={[1]= 0.2,[2]=0.2,[3]=0.2,[4]=0.2,[5]=1.5}, uses=2300, maxlevel=1}
177                                 }
178                                 damage = 12
179                                 wear = 50
180                         elseif material == "sapphire" then
181                                 groupcaps2={
182                                         wood = {times={[1]= 0.1,[2]=0.1,[3]=0.1,[4]=0.1,[5]=1}, uses=3000, maxlevel=1}
183                                 }
184                                 damage = 14
185                                 wear = 25
186                         elseif material == "ruby" then
187                                 groupcaps2={
188                                         wood = {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=05}, uses=5000, maxlevel=1}
189                                 }
190                                 damage = 18
191                                 wear = 10
192                         end
193                 end             
194                 
195 --[[
196 ██████╗ ██╗ ██████╗██╗  ██╗ █████╗ ██╗  ██╗███████╗
197 ██╔══██╗██║██╔════╝██║ ██╔╝██╔══██╗╚██╗██╔╝██╔════╝
198 ██████╔╝██║██║     █████╔╝ ███████║ ╚███╔╝ █████╗  
199 ██╔═══╝ ██║██║     ██╔═██╗ ██╔══██║ ██╔██╗ ██╔══╝  
200 ██║     ██║╚██████╗██║  ██╗██║  ██║██╔╝ ██╗███████╗
201 ╚═╝     ╚═╝ ╚═════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝╚══════╝                                     
202 ]]--                            
203                 if tool == "pick" then
204                         if material == "wood" then
205                                 groupcaps2={
206                                         --ore hardness
207                                         --1 stone, 1 coal, 2 iron, 3 gold, 4 diamond, 5 obsidian
208                                         stone =     {times={ [1]=1.15   ,[2]=ub ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=59 ,maxlevel=1},
209                                         glass =     {times={ [1]=0.575  ,[2]=ub ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=59 ,maxlevel=1},
210                                         netherrack= {times={ [1]=0.2875 ,[2]=ub ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=59 ,maxlevel=1},
211                                         obsidian=   {times={ [1]=ub     ,[2]=ub ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=59 ,maxlevel=1},
212                                 }
213                                 damage = 3
214                                 wear = 500
215                         elseif material == "stone" then
216                                 groupcaps2={
217                                         stone =     {times={ [1]=0.6  ,[2]=0.6  ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=131 ,maxlevel=1},
218                                         glass =     {times={ [1]=0.3  ,[2]=0.3  ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=131 ,maxlevel=1},
219                                         netherrack= {times={ [1]=0.15 ,[2]=0.15 ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=131 ,maxlevel=1},
220                                         obsidian=   {times={ [1]=ub   ,[2]=ub   ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=131 ,maxlevel=1},
221                                 }
222                                 damage=4
223                                 wear = 400
224                         elseif material == "coal" then
225                                 groupcaps2={
226                                         stone =     {times={ [1]=0.3  ,[2]=0.3  ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=10 ,maxlevel=1},
227                                         glass =     {times={ [1]=0.2  ,[2]=0.2  ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=10 ,maxlevel=1},
228                                         netherrack= {times={ [1]=0.15 ,[2]=0.15 ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=10 ,maxlevel=1},
229                                         obsidian=   {times={ [1]=ub   ,[2]=ub   ,[3]=ub ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=10 ,maxlevel=1},
230                                 }
231                                 damage=2
232                                 wear = 2000
233                         elseif material == "lapis" then
234                                 groupcaps2={
235                                         stone =     {times={ [1]=0.5   ,[2]=0.5   ,[3]=0.5   ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=200 ,maxlevel=1},
236                                         glass =     {times={ [1]=0.25  ,[2]=0.25  ,[3]=0.25  ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=200 ,maxlevel=1},
237                                         netherrack= {times={ [1]=0.125 ,[2]=0.125 ,[3]=0.125 ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=200 ,maxlevel=1},
238                                         obsidian=   {times={ [1]=ub    ,[2]=ub    ,[3]=ub    ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=200 ,maxlevel=1},
239                                 }
240                                 damage=4
241                                 wear = 400
242                         elseif material == "iron" then
243                                 groupcaps2={
244                                         stone =     {times={ [1]=0.4 ,[2]=0.4 ,[3]=0.4 ,[4]=0.4 ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=250 ,maxlevel=1},
245                                         glass =     {times={ [1]=0.2 ,[2]=0.2 ,[3]=0.2 ,[4]=0.2 ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=250 ,maxlevel=1},
246                                         netherrack= {times={ [1]=0.1 ,[2]=0.1 ,[3]=0.1 ,[4]=0.1 ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=250 ,maxlevel=1},
247                                         obsidian=   {times={ [1]=ub  ,[2]=ub  ,[3]=ub  ,[4]=ub  ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=250 ,maxlevel=1},
248                                 }
249                                 damage = 5
250                                 wear = 300
251                         elseif material == "gold" then
252                                 groupcaps2={
253                                         stone =     {times={ [1]=0.2  ,[2]=0.2  ,[3]=0.2  ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=32 ,maxlevel=1},
254                                         glass =     {times={ [1]=0.1  ,[2]=0.1  ,[3]=0.1  ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=32 ,maxlevel=1},
255                                         netherrack= {times={ [1]=0.05 ,[2]=0.05 ,[3]=0.05 ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=32 ,maxlevel=1},
256                                         obsidian=   {times={ [1]=ub   ,[2]=ub   ,[3]=ub   ,[4]=ub ,[5]=ub ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=32 ,maxlevel=1},
257                                 }
258                                 damage = 3
259                                 wear = 1000
260                         elseif material == "diamond" then
261                                 groupcaps2={
262                                         stone =     {times={ [1]=0.3  ,[2]=0.3  ,[3]=0.3  ,[4]=0.3  ,[5]=0.3  ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=1561 ,maxlevel=1},
263                                         glass =     {times={ [1]=0.15 ,[2]=0.15 ,[3]=0.15 ,[4]=0.15 ,[5]=0.15 ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=1561 ,maxlevel=1},
264                                         netherrack= {times={ [1]=0.8  ,[2]=0.8  ,[3]=0.8  ,[4]=0.8  ,[5]=0.8  ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=1561 ,maxlevel=1},
265                                         obsidian=   {times={ [1]=10   ,[2]=ub   ,[3]=ub   ,[4]=ub   ,[5]=ub   ,[6]=ub ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=1561 ,maxlevel=1},
266                                 }
267                                 damage = 6
268                                 wear = 100
269                         elseif material == "emerald" then
270                                 groupcaps2={
271                                         stone =     {times={ [1]=0.15 ,[2]=0.15 ,[3]=0.15 ,[4]=0.15 ,[5]=0.15 ,[6]=0.15 ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=2300 ,maxlevel=1},
272                                         glass =     {times={ [1]=0.05 ,[2]=0.05 ,[3]=0.05 ,[4]=0.05 ,[5]=0.05 ,[6]=0.05 ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=2300 ,maxlevel=1},
273                                         netherrack= {times={ [1]=0.05 ,[2]=0.05 ,[3]=0.05 ,[4]=0.05 ,[5]=0.05 ,[6]=0.05 ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=2300 ,maxlevel=1},
274                                         obsidian=   {times={ [1]=5    ,[2]=5    ,[3]=ub   ,[4]=ub   ,[5]=ub   ,[6]=ub   ,[7]=ub ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=2300 ,maxlevel=1},
275                                 }
276                                 damage = 8
277                                 wear = 50
278                         elseif material == "sapphire" then
279                                 groupcaps2={
280                                         stone =     {times={ [1]=0.05  ,[2]=0.05  ,[3]=0.05  ,[4]=0.05  ,[5]=0.05  ,[6]=0.05  ,[7]=0.05  ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=3000 ,maxlevel=1},
281                                         glass =     {times={ [1]=0.025 ,[2]=0.025 ,[3]=0.025 ,[4]=0.025 ,[5]=0.025 ,[6]=0.025 ,[7]=0.025 ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=3000 ,maxlevel=1},
282                                         netherrack= {times={ [1]=0.025 ,[2]=0.025 ,[3]=0.025 ,[4]=0.025 ,[5]=0.025 ,[6]=0.025 ,[7]=0.025 ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=3000 ,maxlevel=1},
283                                         obsidian=   {times={ [1]=2     ,[2]=2     ,[3]=2     ,[4]=ub    ,[5]=ub    ,[6]=ub    ,[7]=ub    ,[8]=ub ,[9]=ub ,[10]=ub} ,uses=3000 ,maxlevel=1},
284                                 }
285                                 damage = 10
286                                 wear = 25
287                         elseif material == "ruby" then
288                                 groupcaps2={
289                                         stone =     {times={ [1]=0.03 ,[2]=0.03 ,[3]=0.03 ,[4]=0.03 ,[5]=0.03 ,[6]=0.03 ,[7]=0.03 ,[8]=0.03 ,[9]=ub ,[10]=ub} ,uses=5000 ,maxlevel=1},
290                                         glass =     {times={ [1]=0.02 ,[2]=0.02 ,[3]=0.02 ,[4]=0.02 ,[5]=0.02 ,[6]=0.02 ,[7]=0.02 ,[8]=0.02 ,[9]=ub ,[10]=ub} ,uses=5000 ,maxlevel=1},
291                                         netherrack= {times={ [1]=0.02 ,[2]=0.02 ,[3]=0.02 ,[4]=0.02 ,[5]=0.02 ,[6]=0.02 ,[7]=0.02 ,[8]=0.02 ,[9]=ub ,[10]=ub} ,uses=5000 ,maxlevel=1},
292                                         obsidian=   {times={ [1]=1    ,[2]=1    ,[3]=1    ,[4]=1    ,[5]=ub   ,[6]=ub   ,[7]=ub   ,[8]=ub   ,[9]=ub ,[10]=ub} ,uses=5000 ,maxlevel=1},
293                                 }
294                                 damage = 16
295                                 wear = 10
296                         end
297                 end
298                 minetest.register_tool("main:"..material..tool, {
299                         description = material:gsub("^%l", string.upper).." "..tool:gsub("^%l", string.upper),
300                         inventory_image = material..tool..".png",
301                         tool_capabilities = {
302                                 full_punch_interval = 0,
303                                 --max_drop_level=0,
304                                 groupcaps=groupcaps2,
305                                 damage_groups = {damage=damage},
306                         },
307                         sound = {breaks = {name="tool_break",gain=0.4}}, -- change this
308                         groups = {flammable = 2, tool=1 },
309                         mob_hit_wear = wear,
310                         --torch rightclick - hacked in since api doesn't call on_place correctly
311                         on_place = function(itemstack, placer, pointed_thing)
312                                 local inv = placer:get_inventory()
313                                 local torch = inv:contains_item("main", "torch:torch")
314                                 local is_air = minetest.get_node(pointed_thing.above).name == "air"
315                                 local dir = vector.subtract(pointed_thing.under, pointed_thing.above)
316                                 local diff = dir.y
317                                 local noddef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
318                                 local walkable = noddef.walkable
319                                 local sneak = placer:get_player_control().sneak
320                                 
321                                 if not sneak and noddef.on_rightclick then
322                                         minetest.item_place(itemstack, placer, pointed_thing)
323                                         return
324                                 end
325                                 
326                                 if torch and is_air and walkable then
327                                         if diff == 0 then
328                                                 local param2 = minetest.dir_to_wallmounted(dir)
329                                                 minetest.set_node(pointed_thing.above, {name="torch:wall",param2=param2})
330                                                 minetest.sound_play("wood", {pos=pointed_thing.above, gain = 1.0})
331                                         elseif diff == -1 then
332                                                 minetest.place_node(pointed_thing.above,{name="torch:floor"})
333                                         end
334                                         --take item
335                                         if diff == 0 or diff == -1 then
336                                                 inv:remove_item("main", "torch:torch")
337                                         end     
338                                 end
339                         end,
340                 })
341         end
342         
343         
344         local wear
345         
346         if material == "wood" then
347                 damage = 4
348                 wear = 500
349         elseif material == "stone" then
350                 damage = 5
351                 wear = 400
352         elseif material == "coal" then
353                 damage = 2
354                 wear = 2000
355         elseif material == "lapis" then
356                 damage = 5
357                 wear = 350
358         elseif material == "iron" then
359                 damage = 6
360                 wear = 300
361         elseif material == "gold" then
362                 damage = 4
363                 wear = 1000
364         elseif material == "diamond" then
365                 damage = 7
366                 wear = 100
367         elseif material == "emerald" then
368                 damage = 9
369                 wear = 50
370         elseif material == "sapphire" then
371                 damage = 11
372                 wear = 25
373         end
374
375         
376         --add swords
377         minetest.register_tool("main:"..material.."sword", {
378                 description = material:gsub("^%l", string.upper).." Sword",
379                 inventory_image = material.."sword.png",
380                 tool_capabilities = {
381                         full_punch_interval = 0,
382                         --max_drop_level=0,
383                         groupcaps={leaves = {times={[4]=0.7,[3]=0.7,[2]=0.7,[1]=0.7}, uses=sword_durability[level_id], maxlevel=1},},
384                         damage_groups = {damage = damage},
385                 },
386                 mob_hit_wear = wear,
387                 sound = {breaks = {name="tool_break",gain=0.4}}, -- change this
388                 groups = {damage=damage }
389         })
390 end
391
392 --shears
393 minetest.register_tool("main:shears", {
394         description = "Shears",
395         inventory_image = "shears.png",
396         tool_capabilities = {
397                 groupcaps = {
398                 leaves = {times={[1]= 0.05,[2]=0.05,[3]=0.05,[4]=0.05,[5]=0.05}, uses=500, maxlevel=1},
399                 }
400         },
401         sound = {breaks = "default_tool_breaks"}, -- change this
402         groups = {shears = 1}
403 })