Code Monkey home page Code Monkey logo

digtron's Introduction

Modular Tunnel Boring Machine

aka The Almighty Digtron

This mod contains a set of blocks that can be used to construct highly customizable and modular tunnel-boring machines, bridge-builders, road-pavers, wall-o-matics, and other such construction/destruction contraptions.

A digging machine's components must be connected to the control block via a path leading through the faces of the blocks - diagonal connections across edges and corners don't count.

The basic block types that can be assembled into a functioning digging machine are:

  • Digger heads, which excavate material in front of them when the machine is triggered
  • Builder heads, which build a user-configured node in the direction they're facing
  • Inventory modules, which hold material produced by the digger and provide material to the builders
  • Fuel modules, which holds flammable materials to feed the beast
  • Control block, used to trigger the machine and move it in a particular direction.

Diggers mine out blocks and shunt them into the Digtron's inventory, or drop them on the ground if there isn't room in the inventory to store them.

Builder heads can be used to lay down a solid surface as the Digtron moves, useful for situations where a tunnel-borer intersects a cavern. Builder heads can be set to construct their target block "intermittently", allowing for regularly-spaced structures to be constructed. Common uses include building support arches at regular intervals in a tunnel, adding a torch on the wall at regular intervals, laying rails with regularly-spaced powered rails interspersed, and adding stairs to vertical shafts.

The auto-controller block is able to trigger automatically for a user-selected number of cycles. A player can ride their Digtron as it goes.

Other specialized Digtron blocks include:

  • An "axle" block that allows an assembled Digtron to be rotated into new orientations without needing to be rebuilt block-by-block
  • A crate that can store an assembled Digtron and allow the player to transport it to a new location
  • A duplicator that can create a copy of an existing Digtron (if provided with enough spare parts)
  • An item ejector to clear Digtron's inventory of excavated materials and inject it into pipeworks tubes if that mod is installed.
  • A light that can be mounted on a Digtron to illuminate the workspace as it moves
  • Structural components to make it look cool

The Digtron mod depends on the default mod and fakelib, and includes optional support for several other mods:

  • doc, an in-game documentation mod. Detailed documentation for all of the Digtron's individual blocks are included as well as pages of general concepts and design tips.
  • pipeworks, a set of pneumatic tubes that allows inventory items to be extracted from or inserted into Digtron inventories.
  • hopper, a different mod for inserting into and extracting from Digtron inventories. Note that only the most recent version of hopper is Digtron-capable, earlier versions lack a suitable API.
  • awards, a mod that adds achievements to the game. Over thirty Digtron-specific achievements are included.
  • technic, which adds rechargeable batteries and power cables to the game that Digtron can use instead of fuel.

digtron's People

Contributors

arsenicus avatar buckaroobanzay avatar disba1ancer avatar edwardthorsten avatar emojigit avatar facedeer avatar gpcf avatar greenxenith avatar h-v-smacker avatar joejulian avatar numberzero avatar ogelgames avatar panquesito7 avatar pyrollo avatar s-s-x avatar sfence avatar shivajiva101 avatar swissalps avatar thomas--s avatar thomasrudin avatar tuedel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

digtron's Issues

Crash when digging near the edge of the map

a player ran a digtron along the edge of the map, the server crashed with this traceback:

