Mods in den Spieleordner reingeschoben. So richtig tief.

This commit is contained in:
N-Nachtigal 2025-05-08 22:41:25 +02:00
parent b4b6c08f4f
commit f7bc25a670
1674 changed files with 56056 additions and 530 deletions

155
mods/leads/CHANGELOG.md Normal file
View file

@ -0,0 +1,155 @@
Leads Changelog
===============
0.3.2 (2024-01-18)
------------------
### Additions
- Added German translation (contributed by Kyoushi).
### Changes
- Increased default pull force.
### Fixes
- Leads can no longer be attached to fence gates (reported by Nathan Salapat).
- Lead knots now break when the post is removed (reported by Nathan Salapat).
0.3.1 (2023-12-27)
------------------
### Fixes
- Fixed a bug causing MineClone to crash whenever an enderman places a block (reported by Kyoushi).
0.3.0 (2023-12-21)
------------------
### Additions
- Added slack models, which can be enabled or disabled in the settings.
- Added a setting to change lead strength.
- Added a Symmetrical physics setting.
- You can now hold Sneak to attach a new lead to a fence instead of tying the lead you're holding.
### Changes
- Object mass is now taken into account during physics calculations.
- Right-clicking a leashable entity while holding a knotted lead now attaches the entity to the lead instead of making a new lead (suggested by erlehmann).
- Tweaked lead physics.
- Leads now have an overextension timer instead of breaking immediately.
- Lead entities now preserve the metadata of the lead item, not just the name.
- Changed the scale of lead models.
- Improved performance by eliminating unnecessary property updates for lead entities.
- Improved protection and ownership logic.
- Protection now applies to all objects, not just knots.
- Reduced the impact of lag by limiting dtime in physics calculations.
- Lead length is now limited to avoid generating extremely large textures (suggested by my computer crashing).
- Improved performance when finding leads attached to an object.
- Protection no longer applies to players with the `protection_bypass` privilege.
### Fixes
- Leads can no longer be knotted to fence rails (reported by erlehmann).
- You can now break a lead or knot while holding a lead item (reported by erlehmann).
- Fixed lead items preventing nodes' right-click handlers.
- Breaking a lead in creative mode no longer gives you a lead item if you already have one.
- Aux1+clicking an entity no longer requires the player to be holding a lead item.
- Fixed a bug preventing leads from working on players.
### API Changes
- Custom lead items can now specify the texture of the lead entity with `_leads_texture`.
- Custom lead items can now override the lead's strength with `_leads_strength`.
- Entities can now customise behaviour when punched or right-clicked while holding a lead item with `_leads_on_interact`.
0.2.2 (2023-11-27)
------------------
### Fixes
- Fixed a bug preventing custom placement behaviour when placing nodes against fences (reported by laireia).
- Fixed a crash when another mod registers a node with a forced name after Leads is loaded.
0.2.1 (2023-10-08)
------------------
### Additions
- Added Item drop mode setting.
### Fixes
- Fixed missing `settingtypes.txt`.
- Fixed lead items not dropping when broken on MineClone.
- Fixed lead items being consumed when clicking on a non-knottable node.
0.2.0 (2023-07-26)
------------------
### Additions
- Added item documentation.
- Added Asuna to the list of supported games.
- Added a setting to prevent players from leashing mobs owned by other players (suggested by fluxionary).
- Added a setting to prevent players from leashing unowned mobs.
- Added settings to allow or disallow leashing each object type (suggested by fluxionary).
### Changes
- Added Object UUIDs support. Objects are now identified by UUID where possible.|
- The 5.7+ selection box is now enabled by default.
- Cropped the in-game screenshot to 3:2.
- Tweaked the texture mapping on lead objects to improve shading.
- Leads can now be tied to bamboo from Bamboo Forest.
- Adding and removing knots now respects protection (suggested by fluxionary). This can be disabled in the settings.
- The Allow leashing any entity setting has been renamed to Allow leashing any object, as it now includes players.
0.1.0 (2023-03-26)
------------------
### Additions
- Added more chat messages when failing to use a lead.
- Added sound effects (suggested by Wuzzy).
- Added a list of supported games to mod.conf.
- Added Hades Revisited support.
- Added Exile support.
### Changes
- Chat messages are now disabled by default (suggested by Wuzzy).
- Leads no longer break instantly when placed in an overly stretched position.
- Players are now blocked from interacting with the world for a moment after breaking a lead or knot, to prevent accidentally breaking the node behind it.
- Leads can now be tied to mechanical railway signals.
### Fixes
- Fixed smoke puffs when removing a lead or knot in multiplayer (reported by Wuzzy).
- Fixed lead items being consumed even if the lead failed to spawn.
- Fixed leads jumping to another knot when untied.
- Added a workaround for a bug in Lord of the Test preventing fences from being supported.
0.0.0 (2023-03-20)
------------------
- Initial release.

110
mods/leads/LICENCE.md Normal file
View file

@ -0,0 +1,110 @@
Leads Licence
=============
Licence of Code
---------------
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Licence of Assets
-----------------
- `leads_lead_inv.png`
- `leads_lead_knot.png`
- From [Pixel Perfection Legacy] by [XSSheep], [freejusticehere], and [Nova_Wostra],
licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Licence][CC BY-SA 4.0].
- `leads_lead.png`
- Based on `lead_knot.png` from [Pixel Perfection Legacy] by [XSSheep], [freejusticehere], and [Nova_Wostra],
licensed under the [Creative Commons Attribution-ShareAlike 4.0 International Licence][CC BY-SA 4.0].
- Modifications:
- Converted from knot to lead.
- `leads_attach.ogg`
- `leads_remove.ogg`
- Based on [leather rustle 3] by [Samulis],
licensed under the [Creative Commons Attribution 3.0 Unported Licence][CC BY 3.0].
- Modifications:
- Slowed down.
- Cropped.
- Applied envelope.
- `leads_stretch.1.ogg`
- `leads_stretch.2.ogg`
- Based on [Leather Creak / Stretching] by [IENBA],
dedicated to the public domain via [Creative Commons Zero][CC0 1.0].
- Modifications:
- Cropped.
- `leads_break.ogg`
- Based on [Twigs snapping] by [giddster],
dedicated to the public domain via [Creative Commons Zero][CC0 1.0].
- Based on [Wooden Twangs--2.flac] by [D.jones],
dedicated to the public domain via [Creative Commons Zero][CC0 1.0].
- Modifications:
- Cropped.
- Combined.
- Applied envelope.
- Changed speed.
- `leads_lead.bbmodel` *
- `leads_lead.obj`
- `leads_lead_knot.bbmodel` *
- `leads_lead_knot.obj`
- `leads_lead_slack.bbmodel` *
- `leads_lead_slack1.obj`
- `leads_lead_slack2.obj`
- `leads_lead_slack3.obj`
- `leads_lead_slack4.obj`
- `leads_lead_slack5.obj`
- `leads_lead_slack6.obj`
- `leads_lead_slack7.obj`
- `leads_lead_slack8.obj`
- `leads_lead_slack9.obj`
- `leads_lead_slack10.obj`
- `leads_lead_slack11.obj`
- `leads_lead_slack12.obj`
- Created by [Silver Sandstone],
dedicated to the public domain via [Creative Commons Zero][CC0 1.0].
(* Excluding embedded textures, which are listed above.)
[Pixel Perfection]: https://www.planetminecraft.com/texture-pack/131pixel-perfection/ "Pixel Perfection on Planet Minecraft"
[Pixel Perfection Legacy]: https://www.planetminecraft.com/texture-pack/pixel-perfection-chorus-edit/ "Pixel Perfection Legacy on Planet Minecraft"
[leather rustle 3]: https://freesound.org/people/Samulis/sounds/209397/ "leather rustle 3 on Freesound"
[Leather Creak / Stretching]: https://freesound.org/people/IENBA/sounds/536187/ "Leather Creak / Stretching on Freesound"
[Twigs snapping]: https://freesound.org/people/giddster/sounds/437360/ "Twigs snapping on Freesound"
[Wooden Twangs--2.flac]: https://freesound.org/people/D.jones/sounds/521938/ "Wooden Twangs--2.flac on Freesound"
[Silver Sandstone]: https://content.minetest.net/users/SilverSandstone/ "Silver Sandstone on Minetest ContentDB"
[XSSheep]: https://www.planetminecraft.com/member/xssheep/ "XSSheep on Planet Minecraft"
[freejusticehere]: https://www.minecraftforum.net/members/freejusticehere "freejusticehere on Minecraft Forum"
[Nova_Wostra]: https://www.minecraftforum.net/members/Nova_Wostra "Nova_Wostra on Minecraft Forum"
[Samulis]: https://freesound.org/people/Samulis/ "Samulis on Freesound"
[IENBA]: https://freesound.org/people/IENBA/ "IENBA on Freesound"
[giddster]: https://freesound.org/people/giddster/ "giddster on Freesound"
[D.jones]: https://freesound.org/people/D.jones/ "D.jones on Freesound"
[CC BY 3.0]: https://creativecommons.org/licenses/by/3.0/ "Creative Commons Attribution 3.0 Unported"
[CC BY-SA 4.0]: https://creativecommons.org/licenses/by-sa/4.0/ "Creative Commons Attribution-ShareAlike 4.0 International"
[CC0 1.0]: https://creativecommons.org/publicdomain/zero/1.0/ "Creative Commons Zero 1.0"

47
mods/leads/README.md Normal file
View file

