Add mods: technic, moreores, paintings, Nyancat (Pbj_pup). Small fix: sandwiches
203
mods/technic_plus_beta/technic_cnc/README.md
Normal file
|
@ -0,0 +1,203 @@
|
|||
Technic CNC
|
||||
-----------------
|
||||
|
||||
Provides CNC machines that allow cutting nodes to selected shapes.
|
||||
|
||||
[](https://github.com/mt-mods/technic/actions/workflows/luacheck.yml?query=branch%3Amaster)
|
||||
[](https://github.com/mt-mods/technic/actions/workflows/mineunit.yml?query=branch%3Amaster)
|
||||
[](https://github.com/mt-mods/technic/actions/workflows/mineunit.yml?query=branch%3Amaster+is%3Asuccess)
|
||||
|
||||
# Machines
|
||||
|
||||
### LV CNC Machine (technic:cnc)
|
||||
|
||||
* Manufactures different shapes from provided raw materials.
|
||||
* Manufactures products over time if technic is enabled.
|
||||
* Manufactures products immediately when selecting program if technic is not enabled.
|
||||
* 1 inventory slot for input materials, 4 inventory slots for products.
|
||||
|
||||
### LV CNC Machine Mk2 (technic:cnc_mk2)
|
||||
|
||||
* All features provided by technic:cnc
|
||||
* Only available if technic, digilines or pipeworks is available.
|
||||
* Has digiline API for programming, enabling, disabling, getting status and getting programs.
|
||||
* Can use technic upgrades for energy saving (RE battery), auto eject (CLU), and public use (chest).
|
||||
* Has support for pipeworks tubes for receiving raw materials or taking products using filter injectors.
|
||||
|
||||
# Configuration (minetest.conf)
|
||||
|
||||
| Configuration key | Default | Description
|
||||
|-----------------------------|-------------|--------------------------------------------------------------------------|
|
||||
| technic_cnc_use_technic | true | Use technic power networks and upgrades, machines require LV network |
|
||||
| technic_cnc_use_digilines | true | Use digilines to allow configuring machines using digiline messages |
|
||||
| technic_cnc_use_pipeworks | true | Use pipeworks for tube and injector support |
|
||||
|
||||
# Digilines (technic:cnc_mk2)
|
||||
|
||||
### Simple commands, type: string
|
||||
|
||||
| Command | Description
|
||||
|-------------------|--------------------------------------------------------------------------------------------------|
|
||||
| enable | Enables machines, machine will attempt manufacturing products if materials are available |
|
||||
| disable | Disables machines, machine will stop manufacturing and will not consume power |
|
||||
| programs | Machine will send table containing all possible programs as keys and product count as values |
|
||||
| status | Machine will send table with following keys: enabled, time, size, program, user, material |
|
||||
|
||||
Example reply for `programs` command:
|
||||
```lua
|
||||
{
|
||||
element_end = 2,
|
||||
slope_inner_edge = 1,
|
||||
twocurvededge = 1,
|
||||
cylinder = 2,
|
||||
stick = 8,
|
||||
spike = 1,
|
||||
element_cross = 1,
|
||||
slope_edge_upsdown = 1,
|
||||
cylinder_horizontal = 2,
|
||||
element_edge = 2,
|
||||
oblate_spheroid = 1,
|
||||
slope = 2,
|
||||
slope_lying = 2,
|
||||
slope_inner_edge_upsdown = 1,
|
||||
sphere = 1,
|
||||
element_straight = 2,
|
||||
slope_upsdown = 2,
|
||||
pyramid = 2,
|
||||
element_t = 1,
|
||||
onecurvededge = 1,
|
||||
slope_edge = 1
|
||||
}
|
||||
```
|
||||
|
||||
Example reply for `status` command:
|
||||
```lua
|
||||
{
|
||||
enabled = true,
|
||||
time = 2,
|
||||
user = "SX",
|
||||
material = {
|
||||
count = 98,
|
||||
name = "default:desert_sandstone",
|
||||
},
|
||||
program = "sphere",
|
||||
size = 2
|
||||
}
|
||||
```
|
||||
|
||||
### Complex commands, type: table
|
||||
|
||||
Command can contain any combination of keys and will affect only relevant parts of functionality.
|
||||
|
||||
Example with all possible keys set:
|
||||
|
||||
```lua
|
||||
{
|
||||
program = "sphere",
|
||||
size = 2,
|
||||
enabled = true
|
||||
}
|
||||
```
|
||||
|
||||
Value for `program` should be one of keys returned by simple command `programs`, it will change CNC program.
|
||||
|
||||
Value for `size` should be number `1` or `2`, other numbers or types are not acceppted. Sets size of programs that can
|
||||
produce both half and full sized nodes. `2` is for half size and `1` for full size products.
|
||||
|
||||
Value for `ènabled` should be `true` or `false`. Functions similar to simple string commands `enable` and `disable`.
|
||||
|
||||
Invalid values or value types are simply skipped and not used, check your value types
|
||||
and keys for typos if it seems that machine accepts commands only partially.
|
||||
|
||||
# Technic CNC API for extensions
|
||||
|
||||
API is incomplete, feel free to give suggestions for functionality or other feedback about CNC API.
|
||||
|
||||
### CNC material, program and product extension API:
|
||||
|
||||
*Currently undetermined / to be determined.*
|
||||
|
||||
### CNC machine control and manufacturing API:
|
||||
```lua
|
||||
-- Get product item string with count for given program, material and size
|
||||
-- Return value example: default:desert_sandstone_technic_cnc_stick 8
|
||||
function technic_cnc.get_product(program, material, size)
|
||||
|
||||
-- Set program for cnc machine with optional size, size is not changed if size is nil
|
||||
function technic_cnc.set_program(meta, program, size)
|
||||
|
||||
-- Returns true if CNC machine is enabled and false if machine is disabled
|
||||
function technic_cnc.is_enabled(meta) -- return true|false
|
||||
|
||||
-- Enables CNC machine
|
||||
function technic_cnc.enable(meta)
|
||||
|
||||
-- Disables CNC machine
|
||||
function technic_cnc.disable(meta)
|
||||
|
||||
-- Finds first input stack with items
|
||||
function technic_cnc.get_material(inventory)
|
||||
|
||||
-- Manufacture product based on current program.
|
||||
-- Updates src and dst inventories taking required amount from src inventory and placing products into dst inventory
|
||||
function technic_cnc.produce(meta, inventory)
|
||||
```
|
||||
|
||||
### Register new CNC machine defined by your mod:
|
||||
```lua
|
||||
-- Textures for machine
|
||||
local tiles = {
|
||||
"my_mod_my_cnc_machine_top.png",
|
||||
"my_mod_my_cnc_machine_bottom.png",
|
||||
"my_mod_my_cnc_machine_right.png",
|
||||
"my_mod_my_cnc_machine_left.png",
|
||||
"my_mod_my_cnc_machine_back.png",
|
||||
"my_mod_my_cnc_machine_front.png"
|
||||
}
|
||||
local tiles_active = {
|
||||
"my_mod_my_cnc_machine_top_active.png",
|
||||
"my_mod_my_cnc_machine_bottom_active.png",
|
||||
"my_mod_my_cnc_machine_right_active.png",
|
||||
"my_mod_my_cnc_machine_left_active.png",
|
||||
"my_mod_my_cnc_machine_back_active.png",
|
||||
"my_mod_my_cnc_machine_front_active.png"
|
||||
}
|
||||
|
||||
--
|
||||
-- Add pipeworks tube connection with overlay textures if pipeworks is available for CNC machines
|
||||
--
|
||||
local tube_def = nil
|
||||
if technic_cnc.pipeworks then
|
||||
tiles = technic_cnc.pipeworks.tube_entry_overlay(tiles)
|
||||
tiles_active = technic_cnc.pipeworks.tube_entry_overlay(tiles_active)
|
||||
tube_def = technic_cnc.pipeworks.new_tube()
|
||||
end
|
||||
|
||||
--
|
||||
-- Default values provided with example machine registration below.
|
||||
--
|
||||
-- Required definition keys that do not have default value:
|
||||
-- description, programs, demand
|
||||
-- Optional definition keys that do not have default value:
|
||||
-- recipe, upgrade, digilines, tube
|
||||
--
|
||||
technic_cnc.register_cnc_machine("my_mod_name:my_cnc_machine", {
|
||||
description = "My Mod - My CNC Machine",
|
||||
input_size = 1,
|
||||
output_size = 4,
|
||||
digilines = technic_cnc.digilines,
|
||||
upgrade = true,
|
||||
tube = tube_def,
|
||||
programs = { "sphere", "spike", "stick", "slope" },
|
||||
demand = 539,
|
||||
get_formspec = technic_cnc.formspec.get_formspec,
|
||||
on_receive_fields = technic_cnc.formspec.on_receive_fields,
|
||||
recipe = {
|
||||
{'default:glass', 'default:glass', 'default:glass'},
|
||||
{'default:steelblock', 'default:diamond', 'default:steelblock'},
|
||||
{'default:steelblock', '', 'default:steelblock'},
|
||||
},
|
||||
tiles = tiles,
|
||||
tiles_active = tiles_active,
|
||||
})
|
||||
```
|
459
mods/technic_plus_beta/technic_cnc/api.lua
Normal file
|
@ -0,0 +1,459 @@
|
|||
-- API for the technic CNC machine
|
||||
-- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
|
||||
|
||||
local S = technic_cnc.getter
|
||||
local ALPHA_CLIP = minetest.features.use_texture_alpha_string_modes and "clip" or true
|
||||
|
||||
-- Generic function for registering all the different node types
|
||||
function technic_cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
|
||||
|
||||
local dtype
|
||||
local nodeboxdef
|
||||
local meshdef
|
||||
|
||||
if type(model) ~= "string" then -- assume a nodebox if it's a table or function call
|
||||
dtype = "nodebox"
|
||||
nodeboxdef = {
|
||||
type = "fixed",
|
||||
fixed = model
|
||||
}
|
||||
else
|
||||
dtype = "mesh"
|
||||
meshdef = model
|
||||
end
|
||||
|
||||
if cbox and not sbox then sbox = cbox end
|
||||
|
||||
minetest.register_node(":"..recipeitem.."_"..suffix, {
|
||||
description = description,
|
||||
drawtype = dtype,
|
||||
node_box = nodeboxdef,
|
||||
mesh = meshdef,
|
||||
tiles = images,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = ALPHA_CLIP,
|
||||
walkable = true,
|
||||
groups = groups,
|
||||
is_ground_content = false,
|
||||
selection_box = sbox,
|
||||
collision_box = cbox
|
||||
})
|
||||
end
|
||||
|
||||
-- function to iterate over all the programs the CNC machine knows
|
||||
function technic_cnc.register_all(recipeitem, groups, images, description)
|
||||
for _, data in ipairs(technic_cnc.programs) do
|
||||
-- Disable node creation for disabled node types for some material
|
||||
local do_register = true
|
||||
if technic_cnc.programs_disable[recipeitem] ~= nil then
|
||||
for __, disable in ipairs(technic_cnc.programs_disable[recipeitem]) do
|
||||
if disable == data.suffix then
|
||||
do_register = false
|
||||
end
|
||||
end
|
||||
end
|
||||
-- Create the node if it passes the test
|
||||
if do_register then
|
||||
technic_cnc.register_program(recipeitem, data.suffix, data.model,
|
||||
groups, images, description.." "..data.desc, data.cbox, data.sbox)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- REGISTER NEW TECHNIC_CNC_API's PART 2:
|
||||
-- technic_cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
function technic_cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying,
|
||||
desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge,
|
||||
desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge,
|
||||
desc_cylinder, desc_cylinder_horizontal, desc_spheroid, desc_element_straight, desc_element_edge,
|
||||
desc_element_t, desc_element_cross, desc_element_end)
|
||||
technic_cnc.register_slope(recipeitem, groups, images, desc_slope)
|
||||
technic_cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying)
|
||||
technic_cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
|
||||
technic_cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
|
||||
technic_cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
|
||||
technic_cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
|
||||
technic_cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
|
||||
technic_cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
|
||||
technic_cnc.register_spike(recipeitem, groups, images, desc_spike)
|
||||
technic_cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
|
||||
technic_cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge)
|
||||
technic_cnc.register_cylinder(recipeitem, groups, images, desc_cylinder)
|
||||
technic_cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal)
|
||||
technic_cnc.register_spheroid(recipeitem, groups, images, desc_spheroid)
|
||||
technic_cnc.register_element_straight(recipeitem, groups, images, desc_element_straight)
|
||||
technic_cnc.register_element_edge(recipeitem, groups, images, desc_element_edge)
|
||||
technic_cnc.register_element_t(recipeitem, groups, images, desc_element_t)
|
||||
technic_cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
|
||||
technic_cnc.register_element_end(recipeitem, groups, images, desc_element_end)
|
||||
end
|
||||
|
||||
-- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
function technic_cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
|
||||
technic_cnc.register_stick(recipeitem, groups, images, desc_stick)
|
||||
end
|
||||
|
||||
function technic_cnc.register_elements(recipeitem, groups, images, desc_element_straight_double,
|
||||
desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
|
||||
technic_cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
|
||||
technic_cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
|
||||
technic_cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
|
||||
technic_cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
|
||||
technic_cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
|
||||
end
|
||||
|
||||
-- CNC MACHINE API
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function technic_cnc.get_product(program, material, size)
|
||||
-- Get and return product item string with stack size or nil if product not available
|
||||
local multiplier = technic_cnc.products[program]
|
||||
if multiplier then
|
||||
size = math.max(1, math.min(2, size))
|
||||
local twosize = technic_cnc.twosize_products[program]
|
||||
local double = size == 1 and twosize and "_double" or ""
|
||||
local product = ("%s_technic_cnc_%s%s"):format(material, program, double)
|
||||
if minetest.registered_nodes[product] then
|
||||
return ("%s %d"):format(product, multiplier * (twosize and size or 1))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function technic_cnc.set_program(meta, program, size)
|
||||
if technic_cnc.products[program] then
|
||||
if size then
|
||||
meta:set_int("size", math.max(1, math.min(2, size)))
|
||||
end
|
||||
meta:set_string("program", program)
|
||||
return true
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function technic_cnc.is_enabled(meta)
|
||||
return meta:get("disable") == nil
|
||||
end
|
||||
|
||||
function technic_cnc.enable(meta)
|
||||
meta:set_string("disable", "")
|
||||
end
|
||||
|
||||
function technic_cnc.disable(meta)
|
||||
meta:set_string("disable", "1")
|
||||
meta:set_string("LV_EU_demand", "")
|
||||
end
|
||||
|
||||
function technic_cnc.get_material(inventory)
|
||||
local srclist = inventory:get_list("src")
|
||||
for index, stack in ipairs(srclist) do
|
||||
if not stack:is_empty() then
|
||||
return index, stack
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function technic_cnc.produce(meta, inventory)
|
||||
-- Get and check program
|
||||
local program = meta:get("program")
|
||||
if program then
|
||||
-- Get material stack
|
||||
local index, materialstack = technic_cnc.get_material(inventory)
|
||||
if index and materialstack then
|
||||
-- Get product and produce items if output has enough space
|
||||
local size = meta:get_int("size")
|
||||
local product = technic_cnc.get_product(program, materialstack:get_name(), size)
|
||||
if product and inventory:room_for_item("dst", product) then
|
||||
-- Remove materials from input inventory
|
||||
materialstack:take_item()
|
||||
inventory:set_stack("src", index, materialstack)
|
||||
|
||||
-- Add results to output inventory of machine
|
||||
inventory:add_item("dst", product)
|
||||
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- REGISTER MACHINES
|
||||
------------------------------------------------------------------------------------------------------------
|
||||
|
||||
function technic_cnc.register_cnc_machine(nodename, def)
|
||||
-- Basic sanity check for registration, prefer failing early
|
||||
assert(type(nodename) == "string" and #nodename > 0, "nodename should be non empty string")
|
||||
assert(type(def.description) == "string", "description field should be string")
|
||||
assert(({["nil"]=1,number=1})[type(def.input_size)], "input_size field should be number if set")
|
||||
assert(({["nil"]=1,number=1})[type(def.output_size)], "output_size field should be number if set")
|
||||
assert(({["nil"]=1,["function"]=1})[type(def.get_formspec)], "get_formspec should be function if set")
|
||||
assert(({["nil"]=1,["function"]=1})[type(def.on_receive_fields)], "on_receive_fields should be function if set")
|
||||
assert(({["nil"]=1,["function"]=1})[type(def.technic_run)], "technic_run should be function if set")
|
||||
assert(({["nil"]=1,table=1})[type(def.tube)], "tube field should be table if set")
|
||||
|
||||
-- Register recipe if recipe given
|
||||
if def.recipe then
|
||||
minetest.register_craft({
|
||||
output = nodename,
|
||||
recipe = def.recipe,
|
||||
})
|
||||
end
|
||||
|
||||
-- Collect / generate basic variables for CNC machine
|
||||
local nodename_active = nodename .. "_active"
|
||||
local idle_infotext = S("@1 Idle", def.description)
|
||||
local active_infotext = S("@1 Active", def.description)
|
||||
local unpowered_infotext = S("@1 Unpowered", def.description)
|
||||
local groups = { cracky = 2, technic_machine = 1, technic_lv = 1 }
|
||||
-- It is possible to override these using def fields
|
||||
local on_receive_fields = def.on_receive_fields or technic_cnc.formspec.on_receive_fields
|
||||
local get_formspec = def.get_formspec or technic_cnc.formspec.get_formspec
|
||||
local input_size = def.input_size or 1
|
||||
local output_size = def.output_size or 4
|
||||
local technic_run
|
||||
local after_dig_node
|
||||
local allow_metadata_inventory_put
|
||||
local allow_metadata_inventory_take
|
||||
local allow_metadata_inventory_move
|
||||
local can_dig
|
||||
|
||||
-- Update few variables in definition table to make some things easier
|
||||
def.get_formspec = get_formspec
|
||||
def.input_size = input_size
|
||||
def.output_size = output_size
|
||||
|
||||
-- UPGRADE OLD CNC MACHINES
|
||||
local function upgrade_machine(meta)
|
||||
local oldmeta = meta:get("technic_power_machine")
|
||||
if oldmeta then
|
||||
local product = meta:get("cnc_product")
|
||||
-- Remove old metadata fields
|
||||
meta:set_string("cnc_product", "")
|
||||
meta:set_string("cnc_multiplier", "")
|
||||
meta:set_string("technic_power_machine", "")
|
||||
if product then
|
||||
-- Only executed for active machines, old inactive machines do not have cnc_product set
|
||||
local program_raw = product:match("[%w_]+:[%w_]+_technic_cnc_([%w_]+)")
|
||||
if program_raw then
|
||||
local double = "_double"
|
||||
local size = program_raw:sub(-#double) == double and 1 or 2
|
||||
local program = size == 1 and program_raw:sub(1, #program_raw - #double) or program_raw
|
||||
meta:set_string("program", program)
|
||||
meta:set_int("size", size)
|
||||
end
|
||||
meta:set_string("formspec", get_formspec(nodename, def, meta))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if technic_cnc.use_technic and not def.technic_run then
|
||||
-- Check and get EU demand for Technic CNC machine
|
||||
assert(type(def.demand) == "number", "demand field must be set for Technic CNC")
|
||||
|
||||
-- Update machine state if needed
|
||||
local function update_machine(pos, meta, oldname, newname, infotext, demand)
|
||||
if demand then
|
||||
meta:set_int("LV_EU_demand", demand)
|
||||
end
|
||||
meta:set_string("infotext", infotext)
|
||||
technic.swap_node(pos, newname)
|
||||
end
|
||||
|
||||
-- Technic action code performing the transformation, use form handler for when not using technic
|
||||
technic_run = function(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
upgrade_machine(meta)
|
||||
|
||||
local demand = def.demand
|
||||
if def.upgrade then
|
||||
local EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta)
|
||||
if EU_upgrade and EU_upgrade > 0 then
|
||||
demand = math.max(0, demand - EU_upgrade * demand * 0.2)
|
||||
end
|
||||
technic.handle_machine_pipeworks(pos, tube_upgrade)
|
||||
end
|
||||
|
||||
if not technic_cnc.is_enabled(meta) or not meta:get("program") then
|
||||
update_machine(pos, meta, node.name, nodename, idle_infotext, 0)
|
||||
return
|
||||
end
|
||||
|
||||
-- Get and check material stack
|
||||
local inv = meta:get_inventory()
|
||||
if inv:is_empty("src") then
|
||||
update_machine(pos, meta, node.name, nodename, idle_infotext, 0)
|
||||
return
|
||||
end
|
||||
|
||||
local eu_input = meta:get_int("LV_EU_input")
|
||||
if eu_input < demand then
|
||||
update_machine(pos, meta, node.name, nodename, unpowered_infotext, demand)
|
||||
return
|
||||
end
|
||||
|
||||
local src_time = meta:get_int("src_time")
|
||||
if src_time >= 3 then
|
||||
-- Cycle counter expired, reset counter and attempt to produce items
|
||||
if technic_cnc.produce(meta, inv) then
|
||||
-- Production succeed, reset cycle counter
|
||||
meta:set_int("src_time", 0)
|
||||
else
|
||||
-- Production failed, set machine status to unpowered and try again after one cycle
|
||||
meta:set_int("src_time", 2)
|
||||
update_machine(pos, meta, node.name, nodename, unpowered_infotext, 0)
|
||||
return
|
||||
end
|
||||
else
|
||||
-- Increment cycle counter
|
||||
meta:set_int("src_time", src_time + 1)
|
||||
end
|
||||
update_machine(pos, meta, node.name, nodename_active, active_infotext, demand)
|
||||
end
|
||||
end
|
||||
|
||||
if technic_cnc.use_technic then
|
||||
allow_metadata_inventory_put = technic.machine_inventory_put
|
||||
allow_metadata_inventory_take = technic.machine_inventory_take
|
||||
allow_metadata_inventory_move = technic.machine_inventory_move
|
||||
can_dig = technic.machine_can_dig
|
||||
after_dig_node = def.upgrade and technic.machine_after_dig_node or nil
|
||||
else
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return count
|
||||
end
|
||||
|
||||
can_dig = function(pos, player)
|
||||
if player and minetest.is_protected(pos, player:get_player_name()) then
|
||||
return false
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("dst") and inv:is_empty("src") and default.can_interact_with_node(player, pos)
|
||||
end
|
||||
end
|
||||
|
||||
-- Formspec handlers with / without pipeworks
|
||||
do
|
||||
local wrapped_on_receive_fields = on_receive_fields
|
||||
local function update_formspec(meta)
|
||||
meta:set_string("formspec", get_formspec(nodename, def, meta))
|
||||
end
|
||||
if technic_cnc.pipeworks and def.tube then
|
||||
local pipeworks_on_receive_fields = technic_cnc.pipeworks.on_receive_fields
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not wrapped_on_receive_fields(pos, meta, fields, sender, update_formspec) and not fields.quit then
|
||||
-- Custom pipeworks form handler to skip unnecessary protection messages
|
||||
pipeworks_on_receive_fields(pos, meta, fields, sender, update_formspec)
|
||||
end
|
||||
upgrade_machine(meta)
|
||||
end
|
||||
else
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
local meta = minetest.get_meta(pos)
|
||||
wrapped_on_receive_fields(pos, meta, fields, sender, update_formspec)
|
||||
upgrade_machine(meta)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Groups for pipeworks
|
||||
if technic_cnc.pipeworks and def.tube then
|
||||
groups.tubedevice = 1
|
||||
groups.tubedevice_receiver = 1
|
||||
end
|
||||
|
||||
-- Only do logging when technic is enabled to avoid duplicating code
|
||||
local on_metadata_inventory_move = technic_cnc.use_technic and technic.machine_on_inventory_move or nil
|
||||
local on_metadata_inventory_put = technic_cnc.use_technic and technic.machine_on_inventory_put or nil
|
||||
local on_metadata_inventory_take = technic_cnc.use_technic and technic.machine_on_inventory_take or nil
|
||||
|
||||
-- Inactive state CNC machine
|
||||
minetest.register_node(":" .. nodename, {
|
||||
description = def.description,
|
||||
tiles = def.tiles,
|
||||
groups = groups,
|
||||
connect_sides = {"bottom", "back", "left", "right"},
|
||||
paramtype2 = "facedir",
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("infotext", def.description)
|
||||
meta:set_string("formspec", get_formspec(nodename, def, meta))
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("src", def.input_size)
|
||||
inv:set_size("dst", def.output_size)
|
||||
if def.upgrade then
|
||||
inv:set_size("upgrade1", 1)
|
||||
inv:set_size("upgrade2", 1)
|
||||
end
|
||||
end,
|
||||
after_place = def.tube and pipeworks.after_place,
|
||||
after_dig_node = def.after_dig_node or after_dig_node,
|
||||
tube = def.tube,
|
||||
digilines = def.digilines,
|
||||
can_dig = def.can_dig or can_dig,
|
||||
allow_metadata_inventory_put = def.allow_metadata_inventory_put or allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_take = def.allow_metadata_inventory_take or allow_metadata_inventory_take,
|
||||
allow_metadata_inventory_move = def.allow_metadata_inventory_move or allow_metadata_inventory_move,
|
||||
on_metadata_inventory_move = on_metadata_inventory_move,
|
||||
on_metadata_inventory_put = on_metadata_inventory_put,
|
||||
on_metadata_inventory_take = on_metadata_inventory_take,
|
||||
on_receive_fields = on_receive_fields,
|
||||
technic_run = def.technic_run or technic_run,
|
||||
})
|
||||
|
||||
-- Active state CNC machine
|
||||
if technic_cnc.use_technic then
|
||||
local groups_active = table.copy(groups)
|
||||
groups_active.not_in_creative_inventory = 1
|
||||
minetest.register_node(":" .. nodename_active, {
|
||||
description = def.description,
|
||||
tiles = def.tiles_active,
|
||||
groups = groups_active,
|
||||
connect_sides = {"bottom", "back", "left", "right"},
|
||||
paramtype2 = "facedir",
|
||||
drop = nodename,
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
after_dig_node = def.after_dig_node or after_dig_node,
|
||||
tube = def.tube,
|
||||
digilines = def.digilines,
|
||||
can_dig = def.can_dig or can_dig,
|
||||
allow_metadata_inventory_put = def.allow_metadata_inventory_put or allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_take = def.allow_metadata_inventory_take or allow_metadata_inventory_take,
|
||||
allow_metadata_inventory_move = def.allow_metadata_inventory_move or allow_metadata_inventory_move,
|
||||
on_metadata_inventory_move = on_metadata_inventory_move,
|
||||
on_metadata_inventory_put = on_metadata_inventory_put,
|
||||
on_metadata_inventory_take = on_metadata_inventory_take,
|
||||
on_receive_fields = on_receive_fields,
|
||||
technic_run = def.technic_run or technic_run,
|
||||
technic_disabled_machine_name = nodename,
|
||||
})
|
||||
technic.register_machine("LV", nodename, technic.receiver)
|
||||
technic.register_machine("LV", nodename_active, technic.receiver)
|
||||
else
|
||||
minetest.register_alias(nodename_active, nodename)
|
||||
end
|
||||
end
|
74
mods/technic_plus_beta/technic_cnc/cnc.lua
Normal file
|
@ -0,0 +1,74 @@
|
|||
-- Technic CNC v2.0 by SX
|
||||
-- Based on Technic CNC v1.0 by kpoppel
|
||||
-- Based on the NonCubic Blocks MOD v1.4 by yves_de_beck
|
||||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
-- This should handle both onesize_products and twosize_products, currently
|
||||
-- twosize_products are hardcoded for formspec definitions.
|
||||
local programs = {}
|
||||
for key,_ in pairs(technic_cnc.onesize_products) do table.insert(programs, key) end
|
||||
table.sort(programs)
|
||||
|
||||
--
|
||||
-- Register technic:cnc machine
|
||||
--
|
||||
do
|
||||
technic_cnc.register_cnc_machine("technic:cnc", {
|
||||
description = technic_cnc.use_technic and S("LV CNC Machine") or S("CNC Machine"),
|
||||
output_size = 4,
|
||||
programs = programs,
|
||||
demand = 450,
|
||||
recipe = technic_cnc.use_technic and ({
|
||||
{'default:glass', 'technic:diamond_drill_head', 'default:glass'},
|
||||
{'technic:control_logic_unit', 'technic:machine_casing', 'basic_materials:motor'},
|
||||
{'technic:carbon_steel_ingot', 'technic:lv_cable', 'technic:carbon_steel_ingot'},
|
||||
}) or ({
|
||||
{'default:glass', 'default:diamond', 'default:glass'},
|
||||
{'basic_materials:ic', 'default:steelblock', 'basic_materials:motor'},
|
||||
{'default:steel_ingot', 'default:mese', 'default:steel_ingot'},
|
||||
}),
|
||||
tiles = {
|
||||
"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
|
||||
"technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"
|
||||
},
|
||||
tiles_active = {
|
||||
"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png",
|
||||
"technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
--
|
||||
-- Register technic:cnc_mk2 machine
|
||||
--
|
||||
if technic_cnc.use_technic or technic_cnc.pipeworks or technic_cnc.digilines then
|
||||
local tiles = {
|
||||
"technic_cnc_mk2_top.png", "technic_cnc_bottom.png", "technic_cnc_mk2_side.png",
|
||||
"technic_cnc_mk2_side.png", "technic_cnc_mk2_side.png", "technic_cnc_mk2_front.png"
|
||||
}
|
||||
local tiles_active = {
|
||||
"technic_cnc_mk2_top_active.png", "technic_cnc_bottom.png", "technic_cnc_mk2_side.png",
|
||||
"technic_cnc_mk2_side.png", "technic_cnc_mk2_side.png", "technic_cnc_mk2_front_active.png"
|
||||
}
|
||||
if technic_cnc.pipeworks then
|
||||
tiles = technic_cnc.pipeworks.tube_entry_overlay(tiles)
|
||||
tiles_active = technic_cnc.pipeworks.tube_entry_overlay(tiles_active)
|
||||
end
|
||||
technic_cnc.register_cnc_machine("technic:cnc_mk2", {
|
||||
description = S("LV CNC Machine") .. " Mk2",
|
||||
output_size = 4,
|
||||
digilines = technic_cnc.digilines,
|
||||
upgrade = true,
|
||||
tube = technic_cnc.pipeworks and technic_cnc.pipeworks.new_tube() or nil,
|
||||
programs = programs,
|
||||
demand = 900,
|
||||
recipe = {
|
||||
{'basic_materials:ic', 'technic:cnc', 'basic_materials:ic'},
|
||||
{'pipeworks:tube_1', 'technic:machine_casing', 'pipeworks:tube_1'},
|
||||
{'technic:cnc', 'digilines:wire_std_00000000', 'technic:cnc'},
|
||||
},
|
||||
tiles = tiles,
|
||||
tiles_active = tiles_active,
|
||||
})
|
||||
end
|
91
mods/technic_plus_beta/technic_cnc/digilines.lua
Normal file
|
@ -0,0 +1,91 @@
|
|||
|
||||
local rules = technic_cnc.use_technic and technic.digilines.rules or digilines.rules.default
|
||||
local def = {
|
||||
receptor = {
|
||||
rules = rules,
|
||||
},
|
||||
effector = {
|
||||
rules = rules,
|
||||
},
|
||||
}
|
||||
|
||||
local function check_message(meta, channel, msg)
|
||||
-- Digiline channel check
|
||||
if channel ~= meta:get_string("channel") then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Message type check
|
||||
if type(msg) == "string" then
|
||||
-- String is is always valid, get out skipping all table checks
|
||||
return true
|
||||
elseif type(msg) ~= "table" then
|
||||
return false
|
||||
end
|
||||
|
||||
-- Verify that size is either nil or number between 1-2
|
||||
if msg.size ~= nil and (type(msg.size) ~= "number" or msg.size < 1 or msg.size > 2) then
|
||||
msg.size = nil
|
||||
end
|
||||
|
||||
-- Verify program if provided
|
||||
if msg.program ~= nil then
|
||||
-- If program is set it must be string and available
|
||||
if type(msg.program) ~= "string" or not technic_cnc.products[msg.program] then
|
||||
msg.program = nil
|
||||
end
|
||||
end
|
||||
|
||||
-- Message is valid (but not necessarily useful)
|
||||
return true
|
||||
end
|
||||
|
||||
function def.effector.action(pos, node, channel, msg)
|
||||
-- Validate message contents,
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not check_message(meta, channel, msg) then
|
||||
return
|
||||
end
|
||||
|
||||
-- Process message and execute required actions
|
||||
if type(msg) == "string" then
|
||||
msg = msg:lower()
|
||||
if msg == "programs" then
|
||||
digilines.receptor_send(pos, rules, channel, technic_cnc.products)
|
||||
elseif msg == "status" then
|
||||
local inv = meta:get_inventory()
|
||||
local srcstack = inv:get_stack("src", 1)
|
||||
local status = {
|
||||
enabled = technic_cnc.is_enabled(meta),
|
||||
time = meta:get_int("src_time"),
|
||||
size = meta:get_int("size"),
|
||||
program = meta:get_string("program"),
|
||||
user = meta:get_string("cnc_user"),
|
||||
material = {
|
||||
name = srcstack:get_name(),
|
||||
count = srcstack:get_count(),
|
||||
}
|
||||
}
|
||||
digilines.receptor_send(pos, rules, channel, status)
|
||||
elseif msg == "enable" then
|
||||
technic_cnc.enable(meta)
|
||||
elseif msg == "disable" then
|
||||
technic_cnc.disable(meta)
|
||||
end
|
||||
else
|
||||
-- Configure milling programs
|
||||
if msg.program then
|
||||
technic_cnc.set_program(meta, msg.program, msg.size)
|
||||
elseif msg.size then
|
||||
meta:set_int("size", msg.size)
|
||||
end
|
||||
-- Enable / disable CNC machine
|
||||
if msg.enabled == true then
|
||||
technic_cnc.enable(meta)
|
||||
elseif msg.enabled == false then
|
||||
technic_cnc.disable(meta)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return def
|
183
mods/technic_plus_beta/technic_cnc/formspec.lua
Normal file
|
@ -0,0 +1,183 @@
|
|||
local S = technic_cnc.getter
|
||||
|
||||
-- Margin is hardcoded for some elements...
|
||||
local margin = 0.5
|
||||
local padding = 0.2
|
||||
local grid_size = 1 + padding
|
||||
|
||||
local fs_prefix = "formspec_version[4]size[%d,%d]style_type[list;size=1,1;spacing=0.2,0.2]label[0.5,0.5;%s]"
|
||||
|
||||
local fs_slimhalf = "label[0.5,3.6;"..S("Slim Elements half / normal height:").."]"..
|
||||
"image_button[0.5,4;1,0.49;technic_cnc_full%s.png;full; ]"..
|
||||
"image_button[0.5,4.51;1,0.49;technic_cnc_half%s.png;half; ]"
|
||||
|
||||
-- TODO: These should be defined in programs.lua and provide API to register more
|
||||
local slimhalf_buttons = {
|
||||
"element_straight",
|
||||
"element_end",
|
||||
"element_cross",
|
||||
"element_t",
|
||||
"element_edge"
|
||||
}
|
||||
|
||||
-- Create button grid that returns paging information (leftover button count).
|
||||
-- WIP: Starting index could be easily added if needed to provide full paging.
|
||||
local function image_button_grid(x_start, y_start, width, height, items, selected)
|
||||
local result = ""
|
||||
local count = 0
|
||||
local row = 0
|
||||
local column = 0
|
||||
local max_row = math.floor(height / grid_size + 0.1)
|
||||
local max_column = math.floor(math.min(#items, math.floor(width / grid_size) * max_row) / max_row + 0.1)
|
||||
for _,name in ipairs(items) do
|
||||
local x = x_start + column * grid_size
|
||||
local y = y_start + row * grid_size
|
||||
local modifier = selected == name and "^[invert:b" or ""
|
||||
result = result .. ("image_button[%0.1f,%0.1f;1,1;technic_cnc_%s.png%s;%s;]"):format(x, y, name, modifier, name)
|
||||
count = count + 1
|
||||
if column + 1 < max_column then
|
||||
column = column + 1
|
||||
else
|
||||
column = 0
|
||||
row = row + 1
|
||||
if row >= max_row then
|
||||
return result, #items - count
|
||||
end
|
||||
end
|
||||
end
|
||||
return result, #items - count
|
||||
end
|
||||
|
||||
local function label(x, y, text)
|
||||
return ("label[%0.1f,%0.1f;%s]"):format(x, y, text)
|
||||
end
|
||||
|
||||
local function list(name, x, y, w, h, text)
|
||||
return (text and label(x, y - 0.5, text) or "") ..
|
||||
("list[context;%s;%0.1f,%0.1f;%d,%d;]"):format(name, x, y, w, h) ..
|
||||
("listring[current_player;main]listring[context;%s]"):format(name)
|
||||
end
|
||||
|
||||
local function get_formspec(nodename, def, meta)
|
||||
local width = grid_size * 11 + margin * 2
|
||||
local height = 13
|
||||
local fs = fs_prefix:format(width, height, S("Choose Milling Program:"))
|
||||
local p = meta:get("program")
|
||||
|
||||
-- Programming buttons
|
||||
local x = margin
|
||||
local y = 1
|
||||
local buttons1, leftover1 = image_button_grid(x, y, width - margin * 2, grid_size * 2, def.programs, p)
|
||||
|
||||
-- Slim / half / normal
|
||||
x = margin + grid_size
|
||||
y = 4
|
||||
local buttons2, leftover2 = image_button_grid(x, y, width - grid_size - margin * 2, grid_size, slimhalf_buttons, p)
|
||||
local half = meta:get("size") == "2"
|
||||
fs = fs .. buttons1 .. fs_slimhalf:format(half and "" or "_active", half and "_active" or "") .. buttons2
|
||||
|
||||
-- Program paging controls
|
||||
if leftover1 > 0 or leftover2 > 0 then
|
||||
x = width - margin - grid_size * 2
|
||||
fs = fs .. ("button[%0.1f,%0.1f;%0.1f,%0.1f;paging_prev;Previous]"):format(x, padding, grid_size, 0.6)
|
||||
.. ("button[%0.1f,%0.1f;%0.1f,%0.1f;paging_next;Next]"):format(x + grid_size, padding, grid_size, 0.6)
|
||||
end
|
||||
|
||||
-- Some filler for empty unused space
|
||||
y = height - (grid_size * 4) - margin + padding
|
||||
--fs = fs .. ("model[10,%0.1f;3,3;;node.obj;%s;0.1,0.1;true;false]"):format(y, table.concat(def.tiles, ","))
|
||||
--fs = fs .. ("image[10,%0.1f;3,3;%s]"):format(y, def.tiles[6])
|
||||
local size = grid_size * 3
|
||||
fs = fs .. ("item_image[%0.1f,%0.1f;%0.1f,%0.1f;%s]"):format(grid_size * 8 + margin, y, size, size, nodename)
|
||||
|
||||
-- Player inventory
|
||||
fs = fs .. ("list[current_player;main;%0.1f,%0.1f;8,4;]"):format(margin, y)
|
||||
|
||||
-- Input / output inventories
|
||||
x = grid_size * def.input_size + grid_size + margin
|
||||
y = 6
|
||||
fs = fs .. list("src", margin, y, def.input_size, 1, S("In:")) .. list("dst", x, y, def.output_size, 1, S("Out:"))
|
||||
|
||||
x = grid_size * 8 + margin
|
||||
|
||||
-- Upgrades
|
||||
if def.upgrade then
|
||||
fs = fs .. list("upgrade1", x, y, 1, 1, S("Upgrade Slots")) .. list("upgrade2", x + grid_size, y, 1, 1)
|
||||
end
|
||||
|
||||
-- Stack splitting toggle
|
||||
if meta and def.tube and technic_cnc.pipeworks then
|
||||
y = height - margin - grid_size * 4.5
|
||||
fs = fs .. technic_cnc.pipeworks.cycling_button(meta, "splitstacks", margin, y)
|
||||
end
|
||||
|
||||
-- Digilines channel field
|
||||
if def.digilines then
|
||||
y = height - grid_size - margin + padding + 0.3
|
||||
local w = width - x - margin - grid_size
|
||||
fs = fs .. ("field[%0.1f,%0.1f;%0.1f,%0.1f;channel;Channel;${channel}]"):format(x + padding, y, w, 0.7)
|
||||
fs = fs .. ("button[%0.1f,%0.1f;%0.1f,%0.1f;setchannel;Set]"):format(x + w + padding, y, 1, 0.7)
|
||||
end
|
||||
|
||||
return fs
|
||||
end
|
||||
|
||||
local function on_receive_fields(pos, meta, fields, sender, update_formspec)
|
||||
local name = sender:get_player_name()
|
||||
|
||||
if fields.quit or (meta:get_int("public") == 0 and minetest.is_protected(pos, name)) then
|
||||
return true
|
||||
end
|
||||
|
||||
-- Program for half/full size
|
||||
if fields.full then
|
||||
meta:set_int("size", 1)
|
||||
update_formspec(meta)
|
||||
return true
|
||||
elseif fields.half then
|
||||
meta:set_int("size", 2)
|
||||
update_formspec(meta)
|
||||
return true
|
||||
elseif fields.paging_next or fields.paging_prev then
|
||||
-- TODO: Page index should be capped between 0 and max based on button count
|
||||
local page = meta:get_int("page")
|
||||
meta:set_int("page", page + (fields.paging_next and 1 or -1))
|
||||
return
|
||||
end
|
||||
|
||||
-- Resolve the node name and the number of items to make
|
||||
local program_selected
|
||||
local products = technic_cnc.products
|
||||
for program, _ in pairs(fields) do
|
||||
if products[program] then
|
||||
local update = meta:get("program") ~= program
|
||||
technic_cnc.set_program(meta, program, meta:get_int("size"))
|
||||
technic_cnc.enable(meta)
|
||||
meta:set_string("cnc_user", name)
|
||||
program_selected = true
|
||||
if update then
|
||||
update_formspec(meta)
|
||||
end
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if program_selected and not technic_cnc.use_technic then
|
||||
local inv = meta:get_inventory()
|
||||
technic_cnc.produce(meta, inv)
|
||||
return true
|
||||
end
|
||||
|
||||
local setchannel = fields.setchannel or (fields.key_enter and fields.key_enter_field == "channel")
|
||||
if setchannel and not minetest.is_protected(pos, name) then
|
||||
meta:set_string("channel", fields.channel)
|
||||
return true
|
||||
end
|
||||
|
||||
return program_selected
|
||||
end
|
||||
|
||||
return {
|
||||
get_formspec = get_formspec,
|
||||
on_receive_fields = on_receive_fields,
|
||||
}
|
20
mods/technic_plus_beta/technic_cnc/init.lua
Normal file
|
@ -0,0 +1,20 @@
|
|||
local technic_modpath = minetest.get_modpath("technic")
|
||||
local digilines_modpath = minetest.get_modpath("digilines")
|
||||
local pipeworks_modpath = minetest.get_modpath("pipeworks")
|
||||
|
||||
technic_cnc = {}
|
||||
technic_cnc.modpath = minetest.get_modpath("technic_cnc")
|
||||
technic_cnc.use_technic = technic_modpath and minetest.settings:get_bool("technic_cnc_use_technic", true)
|
||||
local use_digilines = digilines_modpath and minetest.settings:get_bool("technic_cnc_use_digilines", true)
|
||||
local use_pipeworks = pipeworks_modpath and minetest.settings:get_bool("technic_cnc_use_pipeworks", true)
|
||||
|
||||
technic_cnc.getter = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
if use_digilines then technic_cnc.digilines = dofile(technic_cnc.modpath.."/digilines.lua") end
|
||||
if use_pipeworks then technic_cnc.pipeworks = dofile(technic_cnc.modpath.."/pipeworks.lua") end
|
||||
|
||||
technic_cnc.formspec = dofile(technic_cnc.modpath .. "/formspec.lua")
|
||||
dofile(technic_cnc.modpath .. "/programs.lua")
|
||||
dofile(technic_cnc.modpath .. "/api.lua")
|
||||
dofile(technic_cnc.modpath .. "/materials/init.lua")
|
||||
dofile(technic_cnc.modpath .. "/cnc.lua")
|
109
mods/technic_plus_beta/technic_cnc/locale/technic_cnc.de.tr
Normal file
|
@ -0,0 +1,109 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
## CNC
|
||||
CNC Machine=CNC-Maschine
|
||||
@1 CNC Machine=@1 CNC-Maschine
|
||||
Cylinder=Zylinder
|
||||
Element Cross=Halbes Kreuzelement
|
||||
Element Cross Double=Kreuzelement
|
||||
Element Edge=Halbes Eckelement
|
||||
Element Edge Double=Eckelement
|
||||
Element End=Halbes Endelement
|
||||
Element End Double=Endelement
|
||||
Element Straight=Halbes aufrechtes Element
|
||||
Element Straight Double=Aufrechtes Element
|
||||
Element T=Halbes T-Element
|
||||
Element T Double=T-Element
|
||||
Horizontal Cylinder=Liegender Zylinder
|
||||
One Curved Edge Block=Block mit einer abgerundeten Kante
|
||||
Pyramid=Pyramide
|
||||
Slope=Schraege
|
||||
Slope Edge=Schraege mit Ecke
|
||||
Slope Inner Edge=Schraege mit Innenecke
|
||||
Slope Lying=Liegende Schraege
|
||||
Slope Upside Down=Umgedrehte Schraege
|
||||
Slope Upside Down Edge=Umgedrehte Schraege mit Ecke
|
||||
Slope Upside Down Inner Edge=Umgedrehte Schraege mit Innenecke
|
||||
Sphere=Kugel
|
||||
Spike=Spitze
|
||||
Stick=Stange
|
||||
Two Curved Edge Block=Block mit zwei abgerundeten Kanten
|
||||
Brick=Ziegel:
|
||||
Cobble=Pflasterstein:
|
||||
Dirt=Erde:
|
||||
Leaves=Laub:
|
||||
Sandstone=Sandstein:
|
||||
Stone=Stein:
|
||||
Tree=Baumstamm:
|
||||
Wooden=Holz:
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
109
mods/technic_plus_beta/technic_cnc/locale/technic_cnc.es.tr
Normal file
|
@ -0,0 +1,109 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
## CNC
|
||||
CNC Machine=Maquina CNC
|
||||
@1 CNC Machine=Maquina CNC @1
|
||||
Element Edge=Elemento Borde
|
||||
Tree=Arbol
|
||||
Element Cross Double=Elemento Cruz Doble
|
||||
Spike=Pica
|
||||
Element Edge Double=Elemento Borde Doble
|
||||
Two Curved Edge Block=Dos Bloques de Borde Curvados
|
||||
Pyramid=Piramide
|
||||
Slope Upside Down Inner Edge=Borde Interno de Rampa Al Reves
|
||||
Slope Upside Down Edge=Borde de Rampa Al Reves
|
||||
Element Straight Double=Elemento Doble Recto
|
||||
Sphere=Esfera
|
||||
Element End Double=Doble Fin de Elemento
|
||||
Element Straight=Recta de Elemento
|
||||
Horizontal Cylinder=Cilindro Horizontal
|
||||
Slope Inner Edge=Borde Interno de Rampa
|
||||
One Curved Edge Block=Un Bloque de Borde Curvado
|
||||
Element Cross=Cruce de Elementos
|
||||
Stick=Varita
|
||||
Element End=Fin de Elemento
|
||||
Slope Lying=Rampa en Reposo
|
||||
Slope Upside Down=Rampa Al Reves
|
||||
Slope Edge=Borde de Rampa
|
||||
Slope=Rampa
|
||||
Element T=Elemento T
|
||||
Cylinder=Cilindro
|
||||
Cobble=Adoquines
|
||||
Stone=Piedra
|
||||
Brick=Ladrillo
|
||||
Dirt=Tierra
|
||||
Sandstone=Arenisca
|
||||
Wooden=Madera
|
||||
Leaves=Hojas
|
||||
Element T Double=
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
109
mods/technic_plus_beta/technic_cnc/locale/technic_cnc.it.tr
Normal file
|
@ -0,0 +1,109 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
## CNC
|
||||
CNC Machine=Tornio CNC
|
||||
@1 CNC Machine=Tornio CNC @1
|
||||
Cylinder=Cilindro
|
||||
Element Cross=Elemento a croce
|
||||
Element Cross Double=Elemento a croce doppio
|
||||
Element Edge=Elemento bordo
|
||||
Element Edge Double=Elemento bordo doppio
|
||||
Element End=Elemento finale
|
||||
Element End Double=Elemento finale doppio
|
||||
Element Straight=Elemento dritto
|
||||
Element Straight Double=Elemento dritto doppio
|
||||
Element T=Elemento a T
|
||||
Element T Double=Elemento a T doppio
|
||||
Horizontal Cylinder=Cilindro orizzontale
|
||||
One Curved Edge Block=Blocco con bordo curvo
|
||||
Pyramid=Piramide
|
||||
Slope=Inclinato
|
||||
Slope Edge=Bordo inclinato
|
||||
Slope Inner Edge=Bordo interno inclinato
|
||||
Slope Lying=Pendenza bugiarda
|
||||
Slope Upside Down=Pendenza capovolta
|
||||
Slope Upside Down Edge=Bordo inclinato capovolto
|
||||
Slope Upside Down Inner Edge=Bordo interno inclinato capovolto
|
||||
Sphere=Sfera
|
||||
Spike=Spuntone
|
||||
Stick=Bastone
|
||||
Two Curved Edge Block=Blocco con bordo a doppia curva
|
||||
Brick=Mattone
|
||||
Cobble=Ciottolato
|
||||
Dirt=Terra
|
||||
Leaves=Foglie
|
||||
Sandstone=Arenaria
|
||||
Stone=Pietra
|
||||
Tree=Albero
|
||||
Wooden=Legno
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
109
mods/technic_plus_beta/technic_cnc/locale/technic_cnc.pl.tr
Normal file
|
@ -0,0 +1,109 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
## CNC
|
||||
CNC Machine=Obrabiarka CNC
|
||||
@1 CNC Machine=@1 Obrabiarka CNC
|
||||
Cylinder=Walec
|
||||
Element Cross=Część krzyżowa
|
||||
Element Cross Double=Podwójna część krzyżowa
|
||||
Element Edge=Krawędź części
|
||||
Element Edge Double=Podwójna krawędź części
|
||||
Element End=Końcowa część
|
||||
Element End Double=Podwójna końcowa część
|
||||
Element Straight=Prosta część
|
||||
Element Straight Double=Podwójna prosta część
|
||||
Element T=Część T
|
||||
Element T Double=Podwójna część T
|
||||
Horizontal Cylinder=Poziomy walec
|
||||
One Curved Edge Block=Blok z zagiętą krawędzią
|
||||
Pyramid=Ostrosłup
|
||||
Slope=Spad
|
||||
Slope Edge=Krawędź spadu
|
||||
Slope Inner Edge=Wewnętrzna krawędź spadu
|
||||
Slope Lying=Leżący spad
|
||||
Slope Upside Down=Odwrócony spad
|
||||
Slope Upside Down Edge=Krawędź odwróconego spadu
|
||||
Slope Upside Down Inner Edge=Wewnętrzna krawędz odwróconego spadu
|
||||
Sphere=Kula
|
||||
Spike=Kolec
|
||||
Stick=Patyk
|
||||
Two Curved Edge Block=Blok z dwoma zagiętymi krawędziami
|
||||
Brick=Cegła
|
||||
Cobble=Bruk
|
||||
Dirt=Ziemia
|
||||
Leaves=Liście
|
||||
Sandstone=Piaskowiec
|
||||
Stone=Kamień
|
||||
Tree=Drzewo
|
||||
Wooden=Drewniany
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
108
mods/technic_plus_beta/technic_cnc/locale/technic_cnc.zh_CN.tr
Normal file
|
@ -0,0 +1,108 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
CNC Machine=数控机床
|
||||
@1 CNC Machine=@1数控机床
|
||||
Cylinder=圆柱
|
||||
Element Cross=元素交叉
|
||||
Element Cross Double=元素交叉双精度
|
||||
Element Edge=元素边缘
|
||||
Element Edge Double=元素边缘双
|
||||
Element End=元素结束
|
||||
Element End Double=双端元件
|
||||
Element Straight=直线元素
|
||||
Element Straight Double=元素直线双精度
|
||||
Element T=元素T
|
||||
Element T Double=元素T双
|
||||
Horizontal Cylinder=卧式圆筒
|
||||
One Curved Edge Block=一个曲边块
|
||||
Pyramid=金字塔
|
||||
Slope=坡度
|
||||
Slope Edge=斜坡边缘
|
||||
Slope Inner Edge=斜坡内边缘
|
||||
Slope Lying=斜坡式
|
||||
Slope Upside Down=倒坡
|
||||
Slope Upside Down Edge=斜坡倒棱
|
||||
Slope Upside Down Inner Edge=斜坡上下内缘
|
||||
Sphere=球体
|
||||
Spike=尖峰
|
||||
Stick=棍子
|
||||
Two Curved Edge Block=双弯边块
|
||||
Brick=砖
|
||||
Cobble=卵石
|
||||
Dirt=泥土
|
||||
Leaves=树叶
|
||||
Sandstone=砂岩
|
||||
Stone=石头
|
||||
Tree=树
|
||||
Wooden=木制
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
109
mods/technic_plus_beta/technic_cnc/locale/template.txt
Normal file
|
@ -0,0 +1,109 @@
|
|||
# textdomain: technic_cnc
|
||||
|
||||
## CNC
|
||||
CNC Machine=
|
||||
@1 CNC Machine=
|
||||
Cylinder=
|
||||
Element Cross=
|
||||
Element Cross Double=
|
||||
Element Edge=
|
||||
Element Edge Double=
|
||||
Element End=
|
||||
Element End Double=
|
||||
Element Straight=
|
||||
Element Straight Double=
|
||||
Element T=
|
||||
Element T Double=
|
||||
Horizontal Cylinder=
|
||||
One Curved Edge Block=
|
||||
Pyramid=
|
||||
Slope=
|
||||
Slope Edge=
|
||||
Slope Inner Edge=
|
||||
Slope Lying=
|
||||
Slope Upside Down=
|
||||
Slope Upside Down Edge=
|
||||
Slope Upside Down Inner Edge=
|
||||
Sphere=
|
||||
Spike=
|
||||
Stick=
|
||||
Two Curved Edge Block=
|
||||
Brick=
|
||||
Cobble=
|
||||
Dirt=
|
||||
Leaves=
|
||||
Sandstone=
|
||||
Stone=
|
||||
Tree=
|
||||
Wooden=
|
||||
Oblate spheroid=
|
||||
Two Curved Edge/Corner Block=
|
||||
Slope Upside Down Inner Edge/Corner=
|
||||
Slope Upside Down Outer Edge/Corner=
|
||||
Slope Inner Edge/Corner=
|
||||
Slope Outer Edge/Corner=
|
||||
Allow splitting incoming stacks from tubes=
|
||||
LV CNC Machine=
|
||||
@1 Idle=
|
||||
@1 Active=
|
||||
@1 Unpowered=
|
||||
Slim Elements half / normal height:=
|
||||
Choose Milling Program:=
|
||||
In:=
|
||||
Out:=
|
||||
Upgrade Slots=
|
||||
Zinc=
|
||||
Cast Iron=
|
||||
Stainless Steel=
|
||||
Marble=
|
||||
Granite=
|
||||
Blast-resistant concrete=
|
||||
Glo Stone=
|
||||
Crystal=
|
||||
Banana Wood=
|
||||
Birch Wood=
|
||||
Frost Wood=
|
||||
Palm Wood=
|
||||
Willow Wood=
|
||||
Healing Tree Wood=
|
||||
Redwood=
|
||||
Grassy dirt=
|
||||
Junglewood=
|
||||
Pine=
|
||||
Acacia=
|
||||
Aspen=
|
||||
Stone Brick=
|
||||
Stone Block=
|
||||
Desert Stone=
|
||||
Desert Stone Brick=
|
||||
Desert Stone Block=
|
||||
Mossy Cobblestone=
|
||||
Desert Cobble=
|
||||
Sandstone Brick=
|
||||
Sandstone Block=
|
||||
Desert Sandstone=
|
||||
Desert Sandstone Brick=
|
||||
Desert Sandstone Block=
|
||||
Silver Sandstone=
|
||||
Silver Sandstone Brick=
|
||||
Silver Sandstone Block=
|
||||
Ice=
|
||||
Obsidian=
|
||||
Bronze=
|
||||
Copper=
|
||||
Tin=
|
||||
Gold=
|
||||
Wrought Iron=
|
||||
Red Clay=
|
||||
Orange Clay=
|
||||
Grey Clay=
|
||||
Stone Tile=
|
||||
Split Stone Tile=
|
||||
Checker Stone Tile=
|
||||
Cactus Checker=
|
||||
Cactus Brick=
|
||||
Grey Bricks=
|
||||
Copper Patina=
|
||||
Concrete=
|
||||
Cement=
|
||||
Brass block=
|
23
mods/technic_plus_beta/technic_cnc/materials/bakedclay.lua
Normal file
|
@ -0,0 +1,23 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"bakedclay:red",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"baked_clay_red.png"},
|
||||
S("Red Clay")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"bakedclay:orange",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"baked_clay_orange.png"},
|
||||
S("Orange Clay")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"bakedclay:grey",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"baked_clay_grey.png"},
|
||||
S("Grey Clay")
|
||||
)
|
|
@ -0,0 +1,23 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"basic_materials:concrete_block",
|
||||
{cracky = 2, level = 2, not_in_creative_inventory = 1},
|
||||
{"basic_materials_concrete_block.png"},
|
||||
S("Concrete")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"basic_materials:cement_block",
|
||||
{cracky = 2, level = 2, not_in_creative_inventory = 1},
|
||||
{"basic_materials_cement_block.png"},
|
||||
S("Cement")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"basic_materials:brass_block",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"basic_materials_brass_block.png"},
|
||||
S("Brass block")
|
||||
)
|
256
mods/technic_plus_beta/technic_cnc/materials/default.lua
Normal file
|
@ -0,0 +1,256 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:dirt",
|
||||
{snappy = 2,choppy = 2,oddly_breakable_by_hand = 3,not_in_creative_inventory = 1},
|
||||
{"default_dirt.png"},
|
||||
S("Dirt")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:dirt_with_grass",
|
||||
{snappy = 2,choppy = 2,oddly_breakable_by_hand = 3,not_in_creative_inventory = 1},
|
||||
{"default_grass.png"},
|
||||
S("Grassy dirt")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"default_wood.png"},
|
||||
S("Wooden")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:junglewood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"default_junglewood.png"},
|
||||
S("Junglewood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:pine_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"default_pine_wood.png"},
|
||||
S("Pine")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:acacia_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"default_acacia_wood.png"},
|
||||
S("Acacia")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:aspen_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"default_aspen_wood.png"},
|
||||
S("Aspen")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:stone",
|
||||
{cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_stone.png"},
|
||||
S("Stone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:stonebrick",
|
||||
{crumbly = 2, cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_stone_brick.png"},
|
||||
S("Stone Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:stone_block",
|
||||
{crumbly = 2, cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_stone_block.png"},
|
||||
S("Stone Block")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_stone",
|
||||
{cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_desert_stone.png"},
|
||||
S("Desert Stone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_stonebrick",
|
||||
{crumbly = 2, cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_desert_stone_brick.png"},
|
||||
S("Desert Stone Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_stone_block",
|
||||
{crumbly = 2, cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_desert_stone_block.png"},
|
||||
S("Desert Stone Block")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:cobble",
|
||||
{cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_cobble.png"},
|
||||
S("Cobble")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:mossycobble",
|
||||
{cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_mossycobble.png"},
|
||||
S("Mossy Cobblestone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_cobble",
|
||||
{cracky = 3, stone = 1, not_in_creative_inventory = 1},
|
||||
{"default_desert_cobble.png"},
|
||||
S("Desert Cobble")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:brick",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_brick.png"},
|
||||
S("Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:sandstone",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_sandstone.png"},
|
||||
S("Sandstone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:sandstonebrick",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_sandstone_brick.png"},
|
||||
S("Sandstone Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:sandstone_block",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_sandstone_block.png"},
|
||||
S("Sandstone Block")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_sandstone",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_desert_sandstone.png"},
|
||||
S("Desert Sandstone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_sandstone_brick",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_desert_sandstone_brick.png"},
|
||||
S("Desert Sandstone Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:desert_sandstone_block",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_desert_sandstone_block.png"},
|
||||
S("Desert Sandstone Block")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:silver_sandstone",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_silver_sandstone.png"},
|
||||
S("Silver Sandstone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:silver_sandstone_brick",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_silver_sandstone_brick.png"},
|
||||
S("Silver Sandstone Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:silver_sandstone_block",
|
||||
{crumbly = 2, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"default_silver_sandstone_block.png"},
|
||||
S("Silver Sandstone Block")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:leaves",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1},
|
||||
{"default_leaves.png"},
|
||||
S("Leaves")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:tree",
|
||||
{snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1, not_in_creative_inventory = 1},
|
||||
{"default_tree.png"},
|
||||
S("Tree")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:ice",
|
||||
{cracky = 3, puts_out_fire = 1, cools_lava = 1, not_in_creative_inventory = 1},
|
||||
{"default_ice.png"},
|
||||
S("Ice")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:obsidian_block",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_obsidian_block.png"},
|
||||
S("Obsidian")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:bronzeblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_bronze_block.png"},
|
||||
S("Bronze")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:copperblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_copper_block.png"},
|
||||
S("Copper")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:tinblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_tin_block.png"},
|
||||
S("Tin")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"default:goldblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_gold_block.png"},
|
||||
S("Gold")
|
||||
)
|
||||
|
||||
if minetest.get_modpath("technic_worldgen") then
|
||||
technic_cnc.register_all(
|
||||
"default:steelblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"technic_wrought_iron_block.png"},
|
||||
S("Wrought Iron")
|
||||
)
|
||||
else
|
||||
technic_cnc.register_all(
|
||||
"default:steelblock",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"default_steel_block.png"},
|
||||
S("Steel")
|
||||
)
|
||||
end
|
65
mods/technic_plus_beta/technic_cnc/materials/ethereal.lua
Normal file
|
@ -0,0 +1,65 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:glostone",
|
||||
{cracky = 1, not_in_creative_inventory = 1, light_source = 13},
|
||||
{"ethereal_glostone.png"},
|
||||
S("Glo Stone")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:crystal_block",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_crystal_block.png"},
|
||||
S("Crystal")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:banana_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_banana_wood.png"},
|
||||
S("Banana Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:birch_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"moretrees_birch_wood.png"},
|
||||
S("Birch Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:frost_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_frost_wood.png"},
|
||||
S("Frost Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:palm_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"moretrees_palm_wood.png"},
|
||||
S("Palm Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:willow_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_willow_wood.png"},
|
||||
S("Willow Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:yellow_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_yellow_wood.png"},
|
||||
S("Healing Tree Wood")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"ethereal:redwood_wood",
|
||||
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory = 1},
|
||||
{"ethereal_redwood_wood.png"},
|
||||
S("Redwood")
|
||||
)
|
26
mods/technic_plus_beta/technic_cnc/materials/init.lua
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
local path = technic_cnc.modpath .. "/materials/"
|
||||
|
||||
dofile(path .. "default.lua")
|
||||
dofile(path .. "basic_materials.lua")
|
||||
|
||||
local optional_mods = {
|
||||
"bakedclay",
|
||||
"ethereal",
|
||||
"moreblocks",
|
||||
"technic_worldgen",
|
||||
}
|
||||
|
||||
for _, mod in pairs(optional_mods) do
|
||||
if minetest.get_modpath(mod) then
|
||||
dofile(path .. mod .. ".lua")
|
||||
end
|
||||
end
|
||||
|
||||
local function alias(old, new)
|
||||
for _,shape in pairs(technic_cnc.programs) do
|
||||
minetest.register_alias(old .. "_" .. shape.suffix, new .. "_" .. shape.suffix)
|
||||
end
|
||||
end
|
||||
|
||||
alias("technic:brass_block", "basic_materials:brass_block")
|
50
mods/technic_plus_beta/technic_cnc/materials/moreblocks.lua
Normal file
|
@ -0,0 +1,50 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:stone_tile",
|
||||
{stone = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_stone_tile.png"},
|
||||
S("Stone Tile"))
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:split_stone_tile",
|
||||
{stone = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_split_stone_tile.png"},
|
||||
S("Split Stone Tile")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:checker_stone_tile",
|
||||
{stone = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_checker_stone_tile.png"},
|
||||
S("Checker Stone Tile")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:cactus_checker",
|
||||
{stone = 1, cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_cactus_checker.png"},
|
||||
S("Cactus Checker")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:cactus_brick",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_cactus_brick.png"},
|
||||
S("Cactus Brick")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:grey_bricks",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"moreblocks_grey_bricks.png"},
|
||||
S("Grey Bricks")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"moreblocks:copperpatina",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"moreblocks_copperpatina.png"},
|
||||
S("Copper Patina")
|
||||
)
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
local S = technic_cnc.getter
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:zinc_block",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"technic_zinc_block.png"},
|
||||
S("Zinc")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:cast_iron_block",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"technic_cast_iron_block.png"},
|
||||
S("Cast Iron")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:stainless_steel_block",
|
||||
{cracky = 1, level = 2, not_in_creative_inventory = 1},
|
||||
{"technic_stainless_steel_block.png"},
|
||||
S("Stainless Steel")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:marble",
|
||||
{cracky = 3, not_in_creative_inventory = 1},
|
||||
{"technic_marble.png"},
|
||||
S("Marble")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:granite",
|
||||
{cracky = 1, not_in_creative_inventory = 1},
|
||||
{"technic_granite.png"},
|
||||
S("Granite")
|
||||
)
|
||||
|
||||
technic_cnc.register_all(
|
||||
"technic:blast_resistant_concrete",
|
||||
{cracky = 2, level = 2, not_in_creative_inventory = 1},
|
||||
{"technic_blast_resistant_concrete_block.png"},
|
||||
S("Blast-resistant concrete")
|
||||
)
|
3
mods/technic_plus_beta/technic_cnc/mod.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
name = technic_cnc
|
||||
depends = default, basic_materials
|
||||
optional_depends = technic
|
|
@ -0,0 +1,205 @@
|
|||
v 0 -0.5 -0.5
|
||||
v 0 0.5 -0.5
|
||||
v 0.097545 0.5 -0.490393
|
||||
v 0.097545 -0.5 -0.490393
|
||||
v 0.191342 0.5 -0.46194
|
||||
v 0.191342 -0.5 -0.46194
|
||||
v 0.277785 0.5 -0.415735
|
||||
v 0.277785 -0.5 -0.415735
|
||||
v 0.353553 0.5 -0.353554
|
||||
v 0.353553 -0.5 -0.353554
|
||||
v 0.415735 0.5 -0.277785
|
||||
v 0.415735 -0.5 -0.277785
|
||||
v 0.46194 0.5 -0.191342
|
||||
v 0.46194 -0.5 -0.191342
|
||||
v 0.490393 0.5 -0.097545
|
||||
v 0.490393 -0.5 -0.097545
|
||||
v 0.5 0.5 0
|
||||
v 0.5 -0.5 0
|
||||
v 0.490393 0.5 0.097545
|
||||
v 0.490393 -0.5 0.097545
|
||||
v 0.46194 0.5 0.191341
|
||||
v 0.46194 -0.5 0.191341
|
||||
v 0.415735 0.5 0.277785
|
||||
v 0.415735 -0.5 0.277785
|
||||
v 0.353553 0.5 0.353553
|
||||
v 0.353553 -0.5 0.353553
|
||||
v 0.277785 0.5 0.415735
|
||||
v 0.277785 -0.5 0.415735
|
||||
v 0.191342 0.5 0.46194
|
||||
v 0.191342 -0.5 0.46194
|
||||
v 0.097545 0.5 0.490392
|
||||
v 0.097545 -0.5 0.490392
|
||||
v 0 0.5 0.5
|
||||
v 0 -0.5 0.5
|
||||
v -0.097545 0.5 0.490392
|
||||
v -0.097545 -0.5 0.490392
|
||||
v -0.191342 0.5 0.461939
|
||||
v -0.191342 -0.5 0.461939
|
||||
v -0.277785 0.5 0.415734
|
||||
v -0.277785 -0.5 0.415734
|
||||
v -0.353554 0.5 0.353553
|
||||
v -0.353554 -0.5 0.353553
|
||||
v -0.415735 0.5 0.277785
|
||||
v -0.415735 -0.5 0.277785
|
||||
v -0.46194 0.5 0.191341
|
||||
v -0.46194 -0.5 0.191341
|
||||
v -0.490393 0.5 0.097545
|
||||
v -0.490393 -0.5 0.097545
|
||||
v -0.5 0.5 -0.000001
|
||||
v -0.5 -0.5 -0.000001
|
||||
v -0.490393 0.5 -0.097546
|
||||
v -0.490393 -0.5 -0.097546
|
||||
v -0.46194 0.5 -0.191342
|
||||
v -0.46194 -0.5 -0.191342
|
||||
v -0.415734 0.5 -0.277786
|
||||
v -0.415734 -0.5 -0.277786
|
||||
v -0.353553 0.5 -0.353554
|
||||
v -0.353553 -0.5 -0.353554
|
||||
v -0.277785 0.5 -0.415735
|
||||
v -0.277785 -0.5 -0.415735
|
||||
v -0.191341 0.5 -0.46194
|
||||
v -0.191341 -0.5 -0.46194
|
||||
v -0.097544 0.5 -0.490393
|
||||
v -0.097544 -0.5 -0.490393
|
||||
vn 0 0 -1
|
||||
vn 0.1951 0 -0.9808
|
||||
vn 0.3827 0 -0.9239
|
||||
vn 0.5556 0 -0.8315
|
||||
vn 0.7071 0 -0.7071
|
||||
vn 0.8315 0 -0.5556
|
||||
vn 0.9239 0 -0.3827
|
||||
vn 0.9808 0 -0.1951
|
||||
vn 1 0 0
|
||||
vn 0.9808 0 0.1951
|
||||
vn 0.9239 0 0.3827
|
||||
vn 0.8315 0 0.5556
|
||||
vn 0.7071 0 0.7071
|
||||
vn 0.5556 0 0.8315
|
||||
vn 0.3827 0 0.9239
|
||||
vn 0.1951 0 0.9808
|
||||
vn 0 0 1
|
||||
vn -0.1951 0 0.9808
|
||||
vn -0.3827 0 0.9239
|
||||
vn -0.5556 0 0.8315
|
||||
vn -0.7071 0 0.7071
|
||||
vn -0.8315 0 0.5556
|
||||
vn -0.9239 0 0.3827
|
||||
vn -0.9808 0 0.1951
|
||||
vn -1 0 0
|
||||
vn -0.9808 0 -0.1951
|
||||
vn -0.9239 0 -0.3827
|
||||
vn -0.8315 0 -0.5556
|
||||
vn -0.7071 0 -0.7071
|
||||
vn -0.5556 0 -0.8315
|
||||
vn -0.3827 0 -0.9239
|
||||
vn 0 1 0
|
||||
vn -0.1951 0 -0.9808
|
||||
vn 0 -1 0
|
||||
vt 0.500003 0.000001
|
||||
vt 0.500004 0.999993
|
||||
vt 0.437504 0.999994
|
||||
vt 0.437503 0.000001
|
||||
vt 0.375004 0.999995
|
||||
vt 0.375002 0.000001
|
||||
vt 0.312503 0.999996
|
||||
vt 0.312502 0
|
||||
vt 0.250002 0.999997
|
||||
vt 0.250002 0
|
||||
vt 0.187502 0.999997
|
||||
vt 0.187502 0
|
||||
vt 0.125002 0.999998
|
||||
vt 0.125002 0
|
||||
vt 0.062501 0.999998
|
||||
vt 0.062501 0
|
||||
vt 0.000001 0.999998
|
||||
vt 0.000001 0
|
||||
vt 0.999994 0.000001
|
||||
vt 0.999998 0.999974
|
||||
vt 0.937499 0.999975
|
||||
vt 0.937494 0.000002
|
||||
vt 0.875 0.999977
|
||||
vt 0.874995 0.000002
|
||||
vt 0.812501 0.999978
|
||||
vt 0.812496 0.000003
|
||||
vt 0.750002 0.99998
|
||||
vt 0.749996 0.000004
|
||||
vt 0.687502 0.999981
|
||||
vt 0.687497 0.000004
|
||||
vt 0.625002 0.999983
|
||||
vt 0.624997 0.000005
|
||||
vt 0.562503 0.999984
|
||||
vt 0.562498 0.000005
|
||||
vt 0.9904 0.402488
|
||||
vt 0.999996 0.499996
|
||||
vt 0.990387 0.597577
|
||||
vt 0.961929 0.691372
|
||||
vt 0.915719 0.777812
|
||||
vt 0.853532 0.853577
|
||||
vt 0.777759 0.915754
|
||||
vt 0.691312 0.961954
|
||||
vt 0.597514 0.9904
|
||||
vt 0.402424 0.990387
|
||||
vt 0.308631 0.961929
|
||||
vt 0.22219 0.915718
|
||||
vt 0.146426 0.853532
|
||||
vt 0.084248 0.777759
|
||||
vt 0.038049 0.691313
|
||||
vt 0.009603 0.597515
|
||||
vt 0.000004 0.499997
|
||||
vt 0.009615 0.402425
|
||||
vt 0.038073 0.308631
|
||||
vt 0.084284 0.222189
|
||||
vt 0.14647 0.146425
|
||||
vt 0.222242 0.084249
|
||||
vt 0.308688 0.03805
|
||||
vt 0.402486 0.009603
|
||||
vt 0.597576 0.009615
|
||||
vt 0.691371 0.038074
|
||||
vt 0.777812 0.084284
|
||||
vt 0.853577 0.146471
|
||||
vt 0.915753 0.222244
|
||||
vt 0.961953 0.30869
|
||||
vt 0.500073 0
|
||||
vt 0.915774 0.222274
|
||||
vt 1 0.500072
|
||||
vt 0.777723 0.915775
|
||||
vt 0.499926 0.999999
|
||||
vt 0.084223 0.77772
|
||||
vt 0 0.499922
|
||||
vt 0.222276 0.084224
|
||||
s 1
|
||||
f 1/1/1 2/2/1 3/3/2 4/4/2
|
||||
f 4/4/2 3/3/2 5/5/3 6/6/3
|
||||
f 6/6/3 5/5/3 7/7/4 8/8/4
|
||||
f 8/8/4 7/7/4 9/9/5 10/10/5
|
||||
f 10/10/5 9/9/5 11/11/6 12/12/6
|
||||
f 12/12/6 11/11/6 13/13/7 14/14/7
|
||||
f 14/14/7 13/13/7 15/15/8 16/16/8
|
||||
f 16/16/8 15/15/8 17/17/9 18/18/9
|
||||
f 18/19/9 17/20/9 19/21/10 20/22/10
|
||||
f 20/22/10 19/21/10 21/23/11 22/24/11
|
||||
f 22/24/11 21/23/11 23/25/12 24/26/12
|
||||
f 24/26/12 23/25/12 25/27/13 26/28/13
|
||||
f 26/28/13 25/27/13 27/29/14 28/30/14
|
||||
f 28/30/14 27/29/14 29/31/15 30/32/15
|
||||
f 30/32/15 29/31/15 31/33/16 32/34/16
|
||||
f 32/34/16 31/33/16 33/2/17 34/1/17
|
||||
f 34/1/17 33/2/17 35/3/18 36/4/18
|
||||
f 36/4/18 35/3/18 37/5/19 38/6/19
|
||||
f 38/6/19 37/5/19 39/7/20 40/8/20
|
||||
f 40/8/20 39/7/20 41/9/21 42/10/21
|
||||
f 42/10/21 41/9/21 43/11/22 44/12/22
|
||||
f 44/12/22 43/11/22 45/13/23 46/14/23
|
||||
f 46/14/23 45/13/23 47/15/24 48/16/24
|
||||
f 48/16/24 47/15/24 49/17/25 50/18/25
|
||||
f 50/19/25 49/20/25 51/21/26 52/22/26
|
||||
f 52/22/26 51/21/26 53/23/27 54/24/27
|
||||
f 54/24/27 53/23/27 55/25/28 56/26/28
|
||||
f 56/26/28 55/25/28 57/27/29 58/28/29
|
||||
f 58/28/29 57/27/29 59/29/30 60/30/30
|
||||
f 60/30/30 59/29/30 61/31/31 62/32/31
|
||||
f 3/35/32 2/36/32 63/37/32 61/38/32 59/39/32 57/40/32 55/41/32 53/42/32 51/43/32 49/2/32 47/44/32 45/45/32 43/46/32 41/47/32 39/48/32 37/49/32 35/50/32 33/51/32 31/52/32 29/53/32 27/54/32 25/55/32 23/56/32 21/57/32 19/58/32 17/1/32 15/59/32 13/60/32 11/61/32 9/62/32 7/63/32 5/64/32
|
||||
f 64/34/33 63/33/33 2/2/1 1/1/1
|
||||
f 62/32/31 61/31/31 63/33/33 64/34/33
|
||||
f 1/65/34 4/59/34 6/60/34 8/61/34 10/62/34 12/66/34 14/64/34 16/35/34 18/67/34 20/37/34 22/38/34 24/39/34 26/40/34 28/68/34 30/42/34 32/43/34 34/69/34 36/44/34 38/45/34 40/46/34 42/47/34 44/70/34 46/49/34 48/50/34 50/71/34 52/52/34 54/53/34 56/54/34 58/55/34 60/72/34 62/57/34 64/58/34
|
|
@ -0,0 +1,205 @@
|
|||
v 0.5 0 -0.5
|
||||
v -0.5 0 -0.5
|
||||
v 0.5 0.097545 -0.490393
|
||||
v -0.5 0.097545 -0.490393
|
||||
v 0.5 0.191342 -0.46194
|
||||
v -0.5 0.191342 -0.46194
|
||||
v 0.5 0.277785 -0.415735
|
||||
v -0.5 0.277785 -0.415735
|
||||
v 0.5 0.353553 -0.353553
|
||||
v -0.5 0.353553 -0.353554
|
||||
v 0.5 0.415735 -0.277785
|
||||
v -0.5 0.415735 -0.277785
|
||||
v 0.5 0.46194 -0.191342
|
||||
v -0.5 0.46194 -0.191342
|
||||
v 0.5 0.490393 -0.097545
|
||||
v -0.5 0.490393 -0.097545
|
||||
v 0.5 0.5 0
|
||||
v -0.5 0.5 0
|
||||
v 0.5 0.490393 0.097545
|
||||
v -0.5 0.490393 0.097545
|
||||
v 0.5 0.46194 0.191342
|
||||
v -0.5 0.46194 0.191341
|
||||
v 0.5 0.415735 0.277785
|
||||
v -0.5 0.415735 0.277785
|
||||
v 0.5 0.353553 0.353553
|
||||
v -0.5 0.353553 0.353553
|
||||
v 0.5 0.277785 0.415735
|
||||
v -0.5 0.277785 0.415735
|
||||
v 0.5 0.191342 0.46194
|
||||
v -0.5 0.191342 0.46194
|
||||
v 0.5 0.097545 0.490393
|
||||
v -0.5 0.097545 0.490392
|
||||
v 0.5 0 0.5
|
||||
v -0.5 0 0.5
|
||||
v 0.5 -0.097546 0.490392
|
||||
v -0.5 -0.097545 0.490392
|
||||
v 0.5 -0.191342 0.46194
|
||||
v -0.5 -0.191342 0.461939
|
||||
v 0.5 -0.277785 0.415734
|
||||
v -0.5 -0.277785 0.415734
|
||||
v 0.5 -0.353554 0.353553
|
||||
v -0.5 -0.353554 0.353553
|
||||
v 0.5 -0.415735 0.277785
|
||||
v -0.5 -0.415735 0.277785
|
||||
v 0.5 -0.46194 0.191341
|
||||
v -0.5 -0.46194 0.191341
|
||||
v 0.5 -0.490393 0.097545
|
||||
v -0.5 -0.490393 0.097544
|
||||
v 0.5 -0.5 -0.000001
|
||||
v -0.5 -0.5 -0.000001
|
||||
v 0.5 -0.490393 -0.097546
|
||||
v -0.5 -0.490393 -0.097546
|
||||
v 0.5 -0.46194 -0.191342
|
||||
v -0.5 -0.46194 -0.191343
|
||||
v 0.5 -0.415734 -0.277786
|
||||
v -0.5 -0.415734 -0.277786
|
||||
v 0.5 -0.353553 -0.353554
|
||||
v -0.5 -0.353553 -0.353554
|
||||
v 0.5 -0.277785 -0.415735
|
||||
v -0.5 -0.277784 -0.415735
|
||||
v 0.5 -0.191341 -0.46194
|
||||
v -0.5 -0.191341 -0.46194
|
||||
v 0.5 -0.097544 -0.490393
|
||||
v -0.5 -0.097544 -0.490393
|
||||
vn 0 0 -1
|
||||
vn 0 0.1951 -0.9808
|
||||
vn 0 0.3827 -0.9239
|
||||
vn 0 0.5556 -0.8315
|
||||
vn 0 0.7071 -0.7071
|
||||
vn 0 0.8315 -0.5556
|
||||
vn 0 0.9239 -0.3827
|
||||
vn 0 0.9808 -0.1951
|
||||
vn 0 1 0
|
||||
vn 0 0.9808 0.1951
|
||||
vn 0 0.9239 0.3827
|
||||
vn 0 0.8315 0.5556
|
||||
vn 0 0.7071 0.7071
|
||||
vn 0 0.5556 0.8315
|
||||
vn 0 0.3827 0.9239
|
||||
vn 0 0.1951 0.9808
|
||||
vn 0 0 1
|
||||
vn 0 -0.1951 0.9808
|
||||
vn 0 -0.3827 0.9239
|
||||
vn 0 -0.5556 0.8315
|
||||
vn 0 -0.7071 0.7071
|
||||
vn 0 -0.8315 0.5556
|
||||
vn 0 -0.9239 0.3827
|
||||
vn 0 -0.9808 0.1951
|
||||
vn 0 -1 0
|
||||
vn 0 -0.9808 -0.1951
|
||||
vn 0 -0.9239 -0.3827
|
||||
vn 0 -0.8315 -0.5556
|
||||
vn 0 -0.7071 -0.7071
|
||||
vn 0 -0.5556 -0.8315
|
||||
vn 0 -0.3827 -0.9239
|
||||
vn -1 0 0
|
||||
vn 0 -0.1951 -0.9808
|
||||
vn 1 0 0
|
||||
vt 0.000003 0.499996
|
||||
vt 0.999995 0.499995
|
||||
vt 0.999996 0.562495
|
||||
vt 0.000002 0.562496
|
||||
vt 0.999997 0.624995
|
||||
vt 0.000003 0.624996
|
||||
vt 0.999998 0.687496
|
||||
vt 0.000002 0.687496
|
||||
vt 0.999999 0.749997
|
||||
vt 0.000002 0.749996
|
||||
vt 0.999999 0.812497
|
||||
vt 0.000002 0.812497
|
||||
vt 1 0.874997
|
||||
vt 0.000001 0.874997
|
||||
vt 1 0.937498
|
||||
vt 0.000001 0.937497
|
||||
vt 1 0.999998
|
||||
vt 0.000001 0.999998
|
||||
vt 0.000003 0.000005
|
||||
vt 0.999976 0.000001
|
||||
vt 0.999977 0.0625
|
||||
vt 0.000003 0.062505
|
||||
vt 0.999978 0.124999
|
||||
vt 0.000004 0.125004
|
||||
vt 0.99998 0.187498
|
||||
vt 0.000005 0.187503
|
||||
vt 0.999982 0.249997
|
||||
vt 0.000005 0.250003
|
||||
vt 0.999983 0.312497
|
||||
vt 0.000006 0.312502
|
||||
vt 0.999985 0.374997
|
||||
vt 0.000007 0.375001
|
||||
vt 0.999986 0.437496
|
||||
vt 0.000007 0.437501
|
||||
vt 0.009601 0.597512
|
||||
vt 0.009614 0.402424
|
||||
vt 0.038072 0.308628
|
||||
vt 0.084283 0.222189
|
||||
vt 0.146469 0.146424
|
||||
vt 0.222242 0.084247
|
||||
vt 0.308689 0.038047
|
||||
vt 0.402487 0.009601
|
||||
vt 0.500033 0
|
||||
vt 0.597577 0.009613
|
||||
vt 0.691371 0.038072
|
||||
vt 0.777811 0.084283
|
||||
vt 0.853575 0.146469
|
||||
vt 0.915753 0.222242
|
||||
vt 0.961952 0.308688
|
||||
vt 0.990398 0.402486
|
||||
vt 0.990386 0.597576
|
||||
vt 0.961928 0.69137
|
||||
vt 0.915717 0.777812
|
||||
vt 0.853531 0.853576
|
||||
vt 0.777759 0.915752
|
||||
vt 0.691313 0.961951
|
||||
vt 0.597515 0.990398
|
||||
vt 0.49997 1
|
||||
vt 0.402425 0.990386
|
||||
vt 0.30863 0.961927
|
||||
vt 0.222189 0.915717
|
||||
vt 0.146424 0.85353
|
||||
vt 0.084248 0.777757
|
||||
vt 0.038048 0.691311
|
||||
vt 0.999999 0.500073
|
||||
vt 0.777724 0.915774
|
||||
vt 0.499927 0.999999
|
||||
vt 0.084224 0.777723
|
||||
vt 0 0.499925
|
||||
vt 0.222279 0.084223
|
||||
vt 0.500078 0
|
||||
vt 0.915775 0.222276
|
||||
s 1
|
||||
f 1/1/1 2/2/1 4/3/2 3/4/2
|
||||
f 3/4/2 4/3/2 6/5/3 5/6/3
|
||||
f 5/6/3 6/5/3 8/7/4 7/8/4
|
||||
f 7/8/4 8/7/4 10/9/5 9/10/5
|
||||
f 9/10/5 10/9/5 12/11/6 11/12/6
|
||||
f 11/12/6 12/11/6 14/13/7 13/14/7
|
||||
f 13/14/7 14/13/7 16/15/8 15/16/8
|
||||
f 15/16/8 16/15/8 18/17/9 17/18/9
|
||||
f 17/19/9 18/20/9 20/21/10 19/22/10
|
||||
f 19/22/10 20/21/10 22/23/11 21/24/11
|
||||
f 21/24/11 22/23/11 24/25/12 23/26/12
|
||||
f 23/26/12 24/25/12 26/27/13 25/28/13
|
||||
f 25/28/13 26/27/13 28/29/14 27/30/14
|
||||
f 27/30/14 28/29/14 30/31/15 29/32/15
|
||||
f 29/32/15 30/31/15 32/33/16 31/34/16
|
||||
f 31/34/16 32/33/16 34/2/17 33/1/17
|
||||
f 33/1/17 34/2/17 36/3/18 35/4/18
|
||||
f 35/4/18 36/3/18 38/5/19 37/6/19
|
||||
f 37/6/19 38/5/19 40/7/20 39/8/20
|
||||
f 39/8/20 40/7/20 42/9/21 41/10/21
|
||||
f 41/10/21 42/9/21 44/11/22 43/12/22
|
||||
f 43/12/22 44/11/22 46/13/23 45/14/23
|
||||
f 45/14/23 46/13/23 48/15/24 47/16/24
|
||||
f 47/16/24 48/15/24 50/17/25 49/18/25
|
||||
f 49/19/25 50/20/25 52/21/26 51/22/26
|
||||
f 51/22/26 52/21/26 54/23/27 53/24/27
|
||||
f 53/24/27 54/23/27 56/25/28 55/26/28
|
||||
f 55/26/28 56/25/28 58/27/29 57/28/29
|
||||
f 57/28/29 58/27/29 60/29/30 59/30/30
|
||||
f 59/30/30 60/29/30 62/31/31 61/32/31
|
||||
f 4/35/32 2/1/32 64/36/32 62/37/32 60/38/32 58/39/32 56/40/32 54/41/32 52/42/32 50/43/32 48/44/32 46/45/32 44/46/32 42/47/32 40/48/32 38/49/32 36/50/32 34/2/32 32/51/32 30/52/32 28/53/32 26/54/32 24/55/32 22/56/32 20/57/32 18/58/32 16/59/32 14/60/32 12/61/32 10/62/32 8/63/32 6/64/32
|
||||
f 63/34/33 64/33/33 2/2/1 1/1/1
|
||||
f 61/32/31 62/31/31 64/33/33 63/34/33
|
||||
f 1/65/34 3/51/34 5/52/34 7/53/34 9/54/34 11/66/34 13/56/34 15/57/34 17/67/34 19/59/34 21/60/34 23/61/34 25/62/34 27/68/34 29/64/34 31/35/34 33/69/34 35/36/34 37/37/34 39/38/34 41/39/34 43/70/34 45/41/34 47/42/34 49/71/34 51/44/34 53/45/34 55/46/34 57/47/34 59/72/34 61/49/34 63/50/34
|
|
@ -0,0 +1,28 @@
|
|||
v -0.5 0.5 0.5
|
||||
v -0.5 0.5 -0.5
|
||||
v -0.5 -0.5 -0.5
|
||||
v -0.5 -0.5 0.5
|
||||
v 0.5 -0.5 -0.5
|
||||
v 0.5 0.5 0.5
|
||||
v -0.5 -0.5 0.5
|
||||
v 0.5 -0.5 0.5
|
||||
v 0.5 -0.5 -0.5
|
||||
vn 0 0 1
|
||||
vn 0 0 -1
|
||||
vn 0.7071 0.7071 0
|
||||
vn 1 0 0
|
||||
vn 0 -1 0
|
||||
vn -1 0 0
|
||||
vn 0 0.7071 -0.7071
|
||||
vt 1 1
|
||||
vt 0 1
|
||||
vt 0 0
|
||||
vt 1 0
|
||||
s 0
|
||||
f 6/1/1 1/2/1 7/3/1 8/4/1
|
||||
f 2/1/2 5/3/2 3/4/2
|
||||
f 2/1/3 1/2/3 5/4/3
|
||||
f 6/2/4 8/3/4 9/4/4
|
||||
f 9/1/5 8/2/5 7/3/5 3/4/5
|
||||
f 3/3/6 7/4/6 1/1/6 2/2/6
|
||||
f 1/1/7 6/2/7 9/3/7
|
|
@ -0,0 +1,28 @@
|
|||
v -0.5 -0.5 0.5
|
||||
v 0.5 -0.5 0.5
|
||||
v 0.5 0.5 0.5
|
||||
v -0.5 0.5 0.5
|
||||
v 0.5 0.5 -0.5
|
||||
v -0.5 -0.5 -0.5
|
||||
v -0.5 0.5 0.5
|
||||
v -0.5 0.5 -0.5
|
||||
v 0.5 0.5 -0.5
|
||||
vn -1 0 0
|
||||
vn 1 0 0
|
||||
vn 0 -0.7071 -0.7071
|
||||
vn 0 0 -1
|
||||
vn 0 1 0
|
||||
vn 0 0 1
|
||||
vn 0.7071 -0.7071 0
|
||||
vt 0 0
|
||||
vt 1 0
|
||||
vt 1 1
|
||||
vt 0 1
|
||||
s 0
|
||||
f 6/1/1 1/2/1 7/3/1 8/4/1
|
||||
f 2/1/2 5/3/2 3/4/2
|
||||
f 2/1/3 1/2/3 5/4/3
|
||||
f 6/2/4 8/3/4 9/4/4
|
||||
f 9/1/5 8/2/5 7/3/5 3/4/5
|
||||
f 3/3/6 7/4/6 1/1/6 2/2/6
|
||||
f 1/1/7 6/2/7 9/3/7
|
|
@ -0,0 +1,300 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_blob_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 0.213679 -0.450000 -0.213679
|
||||
v -0.213679 -0.450000 0.213680
|
||||
v 0.213680 -0.450000 0.213680
|
||||
v -0.213679 -0.450000 -0.213679
|
||||
v 0.213679 0.450000 -0.213679
|
||||
v -0.213679 0.450000 -0.213679
|
||||
v 0.213679 0.450000 0.213680
|
||||
v 0.500000 -0.000003 0.500000
|
||||
v 0.277785 -0.415735 0.277785
|
||||
v -0.277785 -0.415735 0.277785
|
||||
v 0.353553 -0.353554 0.353553
|
||||
v -0.353553 -0.353554 0.353553
|
||||
v -0.500000 -0.000002 0.500000
|
||||
v 0.415735 -0.277786 0.415735
|
||||
v -0.277785 0.415735 0.277785
|
||||
v 0.277785 0.415735 0.277785
|
||||
v -0.415735 -0.277785 0.415735
|
||||
v 0.353554 0.353553 0.353554
|
||||
v -0.500000 -0.000002 -0.499983
|
||||
v 0.461940 -0.191342 0.461940
|
||||
v -0.461940 -0.191342 0.461940
|
||||
v -0.353553 0.353553 0.353554
|
||||
v 0.490393 -0.097546 0.490393
|
||||
v 0.500000 -0.000002 -0.500000
|
||||
v 0.490393 0.097545 -0.490392
|
||||
v 0.490393 0.097545 0.490393
|
||||
v -0.490393 -0.097546 0.490393
|
||||
v 0.490393 -0.097545 -0.490393
|
||||
v 0.461940 0.191341 0.461940
|
||||
v -0.461940 0.191341 0.461940
|
||||
v 0.461940 0.191342 -0.461940
|
||||
v -0.490393 0.097545 0.490393
|
||||
v 0.415735 0.277785 0.415735
|
||||
v -0.490393 0.097545 -0.490392
|
||||
v -0.415735 0.277785 0.415735
|
||||
v 0.461940 -0.191341 -0.461940
|
||||
v 0.415735 0.277785 -0.415735
|
||||
v -0.461940 0.191341 -0.461940
|
||||
v -0.415735 0.277785 -0.415735
|
||||
v 0.415735 -0.277785 -0.415735
|
||||
v -0.490393 -0.097546 -0.490392
|
||||
v 0.353553 0.353553 -0.353553
|
||||
v -0.213679 0.450000 0.213680
|
||||
v -0.353553 0.353553 -0.353553
|
||||
v 0.277785 0.415735 -0.277785
|
||||
v -0.461940 -0.191342 -0.461939
|
||||
v 0.353554 -0.353553 -0.353554
|
||||
v -0.277785 0.415735 -0.277785
|
||||
v -0.415735 -0.277785 -0.415734
|
||||
v 0.277786 -0.415735 -0.277785
|
||||
v -0.353553 -0.353554 -0.353553
|
||||
v -0.277785 -0.415735 -0.277784
|
||||
vt 0.038487 0.679029
|
||||
vt 0.010047 0.589789
|
||||
vt 0.990397 0.589790
|
||||
vt 0.915772 0.767073
|
||||
vt 0.084671 0.767071
|
||||
vt 0.961957 0.679029
|
||||
vt 0.852473 0.146294
|
||||
vt 0.914576 0.232749
|
||||
vt 0.084146 0.232744
|
||||
vt 0.712776 0.000003
|
||||
vt 0.221926 0.061588
|
||||
vt 0.285951 0.000000
|
||||
vt 0.285945 0.999818
|
||||
vt 0.221920 0.938229
|
||||
vt 0.712771 0.999818
|
||||
vt 0.009578 0.589789
|
||||
vt 0.989138 0.589792
|
||||
vt 0.960721 0.679031
|
||||
vt 0.286638 0.000000
|
||||
vt 0.777884 0.061589
|
||||
vt 0.222561 0.061589
|
||||
vt 0.777608 0.938229
|
||||
vt 0.222164 0.938229
|
||||
vt 0.146413 0.853527
|
||||
vt 0.286255 0.999818
|
||||
vt 0.713517 0.999818
|
||||
vt 0.776800 0.061592
|
||||
vt 0.146251 0.146290
|
||||
vt 0.000000 0.499907
|
||||
vt 0.989139 0.410032
|
||||
vt 0.998734 0.499910
|
||||
vt 0.853618 0.146291
|
||||
vt 0.915772 0.232746
|
||||
vt 0.146826 0.146290
|
||||
vt 0.961957 0.320789
|
||||
vt 0.084672 0.232745
|
||||
vt 0.990397 0.410029
|
||||
vt 0.038487 0.320789
|
||||
vt 0.776796 0.938230
|
||||
vt 0.777790 0.938229
|
||||
vt 0.146467 0.853526
|
||||
vt 0.853556 0.853527
|
||||
vt 0.146825 0.853526
|
||||
vt 1.000000 0.499907
|
||||
vt 0.010047 0.410028
|
||||
vt 0.146246 0.853527
|
||||
vt 0.222559 0.938228
|
||||
vt 0.777882 0.938230
|
||||
vt 0.915737 0.767073
|
||||
vt 0.084287 0.767072
|
||||
vt 0.038083 0.679029
|
||||
vt 0.961941 0.679029
|
||||
vt 0.037995 0.679029
|
||||
vt 0.960723 0.320792
|
||||
vt 0.037998 0.320787
|
||||
vt 0.009580 0.410028
|
||||
vt 0.990167 0.589790
|
||||
vt 0.999772 0.499909
|
||||
vt 0.961721 0.679029
|
||||
vt 0.084246 0.767072
|
||||
vt 0.915526 0.767072
|
||||
vt 0.853359 0.853527
|
||||
vt 0.914573 0.767074
|
||||
vt 0.084142 0.767072
|
||||
vt 0.852470 0.853528
|
||||
vt 0.777609 0.061590
|
||||
vt 0.853360 0.146293
|
||||
vt 0.222166 0.061589
|
||||
vt 0.146414 0.146291
|
||||
vt 0.915527 0.232748
|
||||
vt 0.084247 0.232746
|
||||
vt 0.961721 0.320791
|
||||
vt 0.038052 0.320789
|
||||
vt 0.990167 0.410031
|
||||
vt 0.713686 0.999818
|
||||
vt 0.749950 0.250050
|
||||
vt 0.749950 0.749950
|
||||
vt 0.250050 0.749950
|
||||
vt 0.250050 0.250050
|
||||
vt 0.713807 0.000000
|
||||
vt 0.286258 0.000000
|
||||
vt 0.713519 0.000001
|
||||
vt 0.250050 0.250050
|
||||
vt 0.749950 0.250050
|
||||
vt 0.749950 0.749950
|
||||
vt 0.286636 0.999817
|
||||
vt 0.777791 0.061589
|
||||
vt 0.146467 0.146291
|
||||
vt 0.084287 0.232745
|
||||
vt 0.915737 0.232746
|
||||
vt 0.961941 0.320789
|
||||
vt 0.000444 0.499907
|
||||
vt 0.713687 0.000000
|
||||
vt 0.713805 0.999818
|
||||
vn -0.620400 0.479600 0.620400
|
||||
vn -0.683900 0.254100 0.683900
|
||||
vn 0.683900 0.254100 0.683900
|
||||
vn 0.531000 0.660300 0.531000
|
||||
vn -0.531000 0.660300 0.531000
|
||||
vn 0.620400 0.479600 0.620400
|
||||
vn -0.429700 -0.794100 0.429700
|
||||
vn -0.531000 -0.660300 0.531000
|
||||
vn -0.531000 -0.660300 -0.531000
|
||||
vn -0.185700 -0.964900 0.185700
|
||||
vn -0.325800 -0.887500 -0.325800
|
||||
vn -0.185700 -0.964900 -0.185700
|
||||
vn -0.185700 0.964900 -0.185700
|
||||
vn -0.325800 0.887500 -0.325800
|
||||
vn -0.185700 0.964900 0.185700
|
||||
vn -0.683900 0.254000 -0.683900
|
||||
vn 0.325800 -0.887500 0.325800
|
||||
vn -0.325800 -0.887500 0.325800
|
||||
vn 0.325800 0.887500 -0.325800
|
||||
vn 0.429700 0.794100 -0.429700
|
||||
vn 0.185700 0.964900 -0.185700
|
||||
vn -0.429700 -0.794100 -0.429700
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
vn -0.683900 -0.254100 0.683900
|
||||
vn -0.707100 0.000000 0.707100
|
||||
vn 0.429700 -0.794100 0.429700
|
||||
vn 0.531000 -0.660300 0.531000
|
||||
vn 0.620400 -0.479600 0.620400
|
||||
vn 0.683900 -0.254100 0.683900
|
||||
vn -0.620400 -0.479600 0.620400
|
||||
vn -0.325800 0.887500 0.325800
|
||||
vn 0.185700 0.964900 0.185700
|
||||
vn 0.325800 0.887500 0.325800
|
||||
vn 0.429700 0.794100 0.429700
|
||||
vn -0.429700 0.794100 0.429700
|
||||
vn 0.707100 0.000000 0.707100
|
||||
vn -0.429700 0.794100 -0.429700
|
||||
vn 0.531000 0.660300 -0.531000
|
||||
vn 0.683900 0.254100 -0.683900
|
||||
vn 0.707100 0.000000 -0.707100
|
||||
vn 0.620400 0.479600 -0.620400
|
||||
vn -0.620400 0.479600 -0.620400
|
||||
vn -0.620400 -0.479600 -0.620400
|
||||
vn -0.683900 -0.254000 -0.683900
|
||||
vn 0.683900 -0.254100 -0.683900
|
||||
vn -0.531000 0.660300 -0.531000
|
||||
vn 0.325800 -0.887500 -0.325800
|
||||
vn 0.429700 -0.794100 -0.429700
|
||||
vn 0.531000 -0.660300 -0.531000
|
||||
vn 0.620400 -0.479600 -0.620400
|
||||
vn 0.185700 -0.964900 -0.185700
|
||||
vn 0.185700 -0.964900 0.185700
|
||||
s 1
|
||||
f 30/1/1 32/2/2 26/3/3
|
||||
f 33/4/4 35/5/5 29/6/6
|
||||
f 12/7/7 17/8/8 49/9/9
|
||||
f 2/10/10 52/11/11 4/12/12
|
||||
f 6/13/13 48/14/14 43/15/15
|
||||
f 34/16/16 32/17/2 30/18/1
|
||||
f 2/19/10 9/20/17 10/21/18
|
||||
f 48/22/14 45/23/19 42/24/20
|
||||
f 5/25/21 45/23/19 6/26/13
|
||||
f 10/27/18 12/7/7 51/28/22
|
||||
f 19/29/23 27/30/24 13/31/25
|
||||
f 9/20/17 11/32/26 10/21/18
|
||||
f 11/32/26 14/33/27 12/34/7
|
||||
f 14/33/27 20/35/28 17/36/8
|
||||
f 20/35/28 23/37/29 21/38/30
|
||||
f 43/15/15 48/14/14 15/39/31
|
||||
f 7/25/32 16/23/33 45/40/19
|
||||
f 18/41/34 42/42/20 45/40/19
|
||||
f 29/6/6 30/1/1 26/3/3
|
||||
f 22/43/35 33/4/4 18/42/34
|
||||
f 26/3/3 32/2/2 8/44/36
|
||||
f 8/44/36 27/45/24 23/37/29
|
||||
f 11/32/26 12/34/7 10/21/18
|
||||
f 14/33/27 17/36/8 12/34/7
|
||||
f 20/35/28 21/38/30 17/36/8
|
||||
f 23/37/29 27/45/24 21/38/30
|
||||
f 10/27/18 52/11/11 2/10/10
|
||||
f 15/39/31 48/14/14 44/46/37
|
||||
f 22/43/35 35/5/5 33/4/4
|
||||
f 15/47/31 22/43/35 16/48/33
|
||||
f 37/49/38 42/42/20 18/41/34
|
||||
f 33/50/4 29/51/6 37/49/38
|
||||
f 8/29/36 25/3/39 26/16/3
|
||||
f 24/44/40 25/3/39 8/29/36
|
||||
f 29/51/6 26/16/3 31/52/41
|
||||
f 26/16/3 25/3/39 31/52/41
|
||||
f 29/51/6 31/52/41 37/49/38
|
||||
f 38/53/42 34/16/16 30/18/1
|
||||
f 19/29/23 32/17/2 34/16/16
|
||||
f 13/31/25 32/17/2 19/29/23
|
||||
f 17/8/8 21/54/30 46/55/43
|
||||
f 21/54/30 27/30/24 41/56/44
|
||||
f 8/29/36 28/37/45 24/44/40
|
||||
f 34/57/16 25/16/39 19/58/23
|
||||
f 38/59/42 31/51/41 34/57/16
|
||||
f 31/51/41 25/16/39 34/57/16
|
||||
f 37/60/38 38/59/42 39/61/46
|
||||
f 37/60/38 31/51/41 38/59/42
|
||||
f 44/62/37 42/24/20 37/60/38
|
||||
f 38/53/42 30/18/1 35/63/5
|
||||
f 39/64/46 35/63/5 22/65/35
|
||||
f 52/66/11 51/67/22 50/68/47
|
||||
f 51/67/22 47/69/48 50/68/47
|
||||
f 51/67/22 49/70/9 47/69/48
|
||||
f 49/70/9 40/71/49 47/69/48
|
||||
f 49/70/9 46/72/43 40/71/49
|
||||
f 46/72/43 36/73/50 40/71/49
|
||||
f 19/58/23 28/56/45 41/74/44
|
||||
f 46/72/43 41/74/44 36/73/50
|
||||
f 41/74/44 28/56/45 36/73/50
|
||||
f 22/43/35 18/42/34 16/48/33
|
||||
f 5/75/21 7/25/32 45/40/19
|
||||
f 2/76/10 4/77/12 1/78/51 3/79/52
|
||||
f 44/62/37 48/22/14 42/24/20
|
||||
f 35/5/5 30/1/1 29/6/6
|
||||
f 3/80/52 9/20/17 2/19/10
|
||||
f 45/23/19 48/22/14 6/26/13
|
||||
f 1/81/51 52/66/11 50/68/47
|
||||
f 39/61/46 44/62/37 37/60/38
|
||||
f 52/66/11 1/81/51 4/82/12
|
||||
f 24/29/40 28/56/45 19/58/23
|
||||
f 7/78/32 5/83/21 6/84/13 43/85/15
|
||||
f 24/29/40 19/58/23 25/16/39
|
||||
f 15/47/31 16/48/33 43/86/15
|
||||
f 22/65/35 44/46/37 39/64/46
|
||||
f 39/64/46 38/53/42 35/63/5
|
||||
f 41/56/44 27/30/24 19/29/23
|
||||
f 46/55/43 21/54/30 41/56/44
|
||||
f 49/9/9 17/8/8 46/55/43
|
||||
f 51/28/22 12/7/7 49/9/9
|
||||
f 52/11/11 10/27/18 51/28/22
|
||||
f 9/68/17 50/87/47 11/88/26
|
||||
f 50/87/47 47/32/48 11/88/26
|
||||
f 11/88/26 47/32/48 14/89/27
|
||||
f 47/32/48 40/90/49 14/89/27
|
||||
f 14/89/27 40/90/49 20/73/28
|
||||
f 40/90/49 36/91/50 20/73/28
|
||||
f 23/56/29 28/37/45 8/29/36
|
||||
f 20/73/28 36/91/50 23/56/29
|
||||
f 36/91/50 28/37/45 23/56/29
|
||||
f 13/92/25 8/44/36 32/2/2
|
||||
f 50/87/47 9/68/17 1/93/51
|
||||
f 13/92/25 27/45/24 8/44/36
|
||||
f 16/23/33 18/41/34 45/40/19
|
||||
f 22/65/35 15/39/31 44/46/37
|
||||
f 9/68/17 3/81/52 1/93/51
|
||||
f 33/50/4 37/49/38 18/41/34
|
||||
f 43/86/15 16/48/33 7/94/32
|
|
@ -0,0 +1,132 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v -0.500000 0.490393 -0.097545
|
||||
v 0.500000 0.490393 -0.097545
|
||||
v -0.500000 0.461940 -0.191342
|
||||
v 0.500000 0.461940 -0.191342
|
||||
v -0.500000 0.415735 -0.277785
|
||||
v 0.500000 0.415735 -0.277785
|
||||
v -0.500000 0.353553 -0.353553
|
||||
v 0.500000 0.353553 -0.353553
|
||||
v -0.500000 0.277785 -0.415735
|
||||
v 0.500000 0.277785 -0.415735
|
||||
v -0.500000 0.191342 -0.461940
|
||||
v 0.500000 0.191342 -0.461940
|
||||
v -0.500000 0.097545 -0.490393
|
||||
v 0.500000 0.097545 -0.490393
|
||||
v 0.500000 -0.000000 -0.500000
|
||||
v 0.500000 0.490393 -0.097545
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v -0.500000 0.500000 -0.000000
|
||||
v 0.500000 0.500000 0.000000
|
||||
v -0.500000 0.490393 -0.097545
|
||||
v -0.500000 0.461940 -0.191342
|
||||
v -0.500000 0.415735 -0.277785
|
||||
v -0.500000 0.353553 -0.353553
|
||||
v -0.500000 0.277785 -0.415735
|
||||
v -0.500000 0.191342 -0.461940
|
||||
v -0.500000 0.097545 -0.490393
|
||||
v -0.500000 0.000000 0.000000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v -0.500000 0.500000 -0.000000
|
||||
v 0.500000 0.461940 -0.191342
|
||||
v 0.500000 0.415735 -0.277785
|
||||
v 0.500000 0.353553 -0.353553
|
||||
v 0.500000 0.277785 -0.415735
|
||||
v 0.500000 0.191342 -0.461940
|
||||
v 0.500000 0.097545 -0.490393
|
||||
v 0.500000 -0.000000 -0.500000
|
||||
v 0.500000 -0.000000 -0.000000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.000000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 0.500001 0.500000
|
||||
vt 0.500001 1.000000
|
||||
vt 0.000003 1.000000
|
||||
vt 0.000003 0.000000
|
||||
vt 0.597546 0.990393
|
||||
vt 0.691342 0.961940
|
||||
vt 1.000000 1.000000
|
||||
vt 0.990393 0.597545
|
||||
vt 0.961940 0.691341
|
||||
vt 0.777786 0.915735
|
||||
vt 0.853554 0.853553
|
||||
vt 0.915735 0.777785
|
||||
vt 0.146446 0.853552
|
||||
vt 0.084265 0.777783
|
||||
vt 0.038060 0.691340
|
||||
vt 0.308658 0.961938
|
||||
vt 0.222214 0.915733
|
||||
vt 0.000000 0.499999
|
||||
vt 0.402454 0.990391
|
||||
vt 0.009607 0.597544
|
||||
vt 1.000000 0.375000
|
||||
vt 0.000000 0.375000
|
||||
vt 0.000000 0.250000
|
||||
vt 1.000000 0.250000
|
||||
vt 0.000000 0.125000
|
||||
vt 1.000000 0.125000
|
||||
vt 0.000000 0.875000
|
||||
vt 1.000000 0.875000
|
||||
vt 0.000000 0.750000
|
||||
vt 1.000000 0.750000
|
||||
vt 0.000000 0.625000
|
||||
vt 1.000000 0.625000
|
||||
vn 1.000000 -0.000000 0.000000
|
||||
vn -0.000000 0.000000 1.000000
|
||||
vn -0.000000 -1.000000 0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.980800 -0.195100
|
||||
vn 0.000000 0.923900 -0.382700
|
||||
vn -0.000000 0.831500 -0.555600
|
||||
vn -0.000000 0.707100 -0.707100
|
||||
vn -0.000000 0.555600 -0.831500
|
||||
vn -0.000000 0.382700 -0.923900
|
||||
vn -0.000000 0.195100 -0.980800
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.000000 0.998800 -0.049100
|
||||
vn -0.000000 0.049100 -0.998800
|
||||
vn -0.000000 0.000000 -1.000000
|
||||
s off
|
||||
f 46/1/1 44/2/1 45/3/1 49/4/1 48/5/1 47/6/1
|
||||
f 16/7/1 49/4/1 45/3/1 38/8/1
|
||||
f 55/5/2 53/6/2 54/1/2 56/9/2
|
||||
f 43/10/1 42/11/1 45/3/1 44/2/1
|
||||
f 39/12/1 38/8/1 45/3/1 40/13/1
|
||||
f 41/14/1 40/13/1 45/3/1 42/11/1
|
||||
f 50/9/3 51/5/3 52/6/3 17/1/3
|
||||
f 28/15/4 29/16/4 30/17/4 32/3/4
|
||||
f 26/18/4 27/19/4 28/15/4 32/3/4
|
||||
f 35/9/4 37/4/4 32/3/4 36/20/4 34/6/4 33/1/4
|
||||
f 37/4/4 25/21/4 26/18/4 32/3/4
|
||||
f 30/17/4 31/22/4 36/20/4 32/3/4
|
||||
s 1
|
||||
f 1/23/5 2/24/5 4/25/6 3/26/6
|
||||
f 3/26/6 4/25/6 6/27/7 5/28/7
|
||||
f 5/28/7 6/27/7 8/6/8 7/1/8
|
||||
f 7/9/8 8/5/8 10/29/9 9/30/9
|
||||
f 9/30/9 10/29/9 12/31/10 11/32/10
|
||||
f 11/32/10 12/31/10 14/33/11 13/34/11
|
||||
f 21/5/12 24/20/13 23/2/13 20/9/12
|
||||
f 13/34/11 14/33/11 15/20/14 22/2/14
|
||||
f 23/2/13 24/20/13 2/24/5 1/23/5
|
||||
f 18/1/15 22/2/14 15/20/14 19/6/15
|
|
@ -0,0 +1,23 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'technic-ocorner.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.002
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -1.000000 -0.000000 0.000000
|
||||
vn -0.000000 0.707100 -0.707100
|
||||
vn 0.707100 0.707100 -0.000000
|
||||
s off
|
||||
f 3/1/1 2/2/1 4/3/1 5/4/1
|
||||
f 1/2/2 3/3/2 5/4/2
|
||||
f 1/1/3 2/3/3 3/4/3
|
||||
f 1/1/4 4/3/4 2/4/4
|
||||
f 1/2/5 5/3/5 4/4/5
|
|
@ -0,0 +1,23 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.002
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.707100 -0.707100 0.000000
|
||||
vn -0.000000 -0.707100 -0.707100
|
||||
s off
|
||||
f 3/1/1 2/2/1 4/3/1 5/4/1
|
||||
f 1/2/2 3/3/2 5/4/2
|
||||
f 1/1/3 2/3/3 3/4/3
|
||||
f 1/1/4 4/3/4 2/4/4
|
||||
f 1/2/5 5/3/5 4/4/5
|
|
@ -0,0 +1,24 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_short_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.000000 0.000000 -0.000000
|
||||
vt 1.000000 0.500000
|
||||
vt 0.000000 0.500000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.500000 0.500000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.707100 0.707100 -0.000000
|
||||
vn 0.000000 0.707100 -0.707100
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn -0.000000 0.707100 0.707100
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 3/4/2 5/5/2 4/3/2
|
||||
f 5/5/3 1/3/3 4/4/3
|
||||
f 1/4/4 5/5/4 2/3/4
|
||||
f 2/4/5 5/5/5 3/3/5
|
|
@ -0,0 +1,24 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.000000 0.500000 -0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.500000 1.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.894400 0.447200 -0.000000
|
||||
vn 0.000000 0.447200 -0.894400
|
||||
vn 0.894400 0.447200 0.000000
|
||||
vn -0.000000 0.447200 0.894400
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 3/4/2 5/5/2 4/3/2
|
||||
f 5/5/3 1/3/3 4/4/3
|
||||
f 1/4/4 5/5/4 2/3/4
|
||||
f 2/4/5 5/5/5 3/3/5
|
|
@ -0,0 +1,24 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.002
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vn 0.000000 -0.000000 1.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 0.707100 -0.707100
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 4/3/2 3/4/2 5/1/2 6/2/2
|
||||
f 2/1/3 5/3/3 3/4/3
|
||||
f 1/2/4 4/3/4 6/4/4
|
||||
f 2/1/5 1/2/5 6/3/5 5/4/5
|
|
@ -0,0 +1,24 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'technic-slope-horizontal.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.002
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vn 0.000000 -0.000000 1.000000
|
||||
vn 1.000000 -0.000000 -0.000000
|
||||
vn -0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn -0.707100 0.000000 -0.707100
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 4/1/2 3/2/2 5/3/2 6/4/2
|
||||
f 2/3/3 5/1/3 3/2/3
|
||||
f 1/4/4 4/1/4 6/2/4
|
||||
f 2/3/5 1/4/5 6/1/5 5/2/5
|
|
@ -0,0 +1,24 @@
|
|||
# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.002
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 1.000000 -0.000000 0.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn -0.000000 -0.707100 -0.707100
|
||||
s off
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 4/3/2 3/4/2 5/1/2 6/2/2
|
||||
f 2/1/3 5/3/3 3/4/3
|
||||
f 1/2/4 4/3/4 6/4/4
|
||||
f 2/1/5 1/2/5 6/3/5 5/4/5
|
1927
mods/technic_plus_beta/technic_cnc/models/technic_cnc_sphere.obj
Normal file
|
@ -0,0 +1,209 @@
|
|||
v 0.415732 0.277783 0.499997
|
||||
v 0.461936 0.19134 0.499997
|
||||
v 0.415735 0.277783 -0.415732
|
||||
v 0.46194 0.19134 -0.461937
|
||||
v 0.490389 0.097544 0.499997
|
||||
v 0.353551 0.353551 0.499997
|
||||
v 0.353555 0.353551 -0.353551
|
||||
v 0.499996 0 0.499997
|
||||
v 0.277783 0.415732 0.499997
|
||||
v 0.490393 0.097544 -0.490389
|
||||
v 0.277787 0.415732 -0.277784
|
||||
v 0.19134 0.461936 0.499997
|
||||
v 0.191344 0.461937 -0.191341
|
||||
v 0.097544 0.490389 0.499997
|
||||
v 0.097547 0.490391 -0.097545
|
||||
v 0 0.499996 0.499997
|
||||
v -0.499997 0.499997 0.499997
|
||||
v -0.499997 0.499997 -0.00003
|
||||
v -0.499997 0.415735 -0.277785
|
||||
v -0.499997 0.46194 -0.191342
|
||||
v -0.499997 0.490393 -0.097545
|
||||
v -0.5 -0.5 -0.5
|
||||
v -0.499997 -0.499997 0.499997
|
||||
v 0 0.499998 0
|
||||
v -0.499998 0.000014 -0.499999
|
||||
v -0.499997 0.353553 -0.353554
|
||||
v -0.499998 0.097545 -0.490393
|
||||
v -0.499997 0.277785 -0.415735
|
||||
v -0.499998 0.191342 -0.46194
|
||||
v 0.499997 0 -0.499996
|
||||
v 0.5 -0.5 -0.5
|
||||
v 0.499997 -0.499997 0.499997
|
||||
v -0.499997 -0.499997 0.499997
|
||||
v -0.499997 0.499997 0.499997
|
||||
v -0.499997 0.499997 -0.00003
|
||||
v -0.499997 0.415735 -0.277785
|
||||
v -0.499997 0.46194 -0.191342
|
||||
v -0.499997 0.490393 -0.097545
|
||||
v -0.5 -0.5 -0.5
|
||||
v -0.499998 0.000014 -0.499999
|
||||
v -0.499997 0.353553 -0.353554
|
||||
v -0.499998 0.097545 -0.490393
|
||||
v -0.499997 0.277785 -0.415735
|
||||
v -0.499998 0.191342 -0.46194
|
||||
v -0.499998 -0.033351 0.033348
|
||||
v -0.5 -0.5 -0.5
|
||||
v 0.5 -0.5 -0.5
|
||||
v 0.499997 -0.499997 0.499997
|
||||
v 0.415732 0.277783 0.499997
|
||||
v 0.461936 0.19134 0.499997
|
||||
v 0.490389 0.097544 0.499997
|
||||
v 0.353551 0.353551 0.499997
|
||||
v 0.499996 0 0.499997
|
||||
v 0.277783 0.415732 0.499997
|
||||
v 0.19134 0.461936 0.499997
|
||||
v -0.499997 -0.499997 0.499997
|
||||
v 0.097544 0.490389 0.499997
|
||||
v 0 0.499996 0.499997
|
||||
v -0.499997 0.499997 0.499997
|
||||
v -0.033351 -0.033351 0.499997
|
||||
v 0.499997 -0.499997 0.499997
|
||||
vn 0 0 1
|
||||
vn 0 -1 0
|
||||
vn -1 0 0
|
||||
vn 0 0.8315 -0.5556
|
||||
vn 0 0.8061 -0.5917
|
||||
vn 0 0.6786 -0.7345
|
||||
vn 0 0.7071 -0.7071
|
||||
vn 0.8315 0.5556 0
|
||||
vn 0.8493 0.528 0
|
||||
vn 0.7345 0.6786 0
|
||||
vn 0.7071 0.7071 0
|
||||
vn 0 0.1951 -0.9808
|
||||
vn 0 0.1827 -0.9832
|
||||
vn 0 0.0475 -0.9989
|
||||
vn 0 0.0491 -0.9988
|
||||
vn 0.2427 0.9701 0
|
||||
vn 0.098 0.9952 0
|
||||
vn 0.1951 0.9808 0
|
||||
vn 0 0.9808 -0.1951
|
||||
vn 0 0.9952 -0.098
|
||||
vn 0 0.9701 -0.2426
|
||||
vn 0 0.528 -0.8493
|
||||
vn 0 0.5556 -0.8315
|
||||
vn 0.9832 0.1826 0
|
||||
vn 0.9327 0.3605 0
|
||||
vn 0.9239 0.3827 0
|
||||
vn 0.9808 0.1951 0
|
||||
vn 0.5917 0.8061 0
|
||||
vn 0.4258 0.9048 0
|
||||
vn 0.3827 0.9239 0
|
||||
vn 0.5556 0.8315 0
|
||||
vn 0 0.9048 -0.4258
|
||||
vn 0 0.9239 -0.3827
|
||||
vn 0 0.3605 -0.9327
|
||||
vn 0 0.3827 -0.9239
|
||||
vn 0.9988 0.0491 0
|
||||
vn 0.9989 0.0475 0
|
||||
vn 0 0 -1
|
||||
vn 0 1 0
|
||||
vn 1 0 0
|
||||
vt 1 0.5001
|
||||
vt 0.990395 0.597625
|
||||
vt 0.466756 0.466756
|
||||
vt 1 0.0002
|
||||
vt 0.000201 0.000201
|
||||
vt 0.597626 0.990394
|
||||
vt 0.500101 1
|
||||
vt 0.691404 0.961947
|
||||
vt 0.77783 0.915751
|
||||
vt 0.853583 0.853583
|
||||
vt 0.915752 0.777829
|
||||
vt 0.000201 1
|
||||
vt 0.961948 0.691403
|
||||
vt 0 0
|
||||
vt 1 0
|
||||
vt 1 1
|
||||
vt 0 1
|
||||
vt 0.533443 0.466757
|
||||
vt 0.000202 0.500115
|
||||
vt 0.402575 0.990397
|
||||
vt 0.308797 0.961949
|
||||
vt 0.222371 0.915753
|
||||
vt 0.146617 0.853584
|
||||
vt 0.084449 0.777831
|
||||
vt 0.038253 0.691405
|
||||
vt 0.009806 0.597626
|
||||
vt 0.999996 0.125448
|
||||
vt 0.222353 0.125462
|
||||
vt 0.146597 0.000612
|
||||
vt 0.999995 0.000594
|
||||
vt 0.000178 0.874582
|
||||
vt 0.915751 0.874577
|
||||
vt 0.85358 0.999436
|
||||
vt 0.000178 0.999439
|
||||
vt 0.999808 0.625427
|
||||
vt 0.009599 0.625446
|
||||
vt -0.000005 0.500594
|
||||
vt 0.999807 0.500594
|
||||
vt 0.597441 0.374574
|
||||
vt 0.499912 0.499435
|
||||
vt 0 0.499434
|
||||
vt 0 0.374576
|
||||
vt 0.999999 0.375154
|
||||
vt 1 0.499969
|
||||
vt 0.500093 0.500015
|
||||
vt 0.402562 0.375164
|
||||
vt 0.999812 0.999983
|
||||
vt 0.146415 1
|
||||
vt 0.084244 0.875149
|
||||
vt 0.999811 0.875131
|
||||
vt 0.990396 0.624861
|
||||
vt 0.961947 0.749719
|
||||
vt 0.000178 0.749724
|
||||
vt 0.000178 0.624866
|
||||
vt 0.777649 0.124857
|
||||
vt 0.691221 0.249715
|
||||
vt 0.000001 0.249719
|
||||
vt 0.000001 0.124861
|
||||
vt 0.308782 0.250314
|
||||
vt 0.999998 0.250301
|
||||
vt 0.853403 0
|
||||
vt 0.038047 0.750298
|
||||
vt 0.999809 0.75028
|
||||
vt 0.000177 0.500008
|
||||
vt 0 0.5
|
||||
vt 0.5 1
|
||||
vt 0.5 0.5
|
||||
s 1
|
||||
f 53/1/1 51/2/1 60/3/1
|
||||
f 61/4/1 53/1/1 60/3/1 56/5/1
|
||||
f 57/6/1 58/7/1 60/3/1
|
||||
f 55/8/1 57/6/1 60/3/1
|
||||
f 54/9/1 55/8/1 60/3/1
|
||||
f 52/10/1 54/9/1 60/3/1
|
||||
f 49/11/1 52/10/1 60/3/1
|
||||
f 59/12/1 56/5/1 60/3/1 58/7/1
|
||||
f 50/13/1 49/11/1 60/3/1
|
||||
f 48/14/2 23/15/2 46/16/2 47/17/2
|
||||
f 39/5/3 33/4/3 45/18/3 40/19/3
|
||||
f 35/7/3 38/20/3 45/18/3
|
||||
f 38/20/3 37/21/3 45/18/3
|
||||
f 37/21/3 36/22/3 45/18/3
|
||||
f 36/22/3 41/23/3 45/18/3
|
||||
f 41/23/3 43/24/3 45/18/3
|
||||
f 43/24/3 44/25/3 45/18/3
|
||||
f 44/25/3 42/26/3 45/18/3
|
||||
f 42/26/3 40/19/3 45/18/3
|
||||
f 34/16/3 35/7/3 45/18/3 33/4/3
|
||||
f 51/2/1 50/13/1 60/3/1
|
||||
f 19/27/4 11/28/5 7/29/6 26/30/7
|
||||
f 1/31/8 3/32/9 7/33/10 6/34/11
|
||||
f 27/35/12 10/36/13 30/37/14 25/38/15
|
||||
f 15/39/16 24/40/17 16/41/17 14/42/18
|
||||
f 21/43/19 18/44/20 24/45/20 15/46/21
|
||||
f 26/47/7 7/48/6 3/49/22 28/50/23
|
||||
f 10/51/24 4/52/25 2/53/26 5/54/27
|
||||
f 11/55/28 13/56/29 12/57/30 9/58/31
|
||||
f 21/43/19 15/46/21 13/59/32 20/60/33
|
||||
f 20/60/33 13/59/32 11/28/5 19/27/4
|
||||
f 9/58/31 6/14/11 7/61/10 11/55/28
|
||||
f 4/52/25 3/32/9 1/31/8 2/53/26
|
||||
f 3/49/22 4/62/34 29/63/35 28/50/23
|
||||
f 10/51/24 5/54/27 8/64/36 30/44/37
|
||||
f 29/63/35 4/62/34 10/36/13 27/35/12
|
||||
f 25/44/15 30/65/14 31/14/38 22/15/38
|
||||
f 16/66/39 24/67/39 18/44/39 17/16/39
|
||||
f 8/65/36 32/14/40 31/15/40 30/44/37
|
||||
f 12/57/30 13/56/29 15/39/16 14/42/18
|
63
mods/technic_plus_beta/technic_cnc/pipeworks.lua
Normal file
|
@ -0,0 +1,63 @@
|
|||
|
||||
local S = minetest.get_translator("pipeworks")
|
||||
local tube_entry = "^pipeworks_tube_connection_metallic.png"
|
||||
local button_base = "image_button[%0.1f,%0.1f;1,0.6"
|
||||
local button_label = "label[%0.1f,%0.1f;" .. S("Allow splitting incoming stacks from tubes") .. "]"
|
||||
local cycling_buttons = { pipeworks.button_off, pipeworks.button_on }
|
||||
local fs_helpers = pipeworks.fs_helpers
|
||||
local pipeworks_on_receive_fields = pipeworks.fs_helpers.on_receive_fields
|
||||
|
||||
local function new_tube()
|
||||
return {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:add_item("src", stack)
|
||||
end,
|
||||
can_insert = technic_cnc.use_technic and technic.default_can_insert or function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:room_for_item("src", stack)
|
||||
end,
|
||||
connect_sides = {left=1, right=1, back=1, bottom=1},
|
||||
input_inventory = {"dst"},
|
||||
}
|
||||
end
|
||||
|
||||
local function tube_entry_overlay(tiles)
|
||||
assert(type(tiles) == "table" and #tiles == 6, "tube_entry_overlay requires table with 6 elements")
|
||||
return {
|
||||
tiles[1], tiles[2] .. tube_entry, tiles[3] .. tube_entry,
|
||||
tiles[4] .. tube_entry, tiles[5] .. tube_entry, tiles[6],
|
||||
}
|
||||
end
|
||||
|
||||
local function cycling_button(meta, name, x, y)
|
||||
local form_buttons = fs_helpers.cycling_button(meta, button_base:format(x, y), name, cycling_buttons)
|
||||
return form_buttons .. button_label:format(x + 1.2, y + 0.31)
|
||||
end
|
||||
|
||||
-- Pipeworks does not provide API to selectively silence protection messages.
|
||||
-- This wrapper handles pipeworks cycling buttons without sending unnecessary protection messages.
|
||||
local function on_receive_fields(pos, meta, fields, sender, update_formspec)
|
||||
-- https://github.com/mt-mods/pipeworks/-/blob/master/common.lua#L115
|
||||
for field,_ in pairs(fields) do
|
||||
if field:match("^fs_helpers_cycling:") then
|
||||
if pipeworks.may_configure(pos, sender) then
|
||||
pipeworks_on_receive_fields(pos, fields)
|
||||
update_formspec(meta)
|
||||
end
|
||||
-- Handled and protection message sent if necessary
|
||||
return true
|
||||
end
|
||||
end
|
||||
-- Not handled, caller may continue processing
|
||||
return false
|
||||
end
|
||||
|
||||
return {
|
||||
new_tube = new_tube,
|
||||
cycling_button = cycling_button,
|
||||
on_receive_fields = on_receive_fields,
|
||||
tube_entry_overlay = tube_entry_overlay,
|
||||
}
|
303
mods/technic_plus_beta/technic_cnc/programs.lua
Normal file
|
@ -0,0 +1,303 @@
|
|||
local S = technic_cnc.getter
|
||||
|
||||
-- Define slope boxes for the various nodes
|
||||
-------------------------------------------
|
||||
technic_cnc.programs = {
|
||||
{ suffix = "technic_cnc_stick",
|
||||
model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||||
desc = S("Stick")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_end_double",
|
||||
model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
|
||||
desc = S("Element End Double")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_cross_double",
|
||||
model = {
|
||||
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
|
||||
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
|
||||
desc = S("Element Cross Double")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_t_double",
|
||||
model = {
|
||||
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||||
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3}},
|
||||
desc = S("Element T Double")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_edge_double",
|
||||
model = {
|
||||
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
|
||||
desc = S("Element Edge Double")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_straight_double",
|
||||
model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||||
desc = S("Element Straight Double")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_end",
|
||||
model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
|
||||
desc = S("Element End")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_cross",
|
||||
model = {
|
||||
{0.3, -0.5, -0.3, 0.5, 0, 0.3},
|
||||
{-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
|
||||
desc = S("Element Cross")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_t",
|
||||
model = {
|
||||
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||||
{0.3, -0.5, -0.3, 0.5, 0, 0.3}},
|
||||
desc = S("Element T")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_edge",
|
||||
model = {
|
||||
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||||
{-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
|
||||
desc = S("Element Edge")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_element_straight",
|
||||
model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||||
desc = S("Element Straight")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_oblate_spheroid",
|
||||
model = "technic_cnc_oblate_spheroid.obj",
|
||||
desc = S("Oblate spheroid"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -6/16, 4/16, -6/16, 6/16, 8/16, 6/16 },
|
||||
{ -8/16, -4/16, -8/16, 8/16, 4/16, 8/16 },
|
||||
{ -6/16, -8/16, -6/16, 6/16, -4/16, 6/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_sphere",
|
||||
model = "technic_cnc_sphere.obj",
|
||||
desc = S("Sphere")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_cylinder_horizontal",
|
||||
model = "technic_cnc_cylinder_horizontal.obj",
|
||||
desc = S("Horizontal Cylinder")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_cylinder",
|
||||
model = "technic_cnc_cylinder.obj",
|
||||
desc = S("Cylinder")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_twocurvededge",
|
||||
model = "technic_cnc_two_curved_edge.obj",
|
||||
desc = S("Two Curved Edge/Corner Block")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_onecurvededge",
|
||||
model = "technic_cnc_one_curved_edge.obj",
|
||||
desc = S("One Curved Edge Block")
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_spike",
|
||||
model = "technic_cnc_pyramid_spike.obj",
|
||||
desc = S("Spike"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, 4/16, -2/16, 2/16, 8/16, 2/16 },
|
||||
{ -4/16, 0, -4/16, 4/16, 4/16, 4/16 },
|
||||
{ -6/16, -4/16, -6/16, 6/16, 0, 6/16 },
|
||||
{ -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_pyramid",
|
||||
model = "technic_cnc_pyramid.obj",
|
||||
desc = S("Pyramid"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -2/16, 2/16, 0, 2/16 },
|
||||
{ -4/16, -4/16, -4/16, 4/16, -2/16, 4/16 },
|
||||
{ -6/16, -6/16, -6/16, 6/16, -4/16, 6/16 },
|
||||
{ -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_inner_edge_upsdown",
|
||||
model = "technic_cnc_innercorner_upsdown.obj",
|
||||
desc = S("Slope Upside Down Inner Edge/Corner"),
|
||||
sbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
|
||||
},
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ 0.25, -0.25, -0.5, 0.5, -0.5, 0.5 },
|
||||
{ -0.5, -0.25, 0.25, 0.5, -0.5, 0.5 },
|
||||
{ 0, 0, -0.5, 0.5, -0.25, 0.5 },
|
||||
{ -0.5, 0, 0, 0.5, -0.25, 0.5 },
|
||||
{ -0.25, 0.25, -0.5, 0.5, 0, -0.25 },
|
||||
{ -0.5, 0.25, -0.25, 0.5, 0, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 0.25, 0.5 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_edge_upsdown",
|
||||
model = "technic_cnc_outercorner_upsdown.obj",
|
||||
desc = S("Slope Upside Down Outer Edge/Corner"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
|
||||
{ -4/16, 4/16, -4/16, 8/16, 0, 8/16 },
|
||||
{ 0, 0, 0, 8/16, -4/16, 8/16 },
|
||||
{ 4/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_inner_edge",
|
||||
model = "technic_cnc_innercorner.obj",
|
||||
desc = S("Slope Inner Edge/Corner"),
|
||||
sbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 }
|
||||
},
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 },
|
||||
{ -0.5, -0.25, -0.25, 0.5, 0, 0.5 },
|
||||
{ -0.25, -0.25, -0.5, 0.5, 0, -0.25 },
|
||||
{ -0.5, 0, 0, 0.5, 0.25, 0.5 },
|
||||
{ 0, 0, -0.5, 0.5, 0.25, 0.5 },
|
||||
{ -0.5, 0.25, 0.25, 0.5, 0.5, 0.5 },
|
||||
{ 0.25, 0.25, -0.5, 0.5, 0.5, 0.5 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_edge",
|
||||
model = "technic_cnc_outercorner.obj",
|
||||
desc = S("Slope Outer Edge/Corner"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ 4/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
|
||||
{ 0, 0, 0, 8/16, 4/16, 8/16 },
|
||||
{ -4/16, -4/16, -4/16, 8/16, 0, 8/16 },
|
||||
{ -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_upsdown",
|
||||
model = "technic_cnc_slope_upsdown.obj",
|
||||
desc = S("Slope Upside Down"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 },
|
||||
{ -8/16, 4/16, -4/16, 8/16, 0, 8/16 },
|
||||
{ -8/16, 0, 0, 8/16, -4/16, 8/16 },
|
||||
{ -8/16, -4/16, 4/16, 8/16, -8/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope_lying",
|
||||
model = "technic_cnc_slope_horizontal.obj",
|
||||
desc = S("Slope Lying"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ 4/16, -8/16, 4/16, 8/16, 8/16, 8/16 },
|
||||
{ 0, -8/16, 0, 4/16, 8/16, 8/16 },
|
||||
{ -4/16, -8/16, -4/16, 0, 8/16, 8/16 },
|
||||
{ -8/16, -8/16, -8/16, -4/16, 8/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{ suffix = "technic_cnc_slope",
|
||||
model = "technic_cnc_slope.obj",
|
||||
desc = S("Slope"),
|
||||
cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -8/16, 4/16, 4/16, 8/16, 8/16, 8/16 },
|
||||
{ -8/16, 0, 0, 8/16, 4/16, 8/16 },
|
||||
{ -8/16, -4/16, -4/16, 8/16, 0, 8/16 },
|
||||
{ -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 }
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
-- Allow disabling certain programs for some node. Default is allowing all types for all nodes
|
||||
technic_cnc.programs_disable = {
|
||||
-- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
|
||||
["default:dirt"] = {
|
||||
"technic_cnc_oblate_spheroid",
|
||||
"technic_cnc_slope_upsdown",
|
||||
"technic_cnc_edge", "technic_cnc_inner_edge",
|
||||
"technic_cnc_slope_edge_upsdown",
|
||||
"technic_cnc_slope_inner_edge_upsdown",
|
||||
"technic_cnc_stick",
|
||||
"technic_cnc_cylinder_horizontal"
|
||||
}
|
||||
}
|
||||
|
||||
-- TODO: These should be collected automatically through program registration function
|
||||
-- Also technic_cnc.programs could be parsed and product lists created based on programs.
|
||||
technic_cnc.onesize_products = {
|
||||
cylinder = 2,
|
||||
cylinder_horizontal = 2,
|
||||
oblate_spheroid = 1,
|
||||
onecurvededge = 1,
|
||||
pyramid = 2,
|
||||
slope = 2,
|
||||
slope_edge = 1,
|
||||
slope_edge_upsdown = 1,
|
||||
slope_inner_edge = 1,
|
||||
slope_inner_edge_upsdown = 1,
|
||||
slope_lying = 2,
|
||||
slope_upsdown = 2,
|
||||
sphere = 1,
|
||||
spike = 1,
|
||||
stick = 8,
|
||||
twocurvededge = 1,
|
||||
}
|
||||
|
||||
technic_cnc.twosize_products = {
|
||||
element_straight = 2,
|
||||
element_end = 2,
|
||||
element_cross = 1,
|
||||
element_t = 1,
|
||||
element_edge = 2,
|
||||
}
|
||||
|
||||
-- Lookup tables for all available programs, main use is to verify that requested product is available
|
||||
technic_cnc.products = {}
|
||||
for key, size in pairs(technic_cnc.onesize_products) do technic_cnc.products[key] = size end
|
||||
for key, size in pairs(technic_cnc.twosize_products) do technic_cnc.products[key] = size end
|
9
mods/technic_plus_beta/technic_cnc/settingtypes.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
# Used to disable technic features
|
||||
technic_cnc_use_technic (Use technic features) bool true
|
||||
|
||||
# Used to disable digilines features
|
||||
technic_cnc_use_digilines (Use digilines features) bool true
|
||||
|
||||
# Used to disable pipeworks features
|
||||
technic_cnc_use_pipeworks (Use pipeworks features) bool true
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 3 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
BIN
mods/technic_plus_beta/technic_cnc/textures/technic_cnc_full.png
Normal file
After Width: | Height: | Size: 389 B |
After Width: | Height: | Size: 1.2 KiB |
BIN
mods/technic_plus_beta/technic_cnc/textures/technic_cnc_half.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 3.6 KiB |
BIN
mods/technic_plus_beta/technic_cnc/textures/technic_cnc_side.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 3.7 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 1.9 KiB |
BIN
mods/technic_plus_beta/technic_cnc/textures/technic_cnc_top.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 5.9 KiB |