2017-06-26 20:13:33: ERROR[Main]: ServerError: AsyncErr: environment_Step: Runtime error from mod '' in callback environment_Step(): .../minetest-server/.minetest/mods/digtron/class_layout.lua:15: attempt to index field 'main' (a nil value)
2017-06-26 20:13:33: ERROR[Main]: stack traceback:
2017-06-26 20:13:33: ERROR[Main]:       .../minetest-server/.minetest/mods/digtron/class_layout.lua:15: in function 'get_node_image'
2017-06-26 20:13:33: ERROR[Main]:       .../minetest-server/.minetest/mods/digtron/class_layout.lua:97: in function 'create'
2017-06-26 20:13:33: ERROR[Main]:       ...est-server/.minetest/mods/digtron/util_execute_cycle.lua:112: in function 'execute_dig_cycle'
2017-06-26 20:13:33: ERROR[Main]:       ...etest-server/.minetest/mods/digtron/node_controllers.lua:144: in function 'func'
2017-06-26 20:13:33: ERROR[Main]:       /usr/local/share/minetest/builtin/common/after.lua:18: in function </usr/local/share/minetest/builtin/common/after.lua:4>
2017-06-26 20:13:33: ERROR[Main]:       /usr/local/share/minetest/builtin/game/register.lua:412: in function </usr/local/share/minetest/builtin/game/register.lua:392>
2017-06-26 20:13:33: ERROR[Main]: stack traceback:

Planting does not work

The building node can't place seeds to plant plants. This would be a cool addition, so the digtron could be used for agricultural purposes.

Another crash

The server crashes repeatedly with the following traceback:

2017-12-04 12:14:22: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod '' in callback node_on_receive_fields(): /var/games/minetest-server/.minetest/mods/digtron/util.lua:175: bad argument #1 to 'pairs' (table expected, got nil)
2017-12-04 12:14:22: ERROR[Main]: stack traceback:
2017-12-04 12:14:22: ERROR[Main]:       [C]: in function 'pairs'
2017-12-04 12:14:22: ERROR[Main]:       /var/games/minetest-server/.minetest/mods/digtron/util.lua:175: in function 'burn'
2017-12-04 12:14:22: ERROR[Main]:       ...est-server/.minetest/mods/digtron/util_execute_cycle.lua:234: in function 'execute_dig_cycle'
2017-12-04 12:14:22: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:144: in function 'auto_cycle'
2017-12-04 12:14:22: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:255: in function <...server/.minetest/mods/digtron/nodes/node_controllers.lua:229>

Add seat node

Currently, you have to follow your digtron as it digs, even in automatical mode. That’s unhandy. Although you can add panels and stand on them, that’s unreliable. So I suggest to add a node where you can sit and be reliably attached to the digtron, not leaving it on server lag, not falling when it crosses holes, etc.

Digtron Ejector only works if machine is touching ground or touching walls.

Test case:

  1. Digtron chest
  2. Digtron ejector

Rotate ejector correctly so tube is facing opposite of chest. Put something into chest, punch ejector: it ejects.
Remove a node under ejector, so there is air - it will not eject anything.

So, if digtron is itself not standing on the ground, ejector does not work.

Regular ore digtrons are indeed usually standing on the ground.
However some digtrons builds are built "floating" on rails, diggerheads and planters row is floating 1 node above the soil. To allow movement, structural modules are added either sideways or above - and digtron moves along the provisional "rail". In this configuration, ejector would be of much use - but refuses to eject, since there is no ground under it.

Server crash with basic digtron

A simple digtron with just 4 digger heads, a manual control node and combined storage will crash the server on activation.

May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback item_OnPlace(): .../minetest/default//worldmods/awards/src/api_triggers.lua:155: assertion failed!
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]: stack traceback:
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         [C]: in function 'assert'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         .../minetest/default//worldmods/awards/src/api_triggers.lua:155: in function 'notify_dig'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         .../lib/minetest/default//worldmods/awards/src/triggers.lua:77: in function 'callback'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         ...lib/minetest/default//worldmods/digtron/class_layout.lua:388: in function 'node_callbacks'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         ...lib/minetest/default//worldmods/digtron/class_layout.lua:481: in function 'write_layout_image'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         ...netest/default//worldmods/digtron/util_execute_cycle.lua:294: in function 'execute_dig_cycle'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         ...st/default//worldmods/digtron/nodes/node_controllers.lua:60: in function 'on_rightclick'
May 05 13:25:43 HP01 minetestserver[3745]: 2019-05-05 13:25:43: ERROR[Main]:         /usr/share/minetest/builtin/game/item.lua:423: in function </usr/share/minetest/builtin/game/item.lua:416>