@ -0,0 +1,47 @@
Leads
=====
[ContentDB](https://content.minetest.net/packages/SilverSandstone/leads/) ·
[Codeberg](https://codeberg.org/SilverSandstone/leads)
This Minetest mod adds leads which can be used for moving animals or
for tethering animals to fence posts.
Leads can also be attached between two fence posts for decoration.
Consider installing [Object UUIDs] to prevent leads from disconnecting from mobs when unloaded.
Instructions
------------
Right-click on an animal with a lead to attach it.
When you're finished, punch the lead to release the animal.
You can tether a leashed animal by right-clicking a fence post.
Punch the knot to take the lead back, or shift-punch to break it.
By default, leads can be used on animals, monsters, NPCs, players, and boats.
You can customise this in the settings.
Compatibility
-------------
This mod supports Mobs Redo, Creatura, MineClone2, Mineclonia, Repixture, and Exile.
Other games and mob frameworks may also work.
Minetest 5.5.0+ server required, Minetest 5.7.0+ client recommended.
If you want to support older clients, disable Long selection box in the settings.
Licence
-------
Leads by Silver Sandstone is licensed under the MIT licence, with assets by
various authors under CC BY-SA 4.0 or compatible.
See `LICENCE.md` for more information.
[Object UUIDs]: https://content.minetest.net/packages/SilverSandstone/objectuuids/ "Object UUIDs on Minetest ContentDB"

453
mods/leads/api.lua Normal file
View file

@ -0,0 +1,453 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Public API functions.
-- @module api
local S = leads.S;
--- An enumerator of object types.
leads.ObjectType =
{
PLAYER = 'player';
ANIMAL = 'animal';
MONSTER = 'monster';
NPC = 'npc';
VEHICLE = 'vehicle';
OTHER = 'other';
};
--- Overrides the leashable property of entities.
leads.custom_leashable_entities =
{
['boats:boat'] = true;
};
--- Overrides the object type of entities.
leads.custom_object_types =
{
['boats:boat'] = leads.ObjectType.VEHICLE;
};
--- Overrides the knottable property of nodes.
leads.custom_knottable_nodes =
{
['ferns:fern_trunk'] = true;
['ethereal:bamboo'] = true;
['bambooforest:bamboo'] = true;
['advtrains:signal_off'] = true;
['advtrains:signal_on'] = true;
['advtrains:retrosignal_off'] = true;
['advtrains:retrosignal_on'] = true;
['nodes_nature:mahal'] = true;
['hades_furniture:binding_rusty_bars'] = true;
};
--- A table of sound effects for lead events.
leads.sounds =
{
attach = {name = 'leads_attach', gain = 0.5, pitch = 0.75};
remove = {name = 'leads_remove', gain = 0.5, pitch = 0.75};
stretch = {name = 'leads_stretch', gain = 0.25, pitch = 1.25, duration = 2.5};
snap = {name = 'leads_break', gain = 0.75};
};
local weak_key_mt = {__mode = 'k'};
local leads_by_connector_mt =
{
__mode = 'k';
__index = function(self, key)
local result = setmetatable({}, weak_key_mt);
self[key] = result;
return result;
end;
};
leads.leads_by_connector = setmetatable({}, leads_by_connector_mt);
--- Creates a lead between two objects.
-- @param leader [ObjectRef] The leader object.
-- @param follower [ObjectRef] The follower object.
-- @param item [string|ItemStack|nil] The lead item, if any.
-- @return [ObjectRef|nil] The lead object, or nil on failure.
-- @return [string|nil] A string describing the error, or nil on success.
function leads.connect_objects(leader, follower, item)
if leads.util.is_same_object(leader, follower) then
return nil, S'You cannot leash something to itself.';
end;
item = ItemStack(item);
local item_def = item:get_definition();
local l_pos = leader:get_pos();
local f_pos = follower:get_pos();
if leads.settings.debug then
minetest.log(debug.traceback(('[Leads] Connecting L:%s to F:%s.'):format(leads.util.describe_object(leader), leads.util.describe_object(follower))));
end;
local centre = (l_pos + f_pos) / 2;
local object = minetest.add_entity(centre, 'leads:lead');
if not object then
return nil, S'Failed to create lead.';
end;
local entity = object:get_luaentity();
entity.leader = leader;
entity.follower = follower;
entity:set_item(item);
entity:update_visuals();
entity:update_objref_ids();
entity:notify_connector_added(leader, true);
entity:notify_connector_added(follower, false);
minetest.sound_play(leads.sounds.attach, {pos = centre}, true);
return object, nil;
end;
--- Checks if the object can be attached to a lead.
-- @param object [ObjectRef] The object to check.
-- @return [boolean] true if the object can be attached to a lead.
function leads.is_leashable(object)
-- All entities allowed in settings:
if leads.settings.allow_leash_all then
return true;
end;
-- Check settings:
local obj_type = leads.util.get_object_type(object);
if not leads.settings['allow_leash_' .. obj_type] then
return false;
end;
-- Get entity:
local entity = object:get_luaentity();
if not entity then
return obj_type == leads.ObjectType.PLAYER;
end;
-- Custom leashable:
local leashable = entity._leads_leashable or leads.custom_leashable_entities[entity.name];
if leashable ~= nil then
return leashable;
end;
-- Mobs:
return leads.util.is_mob(object);
end;
--- Checks if the node can have lead knots tied to it.
-- @param name [string] The name of a node.
-- @return [boolean] true if the node is knottable.
function leads.is_knottable(name)
local def = minetest.registered_nodes[name];
if not def then
return false;
end;
-- Custom knottable:
local knottable = def._leads_knottable or leads.custom_knottable_nodes[name];
if knottable ~= nil then
return knottable;
end;
-- Fence:
if def.drawtype == 'fencelike' or (minetest.get_item_group(name, 'fence') > 0 and not (name:match('.*:fence_rail_.*') or name:match('.*:gate_.*'))) then
return true;
end;
-- Mese post:
if name:match('.*:mese_post_.*') then
return true;
end;
-- Lord of the Test fences:
-- (These aren't in group:fence due to a bug.)
if name:match('^lottblocks:fence_.*') then
return true;
end;
return false;
end;
--- Finds a lead connected to the specified leader.
-- If there are multiple matching leads, one is chosen arbitrarily.
-- @param leader [ObjectRef] The player or entity to find leads connected to.
-- @return [ObjectRef|nil] The lead, if any.
function leads.find_lead_by_leader(leader)
for lead in leads.find_connected_leads(leader, true, false) do
return lead;
end;
return nil;
end;
--- Finds leads connected to the specified object.
-- @param connector [ObjectRef] The player or entity to find leads connected to.
-- @param accept_leader [boolean] Find leads where the specified object is the leader.
-- @param accept_follower [boolean] Find leads where the specified object is the follower.
-- @return [function] An iterator of (lead: ObjectRef, is_leader: boolean).
function leads.find_connected_leads(connector, accept_leader, accept_follower)
local function _iter()
for lead in pairs(leads.leads_by_connector[connector]) do
local entity = lead:get_luaentity();
if accept_leader and entity.leader and leads.util.is_same_object(entity.leader, connector) then
coroutine.yield(lead, true);
elseif accept_follower and entity.follower and leads.util.is_same_object(entity.follower, connector) then
coroutine.yield(lead, false);
end;
end;
end;
return coroutine.wrap(_iter);
end;
--- Ties the leader's lead to a post.
-- @param leader [ObjectRef] The leader whose lead to tie.
-- @param pos [vector] Where to tie the knot.
-- @return [ObjectRef|nil] The knot object, or nil on failure.
function leads.knot(leader, pos)
pos = vector.round(pos);
-- Check protection:
if leads.settings.respect_protection and not minetest.check_player_privs(leader, 'protection_bypass') then
local name = leader and leader:get_player_name() or '';
if minetest.is_protected(pos, name) then
minetest.record_protection_violation(pos, name);
return nil;
end;
end;
-- Find a lead attached to the player:
local lead = leads.find_lead_by_leader(leader);
if not lead then
return nil;
end;
-- Create a knot:
local knot = leads.add_knot(pos);
if not knot then
return nil;
end;
-- Play sound:
minetest.sound_play(leads.sounds.attach, {pos = pos}, true);
-- Attach the lead to the knot:
lead:get_luaentity():set_leader(knot);
return knot;
end;
--- Adds a knot on a fence post, or finds an existing one.
-- @param pos [vector] Where to tie the knot.
-- @return [ObjectRef|nil] A new or existing knot, or nil if creating the knot failed.
function leads.add_knot(pos)
pos = pos:round();
for __, object in ipairs(minetest.get_objects_in_area(pos, pos)) do
local entity = object:get_luaentity();
if entity and entity.name == 'leads:knot' then
return object;
end;
end;
return minetest.add_entity(pos, 'leads:knot');
end;
--- Checks if the specified object is immobile (cannot be moved with a lead).
-- @param object [ObjectRef|nil] The object to check.
-- @return [boolean] true if the object is immobile.
function leads.is_immobile(object)
local entity = object and object:get_luaentity();
return entity and entity._leads_immobile or false;
end;
--- Checks if the player is allowed to leash the object, according to ownership and mod settings.
-- @param object [ObjectRef|nil] The object to check.
-- @param player [ObjectRef|string|nil] The player trying to leash the object.
-- @return [boolean] true if the player is allowed to leash the object.
function leads.allowed_to_leash(object, player)
local name = '';
if player == nil then
name = '';
elseif type(player) == 'string' then
name = player;
else
name = player:get_player_name() or '';
end;
-- Players with the 'protection_bypass' privilege can bypass protection and ownership:
if minetest.check_player_privs(name, 'protection_bypass') then
return true;
end;
-- Players can always leash their own animals:
local owner = leads.util.get_object_owner(object);
if owner == name then
return true;
end;
-- Players can't leash anything else in protected areas if protection support is enabled:
if leads.settings.respect_protection then
local pos = object:get_pos():round();
if minetest.is_protected(pos, name) then
minetest.record_protection_violation(pos, name);
return false;
end;
end;
-- Otherwise, use the appropriate setting:
if owner == '' then
return leads.settings.allow_leash_unowned or not leads.util.is_mob(object);
else
return leads.settings.allow_leash_owned_other;
end;
end;
--- Implements lead item use.
-- @param itemstack [ItemStack] The player's held item.
-- @param user [ObjectRef] The player using the lead.
-- @param pointed_thing [PointedThing] The pointed-thing.
-- @param is_punch [boolean] true if the interaction is a punch.
-- @return [ItemStack|nil] The leftover itemstack, or nil for no change.
function leads.on_lead_interact(itemstack, user, pointed_thing, is_punch)
local function _message(message)
if leads.settings.chat_messages then
minetest.chat_send_player(user:get_player_name(), message);
end;
end;
if pointed_thing.under then
-- Clicking on a node:
local pos = pointed_thing.under;
local node = minetest.get_node(pos);
if not leads.is_knottable(node.name) then
return nil;
end;
-- Check protection:
if leads.settings.respect_protection and not minetest.check_player_privs(user, 'protection_bypass') then
local name = user and user:get_player_name() or '';
if minetest.is_protected(pos, name) then
minetest.record_protection_violation(pos, name);
return nil;
end;
end;
-- Create new lead with knot:
local knot = leads.add_knot(pos);
if not knot then
return nil;
end;
leads.connect_objects(user, knot, itemstack:peek_item());
else
-- Clicking on an object:
local object = pointed_thing.ref;
if not object then
return nil;
end;
-- Try the entity's custom lead interact callback:
local entity = object:get_luaentity();
if entity and entity._leads_on_interact then
local override, result = entity:_leads_on_interact(itemstack, user, pointed_thing, is_punch);
if override then
return result;
end;
end;
-- The player right-clicked on a knot — try knotting their lead before making a new one:
if entity and entity.name == 'leads:knot' then
if leads.knot(user, object:get_pos()) then
return nil;
end;
end;
-- Make sure the object is leashable:
if not leads.is_leashable(object) then
_message(S'You cannot leash this.');
return nil;
end;
-- Make sure the player is allowed to leash the object:
if not leads.allowed_to_leash(object, user) then
_message(S'You do not own this.');
return nil;
end;
-- Create the lead:
local lead, message = leads.connect_objects(user, pointed_thing.ref, itemstack:peek_item());
if not lead then
_message(message);
return nil;
end;
end;
-- Consume the lead item:
if not (minetest.is_player(user) and minetest.is_creative_enabled(user:get_player_name())) then
itemstack:take_item(1);
end;
return itemstack;
end;
--- The `on_secondary_use`/`on_rightclick` handler for lead items.
-- @param itemstack [ItemStack] The player's held item.
-- @param user [ObjectRef] The player using the lead.
-- @param pointed_thing [PointedThing] The pointed-thing.
-- @return [ItemStack|nil] The leftover itemstack, or nil for no change.
function leads.on_lead_use(itemstack, user, pointed_thing)
local result = leads.on_lead_interact(itemstack, user, pointed_thing, false);
if (not result) and pointed_thing.under then
-- Fallback to the node's right-click handler:
local node = minetest.get_node(pointed_thing.under);
local def = minetest.registered_nodes[node.name] or {};
return def.on_rightclick and def.on_rightclick(pointed_thing.under, node, user, itemstack, pointed_thing) or nil;
end;
return result;
end;
--- The `on_use` handler for lead items.
-- @param itemstack [ItemStack] The player's held item.
-- @param user [ObjectRef] The player using the lead.
-- @param pointed_thing [PointedThing] The pointed-thing.
-- @return [ItemStack|nil] The leftover itemstack, or nil for no change.
function leads.on_lead_punch(itemstack, user, pointed_thing)
return leads.on_lead_interact(itemstack, user, pointed_thing, true);
end;

44
mods/leads/init.lua Normal file
View file

@ -0,0 +1,44 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Mod entry point.
-- @module init
leads = {};
leads.S = minetest.get_translator('leads');
leads.DEFAULT_LEAD_TEXTURE = 'leads_lead.png';
local modpath = minetest.get_modpath(minetest.get_current_modname());
dofile(modpath .. '/util.lua');
dofile(modpath .. '/api.lua');
dofile(modpath .. '/settings.lua');
dofile(modpath .. '/internal.lua');
dofile(modpath .. '/items.lua');
dofile(modpath .. '/leads.lua');
dofile(modpath .. '/knots.lua');

104
mods/leads/internal.lua Normal file
View file

@ -0,0 +1,104 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Internal functions and overrides.
-- @module internal
leads.interaction_blockers = {};
function leads._after_register_item(name, def)
local old_on_place = def.on_place;
local old_on_secondary_use = def.on_secondary_use;
local overrides = {};
function overrides.on_place(itemstack, placer, pointed_thing, ...)
-- Try knotting the placer's held lead:
if placer and not placer:get_player_control().sneak then
local node = pointed_thing.under and minetest.get_node_or_nil(pointed_thing.under);
if node and leads.is_knottable(node.name) then
if leads.knot(placer, pointed_thing.under) then
return nil;
end;
end;
end;
-- Fallback to the item's old on_place function:
return (old_on_place or minetest.item_place)(itemstack, placer, pointed_thing, ...);
end;
function overrides.on_secondary_use(itemstack, user, pointed_thing, ...)
local object = pointed_thing and pointed_thing.ref;
local keys = user:get_player_control();
-- If the player is holding a knotted lead, tie it to the object instead:
if user and object and leads.is_leashable(object) and not leads.is_immobile(object) and not keys.sneak then
for lead in leads.find_connected_leads(user, true, false) do
local lead_entity = lead:get_luaentity();
local follower = lead_entity:get_follower();
if follower and leads.is_immobile(follower) then
lead_entity:reverse(); -- Reverse the lead so the knot becomes the leader.
if lead_entity:set_follower(object) then
return nil;
end;
end;
end;
end;
-- Hold Aux1 to leash an animal to another animal:
if object and keys.aux1 and leads.is_leashable(object) then
for lead in leads.find_connected_leads(user, true, false) do
if lead:get_luaentity():set_leader(object) then
return nil;
end;
end;
end;
return (old_on_secondary_use or minetest.item_secondary_use)(itemstack, user, pointed_thing, ...);
end;
minetest.override_item(name, overrides);
end;
local old_is_protected = minetest.is_protected;
function minetest.is_protected(pos, name)
if leads.interaction_blockers[name] then
return true;
end;
return old_is_protected(pos, name);
end;
for name, def in pairs(minetest.registered_items) do
leads._after_register_item(name, def);
end;
local old_register_item = minetest.register_item;
function minetest.register_item(name, def)
old_register_item(name, def);
leads._after_register_item(string.gsub(name, '^:+', ''), def);
end;

58
mods/leads/items.lua Normal file
View file

@ -0,0 +1,58 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Item definitions.
-- @module items
local S = leads.S;
minetest.register_craftitem('leads:lead',
{
description = S'Lead';
inventory_image = 'leads_lead_inv.png';
groups = {leads_lead = 1};
on_use = leads.on_lead_punch;
on_secondary_use = leads.on_lead_use;
on_place = leads.on_lead_use;
_leads_length = leads.settings.lead_length;
_leads_texture = leads.DEFAULT_LEAD_TEXTURE;
_doc_items_longdesc = S'Leads can be used for moving and tethering animals. They can also be attached between two fences for decoration.';
_doc_items_usagehelp = S'Right-click on an animal or fence to attach a lead. Punch the lead to release it, or right-click on a fence to tether it.';
});
local rope = leads.util.first_available_item('farming:string', 'mcl_mobitems:string', 'rp_default:rope', 'hades_farming:cotton', 'nodes_nature:chalin') or 'group:string';
local glue = leads.util.first_available_item('mesecons_materials:glue', 'mcl_mobitems:slimeball', 'mobs_mc:slimeball', 'rp_default:fiber') or rope;
minetest.register_craft(
{
output = 'leads:lead';
recipe =
{
{rope, rope, ''},
{rope, glue, ''},
{'', '', rope},
};
});

166
mods/leads/knots.lua Normal file
View file

@ -0,0 +1,166 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Knot entity definition.
-- @module knots
local S = leads.S;
--- Ties a lead to a post.
-- @type KnotEntity
leads.KnotEntity = {};
leads.KnotEntity.description = S'Lead Knot';
leads.KnotEntity._leads_immobile = true;
leads.KnotEntity._leads_leashable = true;
leads.KnotEntity.initial_properties =
{
visual = 'mesh';
visual_size = vector.new(10, 10, 10);
mesh = 'leads_lead_knot.obj';
textures = {'leads_lead_knot.png'};
physical = false;
selectionbox = {-3/16, -4/16, -3/16, 3/16, 4/16, 3/16};
};
--- Spawns or loads a knot.
function leads.KnotEntity:on_activate(staticdata, dtime_s)
self.num_connections = 0;
local data = minetest.deserialize(staticdata);
if data then
self.num_connections = data.num_connections or 0;
end;
self.object:set_armor_groups{fleshy = 0};
end;
--- Steps the knot.
function leads.KnotEntity:on_step(dtime, moveresult)
if self.num_connections <= 0 then
self.object:remove();
return;
end;
local node = minetest.get_node(self.object:get_pos());
if not leads.is_knottable(node.name) then
self.object:remove();
return;
end;
end;
--- Returns the knot's state as a table.
function leads.KnotEntity:get_staticdata()
local data = {num_connections = self.num_connections};
return minetest.serialize(data);
end;
--- Handles the knot being punched.
function leads.KnotEntity:on_punch(puncher, time_from_last_punch, tool_capabilities, dir, damage)
-- Check protection:
if leads.settings.respect_protection and not minetest.check_player_privs(puncher, 'protection_bypass') then
local pos = self.object:get_pos():round();
local name = puncher and puncher:get_player_name() or '';
if minetest.is_protected(pos, name) then
minetest.record_protection_violation(pos, name);
return true;
end;
end;
-- Check if the puncher is holding Shift, and get a list of leads if necessary:
local break_leads = puncher and puncher:get_player_control().sneak;
local connected_leads;
if break_leads then
connected_leads = {};
for lead in leads.find_connected_leads(self.object, true, true) do
table.insert(connected_leads, lead);
end;
else
minetest.sound_play(leads.sounds.remove, {pos = self.object:get_pos()}, true);
end;
-- Transfer all connected leads to the puncher:
if puncher then
self:transfer_leads(puncher);
end;
-- Remove leads if holding Shift:
if break_leads then
for __, lead in ipairs(connected_leads) do
lead:get_luaentity():break_lead(puncher);
end;
end;
-- Prevent the player from breaking the post:
local name = puncher and puncher:get_player_name();
if name and name ~= '' then
leads.util.block_player_interaction(name, 0.25);
end;
-- Remove this knot:
self.object:remove();
return true;
end;
--- Handles the knot being right-clicked.
function leads.KnotEntity:on_rightclick(clicker)
local pos = self.object:get_pos();
leads.knot(clicker, pos);
end;
--- Handles the knot being interacted with while holding a lead item.
function leads.KnotEntity:_leads_on_interact(itemstack, user, pointed_thing, is_punch)
if is_punch then
self:on_punch(user);
return true, nil;
end;
return false, nil;
end;
--- Transfers all leads attached to this knot to another object.
-- @param leader [ObjectRef] The new leader.
function leads.KnotEntity:transfer_leads(leader)
for lead, is_leader in leads.find_connected_leads(self.object, true, true) do
local entity = lead:get_luaentity();
if not is_leader then
entity:reverse();
end;
entity:set_leader(leader);
end;
end;
--- Called when a lead is added.
function leads.KnotEntity:_leads_lead_add(lead, is_leader)
self.num_connections = self.num_connections + 1;
end;
--- Called when a lead is removed.
function leads.KnotEntity:_leads_lead_remove(lead, is_leader)
self.num_connections = self.num_connections - 1;
end;
minetest.register_entity('leads:knot', leads.KnotEntity);

536
mods/leads/leads.lua Normal file
View file

@ -0,0 +1,536 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Lead entity definition.
-- @module leads
local S = leads.S;
leads.SLACK_MODELS =
{
[0] = 'leads_lead.obj',
'leads_lead_slack1.obj',
'leads_lead_slack2.obj',
'leads_lead_slack3.obj',
'leads_lead_slack4.obj',
'leads_lead_slack5.obj',
'leads_lead_slack6.obj',
'leads_lead_slack7.obj',
'leads_lead_slack8.obj',
'leads_lead_slack9.obj',
'leads_lead_slack10.obj',
'leads_lead_slack11.obj',
'leads_lead_slack12.obj',
};
leads.STRETCH_SOUND_INTERVAL = 2.0;
if leads.settings.drop_mode == 'drop' then
leads.DROP_ITEM = true;
elseif leads.settings.drop_mode == 'give' then
leads.DROP_ITEM = false;
else
leads.DROP_ITEM = (minetest.get_modpath('mcl_core') or minetest.get_modpath('rp_default') or minetest.get_modpath('item_drop')) ~= nil;
end;
--- The main lead entity.
-- @type LeadEntity
leads.LeadEntity = {};
leads.LeadEntity.description = S'Lead';
leads.LeadEntity._leads_immobile = true;
leads.LeadEntity.initial_properties =
{
visual = 'mesh';
mesh = 'leads_lead.obj';
textures = {leads.DEFAULT_LEAD_TEXTURE};
physical = false;
selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5};
};
--- Spawns or unloads a lead.
function leads.LeadEntity:on_activate(staticdata, dtime_s)
self.current_length = 0.24;
self.max_length = leads.settings.lead_length;
self.rotation = vector.zero();
self.leader_attach_offset = vector.zero();
self.follower_attach_offset = vector.zero();
self.sound_timer = 0.0;
self.item = ItemStack();
self.texture = leads.DEFAULT_LEAD_TEXTURE;
self.strength = leads.settings.lead_strength;
self.breaking = 0.0;
local data = minetest.deserialize(staticdata);
if data then
self:load_from_data(data);
end;
self.object:set_armor_groups{fleshy = 0};
end;
--- Initialises the lead's state from a table.
function leads.LeadEntity:load_from_data(data)
self.max_length = data.max_length or self.max_length;
self.leader_id = data.leader_id or {};
self.follower_id = data.follower_id or {};
self.leader_attach_offset = data.leader_attach_offset or self.leader_attach_offset;
self.follower_attach_offset = data.follower_attach_offset or self.follower_attach_offset;
self.leader_id.pos = vector.new(self.leader_id.pos);
self.follower_id.pos = vector.new(self.follower_id.pos);
if data.item then
self:set_item(data.item);
end;
self:update_visuals();
end;
--- Sets the lead's item, updating relevant properties.
function leads.LeadEntity:set_item(item)
item = ItemStack(item);
self.item = item;
local def = item:get_definition();
self.strength = def._leads_strength or leads.settings.lead_strength;
self.max_length = def._leads_length or leads.settings.lead_length;
self.texture = def._leads_texture or leads.DEFAULT_LEAD_TEXTURE;
if not leads.settings.dynamic_textures then
self.object:set_properties{textures = {self.texture}};
end;
end;
--- Steps the knot.
function leads.LeadEntity:on_step(dtime)
self:_update_connectors();
local success, pos, offset = self:step_physics(dtime);
if success then
self.current_length = leads.util.clamp(offset:length(), 0.25, 256);
self.rotation = offset:dir_to_rotation();
self.object:move_to(pos, true);
self:update_visuals();
end;
end;
--- Simulates the lead's physics.
-- @param dtime [number] The time elapsed since the last tick, in seconds.
-- @return [boolean] true if the lead is functioning correctly, or false if it should break.
-- @return [vector|nil] The centre position of the lead, or nil on failure.
-- @return [vector|nil] The offset between the leader and the follower, or nil on failure.
function leads.LeadEntity:step_physics(dtime)
dtime = math.min(dtime, 0.125);
local l_pos = self.leader_pos;
local f_pos = self.follower_pos;
if not (l_pos and f_pos) then
self:break_lead();
return false, nil, nil;
end;
l_pos = l_pos + self.leader_attach_offset;
f_pos = f_pos + self.follower_attach_offset;
local pull_distance = self.max_length;
local break_distance = pull_distance * 2;
local distance = l_pos:distance(f_pos);
if distance > break_distance then
-- Lead is too long, break:
local overextension = distance - break_distance;
self.breaking = self.breaking + overextension * dtime;
if self.breaking > self.strength then
self:break_lead(nil, true);
return false, nil, nil;
end;
else
self.breaking = 0.0;
end;
local pos = (f_pos + l_pos) / 2;
if self.leader and self.follower and distance > pull_distance then
local base_force;
local function _pull_connector(connector, this_pos, other_pos)
if leads.is_immobile(connector) then
return;
end;
if not base_force then
base_force = (distance - pull_distance) * leads.settings.pull_force / pull_distance;
end;
local force = base_force / math.sqrt(leads.util.get_object_mass(connector));
local pull_direction = (other_pos - this_pos):normalize();
connector:add_velocity(pull_direction * dtime * force ^ 1.5);
end;
-- Pull follower:
_pull_connector(self.follower, f_pos, l_pos);
-- Pull leader if symmetrical mode is enabled:
if leads.settings.symmetrical then
_pull_connector(self.leader, l_pos, f_pos);
end;
-- Play stretching sound:
self.sound_timer = self.sound_timer + dtime;
if self.sound_timer >= leads.STRETCH_SOUND_INTERVAL then
self.sound_timer = self.sound_timer - leads.STRETCH_SOUND_INTERVAL;
if leads.util.rng:next(0, 8) == 0 then
minetest.sound_play(leads.sounds.stretch, {pos = pos}, true);
end;
end;
end;
return true, pos, f_pos - l_pos;
end;
--- Updates the connector references and stored positions.
-- @local
function leads.LeadEntity:_update_connectors()
local function _get_pos(key)
local object = self[key];
local pos = object and object:get_pos();
local id = self[key .. '_id'];
if not pos then
pos = id.pos;
if not pos then
return nil;
end;
local object = leads.util.deserialise_objref(id);
if object then
pos = object:get_pos();
self[key] = object;
self[key .. '_attach_offset'] = leads.util.get_attach_offset(object);
leads.leads_by_connector[object][self.object] = true;
else
-- The object reference is invalid, and deserialising the
-- object failed. This could mean that the object has been
-- removed and the lead should break, or it could mean that
-- the object's mapblock has been unloaded, and the lead
-- should just wait until it gets loaded again. We can figure
-- out which one by checking if the mapblock is active.
if minetest.compare_block_status(pos, 'active') then
return nil;
end;
end;
end;
id.pos = pos or id.pos;
return pos;
end;
self.leader_pos = _get_pos('leader');
self.follower_pos = _get_pos('follower');
end;
--- Handles the lead being punched.
function leads.LeadEntity:on_punch(puncher, time_from_last_punch, tool_capabilities, dir, damage)
local name = puncher and puncher:get_player_name() or '';
-- Check protection:
local is_protected, protected_pos = self:is_protected(name);
if is_protected then
minetest.record_protection_violation(protected_pos, name);
return true;
end;
-- Break the lead:
self:break_lead(puncher);
-- Block the player's interaction for a moment to prevent accidentally breaking the node behind the lead:
if name ~= '' then
leads.util.block_player_interaction(name, 0.25);
end;
return true;
end;
--- Handles the lead being interacted with while holding a lead item.
function leads.LeadEntity:_leads_on_interact(itemstack, user, pointed_thing, is_punch)
if is_punch then
self:on_punch(user);
return true, nil;
end;
return false, nil;
end;
--- Handles the lead being killed.
function leads.LeadEntity:on_death(killer)
self:break_lead(killer);
end;
--- Returns the lead's state as a table.
function leads.LeadEntity:get_staticdata()
local data = {};
data.item = self.item:to_string();
data.max_length = self.max_length;
data.leader_id = self.leader_id;
data.follower_id = self.follower_id;
data.leader_attach_offset = self.leader_attach_offset;
data.follower_attach_offset = self.follower_attach_offset;
return minetest.serialize(data);
end;
--- Breaks the lead, possibly giving/dropping an item.
-- @param breaker [ObjectRef|nil] The object breaking the lead.
-- @param snap [boolean|nil] true if the lead is breaking due to tension.
function leads.LeadEntity:break_lead(breaker, snap)
if leads.settings.debug then
minetest.log(debug.traceback(('[Leads] Breaking lead %s at %s.'):format(self, self.object:get_pos())));
end;
-- Notify leader and follower:
self:notify_connector_removed(self.leader, true);
self:notify_connector_removed(self.follower, false);
-- Give or drop item:
if not self.item:is_empty() then
local owner = breaker;
if not minetest.is_player(owner) then
owner = self.leader;
end;
local pos = self.object:get_pos();
local item = self.item;
if not leads.DROP_ITEM then
local inventory = minetest.is_player(owner) and owner:get_inventory();
if inventory then
if minetest.is_creative_enabled(owner) and inventory:contains_item('main', item, true) then
item = ItemStack();
else
item = inventory:add_item('main', item);
end;
end;
end;
minetest.add_item(pos, item);
end;
-- Play sound:
if snap then
minetest.sound_play(leads.sounds.snap, {pos = self.object:get_pos()}, true);
else
minetest.sound_play(leads.sounds.remove, {pos = self.object:get_pos()}, true);
end;
-- Remove lead:
self.object:remove();
self.item = ItemStack();
end;
--- Checks if either end of the lead is in an area protected from the specified player.
-- If protection support is disabled, this always returns false.
-- @param player [string|ObjectRef] A player object or username.
-- @return [boolean] true if the player is not allowed to break the lead due to protection.
-- @return [vector|nil] The protected position, if any.
function leads.LeadEntity:is_protected(player)
if not leads.settings.respect_protection then
return false, nil; -- Protection support is disabled.
end;
local name;
if type(player) == 'string' then
name = player;
else
name = player:get_player_name();
end;
name = name or '';
if minetest.check_player_privs(name, 'protection_bypass') then
return false, nil; -- The player is exempt from protection.
end;
if name == self.leader_id.player_name then
return false, nil; -- The player is holding the lead.
end;
for __, connector_id in ipairs{self.leader_id, self.follower_id} do
if connector_id and connector_id.pos then
local pos = vector.round(connector_id.pos);
if minetest.is_protected(pos, name) then
return true, pos; -- An end of the lead is in a protected area.
end;
end;
end;
return false, nil;
end;
--- Updates the visual properties of the lead to show its current state.
function leads.LeadEntity:update_visuals()
local SCALE = 8;
if self.current_length == self.old_length then
return;
end;
self.old_length = self.current_length;
local properties = {visual_size = vector.new(1, 1, self.current_length)};
local selbox_offset = 0;
-- Dynamic textures:
if leads.settings.dynamic_textures then
local texture = leads.util.tile_texture(self.texture, 96 * SCALE, 2 * SCALE, math.floor(self.current_length * 16 * SCALE), 2 * SCALE);
properties.textures = {texture};
elseif self.texture ~= self.old_texture then
self.old_texture = self.texture;
properties.textures = {self.texture};
end;
-- Slack model:
if leads.settings.enable_slack then
if self.leader_pos and self.follower_pos then
local slack, mesh = self:get_slack();
properties.mesh = mesh;
selbox_offset = selbox_offset - slack / 12;
end;
end;
-- Selection box:
if leads.settings.rotate_selection_box then
properties.selectionbox = {-0.0625, -0.0625 + selbox_offset, -self.current_length / 2,
0.0625, 0.0625 + selbox_offset, self.current_length / 2, rotate = true};
end;
self.object:set_properties(properties);
self.object:set_rotation(self.rotation);
end;
--- Calculates the slack value and chooses a model to represent it.
-- @return [number] The current slack value.
-- @return [string] A model name.
function leads.LeadEntity:get_slack()
local span = self.follower_pos - self.leader_pos;
local slack = 0.5 + 1 - span:length() / self.max_length;
-- Scale the slack by how horizontal the lead is, otherwise it would droop sideways when vertical.
slack = slack * (1 - math.abs(span:normalize().y));
slack = leads.util.clamp(slack, 0.0, 1.0)
local model_index = math.floor(slack * #leads.SLACK_MODELS);
return slack, leads.SLACK_MODELS[model_index];
end;
--- Updates the connector IDs to reflect the current connectors.
function leads.LeadEntity:update_objref_ids()
self.leader_id = leads.util.serialise_objref(self.leader) or self.leader_id;
self.follower_id = leads.util.serialise_objref(self.follower) or self.follower_id;
self:update_attach_offsets();
end;
--- Updates the attachment offsets to reflect the current connectors' properties.
function leads.LeadEntity:update_attach_offsets()
self.leader_attach_offset = leads.util.get_attach_offset(self.leader) or self.leader_attach_offset;
self.follower_attach_offset = leads.util.get_attach_offset(self.follower) or self.follower_attach_offset;
end;
--- Transfers this lead to a new leader.
-- @param leader [ObjectRef] The new leader object.
-- @return [boolean] true on success.
function leads.LeadEntity:set_leader(leader)
return self:set_connector(leader, true);
end;
--- Transfers this lead to a new follower.
-- @param follower [ObjectRef] The new follower object.
-- @return [boolean] true on success.
function leads.LeadEntity:set_follower(follower)
return self:set_connector(follower, false);
end;
--- Transfers this lead to a new leader or follower.
-- @param object [ObjectRef] The new connector.
-- @param is_leader [boolean] true to set the leader, false to set the follower.
-- @return [boolean] true on success.
function leads.LeadEntity:set_connector(object, is_leader)
if (self.leader and leads.util.is_same_object(object, self.leader)) or
(self.follower and leads.util.is_same_object(object, self.follower)) then
return false;
end;
local key = is_leader and 'leader' or 'follower';
local old_object = self[key];
self:notify_connector_removed(old_object, is_leader);
self[key] = object;
self:notify_connector_added(object, is_leader);
self:update_objref_ids();
return true;
end;
--- Reverses the direction of the lead, swapping the leader and follower.
function leads.LeadEntity:reverse()
self.leader, self.follower = self.follower, self.leader;
self.leader_id, self.follower_id = self.follower_id, self.leader_id;
end;
--- Notifies the connector that this lead has been added.
-- @param object [ObjectRef|nil] The connector to notify.
-- @param is_leader [boolean] true if the connector is the leader.
function leads.LeadEntity:notify_connector_added(object, is_leader)
if not object then
return;
end;
leads.leads_by_connector[object][self.object] = true;
local entity = object:get_luaentity();
if entity and entity._leads_lead_add then
entity:_leads_lead_add(self, is_leader or false);
end;
end;
--- Notifies the connector that this lead has been removed.
-- @param object [ObjectRef|nil] The connector to notify.
-- @param is_leader [boolean] true if the connector was the leader.
function leads.LeadEntity:notify_connector_removed(object, is_leader)
if not object then
return;
end;
leads.leads_by_connector[object][self.object] = nil;
local entity = object:get_luaentity();
if entity and entity._leads_lead_remove then
entity:_leads_lead_remove(self, is_leader or false);
end;
end;
--- Gets the lead's leader if it's loaded.
-- @return [ObjectRef|nil] The leader object.
function leads.LeadEntity:get_leader()
if self.leader and self.leader:get_pos() then
return self.leader;
end;
return nil;
end;
--- Gets the lead's follower if it's loaded.
-- @return [ObjectRef|nil] The follower object.
function leads.LeadEntity:get_follower()
if self.leader and self.follower:get_pos() then
return self.follower;
end;
return nil;
end;
minetest.register_entity('leads:lead', leads.LeadEntity);

View file

@ -0,0 +1,100 @@
# Generated by MTTranslate.
# textdomain: leads
##[ api.lua:101 ]##
You cannot leash something to itself.=Du kannst nichts an sich selbst anbinden.
##[ api.lua:118 ]##
Failed to create lead.=Konnte die Leine nicht erzeugen.
##[ api.lua:403 ]##
You cannot leash this.=Das kannst Du nicht anbinden.
##[ api.lua:409 ]##
You do not own this.=Das gehört Dir nicht.
##[ items.lua:34 ]##
##[ leads.lua:64 ]##
Lead=Leine
##[ items.lua:42 ]##
Leads can be used for moving and tethering animals. They can also be attached between two fences for decoration.=Leinen können zum Bewegen und Anbinden von Tieren verwendet werden. Sie können auch zur Dekoration zwischen zwei Zäunen angebracht werden.
##[ items.lua:43 ]##
Right-click on an animal or fence to attach a lead. Punch the lead to release it, or right-click on a fence to tether it.=Klicke mit der rechten Maustaste auf ein Tier oder einen Zaun, um eine Leine anzubinden. Schlage die Leine (Linksklick), um sie zu lösen. Mit einem Rechtsklick kannst Du ein an Deiner Leine befindliches Tier an einen Zaun anbinden.
##[ knots.lua:36 ]##
Lead Knot=Leinenknoten
##[ settingtypes.txt:2 ]##
Lead length=Leinenlänge
##[ settingtypes.txt:5 ]##
Lead strength=Leinenstärke
##[ settingtypes.txt:11 ]##
Item drop mode=Modus zum Fallenlassen von Gegenständen
##[ settingtypes.txt:15 ]##
Symmetrical physics=Symmetrische Physik
##[ settingtypes.txt:18 ]##
Visuals=Visuals
##[ settingtypes.txt:21 ]##
Dynamic textures=Dynamische Texturen
##[ settingtypes.txt:25 ]##
Long selection box=Langes Auswahlfeld
##[ settingtypes.txt:29 ]##
Enable visual slack=Erlaube sichtbares Durchhängen
##[ settingtypes.txt:32 ]##
Show chat messages=Zeige Chat-Nachrichten
##[ settingtypes.txt:35 ]##
Protection and Ownership=Schutz und Eigentum
##[ settingtypes.txt:38 ]##
Respect protection=Berücksichtige Schutzeinstellungen
##[ settingtypes.txt:41 ]##
Allow leashing unowned mobs=Erlaube das Anbinden eigentümerloser Mobs
##[ settingtypes.txt:44 ]##
Allow leashing mobs owned by others=Erlaube das Anbinden von Mobs im Besitz anderer Spieler
##[ settingtypes.txt:47 ]##
Object Types=Objekttypen
##[ settingtypes.txt:50 ]##
Allow leashing players=Erlaube das Anbinden von Spielern
##[ settingtypes.txt:53 ]##
Allow leashing animals=Erlaube das Anbinden von Tieren
##[ settingtypes.txt:56 ]##
Allow leashing monsters=Erlaube das Anbinden von Monstern
##[ settingtypes.txt:59 ]##
Allow leashing NPCs=Erlaube das Anbinden von NPCs (z. B. Dorfbewohner)
##[ settingtypes.txt:62 ]##
Allow leashing vehicles=Erlaube das Anbinden von Fahrzeugen
##[ settingtypes.txt:65 ]##
Allow leashing other=Erlaube das Anbinden anderer Dinge
##[ settingtypes.txt:68 ]##
Advanced=Erweitert
##[ settingtypes.txt:73 ]##
Allow leashing any object=Erlaube das Anbinden beliebiger Objekte
##[ settingtypes.txt:76 ]##
Pull force=Zugkraft
##[ settingtypes.txt:79 ]##
Debug mode=Entwicklermodus (Debug)

View file

@ -0,0 +1,147 @@
# Generated by mttranslate.
msgid ""
msgstr ""
"PO-Revision-Date: 2024-01-02 23:40+0000\n"
"Last-Translator: Kyoushi <denis@tragedian.com>\n"
"Language-Team: German <https://translate.codeberg.org/projects/leads/leads/"
"de/>\n"
"Language: de\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.3.1\n"
#: api.lua:101
msgid "You cannot leash something to itself."
msgstr "Du kannst nichts an sich selbst anbinden."
#: api.lua:118
msgid "Failed to create lead."
msgstr "Konnte die Leine nicht erzeugen."
#: api.lua:403
msgid "You cannot leash this."
msgstr "Das kannst Du nicht anbinden."
#: api.lua:409
msgid "You do not own this."
msgstr "Das gehört Dir nicht."
#: items.lua:34
#: leads.lua:64
msgid "Lead"
msgstr "Leine"
#: items.lua:42
msgid "Leads can be used for moving and tethering animals. They can also be attached between two fences for decoration."
msgstr ""
"Leinen können zum Bewegen und Anbinden von Tieren verwendet werden. Sie "
"können auch zur Dekoration zwischen zwei Zäunen angebracht werden."
#: items.lua:43
msgid "Right-click on an animal or fence to attach a lead. Punch the lead to release it, or right-click on a fence to tether it."
msgstr ""
"Klicke mit der rechten Maustaste auf ein Tier oder einen Zaun, um eine Leine "
"anzubinden. Schlage die Leine (Linksklick), um sie zu lösen. Mit einem "
"Rechtsklick kannst Du ein an Deiner Leine befindliches Tier an einen Zaun "
"anbinden."
#: knots.lua:36
msgid "Lead Knot"
msgstr "Leinenknoten"
#: settingtypes.txt:2
msgid "Lead length"
msgstr "Leinenlänge"
#: settingtypes.txt:5
msgid "Lead strength"
msgstr "Leinenstärke"
#: settingtypes.txt:11
msgid "Item drop mode"
msgstr "Modus zum Fallenlassen von Gegenständen"
#: settingtypes.txt:15
msgid "Symmetrical physics"
msgstr "Symmetrische Physik"
#: settingtypes.txt:18
msgid "Visuals"
msgstr "Visuals"
#: settingtypes.txt:21
msgid "Dynamic textures"
msgstr "Dynamische Texturen"
#: settingtypes.txt:25
msgid "Long selection box"
msgstr "Langes Auswahlfeld"
#: settingtypes.txt:29
msgid "Enable visual slack"
msgstr "Erlaube sichtbares Durchhängen"
#: settingtypes.txt:32
msgid "Show chat messages"
msgstr "Zeige Chat-Nachrichten"
#: settingtypes.txt:35
msgid "Protection and Ownership"
msgstr "Schutz und Eigentum"
#: settingtypes.txt:38
msgid "Respect protection"
msgstr "Berücksichtige Schutzeinstellungen"
#: settingtypes.txt:41
msgid "Allow leashing unowned mobs"
msgstr "Erlaube das Anbinden eigentümerloser Mobs"
#: settingtypes.txt:44
msgid "Allow leashing mobs owned by others"
msgstr "Erlaube das Anbinden von Mobs im Besitz anderer Spieler"
#: settingtypes.txt:47
msgid "Object Types"
msgstr "Objekttypen"
#: settingtypes.txt:50
msgid "Allow leashing players"
msgstr "Erlaube das Anbinden von Spielern"
#: settingtypes.txt:53
msgid "Allow leashing animals"
msgstr "Erlaube das Anbinden von Tieren"
#: settingtypes.txt:56
msgid "Allow leashing monsters"
msgstr "Erlaube das Anbinden von Monstern"
#: settingtypes.txt:59
msgid "Allow leashing NPCs"
msgstr "Erlaube das Anbinden von NPCs (z. B. Dorfbewohner)"
#: settingtypes.txt:62
msgid "Allow leashing vehicles"
msgstr "Erlaube das Anbinden von Fahrzeugen"
#: settingtypes.txt:65
msgid "Allow leashing other"
msgstr "Erlaube das Anbinden anderer Dinge"
#: settingtypes.txt:68
msgid "Advanced"
msgstr "Erweitert"
#: settingtypes.txt:73
msgid "Allow leashing any object"
msgstr "Erlaube das Anbinden beliebiger Objekte"
#: settingtypes.txt:76
msgid "Pull force"
msgstr "Zugkraft"
#: settingtypes.txt:79
msgid "Debug mode"
msgstr "Entwicklermodus (Debug)"

View file

@ -0,0 +1,135 @@
# Generated by mttranslate.
msgid ""
msgstr ""
"Language: nl\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: api.lua:101
msgid "You cannot leash something to itself."
msgstr ""
#: api.lua:118
msgid "Failed to create lead."
msgstr ""
#: api.lua:403
msgid "You cannot leash this."
msgstr ""
#: api.lua:409
msgid "You do not own this."
msgstr ""
#: items.lua:34
#: leads.lua:64
msgid "Lead"
msgstr ""
#: items.lua:42
msgid "Leads can be used for moving and tethering animals. They can also be attached between two fences for decoration."
msgstr ""
#: items.lua:43
msgid "Right-click on an animal or fence to attach a lead. Punch the lead to release it, or right-click on a fence to tether it."
msgstr ""
#: knots.lua:36
msgid "Lead Knot"
msgstr ""
#: settingtypes.txt:2
msgid "Lead length"
msgstr ""
#: settingtypes.txt:5
msgid "Lead strength"
msgstr ""
#: settingtypes.txt:11
msgid "Item drop mode"
msgstr ""
#: settingtypes.txt:15
msgid "Symmetrical physics"
msgstr ""
#: settingtypes.txt:18
msgid "Visuals"
msgstr ""
#: settingtypes.txt:21
msgid "Dynamic textures"
msgstr ""
#: settingtypes.txt:25
msgid "Long selection box"
msgstr ""
#: settingtypes.txt:29
msgid "Enable visual slack"
msgstr ""
#: settingtypes.txt:32
msgid "Show chat messages"
msgstr ""
#: settingtypes.txt:35
msgid "Protection and Ownership"
msgstr ""
#: settingtypes.txt:38
msgid "Respect protection"
msgstr ""
#: settingtypes.txt:41
msgid "Allow leashing unowned mobs"
msgstr ""
#: settingtypes.txt:44
msgid "Allow leashing mobs owned by others"
msgstr ""
#: settingtypes.txt:47
msgid "Object Types"
msgstr ""
#: settingtypes.txt:50
msgid "Allow leashing players"
msgstr ""
#: settingtypes.txt:53
msgid "Allow leashing animals"
msgstr ""
#: settingtypes.txt:56
msgid "Allow leashing monsters"
msgstr ""
#: settingtypes.txt:59
msgid "Allow leashing NPCs"
msgstr ""
#: settingtypes.txt:62
msgid "Allow leashing vehicles"
msgstr ""
#: settingtypes.txt:65
msgid "Allow leashing other"
msgstr ""
#: settingtypes.txt:68
msgid "Advanced"
msgstr ""
#: settingtypes.txt:73
msgid "Allow leashing any object"
msgstr ""
#: settingtypes.txt:76
msgid "Pull force"
msgstr ""
#: settingtypes.txt:79
msgid "Debug mode"
msgstr ""

View file

@ -0,0 +1,158 @@
# Generated by MTTranslate.
msgid ""
msgstr ""
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: MTTranslate\n"
#: api.lua:101
msgid "You cannot leash something to itself."
msgstr ""
#: api.lua:118
msgid "Failed to create lead."
msgstr ""
#: api.lua:403
msgid "You cannot leash this."
msgstr ""
#: api.lua:409
msgid "You do not own this."
msgstr ""
#: items.lua:34
#: leads.lua:64
msgid "Lead"
msgstr ""
#: items.lua:42
msgid "Leads can be used for moving and tethering animals. They can also be attached between two fences for decoration."
msgstr ""
#: items.lua:43
msgid "Right-click on an animal or fence to attach a lead. Punch the lead to release it, or right-click on a fence to tether it."
msgstr ""
#: knots.lua:36
msgid "Lead Knot"
msgstr ""
#: settingtypes.txt:2
#. Setting: leads.lead_length (float)
msgid "Lead length"
msgstr ""
#: settingtypes.txt:5
#. Setting: leads.lead_strength (float)
msgid "Lead strength"
msgstr ""
#: settingtypes.txt:11
#. Setting: leads.drop_mode (enum)
msgid "Item drop mode"
msgstr ""
#: settingtypes.txt:15
#. Setting: leads.symmetrical (bool)
msgid "Symmetrical physics"
msgstr ""
#: settingtypes.txt:18
msgid "Visuals"
msgstr ""
#: settingtypes.txt:21
#. Setting: leads.dynamic_textures (bool)
msgid "Dynamic textures"
msgstr ""
#: settingtypes.txt:25
#. Setting: leads.rotate_selection_box (bool)
msgid "Long selection box"
msgstr ""
#: settingtypes.txt:29
#. Setting: leads.enable_slack (bool)
msgid "Enable visual slack"
msgstr ""
#: settingtypes.txt:32
#. Setting: leads.chat_messages (bool)
msgid "Show chat messages"
msgstr ""
#: settingtypes.txt:35
msgid "Protection and Ownership"
msgstr ""
#: settingtypes.txt:38
#. Setting: leads.respect_protection (bool)
msgid "Respect protection"
msgstr ""
#: settingtypes.txt:41
#. Setting: leads.allow_leash_unowned (bool)
msgid "Allow leashing unowned mobs"
msgstr ""
#: settingtypes.txt:44
#. Setting: leads.allow_leash_owned_other (bool)
msgid "Allow leashing mobs owned by others"
msgstr ""
#: settingtypes.txt:47
msgid "Object Types"
msgstr ""
#: settingtypes.txt:50
#. Setting: leads.allow_leash_player (bool)
msgid "Allow leashing players"
msgstr ""
#: settingtypes.txt:53
#. Setting: leads.allow_leash_animal (bool)
msgid "Allow leashing animals"
msgstr ""
#: settingtypes.txt:56
#. Setting: leads.allow_leash_monster (bool)
msgid "Allow leashing monsters"
msgstr ""
#: settingtypes.txt:59
#. Setting: leads.allow_leash_npc (bool)
msgid "Allow leashing NPCs"
msgstr ""
#: settingtypes.txt:62
#. Setting: leads.allow_leash_vehicle (bool)
msgid "Allow leashing vehicles"
msgstr ""
#: settingtypes.txt:65
#. Setting: leads.allow_leash_other (bool)
msgid "Allow leashing other"
msgstr ""
#: settingtypes.txt:68
msgid "Advanced"
msgstr ""
#: settingtypes.txt:73
#. Setting: leads.allow_leash_all (bool)
msgid "Allow leashing any object"
msgstr ""
#: settingtypes.txt:76
#. Setting: leads.pull_force (float)
msgid "Pull force"
msgstr ""
#: settingtypes.txt:79
#. Setting: leads.debug (bool)
msgid "Debug mode"
msgstr ""

8
mods/leads/mod.conf Normal file
View file

@ -0,0 +1,8 @@
name = leads
title = Leads
description = Adds leads for moving and tethering animals.
author = SilverSandstone
optional_depends = advtrains, bambooforest, default, farming, ferns, hades_farming, hades_furniture, mcl_mobitems, mesecons_materials, mobs_mc, nodes_nature, objectuuids, rp_default
supported_games = asuna, dreambuilder, exile, hades_revisited, lordofthetest, mesecraft, mineclone2, mineclone5, mineclonia, minetest_game, repixture, survivetest, voxelgarden, worstblockgame
min_minetest_version = 5.5.0
release = 23044

View file

@ -0,0 +1 @@
{"meta":{"format_version":"4.5","model_format":"free","box_uv":false},"name":"leads_lead","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[-0.5,-0.5,-8],"to":[0.5,0.5,8],"autouv":0,"color":9,"origin":[0,0,0],"faces":{"north":{"uv":[0,0,0,16],"texture":0},"east":{"uv":[0,16,16,0],"rotation":180,"texture":0},"south":{"uv":[0,0,0,16],"texture":0},"west":{"uv":[0,0,16,16],"texture":0},"up":{"uv":[0,0,16,16],"rotation":90,"texture":0},"down":{"uv":[0,0,16,16],"rotation":270,"texture":0}},"type":"cube","uuid":"1a9ce081-420a-2225-9177-22d3e9f18f78"}],"outliner":["1a9ce081-420a-2225-9177-22d3e9f18f78"],"textures":[{"path":"../textures/leads_lead.png","name":"leads_lead.png","folder":"","namespace":"","id":"0","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"23be694f-bb73-ca4f-4e50-c3ef0f3838f0","relative_path":"../../textures/leads_lead.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAACCAYAAACnpNlpAAAAAXNSR0IArs4c6QAAAH9JREFUOE9jnNgQ///lk9cMyEBcRhSFD+PA1KHLo+sHqYepIcZsYvQj24msHiSOTT+yG0BsXGpwqSPGj4T04vMXLEwZ4xwN/oM4/AI8KIH+8cMXFD66PHoMIauHqQWJ4TKXkH3Y3IQtVcDsxec+bG7DmsKggvj8Tsg+UsINpBYAeQRMQAAW8RcAAAAASUVORK5CYII="}]}

View file

@ -0,0 +1,49 @@
# Made in Blockbench 4.8.3
mtllib leads_lead.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 -5
v -0.3125 0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 -0.3125 5
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 1 1
vt 0 1
vt 0 0
vt 1 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 1 1
vt 1 0
vt 0 0
vt 0 0
vt 0 1
vt 1 1
vt 1 0
vt 1 1
vt 1 0
vt 0 0
vt 0 1
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 4/4/1 7/3/1 5/2/1 2/1/1
f 3/8/2 4/7/2 2/6/2 1/5/2
f 8/12/3 3/11/3 1/10/3 6/9/3
f 7/16/4 8/15/4 6/14/4 5/13/4
f 6/20/5 1/19/5 2/18/5 5/17/5
f 7/24/6 4/23/6 3/22/6 8/21/6

View file

@ -0,0 +1 @@
{"meta":{"format_version":"4.5","model_format":"free","box_uv":false},"name":"leads_lead_knot","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":16,"height":16},"elements":[{"name":"cube","box_uv":false,"rescale":false,"locked":false,"from":[-3,-4,-3],"to":[3,4,3],"autouv":0,"color":7,"origin":[0,0,0],"faces":{"north":{"uv":[9,3,12,7],"texture":0},"east":{"uv":[6,3,9,7],"texture":0},"south":{"uv":[3,3,6,7],"texture":0},"west":{"uv":[0,3,3,7],"texture":0},"up":{"uv":[3,0,6,3],"texture":0},"down":{"uv":[6,0,9,3],"texture":0}},"type":"cube","uuid":"6218272c-4067-e2a2-7806-276765b710cd"}],"outliner":["6218272c-4067-e2a2-7806-276765b710cd"],"textures":[{"path":"../textures/leads_lead_knot.png","name":"leads_lead_knot.png","folder":"","namespace":"","id":"0","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"c2841755-3646-e7ae-2b5d-ff26cb2dcb0d","relative_path":"../../textures/leads_lead_knot.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAU5JREFUWEdjZMABJjbE/79z8S5Y9uOHLwz8Ajxgtoq+MgOyOEz7ov0XGHGZhU8cpyaYA3iF+eD6P7/9BHcAyCEvn7wGyz25+4yBJg44e/Aig4yyFAPMYnz8yeuPUDcEqlK8/oN8hh70oBABOQgWNTAH0sQBsLAXlxEFM0FxD4sSmBhIHBQyVI+COEeD/zAHwEIB5mt0cVAiJdsBoMQGS0zoPkZPvTB1yL4HqUHXDxKDqclvWIg3bTDCfIrsS3Sfgvjo8uiOA4UCOSHDCEpsyIah+46QD7GFCnKItM3Zhj8EcgNtUBwA8wmhECEmVEBqCOUORmxpAFtawBbP+NRRnAaQowVb/OIrXpHVE8od4BDAFc/IqRlZDcx3+FI/zIFE5QJs+RxXqkf2HaF0QEz5QFb5jS/4SZUbdcBoCIyGwGgIjIbAaAiMhsBoCAx4CAAAU0bCITmYIR0AAAAASUVORK5CYII="}]}

View file

@ -0,0 +1,49 @@
# Made in Blockbench 4.6.4
mtllib leads_lead_knot.mtl
o cube
v 0.1875 0.25 0.1875
v 0.1875 0.25 -0.1875
v 0.1875 -0.25 0.1875
v 0.1875 -0.25 -0.1875
v -0.1875 0.25 -0.1875
v -0.1875 0.25 0.1875
v -0.1875 -0.25 -0.1875
v -0.1875 -0.25 0.1875
vt 0.5625 0.8125
vt 0.75 0.8125
vt 0.75 0.5625
vt 0.5625 0.5625
vt 0.375 0.8125
vt 0.5625 0.8125
vt 0.5625 0.5625
vt 0.375 0.5625
vt 0.1875 0.8125
vt 0.375 0.8125
vt 0.375 0.5625
vt 0.1875 0.5625
vt 0 0.8125
vt 0.1875 0.8125
vt 0.1875 0.5625
vt 0 0.5625
vt 0.1875 1
vt 0.375 1
vt 0.375 0.8125
vt 0.1875 0.8125
vt 0.375 1
vt 0.5625 1
vt 0.5625 0.8125
vt 0.375 0.8125
vn 0 0 -1
vn 1 0 0
vn 0 0 1
vn -1 0 0
vn 0 1 0
vn 0 -1 0
usemtl m_c2841755-3646-e7ae-2b5d-ff26cb2dcb0d
f 4/4/1 7/3/1 5/2/1 2/1/1
f 3/8/2 4/7/2 2/6/2 1/5/2
f 8/12/3 3/11/3 1/10/3 6/9/3
f 7/16/4 8/15/4 6/14/4 5/13/4
f 6/20/5 1/19/5 2/18/5 5/17/5
f 7/24/6 4/23/6 3/22/6 8/21/6

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack1.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.2898550724637681 4.375
v -0.3125 -0.3351449275362328 4.375
v -0.3125 0.27173913043478265 3.75
v -0.3125 -0.3532608695652195 3.75
v -0.3125 0.2581521739130435 3.125
v -0.3125 -0.366847826086959 3.125
v -0.3125 0.24909420289855078 2.5
v -0.3125 -0.37590579710145233 2.5
v -0.3125 0.24230072463768124 1.875
v -0.3125 -0.3826992753623226 1.875
v -0.3125 0.23777173913043487 1.25
v -0.3125 -0.38722826086956874 1.25
v -0.3125 0.23550724637681167 0.625
v -0.3125 -0.3894927536231918 0.625
v -0.3125 0.23437500000000006 0
v -0.3125 -0.39062500000000444 0
v -0.3125 0.23550724637681167 -0.625
v -0.3125 -0.3894927536231918 -0.625
v -0.3125 0.23777173913043487 -1.25
v -0.3125 -0.38722826086956874 -1.25
v -0.3125 0.24230072463768124 -1.875
v -0.3125 -0.3826992753623226 -1.875
v -0.3125 0.24909420289855078 -2.5
v -0.3125 -0.37590579710145233 -2.5
v -0.3125 0.2581521739130435 -3.125
v -0.3125 -0.366847826086959 -3.125
v -0.3125 0.27173913043478265 -3.75
v -0.3125 -0.3532608695652195 -3.75
v -0.3125 0.2898550724637681 -4.375
v -0.3125 -0.3351449275362328 -4.375
v 0.3125 -0.3351449275362328 4.375
v 0.3125 -0.3532608695652195 3.75
v 0.3125 -0.366847826086959 3.125
v 0.3125 -0.37590579710145233 2.5
v 0.3125 -0.3826992753623226 1.875
v 0.3125 -0.38722826086956874 1.25
v 0.3125 -0.3894927536231918 0.625
v 0.3125 -0.39062500000000444 0
v 0.3125 -0.3894927536231918 -0.625
v 0.3125 -0.38722826086956874 -1.25
v 0.3125 -0.3826992753623226 -1.875
v 0.3125 -0.37590579710145233 -2.5
v 0.3125 -0.366847826086959 -3.125
v 0.3125 -0.3532608695652195 -3.75
v 0.3125 -0.3351449275362328 -4.375
v 0.3125 0.2898550724637681 4.375
v 0.3125 0.27173913043478265 3.75
v 0.3125 0.2581521739130435 3.125
v 0.3125 0.24909420289855078 2.5
v 0.3125 0.24230072463768124 1.875
v 0.3125 0.23777173913043487 1.25
v 0.3125 0.23550724637681167 0.625
v 0.3125 0.23437500000000006 0
v 0.3125 0.23550724637681167 -0.625
v 0.3125 0.23777173913043487 -1.25
v 0.3125 0.24230072463768124 -1.875
v 0.3125 0.24909420289855078 -2.5
v 0.3125 0.2581521739130435 -3.125
v 0.3125 0.27173913043478265 -3.75
v 0.3125 0.2898550724637681 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9993442708242972 0.036208125754503516
vn 0 -0.9993442708242972 -0.036208125754505015
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9993442708242972 0.036208125754505015
vn 0 -0.9995801847002224 0.02897333868696487
vn 0 -0.9997637888239164 0.02173399540921611
vn 0 -0.9998949965870997 0.014491231834596599
vn 0 -0.9999409315100345 0.01086892316858849
vn 0 -0.9999737460454936 0.007246186565546643
vn 0 -0.9999934363175116 0.003623164624338604
vn 0 -0.9999983590672611 0.001811591230195987
vn 0 -0.9999983590672611 -0.001811591230195987
vn 0 -0.9999934363175116 -0.003623164624338604
vn 0 -0.9999737460454936 -0.007246186565546643
vn 0 -0.9999409315100345 -0.01086892316858849
vn 0 -0.9998949965870997 -0.014491231834596599
vn 0 -0.9997637888239164 -0.02173399540921611
vn 0 -0.9995801847002224 -0.02897333868696487
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9993442708242972 -0.036208125754503516
vn 0 0.9995801847002224 -0.028973338686962932
vn 0 0.9997637888239164 -0.021733995409215556
vn 0 0.9998949965870997 -0.0144912318345956
vn 0 0.9999409315100345 -0.010868923168587324
vn 0 0.9999737460454936 -0.007246186565547032
vn 0 0.9999934363175116 -0.003623164624338826
vn 0 0.9999983590672611 -0.0018115912301943217
vn 0 0.9999983590672611 0.0018115912301943217
vn 0 0.9999934363175116 0.003623164624338826
vn 0 0.9999737460454936 0.007246186565547032
vn 0 0.9999409315100345 0.010868923168587324
vn 0 0.9998949965870997 0.0144912318345956
vn 0 0.9997637888239164 0.021733995409215556
vn 0 0.9995801847002224 0.028973338686962932
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,4 @@
# Made in Blockbench 4.9.0
newmtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
map_Kd leads_lead.png
newmtl none

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.9.0
mtllib leads_lead_slack10.mtl
o 10
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 -0.03623188405797097 4.375
v -0.3125 -0.6612318840579712 4.375
v -0.3125 -0.3152173913043478 3.75
v -0.3125 -0.9402173913043477 3.75
v -0.3125 -0.5244565217391305 3.125
v -0.3125 -1.1494565217391317 3.125
v -0.3125 -0.6639492753623188 2.5
v -0.3125 -1.2889492753623166 2.5
v -0.3125 -0.76856884057971 1.875
v -0.3125 -1.3935688405797109 1.875
v -0.3125 -0.8383152173913043 1.25
v -0.3125 -1.4633152173913033 1.25
v -0.3125 -0.8731884057971013 0.625
v -0.3125 -1.4981884057971029 0.625
v -0.3125 -0.8906249999999999 0
v -0.3125 -1.5156250000000004 0
v -0.3125 -0.8731884057971013 -0.625
v -0.3125 -1.4981884057971029 -0.625
v -0.3125 -0.8383152173913043 -1.25
v -0.3125 -1.4633152173913033 -1.25
v -0.3125 -0.76856884057971 -1.875
v -0.3125 -1.3935688405797109 -1.875
v -0.3125 -0.6639492753623188 -2.5
v -0.3125 -1.2889492753623166 -2.5
v -0.3125 -0.5244565217391305 -3.125
v -0.3125 -1.1494565217391317 -3.125
v -0.3125 -0.3152173913043478 -3.75
v -0.3125 -0.9402173913043477 -3.75
v -0.3125 -0.03623188405797097 -4.375
v -0.3125 -0.6612318840579712 -4.375
v 0.3125 -0.6612318840579712 4.375
v 0.3125 -0.9402173913043477 3.75
v 0.3125 -1.1494565217391317 3.125
v 0.3125 -1.2889492753623166 2.5
v 0.3125 -1.3935688405797109 1.875
v 0.3125 -1.4633152173913033 1.25
v 0.3125 -1.4981884057971029 0.625
v 0.3125 -1.5156250000000004 0
v 0.3125 -1.4981884057971029 -0.625
v 0.3125 -1.4633152173913033 -1.25
v 0.3125 -1.3935688405797109 -1.875
v 0.3125 -1.2889492753623166 -2.5
v 0.3125 -1.1494565217391317 -3.125
v 0.3125 -0.9402173913043477 -3.75
v 0.3125 -0.6612318840579712 -4.375
v 0.3125 -0.03623188405797097 4.375
v 0.3125 -0.3152173913043478 3.75
v 0.3125 -0.5244565217391305 3.125
v 0.3125 -0.6639492753623188 2.5
v 0.3125 -0.76856884057971 1.875
v 0.3125 -0.8383152173913043 1.25
v 0.3125 -0.8731884057971013 0.625
v 0.3125 -0.8906249999999999 0
v 0.3125 -0.8731884057971013 -0.625
v 0.3125 -0.8383152173913043 -1.25
v 0.3125 -0.76856884057971 -1.875
v 0.3125 -0.6639492753623188 -2.5
v 0.3125 -0.5244565217391305 -3.125
v 0.3125 -0.3152173913043478 -3.75
v 0.3125 -0.03623188405797097 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.8732603221705998 0.48725394787779835
vn 0 -0.8732603221705997 -0.4872539478777986
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.8732603221705997 0.4872539478777986
vn 0 -0.9131554754946897 0.40761142964110736
vn 0 -0.9482702003528958 0.3174643714224934
vn 0 -0.9759869561619184 0.21782897282453867
vn 0 -0.9862777823901936 0.1650943244435805
vn 0 -0.993830926350846 0.11090577004204817
vn 0 -0.9984469671078011 0.055710446715439205
vn 0 -0.9996110624600758 0.027887699930949805
vn 0 -0.9996110624600758 -0.027887699930949805
vn 0 -0.9984469671078011 -0.055710446715439205
vn 0 -0.993830926350846 -0.11090577004204817
vn 0 -0.9862777823901936 -0.1650943244435805
vn 0 -0.9759869561619184 -0.21782897282453867
vn 0 -0.9482702003528958 -0.3174643714224934
vn 0 -0.9131554754946897 -0.40761142964110736
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.8732603221705998 -0.48725394787779835
vn 0 0.9131554754946895 -0.4076114296411078
vn 0 0.9482702003528964 -0.31746437142249145
vn 0 0.9759869561619173 -0.21782897282454386
vn 0 0.9862777823901943 -0.1650943244435758
vn 0 0.9938309263508456 -0.11090577004205099
vn 0 0.9984469671078013 -0.05571044671543523
vn 0 0.9996110624600758 -0.02788769993095136
vn 0 0.9996110624600758 0.02788769993095136
vn 0 0.9984469671078013 0.05571044671543523
vn 0 0.9938309263508456 0.11090577004205099
vn 0 0.9862777823901943 0.1650943244435758
vn 0 0.9759869561619173 0.21782897282454386
vn 0 0.9482702003528964 0.31746437142249145
vn 0 0.9131554754946895 0.4076114296411078
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,4 @@
# Made in Blockbench 4.9.0
newmtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
map_Kd leads_lead.png
newmtl none

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.9.0
mtllib leads_lead_slack11.mtl
o 11
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 -0.072463768115942 4.375
v -0.3125 -0.6974637681159424 4.375
v -0.3125 -0.3804347826086957 3.75
v -0.3125 -1.0054347826086962 3.75
v -0.3125 -0.611413043478261 3.125
v -0.3125 -1.2364130434782616 3.125
v -0.3125 -0.7653985507246377 2.5
v -0.3125 -1.3903985507246341 2.5
v -0.3125 -0.8808876811594202 1.875
v -0.3125 -1.5058876811594213 1.875
v -0.3125 -0.9578804347826086 1.25
v -0.3125 -1.5828804347826075 1.25
v -0.3125 -0.9963768115942029 0.625
v -0.3125 -1.621376811594204 0.625
v -0.3125 -1.015625 0
v -0.3125 -1.640625 0
v -0.3125 -0.9963768115942029 -0.625
v -0.3125 -1.621376811594204 -0.625
v -0.3125 -0.9578804347826086 -1.25
v -0.3125 -1.5828804347826075 -1.25
v -0.3125 -0.8808876811594202 -1.875
v -0.3125 -1.5058876811594213 -1.875
v -0.3125 -0.7653985507246377 -2.5
v -0.3125 -1.3903985507246341 -2.5
v -0.3125 -0.611413043478261 -3.125
v -0.3125 -1.2364130434782616 -3.125
v -0.3125 -0.3804347826086957 -3.75
v -0.3125 -1.0054347826086962 -3.75
v -0.3125 -0.072463768115942 -4.375
v -0.3125 -0.6974637681159424 -4.375
v 0.3125 -0.6974637681159424 4.375
v 0.3125 -1.0054347826086962 3.75
v 0.3125 -1.2364130434782616 3.125
v 0.3125 -1.3903985507246341 2.5
v 0.3125 -1.5058876811594213 1.875
v 0.3125 -1.5828804347826075 1.25
v 0.3125 -1.621376811594204 0.625
v 0.3125 -1.640625 0
v 0.3125 -1.621376811594204 -0.625
v 0.3125 -1.5828804347826075 -1.25
v 0.3125 -1.5058876811594213 -1.875
v 0.3125 -1.3903985507246341 -2.5
v 0.3125 -1.2364130434782616 -3.125
v 0.3125 -1.0054347826086962 -3.75
v 0.3125 -0.6974637681159424 -4.375
v 0.3125 -0.072463768115942 4.375
v 0.3125 -0.3804347826086957 3.75
v 0.3125 -0.611413043478261 3.125
v 0.3125 -0.7653985507246377 2.5
v 0.3125 -0.8808876811594202 1.875
v 0.3125 -0.9578804347826086 1.25
v 0.3125 -0.9963768115942029 0.625
v 0.3125 -1.015625 0
v 0.3125 -0.9963768115942029 -0.625
v 0.3125 -0.9578804347826086 -1.25
v 0.3125 -0.8808876811594202 -1.875
v 0.3125 -0.7653985507246377 -2.5
v 0.3125 -0.611413043478261 -3.125
v 0.3125 -0.3804347826086957 -3.75
v 0.3125 -0.072463768115942 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.8514464050212137 0.5244416262811823
vn 0 -0.8514464050212136 -0.5244416262811827
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.8514464050212136 0.5244416262811827
vn 0 -0.8970121097452229 0.44200596712083484
vn 0 -0.9379944988291135 0.34665014087162915
vn 0 -0.9709646117278045 0.23922316520829295
vn 0 -0.9833528099170955 0.1817064974846878
vn 0 -0.9924975901253333 0.12226419588500141
vn 0 -0.9981084575515975 0.06147769484919619
vn 0 -0.9995261063469288 0.030782506898363815
vn 0 -0.9995261063469288 -0.030782506898363815
vn 0 -0.9981084575515975 -0.06147769484919619
vn 0 -0.9924975901253333 -0.12226419588500141
vn 0 -0.9833528099170955 -0.1817064974846878
vn 0 -0.9709646117278045 -0.23922316520829295
vn 0 -0.9379944988291135 -0.34665014087162915
vn 0 -0.8970121097452229 -0.44200596712083484
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.8514464050212137 -0.5244416262811823
vn 0 0.8970121097452229 -0.44200596712083456
vn 0 0.9379944988291135 -0.346650140871629
vn 0 0.9709646117278028 -0.23922316520829923
vn 0 0.9833528099170967 -0.18170649748468062
vn 0 0.9924975901253329 -0.12226419588500488
vn 0 0.9981084575515977 -0.06147769484919266
vn 0 0.9995261063469288 -0.030782506898365588
vn 0 0.9995261063469288 0.030782506898365588
vn 0 0.9981084575515977 0.06147769484919266
vn 0 0.9924975901253329 0.12226419588500488
vn 0 0.9833528099170967 0.18170649748468062
vn 0 0.9709646117278028 0.23922316520829923
vn 0 0.9379944988291135 0.346650140871629
vn 0 0.8970121097452229 0.44200596712083456
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,4 @@
# Made in Blockbench 4.9.0
newmtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
map_Kd leads_lead.png
newmtl none

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.9.0
mtllib leads_lead_slack12.mtl
o 12
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 -0.10869565217391304 4.375
v -0.3125 -0.7336956521739135 4.375
v -0.3125 -0.44565217391304357 3.75
v -0.3125 -1.0706521739130448 3.75
v -0.3125 -0.6983695652173915 3.125
v -0.3125 -1.3233695652173916 3.125
v -0.3125 -0.8668478260869567 2.5
v -0.3125 -1.4918478260869517 2.5
v -0.3125 -0.9932065217391304 1.875
v -0.3125 -1.6182065217391317 1.875
v -0.3125 -1.077445652173913 1.25
v -0.3125 -1.7024456521739117 1.25
v -0.3125 -1.1195652173913047 0.625
v -0.3125 -1.744565217391305 0.625
v -0.3125 -1.140625 0
v -0.3125 -1.7656249999999996 0
v -0.3125 -1.1195652173913047 -0.625
v -0.3125 -1.744565217391305 -0.625
v -0.3125 -1.077445652173913 -1.25
v -0.3125 -1.7024456521739117 -1.25
v -0.3125 -0.9932065217391304 -1.875
v -0.3125 -1.6182065217391317 -1.875
v -0.3125 -0.8668478260869567 -2.5
v -0.3125 -1.4918478260869517 -2.5
v -0.3125 -0.6983695652173915 -3.125
v -0.3125 -1.3233695652173916 -3.125
v -0.3125 -0.44565217391304357 -3.75
v -0.3125 -1.0706521739130448 -3.75
v -0.3125 -0.10869565217391304 -4.375
v -0.3125 -0.7336956521739135 -4.375
v 0.3125 -0.7336956521739135 4.375
v 0.3125 -1.0706521739130448 3.75
v 0.3125 -1.3233695652173916 3.125
v 0.3125 -1.4918478260869517 2.5
v 0.3125 -1.6182065217391317 1.875
v 0.3125 -1.7024456521739117 1.25
v 0.3125 -1.744565217391305 0.625
v 0.3125 -1.7656249999999996 0
v 0.3125 -1.744565217391305 -0.625
v 0.3125 -1.7024456521739117 -1.25
v 0.3125 -1.6182065217391317 -1.875
v 0.3125 -1.4918478260869517 -2.5
v 0.3125 -1.3233695652173916 -3.125
v 0.3125 -1.0706521739130448 -3.75
v 0.3125 -0.7336956521739135 -4.375
v 0.3125 -0.10869565217391304 4.375
v 0.3125 -0.44565217391304357 3.75
v 0.3125 -0.6983695652173915 3.125
v 0.3125 -0.8668478260869567 2.5
v 0.3125 -0.9932065217391304 1.875
v 0.3125 -1.077445652173913 1.25
v 0.3125 -1.1195652173913047 0.625
v 0.3125 -1.140625 0
v 0.3125 -1.1195652173913047 -0.625
v 0.3125 -1.077445652173913 -1.25
v 0.3125 -0.9932065217391304 -1.875
v 0.3125 -0.8668478260869567 -2.5
v 0.3125 -0.6983695652173915 -3.125
v 0.3125 -0.44565217391304357 -3.75
v 0.3125 -0.10869565217391304 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.8292664275911584 0.5588534620723024
vn 0 -0.829266427591158 -0.5588534620723027
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.829266427591158 0.5588534620723027
vn 0 -0.8802252067242207 0.47455619840784186
vn 0 -0.9270802632050156 0.37486288903507
vn 0 -0.9655346471988956 0.2602745570709987
vn 0 -0.9801687656829663 0.19816455480113107
vn 0 -0.991038736124258 0.1335747861732655
vn 0 -0.9977369116493539 0.06723879187202494
vn 0 -0.999432784477704 0.0336765394769642
vn 0 -0.999432784477704 -0.0336765394769642
vn 0 -0.9977369116493539 -0.06723879187202494
vn 0 -0.991038736124258 -0.1335747861732655
vn 0 -0.9801687656829663 -0.19816455480113107
vn 0 -0.9655346471988956 -0.2602745570709987
vn 0 -0.9270802632050156 -0.37486288903507
vn 0 -0.8802252067242207 -0.47455619840784186
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.8292664275911584 -0.5588534620723024
vn 0 0.8802252067242212 -0.4745561984078411
vn 0 0.9270802632050149 -0.37486288903507137
vn 0 0.9655346471988935 -0.26027455707100605
vn 0 0.9801687656829682 -0.19816455480112144
vn 0 0.9910387361242573 -0.1335747861732698
vn 0 0.9977369116493541 -0.06723879187202185
vn 0 0.9994327844777038 -0.033676539476965965
vn 0 0.9994327844777038 0.033676539476965965
vn 0 0.9977369116493541 0.06723879187202185
vn 0 0.9910387361242573 0.1335747861732698
vn 0 0.9801687656829682 0.19816455480112144
vn 0 0.9655346471988935 0.26027455707100605
vn 0 0.9270802632050149 0.37486288903507137
vn 0 0.8802252067242212 0.4745561984078411
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack2.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.2536231884057971 4.375
v -0.3125 -0.3713768115942029 4.375
v -0.3125 0.2065217391304348 3.75
v -0.3125 -0.41847826086956696 3.75
v -0.3125 0.17119565217391305 3.125
v -0.3125 -0.45380434782609 3.125
v -0.3125 0.14764492753623193 2.5
v -0.3125 -0.47735507246376985 2.5
v -0.3125 0.1299818840579711 1.875
v -0.3125 -0.49501811594203193 1.875
v -0.3125 0.11820652173913052 1.25
v -0.3125 -0.5067934782608718 1.25
v -0.3125 0.11231884057971021 0.625
v -0.3125 -0.5126811594202929 0.625
v -0.3125 0.10937500000000006 0
v -0.3125 -0.515625000000004 0
v -0.3125 0.11231884057971021 -0.625
v -0.3125 -0.5126811594202929 -0.625
v -0.3125 0.11820652173913052 -1.25
v -0.3125 -0.5067934782608718 -1.25
v -0.3125 0.1299818840579711 -1.875
v -0.3125 -0.49501811594203193 -1.875
v -0.3125 0.14764492753623193 -2.5
v -0.3125 -0.47735507246376985 -2.5
v -0.3125 0.17119565217391305 -3.125
v -0.3125 -0.45380434782609 -3.125
v -0.3125 0.2065217391304348 -3.75
v -0.3125 -0.41847826086956696 -3.75
v -0.3125 0.2536231884057971 -4.375
v -0.3125 -0.3713768115942029 -4.375
v 0.3125 -0.3713768115942029 4.375
v 0.3125 -0.41847826086956696 3.75
v 0.3125 -0.45380434782609 3.125
v 0.3125 -0.47735507246376985 2.5
v 0.3125 -0.49501811594203193 1.875
v 0.3125 -0.5067934782608718 1.25
v 0.3125 -0.5126811594202929 0.625
v 0.3125 -0.515625000000004 0
v 0.3125 -0.5126811594202929 -0.625
v 0.3125 -0.5067934782608718 -1.25
v 0.3125 -0.49501811594203193 -1.875
v 0.3125 -0.47735507246376985 -2.5
v 0.3125 -0.45380434782609 -3.125
v 0.3125 -0.41847826086956696 -3.75
v 0.3125 -0.3713768115942029 -4.375
v 0.3125 0.2536231884057971 4.375
v 0.3125 0.2065217391304348 3.75
v 0.3125 0.17119565217391305 3.125
v 0.3125 0.14764492753623193 2.5
v 0.3125 0.1299818840579711 1.875
v 0.3125 0.11820652173913052 1.25
v 0.3125 0.11231884057971021 0.625
v 0.3125 0.10937500000000006 0
v 0.3125 0.11231884057971021 -0.625
v 0.3125 0.11820652173913052 -1.25
v 0.3125 0.1299818840579711 -1.875
v 0.3125 0.14764492753623193 -2.5
v 0.3125 0.17119565217391305 -3.125
v 0.3125 0.2065217391304348 -3.75
v 0.3125 0.2536231884057971 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.995592221935305 0.09378767308086206
vn 0 -0.995592221935305 -0.09378767308086206
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.995592221935305 0.09378767308086206
vn 0 -0.9971722996636108 0.07514921678624595
vn 0 -0.9984064636492579 0.05643166968452539
vn 0 -0.999290820230267 0.03765443670432676
vn 0 -0.9996009006733184 0.028249590671204423
vn 0 -0.9998225635148275 0.018837236703901476
vn 0 -0.9999556320224742 0.009419871895865128
vn 0 -0.9999889074519506 0.004710092680028812
vn 0 -0.9999889074519506 -0.004710092680028812
vn 0 -0.9999556320224742 -0.009419871895865128
vn 0 -0.9998225635148275 -0.018837236703901476
vn 0 -0.9996009006733184 -0.028249590671204423
vn 0 -0.999290820230267 -0.03765443670432676
vn 0 -0.9984064636492579 -0.05643166968452539
vn 0 -0.9971722996636108 -0.07514921678624595
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.995592221935305 -0.09378767308086206
vn 0 0.997172299663611 -0.07514921678624313
vn 0 0.9984064636492579 -0.05643166968452328
vn 0 0.999290820230267 -0.03765443670432887
vn 0 0.9996009006733186 -0.028249590671202432
vn 0 0.9998225635148275 -0.01883723670390253
vn 0 0.9999556320224742 -0.009419871895863907
vn 0 0.9999889074519506 -0.004710092680027313
vn 0 0.9999889074519506 0.004710092680027313
vn 0 0.9999556320224742 0.009419871895863907
vn 0 0.9998225635148275 0.01883723670390253
vn 0 0.9996009006733186 0.028249590671202432
vn 0 0.999290820230267 0.03765443670432887
vn 0 0.9984064636492579 0.05643166968452328
vn 0 0.997172299663611 0.07514921678624313
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack3.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.2173913043478261 4.375
v -0.3125 -0.40760869565217406 4.375
v -0.3125 0.14130434782608697 3.75
v -0.3125 -0.4836956521739155 3.75
v -0.3125 0.08423913043478261 3.125
v -0.3125 -0.54076086956522 3.125
v -0.3125 0.046195652173913054 2.5
v -0.3125 -0.5788043478260885 2.5
v -0.3125 0.01766304347826094 1.875
v -0.3125 -0.6073369565217412 1.875
v -0.3125 -0.0013586956521738358 1.25
v -0.3125 -0.626358695652175 1.25
v -0.3125 -0.010869565217391242 0.625
v -0.3125 -0.635869565217394 0.625
v -0.3125 -0.015624999999999944 0
v -0.3125 -0.6406250000000036 0
v -0.3125 -0.010869565217391242 -0.625
v -0.3125 -0.635869565217394 -0.625
v -0.3125 -0.0013586956521738358 -1.25
v -0.3125 -0.626358695652175 -1.25
v -0.3125 0.01766304347826094 -1.875
v -0.3125 -0.6073369565217412 -1.875
v -0.3125 0.046195652173913054 -2.5
v -0.3125 -0.5788043478260885 -2.5
v -0.3125 0.08423913043478261 -3.125
v -0.3125 -0.54076086956522 -3.125
v -0.3125 0.14130434782608697 -3.75
v -0.3125 -0.4836956521739155 -3.75
v -0.3125 0.2173913043478261 -4.375
v -0.3125 -0.40760869565217406 -4.375
v 0.3125 -0.40760869565217406 4.375
v 0.3125 -0.4836956521739155 3.75
v 0.3125 -0.54076086956522 3.125
v 0.3125 -0.5788043478260885 2.5
v 0.3125 -0.6073369565217412 1.875
v 0.3125 -0.626358695652175 1.25
v 0.3125 -0.635869565217394 0.625
v 0.3125 -0.6406250000000036 0
v 0.3125 -0.635869565217394 -0.625
v 0.3125 -0.626358695652175 -1.25
v 0.3125 -0.6073369565217412 -1.875
v 0.3125 -0.5788043478260885 -2.5
v 0.3125 -0.54076086956522 -3.125
v 0.3125 -0.4836956521739155 -3.75
v 0.3125 -0.40760869565217406 -4.375
v 0.3125 0.2173913043478261 4.375
v 0.3125 0.14130434782608697 3.75
v 0.3125 0.08423913043478261 3.125
v 0.3125 0.046195652173913054 2.5
v 0.3125 0.01766304347826094 1.875
v 0.3125 -0.0013586956521738358 1.25
v 0.3125 -0.010869565217391242 0.625
v 0.3125 -0.015624999999999944 0
v 0.3125 -0.010869565217391242 -0.625
v 0.3125 -0.0013586956521738358 -1.25
v 0.3125 0.01766304347826094 -1.875
v 0.3125 0.046195652173913054 -2.5
v 0.3125 0.08423913043478261 -3.125
v 0.3125 0.14130434782608697 -3.75
v 0.3125 0.2173913043478261 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9886188373396116 0.1504419969864626
vn 0 -0.9886188373396114 -0.15044199698646285
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9886188373396114 0.15044199698646285
vn 0 -0.992671154592933 0.12084692316783903
vn 0 -0.9958576396563775 0.09092613231645198
vn 0 -0.9981525800951077 0.06075711357100487
vn 0 -0.9989595655198498 0.04560467581721149
vn 0 -0.9995371835008333 0.030420696889154067
vn 0 -0.9998842356061407 0.015215629672270047
vn 0 -0.9999710551319929 0.007608475419483899
vn 0 -0.9999710551319929 -0.007608475419483899
vn 0 -0.9998842356061407 -0.015215629672270047
vn 0 -0.9995371835008333 -0.030420696889154067
vn 0 -0.9989595655198498 -0.04560467581721149
vn 0 -0.9981525800951077 -0.06075711357100487
vn 0 -0.9958576396563775 -0.09092613231645198
vn 0 -0.992671154592933 -0.12084692316783903
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9886188373396116 -0.1504419969864626
vn 0 0.9926711545929334 -0.1208469231678354
vn 0 0.9958576396563775 -0.09092613231645189
vn 0 0.9981525800951074 -0.06075711357100652
vn 0 0.99895956551985 -0.04560467581721044
vn 0 0.9995371835008331 -0.03042069688915578
vn 0 0.9998842356061409 -0.015215629672267385
vn 0 0.9999710551319929 -0.007608475419482567
vn 0 0.9999710551319929 0.007608475419482567
vn 0 0.9998842356061409 0.015215629672267385
vn 0 0.9995371835008331 0.03042069688915578
vn 0 0.99895956551985 0.04560467581721044
vn 0 0.9981525800951074 0.06075711357100652
vn 0 0.9958576396563775 0.09092613231645189
vn 0 0.9926711545929334 0.1208469231678354
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack4.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.1811594202898551 4.375
v -0.3125 -0.4438405797101441 4.375
v -0.3125 0.07608695652173918 3.75
v -0.3125 -0.548913043478263 3.75
v -0.3125 -0.0027173913043478104 3.125
v -0.3125 -0.6277173913043499 3.125
v -0.3125 -0.05525362318840578 2.5
v -0.3125 -0.6802536231884071 2.5
v -0.3125 -0.09465579710144917 1.875
v -0.3125 -0.7196557971014506 1.875
v -0.3125 -0.12092391304347819 1.25
v -0.3125 -0.7459239130434792 1.25
v -0.3125 -0.13405797101449263 0.625
v -0.3125 -0.7590579710144951 0.625
v -0.3125 -0.14062499999999992 0
v -0.3125 -0.7656250000000031 0
v -0.3125 -0.13405797101449263 -0.625
v -0.3125 -0.7590579710144951 -0.625
v -0.3125 -0.12092391304347819 -1.25
v -0.3125 -0.7459239130434792 -1.25
v -0.3125 -0.09465579710144917 -1.875
v -0.3125 -0.7196557971014506 -1.875
v -0.3125 -0.05525362318840578 -2.5
v -0.3125 -0.6802536231884071 -2.5
v -0.3125 -0.0027173913043478104 -3.125
v -0.3125 -0.6277173913043499 -3.125
v -0.3125 0.07608695652173918 -3.75
v -0.3125 -0.548913043478263 -3.75
v -0.3125 0.1811594202898551 -4.375
v -0.3125 -0.4438405797101441 -4.375
v 0.3125 -0.4438405797101441 4.375
v 0.3125 -0.548913043478263 3.75
v 0.3125 -0.6277173913043499 3.125
v 0.3125 -0.6802536231884071 2.5
v 0.3125 -0.7196557971014506 1.875
v 0.3125 -0.7459239130434792 1.25
v 0.3125 -0.7590579710144951 0.625
v 0.3125 -0.7656250000000031 0
v 0.3125 -0.7590579710144951 -0.625
v 0.3125 -0.7459239130434792 -1.25
v 0.3125 -0.7196557971014506 -1.875
v 0.3125 -0.6802536231884071 -2.5
v 0.3125 -0.6277173913043499 -3.125
v 0.3125 -0.548913043478263 -3.75
v 0.3125 -0.4438405797101441 -4.375
v 0.3125 0.1811594202898551 4.375
v 0.3125 0.07608695652173918 3.75
v 0.3125 -0.0027173913043478104 3.125
v 0.3125 -0.05525362318840578 2.5
v 0.3125 -0.09465579710144917 1.875
v 0.3125 -0.12092391304347819 1.25
v 0.3125 -0.13405797101449263 0.625
v 0.3125 -0.14062499999999992 0
v 0.3125 -0.13405797101449263 -0.625
v 0.3125 -0.12092391304347819 -1.25
v 0.3125 -0.09465579710144917 -1.875
v 0.3125 -0.05525362318840578 -2.5
v 0.3125 -0.0027173913043478104 -3.125
v 0.3125 0.07608695652173918 -3.75
v 0.3125 0.1811594202898551 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9786249609434372 0.20565307150260628
vn 0 -0.9786249609434374 -0.20565307150260514
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9786249609434374 0.20565307150260514
vn 0 -0.986161178363107 0.16578941549293272
vn 0 -0.9921445802161726 0.1250964905489956
vn 0 -0.9964857409645524 0.08376256953035247
vn 0 -0.998018664057411 0.06291856795144544
vn 0 -0.9991179505793901 0.04199191386493028
vn 0 -0.9997792686521608 0.02100985419631588
vn 0 -0.9999448034571123 0.010506666413137505
vn 0 -0.9999448034571123 -0.010506666413137505
vn 0 -0.9997792686521608 -0.02100985419631588
vn 0 -0.9991179505793901 -0.04199191386493028
vn 0 -0.998018664057411 -0.06291856795144544
vn 0 -0.9964857409645524 -0.08376256953035247
vn 0 -0.9921445802161726 -0.1250964905489956
vn 0 -0.986161178363107 -0.16578941549293272
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9786249609434372 -0.20565307150260628
vn 0 0.9861611783631079 -0.16578941549292828
vn 0 0.9921445802161726 -0.12509649054899571
vn 0 0.9964857409645522 -0.08376256953035366
vn 0 0.998018664057411 -0.06291856795144533
vn 0 0.9991179505793899 -0.04199191386493094
vn 0 0.9997792686521608 -0.021009854196313443
vn 0 0.9999448034571123 -0.010506666413136394
vn 0 0.9999448034571123 0.010506666413136394
vn 0 0.9997792686521608 0.021009854196313443
vn 0 0.9991179505793899 0.04199191386493094
vn 0 0.998018664057411 0.06291856795144533
vn 0 0.9964857409645522 0.08376256953035366
vn 0 0.9921445802161726 0.12509649054899571
vn 0 0.9861611783631079 0.16578941549292828
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack5.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.1449275362318841 4.375
v -0.3125 -0.4800724637681153 4.375
v -0.3125 0.010869565217391346 3.75
v -0.3125 -0.6141304347826104 3.75
v -0.3125 -0.08967391304347823 3.125
v -0.3125 -0.7146739130434798 3.125
v -0.3125 -0.1567028985507246 2.5
v -0.3125 -0.7817028985507257 2.5
v -0.3125 -0.2069746376811593 1.875
v -0.3125 -0.8319746376811599 1.875
v -0.3125 -0.24048913043478254 1.25
v -0.3125 -0.8654891304347834 1.25
v -0.3125 -0.25724637681159407 0.625
v -0.3125 -0.8822463768115962 0.625
v -0.3125 -0.2656249999999999 0
v -0.3125 -0.8906250000000027 0
v -0.3125 -0.25724637681159407 -0.625
v -0.3125 -0.8822463768115962 -0.625
v -0.3125 -0.24048913043478254 -1.25
v -0.3125 -0.8654891304347834 -1.25
v -0.3125 -0.2069746376811593 -1.875
v -0.3125 -0.8319746376811599 -1.875
v -0.3125 -0.1567028985507246 -2.5
v -0.3125 -0.7817028985507257 -2.5
v -0.3125 -0.08967391304347823 -3.125
v -0.3125 -0.7146739130434798 -3.125
v -0.3125 0.010869565217391346 -3.75
v -0.3125 -0.6141304347826104 -3.75
v -0.3125 0.1449275362318841 -4.375
v -0.3125 -0.4800724637681153 -4.375
v 0.3125 -0.4800724637681153 4.375
v 0.3125 -0.6141304347826104 3.75
v 0.3125 -0.7146739130434798 3.125
v 0.3125 -0.7817028985507257 2.5
v 0.3125 -0.8319746376811599 1.875
v 0.3125 -0.8654891304347834 1.25
v 0.3125 -0.8822463768115962 0.625
v 0.3125 -0.8906250000000027 0
v 0.3125 -0.8822463768115962 -0.625
v 0.3125 -0.8654891304347834 -1.25
v 0.3125 -0.8319746376811599 -1.875
v 0.3125 -0.7817028985507257 -2.5
v 0.3125 -0.7146739130434798 -3.125
v 0.3125 -0.6141304347826104 -3.75
v 0.3125 -0.4800724637681153 -4.375
v 0.3125 0.1449275362318841 4.375
v 0.3125 0.010869565217391346 3.75
v 0.3125 -0.08967391304347823 3.125
v 0.3125 -0.1567028985507246 2.5
v 0.3125 -0.2069746376811593 1.875
v 0.3125 -0.24048913043478254 1.25
v 0.3125 -0.25724637681159407 0.625
v 0.3125 -0.2656249999999999 0
v 0.3125 -0.25724637681159407 -0.625
v 0.3125 -0.24048913043478254 -1.25
v 0.3125 -0.2069746376811593 -1.875
v 0.3125 -0.1567028985507246 -2.5
v 0.3125 -0.08967391304347823 -3.125
v 0.3125 0.010869565217391346 -3.75
v 0.3125 0.1449275362318841 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9658855493432027 0.2589693139543369
vn 0 -0.9658855493432028 -0.258969313954336
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9658855493432028 0.258969313954336
vn 0 -0.977760920439559 0.20972263221022797
vn 0 -0.987306341485171 0.15882754189109247
vn 0 -0.9942982457217026 0.10663488432377603
vn 0 -0.9967807353668278 0.08017584175776557
vn 0 -0.9985653699934954 0.053546258970666206
vn 0 -0.9996407628778761 0.026801962482959577
vn 0 -0.9999101544118326 0.013404592649724857
vn 0 -0.9999101544118326 -0.013404592649724857
vn 0 -0.9996407628778761 -0.026801962482959577
vn 0 -0.9985653699934954 -0.053546258970666206
vn 0 -0.9967807353668278 -0.08017584175776557
vn 0 -0.9942982457217026 -0.10663488432377603
vn 0 -0.987306341485171 -0.15882754189109247
vn 0 -0.977760920439559 -0.20972263221022797
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9658855493432027 -0.2589693139543369
vn 0 0.9777609204395599 -0.20972263221022439
vn 0 0.987306341485171 -0.15882754189109274
vn 0 0.9942982457217023 -0.10663488432377678
vn 0 0.9967807353668278 -0.08017584175776644
vn 0 0.9985653699934954 -0.05354625897066576
vn 0 0.9996407628778763 -0.026801962482957475
vn 0 0.9999101544118328 -0.013404592649723861
vn 0 0.9999101544118328 0.013404592649723861
vn 0 0.9996407628778763 0.026801962482957475
vn 0 0.9985653699934954 0.05354625897066576
vn 0 0.9967807353668278 0.08017584175776644
vn 0 0.9942982457217023 0.10663488432377678
vn 0 0.987306341485171 0.15882754189109274
vn 0 0.9777609204395599 0.20972263221022439
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack6.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.10869565217391308 4.375
v -0.3125 -0.5163043478260865 4.375
v -0.3125 -0.054347826086956486 3.75
v -0.3125 -0.6793478260869579 3.75
v -0.3125 -0.1766304347826087 3.125
v -0.3125 -0.8016304347826098 3.125
v -0.3125 -0.25815217391304346 2.5
v -0.3125 -0.8831521739130443 2.5
v -0.3125 -0.31929347826086946 1.875
v -0.3125 -0.9442934782608692 1.875
v -0.3125 -0.3600543478260869 1.25
v -0.3125 -0.9850543478260876 1.25
v -0.3125 -0.38043478260869557 0.625
v -0.3125 -1.0054347826086973 0.625
v -0.3125 -0.3906249999999999 0
v -0.3125 -1.0156250000000022 0
v -0.3125 -0.38043478260869557 -0.625
v -0.3125 -1.0054347826086973 -0.625
v -0.3125 -0.3600543478260869 -1.25
v -0.3125 -0.9850543478260876 -1.25
v -0.3125 -0.31929347826086946 -1.875
v -0.3125 -0.9442934782608692 -1.875
v -0.3125 -0.25815217391304346 -2.5
v -0.3125 -0.8831521739130443 -2.5
v -0.3125 -0.1766304347826087 -3.125
v -0.3125 -0.8016304347826098 -3.125
v -0.3125 -0.054347826086956486 -3.75
v -0.3125 -0.6793478260869579 -3.75
v -0.3125 0.10869565217391308 -4.375
v -0.3125 -0.5163043478260865 -4.375
v 0.3125 -0.5163043478260865 4.375
v 0.3125 -0.6793478260869579 3.75
v 0.3125 -0.8016304347826098 3.125
v 0.3125 -0.8831521739130443 2.5
v 0.3125 -0.9442934782608692 1.875
v 0.3125 -0.9850543478260876 1.25
v 0.3125 -1.0054347826086973 0.625
v 0.3125 -1.0156250000000022 0
v 0.3125 -1.0054347826086973 -0.625
v 0.3125 -0.9850543478260876 -1.25
v 0.3125 -0.9442934782608692 -1.875
v 0.3125 -0.8831521739130443 -2.5
v 0.3125 -0.8016304347826098 -3.125
v 0.3125 -0.6793478260869579 -3.75
v 0.3125 -0.5163043478260865 -4.375
v 0.3125 0.10869565217391308 4.375
v 0.3125 -0.054347826086956486 3.75
v 0.3125 -0.1766304347826087 3.125
v 0.3125 -0.25815217391304346 2.5
v 0.3125 -0.31929347826086946 1.875
v 0.3125 -0.3600543478260869 1.25
v 0.3125 -0.38043478260869557 0.625
v 0.3125 -0.3906249999999999 0
v 0.3125 -0.38043478260869557 -0.625
v 0.3125 -0.3600543478260869 -1.25
v 0.3125 -0.31929347826086946 -1.875
v 0.3125 -0.25815217391304346 -2.5
v 0.3125 -0.1766304347826087 -3.125
v 0.3125 -0.054347826086956486 -3.75
v 0.3125 0.10869565217391308 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9507298394814788 0.31002059983091695
vn 0 -0.950729839481479 -0.31002059983091634
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.950729839481479 0.31002059983091634
vn 0 -0.9676172723968431 0.2524218971470054
vn 0 -0.9813926548600209 0.19201160638565581
vn 0 -0.9916004111862218 0.12933918406776776
vn 0 -0.9952491006685262 0.09736132506539731
vn 0 -0.9978801059658183 0.06507913734559846
vn 0 -0.9994687601077146 0.03259137261220978
vn 0 -0.9998671106150603 0.016302181151333354
vn 0 -0.9998671106150603 -0.016302181151333354
vn 0 -0.9994687601077146 -0.03259137261220978
vn 0 -0.9978801059658183 -0.06507913734559846
vn 0 -0.9952491006685262 -0.09736132506539731
vn 0 -0.9916004111862218 -0.12933918406776776
vn 0 -0.9813926548600209 -0.19201160638565581
vn 0 -0.9676172723968431 -0.2524218971470054
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9507298394814788 -0.31002059983091695
vn 0 0.9676172723968439 -0.25242189714700275
vn 0 0.9813926548600209 -0.19201160638565637
vn 0 0.9916004111862218 -0.12933918406776795
vn 0 0.995249100668526 -0.09736132506539916
vn 0 0.9978801059658186 -0.06507913734559692
vn 0 0.9994687601077146 -0.03259137261220801
vn 0 0.9998671106150603 -0.016302181151332466
vn 0 0.9998671106150603 0.016302181151332466
vn 0 0.9994687601077146 0.03259137261220801
vn 0 0.9978801059658186 0.06507913734559692
vn 0 0.995249100668526 0.09736132506539916
vn 0 0.9916004111862218 0.12933918406776795
vn 0 0.9813926548600209 0.19201160638565637
vn 0 0.9676172723968439 0.25242189714700275
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack7.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.07246376811594207 4.375
v -0.3125 -0.5525362318840576 4.375
v -0.3125 -0.11956521739130428 3.75
v -0.3125 -0.7445652173913053 3.75
v -0.3125 -0.26358695652173914 3.125
v -0.3125 -0.8885869565217397 3.125
v -0.3125 -0.3596014492753623 2.5
v -0.3125 -0.984601449275363 2.5
v -0.3125 -0.4316123188405796 1.875
v -0.3125 -1.0566123188405796 1.875
v -0.3125 -0.47961956521739124 1.25
v -0.3125 -1.1046195652173918 1.25
v -0.3125 -0.5036231884057969 0.625
v -0.3125 -1.1286231884057984 0.625
v -0.3125 -0.5156249999999998 0
v -0.3125 -1.1406250000000018 0
v -0.3125 -0.5036231884057969 -0.625
v -0.3125 -1.1286231884057984 -0.625
v -0.3125 -0.47961956521739124 -1.25
v -0.3125 -1.1046195652173918 -1.25
v -0.3125 -0.4316123188405796 -1.875
v -0.3125 -1.0566123188405796 -1.875
v -0.3125 -0.3596014492753623 -2.5
v -0.3125 -0.984601449275363 -2.5
v -0.3125 -0.26358695652173914 -3.125
v -0.3125 -0.8885869565217397 -3.125
v -0.3125 -0.11956521739130428 -3.75
v -0.3125 -0.7445652173913053 -3.75
v -0.3125 0.07246376811594207 -4.375
v -0.3125 -0.5525362318840576 -4.375
v 0.3125 -0.5525362318840576 4.375
v 0.3125 -0.7445652173913053 3.75
v 0.3125 -0.8885869565217397 3.125
v 0.3125 -0.984601449275363 2.5
v 0.3125 -1.0566123188405796 1.875
v 0.3125 -1.1046195652173918 1.25
v 0.3125 -1.1286231884057984 0.625
v 0.3125 -1.1406250000000018 0
v 0.3125 -1.1286231884057984 -0.625
v 0.3125 -1.1046195652173918 -1.25
v 0.3125 -1.0566123188405796 -1.875
v 0.3125 -0.984601449275363 -2.5
v 0.3125 -0.8885869565217397 -3.125
v 0.3125 -0.7445652173913053 -3.75
v 0.3125 -0.5525362318840576 -4.375
v 0.3125 0.07246376811594207 4.375
v 0.3125 -0.11956521739130428 3.75
v 0.3125 -0.26358695652173914 3.125
v 0.3125 -0.3596014492753623 2.5
v 0.3125 -0.4316123188405796 1.875
v 0.3125 -0.47961956521739124 1.25
v 0.3125 -0.5036231884057969 0.625
v 0.3125 -0.5156249999999998 0
v 0.3125 -0.5036231884057969 -0.625
v 0.3125 -0.47961956521739124 -1.25
v 0.3125 -0.4316123188405796 -1.875
v 0.3125 -0.3596014492753623 -2.5
v 0.3125 -0.26358695652173914 -3.125
v 0.3125 -0.11956521739130428 -3.75
v 0.3125 0.07246376811594207 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9335198424278247 0.35852573658459924
vn 0 -0.9335198424278248 -0.3585257365845989
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9335198424278248 0.3585257365845989
vn 0 -0.9558987443606234 0.29369642580355587
vn 0 -0.9744625531989032 0.22455006660670312
vn 0 -0.9884047949144682 0.15184189603033874
vn 0 -0.9934278387732237 0.11446016403256586
vn 0 -0.9970629794889134 0.07658599697523634
vn 0 -0.9992633122381398 0.03837750402074152
vn 0 -0.9998156753195351 0.01919935898258596
vn 0 -0.9998156753195351 -0.01919935898258596
vn 0 -0.9992633122381398 -0.03837750402074152
vn 0 -0.9970629794889134 -0.07658599697523634
vn 0 -0.9934278387732237 -0.11446016403256586
vn 0 -0.9884047949144682 -0.15184189603033874
vn 0 -0.9744625531989032 -0.22455006660670312
vn 0 -0.9558987443606234 -0.29369642580355587
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9335198424278247 -0.35852573658459924
vn 0 0.955898744360624 -0.29369642580355404
vn 0 0.9744625531989032 -0.2245500666067039
vn 0 0.9884047949144682 -0.1518418960303385
vn 0 0.9934278387732237 -0.11446016403256697
vn 0 0.9970629794889134 -0.07658599697523545
vn 0 0.9992633122381398 -0.038377504020739965
vn 0 0.9998156753195351 -0.019199358982585294
vn 0 0.9998156753195351 0.019199358982585294
vn 0 0.9992633122381398 0.038377504020739965
vn 0 0.9970629794889134 0.07658599697523545
vn 0 0.9934278387732237 0.11446016403256697
vn 0 0.9884047949144682 0.1518418960303385
vn 0 0.9744625531989032 0.2245500666067039
vn 0 0.955898744360624 0.29369642580355404
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack8.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 0.03623188405797104 4.375
v -0.3125 -0.5887681159420288 4.375
v -0.3125 -0.18478260869565216 3.75
v -0.3125 -0.8097826086956528 3.75
v -0.3125 -0.3505434782608696 3.125
v -0.3125 -0.9755434782608707 3.125
v -0.3125 -0.46105072463768115 2.5
v -0.3125 -1.0860507246376816 2.5
v -0.3125 -0.5439311594202898 1.875
v -0.3125 -1.16893115942029 1.875
v -0.3125 -0.5991847826086956 1.25
v -0.3125 -1.224184782608696 1.25
v -0.3125 -0.6268115942028984 0.625
v -0.3125 -1.2518115942028996 0.625
v -0.3125 -0.6406249999999998 0
v -0.3125 -1.2656250000000013 0
v -0.3125 -0.6268115942028984 -0.625
v -0.3125 -1.2518115942028996 -0.625
v -0.3125 -0.5991847826086956 -1.25
v -0.3125 -1.224184782608696 -1.25
v -0.3125 -0.5439311594202898 -1.875
v -0.3125 -1.16893115942029 -1.875
v -0.3125 -0.46105072463768115 -2.5
v -0.3125 -1.0860507246376816 -2.5
v -0.3125 -0.3505434782608696 -3.125
v -0.3125 -0.9755434782608707 -3.125
v -0.3125 -0.18478260869565216 -3.75
v -0.3125 -0.8097826086956528 -3.75
v -0.3125 0.03623188405797104 -4.375
v -0.3125 -0.5887681159420288 -4.375
v 0.3125 -0.5887681159420288 4.375
v 0.3125 -0.8097826086956528 3.75
v 0.3125 -0.9755434782608707 3.125
v 0.3125 -1.0860507246376816 2.5
v 0.3125 -1.16893115942029 1.875
v 0.3125 -1.224184782608696 1.25
v 0.3125 -1.2518115942028996 0.625
v 0.3125 -1.2656250000000013 0
v 0.3125 -1.2518115942028996 -0.625
v 0.3125 -1.224184782608696 -1.25
v 0.3125 -1.16893115942029 -1.875
v 0.3125 -1.0860507246376816 -2.5
v 0.3125 -0.9755434782608707 -3.125
v 0.3125 -0.8097826086956528 -3.75
v 0.3125 -0.5887681159420288 -4.375
v 0.3125 0.03623188405797104 4.375
v 0.3125 -0.18478260869565216 3.75
v 0.3125 -0.3505434782608696 3.125
v 0.3125 -0.46105072463768115 2.5
v 0.3125 -0.5439311594202898 1.875
v 0.3125 -0.5991847826086956 1.25
v 0.3125 -0.6268115942028984 0.625
v 0.3125 -0.6406249999999998 0
v 0.3125 -0.6268115942028984 -0.625
v 0.3125 -0.5991847826086956 -1.25
v 0.3125 -0.5439311594202898 -1.875
v 0.3125 -0.46105072463768115 -2.5
v 0.3125 -0.3505434782608696 -3.125
v 0.3125 -0.18478260869565216 -3.75
v 0.3125 0.03623188405797104 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.9146296143411422 0.40429280054209904
vn 0 -0.9146296143411424 -0.404292800542099
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.9146296143411424 0.404292800542099
vn 0 -0.9427883593879092 0.3333918256386241
vn 0 -0.9665828124945453 0.25635457200942374
vn 0 -0.9847260362807801 0.1741109803279049
vn 0 -0.9913217562692721 0.13145788507049
vn 0 -0.9961149656074496 0.08806233753920961
vn 0 -0.999024481194214 0.044159777791919194
vn 0 -0.9997558524111473 0.022096053259812107
vn 0 -0.9997558524111473 -0.022096053259812107
vn 0 -0.999024481194214 -0.044159777791919194
vn 0 -0.9961149656074496 -0.08806233753920961
vn 0 -0.9913217562692721 -0.13145788507049
vn 0 -0.9847260362807801 -0.1741109803279049
vn 0 -0.9665828124945453 -0.25635457200942374
vn 0 -0.9427883593879092 -0.3333918256386241
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.9146296143411422 -0.40429280054209904
vn 0 0.9427883593879096 -0.3333918256386231
vn 0 0.9665828124945455 -0.2563545720094231
vn 0 0.9847260362807797 -0.17411098032790592
vn 0 0.9913217562692721 -0.13145788507049022
vn 0 0.9961149656074496 -0.08806233753920939
vn 0 0.999024481194214 -0.044159777791918084
vn 0 0.9997558524111473 -0.022096053259811444
vn 0 0.9997558524111473 0.022096053259811444
vn 0 0.999024481194214 0.044159777791918084
vn 0 0.9961149656074496 0.08806233753920939
vn 0 0.9913217562692721 0.13145788507049022
vn 0 0.9847260362807797 0.17411098032790592
vn 0 0.9665828124945455 0.2563545720094231
vn 0 0.9427883593879096 0.3333918256386231
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

View file

@ -0,0 +1,469 @@
# Made in Blockbench 4.8.3
mtllib leads_lead_slack9.mtl
o cube
v 0.3125 0.3125 5
v 0.3125 0.3125 -5
v 0.3125 -0.3125 5
v 0.3125 -0.3125 -5
v -0.3125 0.3125 5
v -0.3125 0.3125 -5
v -0.3125 -0.3125 5
v -0.3125 -0.3125 -5
v -0.3125 3.469446951953614e-17 4.375
v -0.3125 -0.625 4.375
v -0.3125 -0.24999999999999997 3.75
v -0.3125 -0.8750000000000002 3.75
v -0.3125 -0.4375 3.125
v -0.3125 -1.0625000000000007 3.125
v -0.3125 -0.5625 2.5
v -0.3125 -1.1875000000000002 2.5
v -0.3125 -0.6562499999999999 1.875
v -0.3125 -1.2812500000000004 1.875
v -0.3125 -0.71875 1.25
v -0.3125 -1.3437500000000002 1.25
v -0.3125 -0.7499999999999998 0.625
v -0.3125 -1.3750000000000007 0.625
v -0.3125 -0.7656249999999998 0
v -0.3125 -1.3906250000000009 0
v -0.3125 -0.7499999999999998 -0.625
v -0.3125 -1.3750000000000007 -0.625
v -0.3125 -0.71875 -1.25
v -0.3125 -1.3437500000000002 -1.25
v -0.3125 -0.6562499999999999 -1.875
v -0.3125 -1.2812500000000004 -1.875
v -0.3125 -0.5625 -2.5
v -0.3125 -1.1875000000000002 -2.5
v -0.3125 -0.4375 -3.125
v -0.3125 -1.0625000000000007 -3.125
v -0.3125 -0.24999999999999997 -3.75
v -0.3125 -0.8750000000000002 -3.75
v -0.3125 3.469446951953614e-17 -4.375
v -0.3125 -0.625 -4.375
v 0.3125 -0.625 4.375
v 0.3125 -0.8750000000000002 3.75
v 0.3125 -1.0625000000000007 3.125
v 0.3125 -1.1875000000000002 2.5
v 0.3125 -1.2812500000000004 1.875
v 0.3125 -1.3437500000000002 1.25
v 0.3125 -1.3750000000000007 0.625
v 0.3125 -1.3906250000000009 0
v 0.3125 -1.3750000000000007 -0.625
v 0.3125 -1.3437500000000002 -1.25
v 0.3125 -1.2812500000000004 -1.875
v 0.3125 -1.1875000000000002 -2.5
v 0.3125 -1.0625000000000007 -3.125
v 0.3125 -0.8750000000000002 -3.75
v 0.3125 -0.625 -4.375
v 0.3125 3.469446951953614e-17 4.375
v 0.3125 -0.24999999999999997 3.75
v 0.3125 -0.4375 3.125
v 0.3125 -0.5625 2.5
v 0.3125 -0.6562499999999999 1.875
v 0.3125 -0.71875 1.25
v 0.3125 -0.7499999999999998 0.625
v 0.3125 -0.7656249999999998 0
v 0.3125 -0.7499999999999998 -0.625
v 0.3125 -0.71875 -1.25
v 0.3125 -0.6562499999999999 -1.875
v 0.3125 -0.5625 -2.5
v 0.3125 -0.4375 -3.125
v 0.3125 -0.24999999999999997 -3.75
v 0.3125 3.469446951953614e-17 -4.375
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0 0
vt 0.0625 0
vt 0.06250000000000006 1
vt 5.551115123125783e-17 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 0 0
vt 0 1
vt 0 1
vt 0 0
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.375 1
vt 0.375 0
vt 0.4375 0
vt 0.375 1
vt 0.3125 1
vt 0.3125 0
vt 0.375 0
vt 0.3125 1
vt 0.25 1
vt 0.25 0
vt 0.3125 0
vt 0.25 1
vt 0.1875 1
vt 0.1875 0
vt 0.25 0
vt 0.1875 1
vt 0.125 1
vt 0.125 0
vt 0.1875 0
vt 0.125 1
vt 0.0625 1
vt 0.0625 0
vt 0.125 0
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 5.551115123125783e-17 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 0 0
vt 0.0625 0
vt 0.0625 1
vt 0 1
vt 0.0625 0
vt 0.125 0
vt 0.125 1
vt 0.0625 1
vt 0.125 0
vt 0.1875 0
vt 0.1875 1
vt 0.125 1
vt 0.1875 0
vt 0.25 0
vt 0.25 1
vt 0.1875 1
vt 0.25 0
vt 0.3125 0
vt 0.3125 1
vt 0.25 1
vt 0.3125 0
vt 0.375 0
vt 0.375 1
vt 0.3125 1
vt 0.375 0
vt 0.4375 0
vt 0.4375 1
vt 0.375 1
vt 0.4375 0
vt 0.5 0
vt 0.5 1
vt 0.4375 1
vt 0.5 0
vt 0.5625 0
vt 0.5625 1
vt 0.5 1
vt 0.5625 0
vt 0.625 0
vt 0.625 1
vt 0.5625 1
vt 0.625 0
vt 0.6875 0
vt 0.6875 1
vt 0.625 1
vt 0.6875 0
vt 0.75 0
vt 0.75 1
vt 0.6875 1
vt 0.75 0
vt 0.8125 0
vt 0.8125 1
vt 0.75 1
vt 0.8125 0
vt 0.875 0
vt 0.875 1
vt 0.8125 1
vt 0.875 0
vt 0.9375 0
vt 0.9375 1
vt 0.875 1
vt 1 1
vt 0.9375 1
vt 0.9375 0
vt 1 0
vt 0.9375 1
vt 0.875 1
vt 0.875 0
vt 0.9375 0
vt 0.875 1
vt 0.8125 1
vt 0.8125 0
vt 0.875 0
vt 0.8125 1
vt 0.75 1
vt 0.75 0
vt 0.8125 0
vt 0.75 1
vt 0.6875 1
vt 0.6875 0
vt 0.75 0
vt 0.6875 1
vt 0.625 1
vt 0.625 0
vt 0.6875 0
vt 0.625 1
vt 0.5625 1
vt 0.5625 0
vt 0.625 0
vt 0.5625 1
vt 0.5 1
vt 0.5 0
vt 0.5625 0
vt 0.5 1
vt 0.4375 1
vt 0.4375 0
vt 0.5 0
vt 0.4375 1
vt 0.37500000000000006 1
vt 0.375 0
vt 0.4375 0
vt 0.37500000000000006 1
vt 0.31250000000000006 1
vt 0.3125 0
vt 0.375 0
vt 0.31250000000000006 1
vt 0.25000000000000006 1
vt 0.25 0
vt 0.3125 0
vt 0.25000000000000006 1
vt 0.18750000000000006 1
vt 0.1875 0
vt 0.25 0
vt 0.18750000000000006 1
vt 0.12500000000000006 1
vt 0.125 0
vt 0.1875 0
vt 0.12500000000000006 1
vt 0.06250000000000006 1
vt 0.0625 0
vt 0.125 0
vn 1 0 0
vn -1 0 0
vn 0 0.8944271909999161 0.447213595499958
vn 0 -0.8944271909999161 -0.44721359549995804
vn 0 0 1
vn 0 0 -1
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn -1 0 0
vn 0 -0.8944271909999161 0.44721359549995804
vn 0 -0.9284766908852594 0.37139067635410405
vn 0 -0.9578262852211513 0.2873478855663461
vn 0 -0.9805806756909203 0.19611613513818338
vn 0 -0.9889363528682975 0.14834045293024498
vn 0 -0.9950371902099893 0.09950371902099857
vn 0 -0.9987523388778446 0.04993761694389294
vn 0 -0.9996876464081228 0.024992191160203427
vn 0 -0.9996876464081228 -0.024992191160203427
vn 0 -0.9987523388778446 -0.04993761694389294
vn 0 -0.9950371902099893 -0.09950371902099857
vn 0 -0.9889363528682975 -0.14834045293024498
vn 0 -0.9805806756909203 -0.19611613513818338
vn 0 -0.9578262852211513 -0.2873478855663461
vn 0 -0.9284766908852594 -0.37139067635410405
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 1 0 0
vn 0 0.8944271909999161 -0.447213595499958
vn 0 0.9284766908852594 -0.3713906763541037
vn 0 0.9578262852211515 -0.28734788556634544
vn 0 0.9805806756909203 -0.19611613513818404
vn 0 0.9889363528682977 -0.14834045293024456
vn 0 0.9950371902099893 -0.09950371902099901
vn 0 0.9987523388778449 -0.049937616943892066
vn 0 0.9996876464081228 -0.024992191160202983
vn 0 0.9996876464081228 0.024992191160202983
vn 0 0.9987523388778449 0.049937616943892066
vn 0 0.9950371902099893 0.09950371902099901
vn 0 0.9889363528682977 0.14834045293024456
vn 0 0.9805806756909203 0.19611613513818404
vn 0 0.9578262852211515 0.28734788556634544
vn 0 0.9284766908852594 0.3713906763541037
usemtl m_23be694f-bb73-ca4f-4e50-c3ef0f3838f0
f 2/1/1 68/2/1 53/3/1 4/4/1
f 8/5/2 38/6/2 37/7/2 6/8/2
f 6/9/3 37/10/3 68/11/3 2/12/3
f 4/13/4 53/14/4 38/15/4 8/16/4
f 3/17/5 1/18/5 5/19/5 7/20/5
f 8/21/6 6/22/6 2/23/6 4/24/6
f 5/25/7 9/26/7 10/27/7 7/28/7
f 9/29/8 11/30/8 12/31/8 10/32/8
f 11/33/9 13/34/9 14/35/9 12/36/9
f 13/37/10 15/38/10 16/39/10 14/40/10
f 15/41/11 17/42/11 18/43/11 16/44/11
f 17/45/12 19/46/12 20/47/12 18/48/12
f 19/49/13 21/50/13 22/51/13 20/52/13
f 21/53/14 23/54/14 24/55/14 22/56/14
f 23/57/15 25/58/15 26/59/15 24/60/15
f 25/61/16 27/62/16 28/63/16 26/64/16
f 27/65/17 29/66/17 30/67/17 28/68/17
f 29/69/18 31/70/18 32/71/18 30/72/18
f 31/73/19 33/74/19 34/75/19 32/76/19
f 33/77/20 35/78/20 36/79/20 34/80/20
f 35/81/21 37/82/21 38/83/21 36/84/21
f 7/85/22 10/86/22 39/87/22 3/88/22
f 10/89/23 12/90/23 40/91/23 39/92/23
f 12/93/24 14/94/24 41/95/24 40/96/24
f 14/97/25 16/98/25 42/99/25 41/100/25
f 16/101/26 18/102/26 43/103/26 42/104/26
f 18/105/27 20/106/27 44/107/27 43/108/27
f 20/109/28 22/110/28 45/111/28 44/112/28
f 22/113/29 24/114/29 46/115/29 45/116/29
f 24/117/30 26/118/30 47/119/30 46/120/30
f 26/121/31 28/122/31 48/123/31 47/124/31
f 28/125/32 30/126/32 49/127/32 48/128/32
f 30/129/33 32/130/33 50/131/33 49/132/33
f 32/133/34 34/134/34 51/135/34 50/136/34
f 34/137/35 36/138/35 52/139/35 51/140/35
f 36/141/36 38/142/36 53/143/36 52/144/36
f 3/145/37 39/146/37 54/147/37 1/148/37
f 39/149/38 40/150/38 55/151/38 54/152/38
f 40/153/39 41/154/39 56/155/39 55/156/39
f 41/157/40 42/158/40 57/159/40 56/160/40
f 42/161/41 43/162/41 58/163/41 57/164/41
f 43/165/42 44/166/42 59/167/42 58/168/42
f 44/169/43 45/170/43 60/171/43 59/172/43
f 45/173/44 46/174/44 61/175/44 60/176/44
f 46/177/45 47/178/45 62/179/45 61/180/45
f 47/181/46 48/182/46 63/183/46 62/184/46
f 48/185/47 49/186/47 64/187/47 63/188/47
f 49/189/48 50/190/48 65/191/48 64/192/48
f 50/193/49 51/194/49 66/195/49 65/196/49
f 51/197/50 52/198/50 67/199/50 66/200/50
f 52/201/51 53/202/51 68/203/51 67/204/51
f 1/205/52 54/206/52 9/207/52 5/208/52
f 54/209/53 55/210/53 11/211/53 9/212/53
f 55/213/54 56/214/54 13/215/54 11/216/54
f 56/217/55 57/218/55 15/219/55 13/220/55
f 57/221/56 58/222/56 17/223/56 15/224/56
f 58/225/57 59/226/57 19/227/57 17/228/57
f 59/229/58 60/230/58 21/231/58 19/232/58
f 60/233/59 61/234/59 23/235/59 21/236/59
f 61/237/60 62/238/60 25/239/60 23/240/60
f 62/241/61 63/242/61 27/243/61 25/244/61
f 63/245/62 64/246/62 29/247/62 27/248/62
f 64/249/63 65/250/63 31/251/63 29/252/63
f 65/253/64 66/254/64 33/255/64 31/256/64
f 66/257/65 67/258/65 35/259/65 33/260/65
f 67/261/66 68/262/66 37/263/66 35/264/66

BIN
mods/leads/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 KiB

69
mods/leads/settings.lua Normal file
View file

@ -0,0 +1,69 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Mod settings.
-- @module settings
local function get_n(key, default)
return tonumber(minetest.settings:get(key)) or default;
end;
local function get_b(key, default)
return minetest.settings:get_bool(key, default);
end;
local function get_s(key, default)
return minetest.settings:get(key) or default;
end;
--- Mod settings.
leads.settings =
{
lead_length = get_n('leads.lead_length', 8);
lead_strength = get_n('leads.lead_strength', 4);
chat_messages = get_b('leads.chat_messages', false);
drop_mode = get_s('leads.drop_mode', 'auto');
symmetrical = get_b('leads.symmetrical', false);
-- Visuals:
dynamic_textures = get_b('leads.dynamic_textures', true);
rotate_selection_box = get_b('leads.rotate_selection_box', true);
enable_slack = get_b('leads.enable_slack', true);
-- Protection and ownership:
respect_protection = get_b('leads.respect_protection', true);
allow_leash_unowned = get_b('leads.allow_leash_unowned', true);
allow_leash_owned_other = get_b('leads.allow_leash_owned_other', true);
-- Object types:
allow_leash_player = get_b('leads.allow_leash_player', true);
allow_leash_animal = get_b('leads.allow_leash_animal', true);
allow_leash_monster = get_b('leads.allow_leash_monster', true);
allow_leash_npc = get_b('leads.allow_leash_npc', true);
allow_leash_vehicle = get_b('leads.allow_leash_vehicle', true);
allow_leash_other = get_b('leads.allow_leash_other', true);
-- Advanced:
allow_leash_all = get_b('leads.allow_leash_all', false);
pull_force = get_n('leads.pull_force', 15);
debug = get_b('leads.debug', false);
};

View file

@ -0,0 +1,79 @@
# The length a lead can reach before stretching, in metres.
leads.lead_length (Lead length) float 8 1 16
# The strength of a lead. The lower this number is, the more easily leads will break.
leads.lead_strength (Lead strength) float 4 0 256
# How to drop leads when broken.
# drop: Drop the lead item.
# give: Put the lead in the player's inventory.
# auto: Matches the node drop behaviour of the game.
leads.drop_mode (Item drop mode) enum auto drop,give,auto
# If this is enabled, both leads will pull both ends equally.
# Otherwise, only the follower will be pulled.
leads.symmetrical (Symmetrical physics) bool false
[Visuals]
# If this is enabled, lead textures will dynamically update to match the length of the lead.
leads.dynamic_textures (Dynamic textures) bool true
# If this is enabled, leads will have a lead-shaped selection box. Otherwise, the selection box will be a cube in the middle of the lead.
# This requires a 5.7.0+ client.
leads.rotate_selection_box (Long selection box) bool true
# If this is enabled, leads will curve downwards instead of being straight.
# This is purely aesthetic.
leads.enable_slack (Enable visual slack) bool true
# Displays messages in the chat console when failing to use a lead.
leads.chat_messages (Show chat messages) bool false
[Protection and Ownership]
# Disallows adding and removing knots in protected areas.
leads.respect_protection (Respect protection) bool true
# Allows using leads on mobs with no owner.
leads.allow_leash_unowned (Allow leashing unowned mobs) bool true
# Allows using leads on mobs owned by other players.
leads.allow_leash_owned_other (Allow leashing mobs owned by others) bool true
[Object Types]
# Allows using leads on other players.
leads.allow_leash_player (Allow leashing players) bool true
# Allows using leads on animals.
leads.allow_leash_animal (Allow leashing animals) bool true
# Allows using leads on monsters.
leads.allow_leash_monster (Allow leashing monsters) bool true
# Allows using leads on NPCs.
leads.allow_leash_npc (Allow leashing NPCs) bool true
# Allows using leads on vehicles.
leads.allow_leash_vehicle (Allow leashing vehicles) bool true
# Allows using leads on miscellaneous entities.
leads.allow_leash_other (Allow leashing other) bool true
[Advanced]
# Allows using leads on all entities.
# Leashing an unsupported entity may cause unexpected behaviour.
# This overrides all other leashable settings.
leads.allow_leash_all (Allow leashing any object) bool false
# How hard leads pull entities.
leads.pull_force (Pull force) float 15 1 1000
# Prints verbose debugging information to the chat console.
leads.debug (Debug mode) bool false

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

361
mods/leads/util.lua Normal file
View file

@ -0,0 +1,361 @@
--[[
Leads Adds leads for transporting animals to Minetest.
Copyright © 2023, Silver Sandstone <@SilverSandstone@craftodon.social>
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
]]
--- Generic utility functions.
-- @module util
leads.util = {};
leads.util.rng = PseudoRandom(0x4C656164);
local has_objectuuids = minetest.get_modpath('objectuuids') ~= nil;
--- Checks if the object is a mob.
-- @param object [ObjectRef] The object to check.
-- @return [boolean] true if the object is a mob.
function leads.util.is_mob(object)
local entity = object:get_luaentity();
if not entity then
return false;
end;
-- Explicitly marked as an animal:
local result = entity._leads_is_mob or entity._leads_is_animal;
if result ~= nil then
return result;
end;
-- Mobs (Redo) and Repixture:
if entity.health then
return true;
end;
-- Creatura:
if entity._creatura_mob then
return true;
end;
-- Exile:
if entity.hp and (entity.max_health or entity.max_hp) then
return true;
end;
return false;
end;
leads.util.is_animal = leads.util.is_mob; -- Deprecated alias.
--- Tiles a texture to the specified size.
-- @param texture [string] The texture to tile.
-- @param src_width [integer] The input texture's width.
-- @param src_height [integer] The input texture's height.
-- @param out_width [integer] The resulting texture's width.
-- @param out_height [integer] The resulting texture's height.
-- @return [string] A texture string.
function leads.util.tile_texture(texture, src_width, src_height, out_width, out_height)
texture = leads.util.escape_texture(('(%s)^[resize:%dx%d'):format(texture, src_width, src_height));
local parts = {'[combine:', out_width, 'x', out_height};
local y = 0;
while y < out_height do
local x = 0;
while x < out_width do
table.insert(parts, (':%d,0=%s'):format(x, texture));
x = x + src_width;
end;
y = y + src_height;
end;
return table.concat(parts, '');
end;
--- Escapes a texture for use with [combine.
-- @param texture [string] A texture string.
-- @return [string] An escaped texture string.
function leads.util.escape_texture(texture)
return string.gsub(texture, '[\\^:]', function(char) return '\\' .. char; end);
end;
--- Serialises the identity (not the state) of an object reference.
-- @param obj [ObjectRef|nil] The object to serialise.
-- @return [table|nil] A table identifying the object, or nil if the reference is invalid.
function leads.util.serialise_objref(obj)
if not obj then
return nil;
end;
local result = {pos = obj:get_pos()};
if has_objectuuids then
result.uuid = objectuuids.get_uuid(obj);
end;
if minetest.is_player(obj) then
result.player_name = obj:get_player_name();
else
local entity = obj:get_luaentity();
if not entity then
return nil;
end;
result.name = entity.name;
end;
return result;
end;
--- Deserialises an object ID previously returned from `serialise_objref()`, trying to identify the original object.
-- @param id [table|nil] A table identifying an object.
-- @return [ObjectRef|nil] An object matching the ID, or nil if no such object was found.
function leads.util.deserialise_objref(id)
if not id then
return nil;
end;
-- Objects are identified by UUID where possible:
if has_objectuuids and id.uuid then
return objectuuids.get_object_by_uuid(id.uuid);
end;
-- Without UUIDs, players are identified by name:
if id.player_name then
return minetest.get_player_by_name(id.player_name);
end;
-- Minetest doesn't provide any way to persistently identify Lua entities,
-- so the best we can do is look for an entity with the correct name near
-- the saved position.
if not id.pos then
return nil;
end;
local pos = vector.new(id.pos);
local range = 3;
local range_min = pos:offset(-range, -range, -range);
local range_max = pos:offset( range, range, range);
local objects = minetest.get_objects_in_area(range_min, range_max);
local best_object = nil;
local best_distance = math.huge;
for __, object in ipairs(objects) do
local entity = object:get_luaentity();
if entity and (id.name == nil or entity.name == id.name) then
local distance = object:get_pos():distance(pos);
if distance <= 0.0 then
return object;
elseif distance < best_distance then
best_distance = distance;
best_object = object;
end;
end;
end;
return best_object;
end;
--- Checks if two objrefs refer to the same object, which may be a player or entity.
-- @param obj1 [ObjectRef|nil] The first object to compare.
-- @param obj2 [ObjectRef|nil] The second object to compare.
-- @return [boolean] true if obj1 and obj2 reference the same object.
function leads.util.is_same_object(obj1, obj2)
if not (obj1 and obj2) then
return false;
end;
local obj1_is_player = minetest.is_player(obj1);
local obj2_is_player = minetest.is_player(obj2);
if obj1_is_player ~= obj2_is_player then
return false;
end;
if obj1_is_player then
return obj1:get_player_name() == obj2:get_player_name();
else
return obj1:get_luaentity() == obj2:get_luaentity();
end;
end;
--- Returns the relative attachment position for the specified object.
-- @param object [ObjectRef|nil] The player or entity to check.
-- @return [vector] The attachment offset as a vector relative to the object's origin.
function leads.util.get_attach_offset(object)
local properties = object and object:get_properties();
if not properties then
return vector.zero();
end;
local hitbox = (properties.physical and properties.collisionbox) or (properties.pointable and properties.selectionbox) or {};
local bottom = hitbox[2] or 0;
local top = hitbox[5] or 0;
return vector.new(0, (bottom + top) / 2, 0);
end;
--- Finds the first item available for crafting.
-- @param ... [string] Any number of prefixed node/item IDs.
-- @return [string|nil] One of the specified IDs, or nil.
function leads.util.first_available_item(...)
for __, name in ipairs{...} do
if name == '' or string.match(name, '^group:.*') or minetest.registered_items[name] then
return name;
end;
end;
return nil;
end;
--- Returns a string describing an object, for debugging.
-- @param object [ObjectRef] An object reference.
-- @return [string] A string describing the object.
function leads.util.describe_object(object)
if minetest.is_player(object) then
return ('[Player %q]'):format(object:get_player_name());
end;
local entity = object:get_luaentity();
if entity then
return ('[LuaEntity %q]'):format(entity.name);
end;
return '[Unknown object]';
end;
--- Prevents the player from interacting for some time.
-- @param name [string] The name of the player.
-- @param time [number] How long to block interactions, in seconds.
function leads.util.block_player_interaction(name, time)
local function _callback()
leads.interaction_blockers[name] = nil;
end;
local old_timer = leads.interaction_blockers[name];
if old_timer then
old_timer:cancel();
end;
leads.interaction_blockers[name] = minetest.after(time, _callback);
end;
--- Figures out the type of an object.
-- @param object [ObjectRef] The object to check.
-- @return [ObjectType] The type of the object.
function leads.util.get_object_type(object)
-- Check player:
if minetest.is_player(object) then
return leads.ObjectType.PLAYER;
end;
-- Get entity:
local entity = object:get_luaentity();
if not entity then
return leads.ObjectType.OTHER;
end;
-- Custom type override:
local override = entity._leads_type or leads.custom_object_types[entity.name];
if override then
return override;
end;
-- Get entity definition:
local def = minetest.registered_entities[entity.name];
if not def then
return leads.ObjectType.OTHER;
end;
-- Check Creatura (assumed to be animals):
if entity._creatura_mob then
return leads.ObjectType.ANIMAL;
end;
-- Check Mobs API type:
if def.type == 'animal' then
return leads.ObjectType.ANIMAL;
elseif def.type == 'monster' then
return leads.ObjectType.MONSTER;
elseif def.type == 'npc' then
return leads.ObjectType.NPC;
end;
return leads.ObjectType.OTHER;
end;
--- Gets the owner of an object.
-- @param object [ObjectRef] The object to check.
-- @return [string] The owner's name, or '' for unowned.
function leads.util.get_object_owner(object)
local entity = object:get_luaentity();
if not entity then
return '';
end;
return entity.owner or '';
end;
--- Calculates the mass of a player or entity.
-- @param object [ObjectRef] The object to check.
-- @return [number] The object's mass, in an abstract unit.
function leads.util.get_object_mass(object)
local entity = object:get_luaentity();
local mass = entity and entity._leads_mass;
if mass then
return mass;
end;
local density = entity and entity._leads_density or 1;
local properties = object:get_properties() or {};
local hitbox = properties.collisionbox or properties.selectionbox;
if not hitbox then
return density;
end;
local width = math.abs(hitbox[4] - hitbox[1]);
local height = math.abs(hitbox[5] - hitbox[2]);
local depth = math.abs(hitbox[6] - hitbox[3]);
return width * height * depth * density;
end;
--- Clamps a value within the specified range.
-- @param value [number] The value to clamp.
-- @param min [number] The lower bound.
-- @param max [number] The upper bound.
-- @return [number] A number between lower and upper.
function leads.util.clamp(value, min, max)
if value < min then
return min;
elseif value > max then
return max;
else
return value;
end;
end;