summaryrefslogtreecommitdiff
path: root/technic/items.lua
blob: d527c8b3ada7f106a1f23034e7919f0fea330b6d (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208

local S = technic.getter

minetest.register_craftitem("technic:silicon_wafer", {
	description = S("Silicon Wafer"),
	inventory_image = "technic_silicon_wafer.png",
})

minetest.register_craftitem( "technic:doped_silicon_wafer", {
	description = S("Doped Silicon Wafer"),
	inventory_image = "technic_doped_silicon_wafer.png",
})

minetest.register_craftitem("technic:uranium_fuel", {
	description = S("Uranium Fuel"),
	inventory_image = "technic_uranium_fuel.png",
})

minetest.register_craftitem( "technic:diamond_drill_head", {
	description = S("Diamond Drill Head"),
	inventory_image = "technic_diamond_drill_head.png",
})

minetest.register_tool("technic:blue_energy_crystal", {
	description = S("Blue Energy Crystal"),
	inventory_image = minetest.inventorycube(
		"technic_diamond_block_blue.png",
		"technic_diamond_block_blue.png",
		"technic_diamond_block_blue.png"),
	wear_represents = "technic_RE_charge",
	on_refill = technic.refill_RE_charge,
	tool_capabilities = {
		max_drop_level = 0,
		groupcaps = {
			fleshy = {times={}, uses=10000, maxlevel=0}
		}
	}
}) 

minetest.register_tool("technic:green_energy_crystal", {
	description = S("Green Energy Crystal"),
	inventory_image = minetest.inventorycube(
		"technic_diamond_block_green.png",
		"technic_diamond_block_green.png",
		"technic_diamond_block_green.png"),
	wear_represents = "technic_RE_charge",
	on_refill = technic.refill_RE_charge,
	tool_capabilities = {
		max_drop_level = 0,
		groupcaps = {
			fleshy = {times={}, uses=10000, maxlevel=0}
		}
	}
}) 

minetest.register_tool("technic:red_energy_crystal", {
	description = S("Red Energy Crystal"),
	inventory_image = minetest.inventorycube(
		"technic_diamond_block_red.png",
		"technic_diamond_block_red.png",
		"technic_diamond_block_red.png"),
	wear_represents = "technic_RE_charge",
	on_refill = technic.refill_RE_charge,
	tool_capabilities = {
		max_drop_level = 0,
		groupcaps = {
			fleshy = {times={}, uses=10000, maxlevel=0}
		}
	}
}) 

minetest.register_craftitem("technic:copper_coil", {
	description = S("Copper Coil"),
	inventory_image = "technic_copper_coil.png",
})

minetest.register_craftitem("technic:motor", {
	description = S("Electric Motor"),
	inventory_image = "technic_motor.png",
})

minetest.register_craftitem("technic:lv_transformer", {
	description = S("Low Voltage Transformer"),
	inventory_image = "technic_lv_transformer.png",
})

minetest.register_craftitem("technic:mv_transformer", {
	description = S("Medium Voltage Transformer"),
	inventory_image = "technic_mv_transformer.png",
})

minetest.register_craftitem( "technic:hv_transformer", {
	description = S("High Voltage Transformer"),
	inventory_image = "technic_hv_transformer.png",
})

minetest.register_craftitem( "technic:control_logic_unit", {
	description = S("Control Logic Unit"),
	inventory_image = "technic_control_logic_unit.png",
})

minetest.register_craftitem("technic:mixed_metal_ingot", {
	description = S("Mixed Metal Ingot"),
	inventory_image = "technic_mixed_metal_ingot.png",
})

minetest.register_craftitem("technic:composite_plate", {
	description = S("Composite Plate"),
	inventory_image = "technic_composite_plate.png",
})

minetest.register_craftitem("technic:copper_plate", {
	description = S("Copper Plate"),
	inventory_image = "technic_copper_plate.png",
})

minetest.register_craftitem("technic:carbon_plate", {
	description = S("Carbon Plate"),
	inventory_image = "technic_carbon_plate.png",
})

minetest.register_craftitem("technic:graphite", {
	description = S("Graphite"),
	inventory_image = "technic_graphite.png",
})

minetest.register_craftitem("technic:carbon_cloth", {
	description = S("Carbon Cloth"),
	inventory_image = "technic_carbon_cloth.png",
})

minetest.register_node("technic:machine_casing", {
	description = S("Machine Casing"),
	groups = {cracky=2},
	sunlight_propagates = true,
	paramtype = "light",
	drawtype = "allfaces",
	tiles = {"technic_machine_casing.png"},
	sounds = default.node_sound_stone_defaults(),
})

for p = 0, 35 do
	local nici = (p ~= 0 and p ~= 7 and p ~= 35) and 1 or nil
	local psuffix = p == 7 and "" or p
	local ingot = "technic:uranium"..psuffix.."_ingot"
	local block = "technic:uranium"..psuffix.."_block"
	local ov = p == 7 and minetest.override_item or nil;
	(ov or minetest.register_craftitem)(ingot, {
		description = string.format(S("%.1f%%-Fissile Uranium Ingot"), p/10),
		inventory_image = "technic_uranium_ingot.png",
		groups = {uranium_ingot=1, not_in_creative_inventory=nici},
	});
	-- Note on radioactivity of blocks:
	-- Source: <http://www.wise-uranium.org/rup.html>
	-- The baseline radioactivity of an isotope is not especially
	-- correlated with whether it's fissile (i.e., suitable as
	-- reactor fuel).  Natural uranium consists mainly of fissile
	-- U-235 and non-fissile U-238, and both U-235 and U-238 are
	-- significantly radioactive.  U-235's massic activity is
	-- about 80.0 MBq/kg, and U-238's is about 12.4 MBq/kg, which
	-- superficially suggests that 3.5%-fissile uranium should have
	-- only 1.19 times the activity of fully-depleted uranium.
	-- But a third isotope affects the result hugely: U-234 has
	-- massic activity of 231 GBq/kg.  Natural uranium has massic
	-- composition of 99.2837% U-238, 0.711% U-235, and 0.0053% U-234,
	-- so its activity comes roughly 49% each from U-234 and U-238
	-- and only 2% from U-235.  During enrichment via centrifuge,
	-- the U-234 fraction is concentrated along with the U-235, with
	-- the U-234:U-235 ratio remaining close to its original value.
	-- (Actually the U-234 gets separated from U-238 slightly more
	-- than the U-235 is, so the U-234:U-235 ratio is slightly
	-- higher in enriched uranium.)  A typical massic composition
	-- for 3.5%-fissile uranium is 96.47116% U-238, 3.5% U-235, and
	-- 0.02884% U-234.  This gives 3.5%-fissile uranium about 6.55
	-- times the activity of fully-depleted uranium.  The values we
	-- compute here for the "radioactive" group value are based on
	-- linear interpolation of activity along that scale, rooted at
	-- a natural (0.7%-fissile) uranium block having the activity of
	-- 9 uranium ore blocks (due to 9 ingots per block).  The group
	-- value is proportional to the square root of the activity, and
	-- uranium ore has radioactive=1.  This yields radioactive=1.0
	-- for a fully-depleted uranium block and radioactive=2.6 for
	-- a 3.5%-fissile uranium block.
	local radioactivity = math.floor(math.sqrt((1+5.55*p/35) * 18 / (1+5.55*7/35)) + 0.5);
	(ov or minetest.register_node)(block, {
		description = string.format(S("%.1f%%-Fissile Uranium Block"), p/10),
		tiles = {"technic_uranium_block.png"},
		is_ground_content = true,
		groups = {uranium_block=1, not_in_creative_inventory=nici,
			cracky=1, level=2, radioactive=radioactivity},
		sounds = default.node_sound_stone_defaults(),
	});
	if not ov then
		minetest.register_craft({
			output = block,
			recipe = {
				{ingot, ingot, ingot},
				{ingot, ingot, ingot},
				{ingot, ingot, ingot},
			},
		})
		minetest.register_craft({
			output = ingot.." 9",
			recipe = {{block}},
		})
	end
end