On latest commit.

Edit: Server is running the latest version of Minetest, on Arch Linux x86_64

Digtron crash

minetest version 5.4
digtron update at commit 843dbd2

Crash
2021-03-28 18:40:56: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod '' in callback node_on_receive_fields(): /home/minetest/minetest/bin/../mods/digtron/util.lua:55: attempt to call field 'can_dig' (a boolean value)
2021-03-28 18:40:56: ERROR[Main]: stack traceback:
2021-03-28 18:40:56: ERROR[Main]: /home/minetest/minetest/bin/../mods/digtron/util.lua:55: in function 'mark_diggable'
2021-03-28 18:40:56: ERROR[Main]: ...eman/minetest/bin/../mods/digtron/nodes/node_diggers.lua:408: in function 'execute_dig'
2021-03-28 18:40:56: ERROR[Main]: ...eman/minetest/bin/../mods/digtron/util_execute_cycle.lua:151: in function 'execute_dig_cycle'
2021-03-28 18:40:56: ERROR[Main]: .../minetest/bin/../mods/digtron/nodes/node_controllers.lua:148: in function 'auto_cycle'
2021-03-28 18:40:56: ERROR[Main]: .../minetest/bin/../mods/digtron/nodes/node_controllers.lua:264: in function <.../minetest/bin/../mods/digtron/nodes/node_controllers.lua:238>

Crash on axle rotation (Layout.all)

Latest commit: 03beff0

ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod '' in callback item_OnPlace(): /data/world//worldmods/digtron/class_layout.lua:315: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
[C]: in function 'pairs'
/data/world//worldmods/digtron/class_layout.lua:315: in function 'rotate_layout_image'
/data/world//worldmods/digtron/nodes/node_axle.lua:46: in function 'on_rightclick'
/usr/local/bin/../builtin/game/item.lua:423: in function </usr/local/bin/../builtin/game/item.lua:416>

I haven't investigated this, dumping this here, maybe i can make some time to create a fix (but no promises)
pandorabox-io/pandorabox.io#111

Rotation Axle lets me rotate to protected area

Hi,
I used the Digtron Rotation Axle to turn large digtron. Part of it is now in a protected area (Simple Protection) and I can't collapse my digtron into crate. I think Rotation Axle really should check the area before rotation.
Also thank you for making this usefull tool.
Thanks, Jonas

Crash in unknown circumstances

This happened on my server, maybe I can explain the circumstances later:

2017-11-16 21:31:27: ACTION[Server]: laza removes Digtron component digtron:controller at (-528, 30, -72)
2017-11-16 21:31:27: ACTION[Server]: laza removes Digtron component digtron:builder at (-526, 29, -71)
2017-11-16 21:31:27: ACTION[Server]: laza removes Digtron component digtron:fuelstore at (-527, 30, -72)
2017-11-16 21:31:27: ACTION[Server]: laza removes Digtron component digtron:builder at (-527, 29, -71)
2017-11-16 21:31:27: ACTION[Server]: laza removes Digtron component digtron:inventory at (-527, 29, -72)
2017-11-16 21:31:27: ACTION[Server]: laza adds Digtron component digtron:controller at (-527, 30, -72)
2017-11-16 21:31:27: ACTION[Server]: laza adds Digtron component digtron:fuelstore at (-526, 30, -72)
2017-11-16 21:31:27: ACTION[Server]: laza adds Digtron component digtron:inventory at (-526, 29, -72)
2017-11-16 21:31:27: ACTION[Server]: laza adds Digtron component digtron:builder at (-526, 29, -71)
2017-11-16 21:31:27: ACTION[Server]: laza adds Digtron component digtron:builder at (-525, 29, -71)
2017-11-16 21:31:27: ERROR[Server]: Map::setNode(): Not allowing to place CONTENT_IGNORE while trying to replace "air" at (-526,29,-70) (block (-33,1,-5))
2017-11-16 21:31:27: ACTION[Main]: Server shuts down. Ending all pacmine games
2017-11-16 21:31:27: ACTION[Server]: Smacker leaves game. List of players: 
2017-11-16 21:31:27: ACTION[Server]: Och_Noe leaves game. List of players: 
2017-11-16 21:31:27: ACTION[Server]: orwell leaves game. List of players: 
2017-11-16 21:31:27: ACTION[Server]: survivalg leaves game. List of players: 
2017-11-16 21:31:27: ACTION[Server]: test leaves game. List of players: 
2017-11-16 21:31:27: ACTION[Server]: laza leaves game. List of players: 
2017-11-16 21:31:29: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback item_OnPlace(): ...inetest-server/.minetest/mods/digilines/wires_common.lua:2: attempt to index a nil value
2017-11-16 21:31:29: ERROR[Main]: stack traceback:
2017-11-16 21:31:29: ERROR[Main]:       ...inetest-server/.minetest/mods/digilines/wires_common.lua:2: in function 'callback'
2017-11-16 21:31:29: ERROR[Main]:       ...t-server/.minetest/mods/digtron/util_item_place_node.lua:163: in function 'item_place_node'
2017-11-16 21:31:29: ERROR[Main]:       ...st-server/.minetest/mods/digtron/nodes/node_builders.lua:282: in function 'execute_build'
2017-11-16 21:31:29: ERROR[Main]:       ...est-server/.minetest/mods/digtron/util_execute_cycle.lua:308: in function 'execute_dig_cycle'
2017-11-16 21:31:29: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:58: in function 'on_rightclick'
2017-11-16 21:31:29: ERROR[Main]:       /usr/local/share/minetest/builtin/game/item.lua:347: in function </usr/local/share/minetest/builtin/game/item.lua:340>

node_item_ejector.lua:65: attempt to index field 'main' (a nil value) -> crash

2022-02-19 19:13:25: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod '' in callback node_on_punch(): ...homas/.minetest/mods/digtron/nodes/node_item_ejector.lua:65: attempt to index field 'main' (a nil value) 2022-02-19 19:13:25: ERROR[Main]: stack traceback: 2022-02-19 19:13:25: ERROR[Main]: ...homas/.minetest/mods/digtron/nodes/node_item_ejector.lua:65: in function 'eject_items' 2022-02-19 19:13:25: ERROR[Main]: ...homas/.minetest/mods/digtron/nodes/node_item_ejector.lua:144: in function <...homas/.minetest/mods/digtron/nodes/node_item_ejector.lua:143>

happened with older version 2021 also with actual version

just when try to dig the item_ejector of a head, and of a combined_storage

I deactivated, as even I never used it and no idea yet

Allow builders doing nothing

Hi! Sometimes it is necessary to have builders doing nothing, but I don't want to unmount them. Maybe you could allow empty builders, an extractionof 0, or an on / off toggle.

Diggers dont like other_worlds atmosphere

Front(!) diggers crash the server when trying to dig in otherworlds atmosphere with same error we've been dealing with (failed to access inv in utils). (!)Doesnt happen with diggers aligned with controller...

Improve control panel HUD information

The current HUD is rather limited in information transfer. It only communicates:

  • Current errors if any
  • "Heat remaining"
  • Cycles left

I propose that we add this information as well:

  • Amount of builder modules using a specific item divided by quantity of the item inside the inventory (giving amount of cycles left until we run out of the item)
  • Amount of cycles remaining with current fuel
  • Amount of digger heads touching a non-air node and amount of digger heads (with possible division for finding what percentage are extracting materials)
  • Amount of traction

This information would be extremely helpful whilst mining. If one encounters a massive cave, they can see how the digger heads encounter more and more air. One can know when to refuel or refil items allowing a more streamlined experience, allowing a digtron to mine whilst new materials are being made.

Crash activating controller

2017-12-31 22:23:57: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback item_OnPlace(): /data/worldmods/digtron/class_layout.lua:22: attempt to index field 'main' (a nil value)
2017-12-31 22:23:57: ERROR[Main]: stack traceback:
2017-12-31 22:23:57: ERROR[Main]: 	/data/worldmods/digtron/class_layout.lua:22: in function 'get_node_image'
2017-12-31 22:23:57: ERROR[Main]: 	/data/worldmods/digtron/class_layout.lua:113: in function 'create'
2017-12-31 22:23:57: ERROR[Main]: 	/data/worldmods/digtron/util_execute_cycle.lua:113: in function 'execute_dig_cycle'
2017-12-31 22:23:57: ERROR[Main]: 	/data/worldmods/digtron/nodes/node_controllers.lua:58: in function 'on_rightclick'
2017-12-31 22:23:57: ERROR[Main]: 	/usr/share/minetest/builtin/game/item.lua:347: in function </usr/share/minetest/builtin/game/item.lua:340>

Add digtron unloader block

Add a block that allows to unload a digtron via pipeworks. This node could be similar in use to the crate, it would not be part of the digtron, but it "connects" to the digtron to allow unloading.

Digtron Control Module creates a crash

I got this error:

2020-11-05 23:38:54: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback node_on_receive_fields(): ...minetest5/bin/../mods/digtron/nodes/node_controllers.lua:275: attempt to perform arithmetic on local 'offset' (a nil value)
2020-11-05 23:38:54: ERROR[Main]: stack traceback:
2020-11-05 23:38:54: ERROR[Main]: 	...minetest5/bin/../mods/digtron/nodes/node_controllers.lua:275: in function <...minetest5/bin/../mods/digtron/nodes/node_controllers.lua:238>

There is a check missing in line: https://github.com/minetest-mods/digtron/blob/master/nodes/node_controllers.lua#L269
It should look like:

if fields.set and offset and slope and slope > 0 then

undeclared global variable

I have some warnings about undeclared global variable access:

2018-08-28 10:57:31: WARNING[Server]: Assignment to undeclared global "infotext" inside a function at ./worldmods/digtron/nodes/node_crate.lua:194.

2018-08-28 10:57:38: WARNING[Server]: Assignment to undeclared global "deserialized_layout" inside a function at ./worldmods/digtron/class_layout.lua:461.

Digger heads not moving forward with the rest of the digtron

This has happened to me a couple of times so far. All nodes move forward except for the digger heads at the front, causing the metadata of the nodes directly behind the heads to be transferred to the heads while the actual nodes in question are destroyed. I can then access the inventory/data from the heads themselves (see screenshot).
The second time this happened I noticed that I had left the digtron to go on ahead without me, so possibly related to #35.
screenshot_20190814_194935

Update:
It's now happened while standing on the digtron as it moves, no blocks were destroyed but the inventories and the floating icon indicators for the builders were all pushed forward by one, glitching out the whole thing again.

Two weird inventory-related issues in multiplayer

With current version of the mod, two weird things occur (both in multiplayer, "Linuxworks Next Generation"):

1: Extraction stops after placement of the first block, and strange_error occurs (the panel dings, reports a "possible error with inventory", and the machine goes on). Using dedicated inventories and running off electricity doesn't help. This happens in protected and unprotected areas alike.

2: When I launch a harvesting digtron (one that harvests food and replants it), the tomatoes in my inventory jump into my hand (active slot) with every digtron move, no matter in which inventory slot I place them myself. Needless to say, the harvester plants and harvests tomatoes.

I have a gut feeling it's somehow related, but I cannot figure out more at the moment.

Digtron crashing with box

Hello, here's my crash... Please help me!
When I right click on the digtron boxe (I want all my digtron pput in the box, I forgot the box name) And when I want to do it server is crashing.

Bug report digtron Minetest
Here's my mod list:
Mods Nepamirstoji Zeme:
3d_armor
abriflame
abripanes
adv_weapons
advtrains
angledstairs
angledwalls
anvil
aqua_farming
aquaz
areas
armplus
aurora_tech
aviator
awards
bakedclay
basic_machines
basic_materials
basic_signs
batch_screwdriver
bbq
beacpns
better_fences
bike
bitchange
block_in_block
bonemeal
bouncy_bed
bows
bridges
bucker_wooded
c_doors
cannons
castle
caverealms
cblocks
cmdlib
commoditymarket_fantasy
conquer
controls
cracked_castle
crops
cups
currency
darkage
deserteagle
digtron
display_modpack
doorbell
draconis
easyvend
elepower
elevators
emoji
emote
enchanting
ethereal
extra_doors
factory
factory_bridges
fancy_vend
farming
farming_nextgen
fireworkz
flowerpot
fluid_lib
flying_carpet
food
food_sweet
fsc
gear3d
glider
gloopblocks
gravitygun
grenades
grenades_basic
halloween
hammer_of_power
handle_schematics
hanngglider
hbsprint
homedecor_modpack
hopper
hot_air_balloons
hudbars
ilights
instant_ores
intllib
inventorybags
itemframes
itemshelf
jonez
know_where_you_die
laptop
lightning
luxury_decor
magic_potions
magicalities
maidroid-master
mana
memeblocks
mesecons
meseportals
meshnode
mg
minerdream
minislots_modpack
mob_core
mob_horse
mobkit
mobs
mobs_animal
mobs_monster
mobs_npc
modutil
more_up_packs
moreblocks
morelights
moreores
mtg_plus
mydoors
mistical_agriculture
nether
nether_mobs
new_campfire
nssm
nuke
ores_stats
paleotest
petz
pie
pillars
pipeworks
pkarcs
portalgun
powerbanks
protector
pumpkinspice
quartz
rangedweapons
rank
resource_crops
returnmirror
rhotator
ropes
sailing_kit
scifi_nodes
sfinv
signs_lib
simple_protection
simple_skins
smartshop
sounding_line
spears
staffs
stained_glass
stamina
storage_interface
street_signs
streets
swaz
ta4_jetpack
ta4_paraglider
tac_nayn
techage_modpack
technic
technic_addons
technic_hv_extend
teleport_defense
towercrane
tpad
tpr
travelnet
treasurer
troll
ts_doors
ts_furniture
ts_workshop
tsm_pyramids
tubelib2
tunnelmaker
unified_inventory
unifieddyes
unique_ores
upgrades
vbots
vehicles
warp_potions
water_life
wesh
wildlife
wine
woodcutting
worldedit
worldeditadditions
xblox
xdecor
xocean
xp_redo
xtraarmor
xtraores
MINETEST GAME

Digtron not working with awards

Hi, I noticed that when the digtron and awards mods are both present, an error occurs when a digtron:digger is part of a moving digtron machine:

AsyncErr: ServerThread::run Lua: Runtime error from mod ‘digtron’ in callback node_on_recieve_fields(): /home/████/.minetest/mods/awards/src/api_triggers.lua: 155: assertion failed!

Digtrons losing entire sections of parts at random

Digtrons seem to loose entire sections of parts. First it happened to one player with a decently sized digtron (~50 digging heads lost at random), then it happened to a player with ~100 digging heads. So I assumed that it just wasn't smart for people to run huge digtrons at laggy times. But then someone with 4 digtron heads lost them (with only one other person online, so likely no lag). No debug.txt output showing anything went wrong at any of these times. Interestingly, the large digtrons lost all of the front diggers, where the 4-digger digtron lost the second section of diggers.
I am looking for possible causes, but opened this in case it helped.

Crash when digging diagonally using a big digtron

A digtron on the linuxworks server crashes the server reproducibly when it hits falling nodes on one of its sides. The digtron can be viewed at the server.
This is the traceback:

2019-03-14 13:12:10: ERROR[Main]: ServerError: AsyncErr: environment_Step: Runtime error from mod '' in callback environment_Step(): /var/games/minetest-server/.minetest/mods/digtron/util.lua:350: bad argument #1 to 'insert' (table expected, got nil)
2019-03-14 13:12:10: ERROR[Main]: stack traceback:
2019-03-14 13:12:10: ERROR[Main]:       [C]: in function 'insert'
2019-03-14 13:12:10: ERROR[Main]:       /var/games/minetest-server/.minetest/mods/digtron/util.lua:350: in function 'damage_creatures'
2019-03-14 13:12:10: ERROR[Main]:       ...est-server/.minetest/mods/digtron/nodes/node_diggers.lua:151: in function 'damage_creatures'
2019-03-14 13:12:10: ERROR[Main]:       ...est-server/.minetest/mods/digtron/util_execute_cycle.lua:543: in function 'execute_downward_dig_cycle'
2019-03-14 13:12:10: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:126: in function 'func'
2019-03-14 13:12:10: ERROR[Main]:       /usr/share/games/minetest/builtin/common/after.lua:18: in function </usr/share/games/minetest/builtin/common/after.lua:4>
2019-03-14 13:12:10: ERROR[Main]:       /usr/share/games/minetest/builtin/game/register.lua:420: in function </usr/share/games/minetest/builtin/game/register.lua:400>
2019-03-14 13:12:10: ERROR[Main]: stack traceback:

Server crash when configuring a torch

Hi there,

A player tried to set a face of '3' to place torches in the settings for the digtron builder, and the server crashed with the following error:

2019-04-16 11:14:07: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback on_playerReceiveFields(): /home/someguy/.minetest/mods/digtron/util.lua:315: attempt to index local 'inv' (a nil value)
2019-04-16 11:14:07: ERROR[Main]: stack traceback:
2019-04-16 11:14:07: ERROR[Main]: 	/home/someguy/.minetest/mods/digtron/util.lua:315: in function 'update_builder_item'
2019-04-16 11:14:07: ERROR[Main]: 	...e/someguy/.minetest/mods/digtron/nodes/node_builders.lua:131: in function 'func'
2019-04-16 11:14:07: ERROR[Main]: 	...ocal/share/minetest/builtin/profiler/instrumentation.lua:106: in function <...ocal/share/minetest/builtin/profiler/instrumentation.lua:100>
2019-04-16 11:14:07: ERROR[Main]: 	/usr/local/share/minetest/builtin/game/register.lua:419: in function </usr/local/share/minetest/builtin/game/register.lua:399>

Builder cannot seed wheat

Hi!
I wanted to use the builder to seed wheat, but it is not possible. Other stuff like blueberries works.
Here is a screenshot of my mower and seeder.
screenshot_20190313_180028

Digtron Ejector module and builder

Ejector module doesn't seem to work on digtron with builder module. This is most evident with planting crops by builder (at 1 node distance above soil, pointing to it).

Test case: 3 module digtron
CH++EJ
++
BL

where:
EJ digtron ejector module, pipe rotated outside
CH digtron storage
BL digtron builder module, facing downwards, floating 1 node above soil.

  • Put Corn stack into chest,
  • Set Builder item to corn,
  • Punch eject (fails)

If BL is removed, EJ function is restored.
This is featurekiller bug for EJ.

I would like also to ask for ejection direction or just make ejector eject into opposite vector of digtron movement, as ejected items (diggerhead config only) start moving into same direction of digtron travel, catch up on next cycle and travel back into ejector. Which forces to create a full line of sorting tubes, which is not cost sufficient :/ but if this isnt closely related code-wise, then I will open another bug after above blocker is ressolved. Thank you for reading

Remove "collectgarbage()" call from DigtronLayout.create()

I did some testing with and without the collectgarbage() call here:
https://github.com/minetest-mods/digtron/blob/master/class_layout.lua#L52

My results:

Link: https://monitoring.minetest.land/d/RQ_GYuiWz/digtron?orgId=1&from=1561635497275&to=1561647937615

Left is with the garbage call (peaks around 300ms) and right without (peaks around 60ms)

I propose to remove that again (no idea what the idea/reason was to add that in the first place) 😄
IMO explicit garbage collection is a code smell...

Unpacking direction

Hi!
I would suggest, that the digtron machine is unpacked facing the same direction, as the player was standing relative to the crate when packing. That would be more flexible unpacking in small tunnels.

Crash

Upon running a digtron, the mod crashed with following output:

2018-06-27 23:04:46: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod '' in callback node_on_receive_fields(): /var/games/minetest-server/.minetest/mods/digtron/util.lua:175: bad argument #1 to 'pairs' (table expected, got nil)
2018-06-27 23:04:46: ERROR[Main]: stack traceback:
2018-06-27 23:04:46: ERROR[Main]:       [C]: in function 'pairs'
2018-06-27 23:04:46: ERROR[Main]:       /var/games/minetest-server/.minetest/mods/digtron/util.lua:175: in function 'burn'
2018-06-27 23:04:46: ERROR[Main]:       ...est-server/.minetest/mods/digtron/util_execute_cycle.lua:242: in function 'execute_dig_cycle'
2018-06-27 23:04:46: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:146: in function 'auto_cycle'
2018-06-27 23:04:46: ERROR[Main]:       ...server/.minetest/mods/digtron/nodes/node_controllers.lua:260: in function <...server/.minetest/mods/digtron/nodes/node_controllers.lua:234>



Runtime error in util.lua:burn()

Stacktrace:

minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'sauth' in callback node_on_receive_fields(): /data/world//worldmods/digtron/util.lua:175: bad argument #1 to 'pairs' (table expected, got nil)
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: stack traceback:
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: 	[C]: in function 'pairs'
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: 	/data/world//worldmods/digtron/util.lua:175: in function 'burn'
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: 	/data/world//worldmods/digtron/util_execute_cycle.lua:234: in function 'execute_dig_cycle'
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: 	/data/world//worldmods/digtron/nodes/node_controllers.lua:146: in function 'auto_cycle'
minetest_1                 | 2018-10-07 04:06:46: ERROR[Main]: 	/data/world//worldmods/digtron/nodes/node_controllers.lua:260: in function </data/world//worldmods/digtron/nodes/node_controllers.lua:234>

Happened twice in a row on my server, should be reproducible somehow

Auto loading nodes

Sometimes, when mining, a digtron meet unloaded nodes and it stop.
It would be nice if the ditron loads the nodes it encounters.

[Project] Digtron integration with advtrains

I want to integrate loading and unloading digtrons with advtrains. I think the best way would be to have some special track in advtrains that docks to a digtron in some kind of digtron "docking station", and then has the train unload/load the digtron with its contents. What do you think of my proposal?

Builders caused an error, dont know how

This occurred on the server this morning. User isn't currently online to ask what builders are on their digtron (but it doesn't appear to be caused by normal building?).

ERROR[Main]: ServerError: AsyncErr: ServerThread::run Lua: Runtime error from mod 'digtron' in callback on_playerReceiveFields(): /home/minetest/.minetest/mods/digtron/util.lua:315: attempt to index local 'inv' (a nil value)
ERROR[Main]: stack traceback:
ERROR[Main]: 	/home/minetest/.minetest/mods/digtron/util.lua:315: in function 'update_builder_item'
ERROR[Main]: 	...etest/.minetest/mods/digtron/nodes/node_builders.lua:131: in function '?'
ERROR[Main]: 	...e/minetest/minetest/bin/../builtin/game/register.lua:420: in function <...e/minetest/minetest/bin/../builtin/game/register.lua:400>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.