nexela / pickerdollies Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Looks like there's a typo in the blacklist here: https://github.com/Nexela/PickerExtended/blob/a576ed3d4bf1409ef05c4b0957c2e1609ad720fa/scripts/dollies.lua#L41
Entities like rails fail with a console message.
Entities blacklisted by remote calls fail silently.
When a valid entity had been moved prior, it will continue to move that entity.
Error thrown when attempting to move a ghost tile.
4360.878 Script @__stdlib__/stdlib/core.lua:50: Key "inner_name" not found in property tree at ROOT
stack traceback:
__PickerDollies__/control.lua:191: in function <__PickerDollies__/control.lua:96>
[C]: in function 'pcall'
__stdlib__/stdlib/event/event.lua:302: in function 'dispatch_event'
__stdlib__/stdlib/event/event.lua:372: in function <__stdlib__/stdlib/event/event.lua:336>
There are times when you realize that a sizable section of your factory--naturally loaded with thousands of items and lots of external circuit connections--needs to be moved only 1 or 2 cells over. ...and you don't have bots yet. Oof. RIP your time, patience, and peace of mind.
Please add the ability to press (...or w/e) to select a number of entities, which can then be moved with the arrow keys, just as can now be done with a single entity
Cheers!
In saves with existing picker dollies using add_blacklist_name fails with the following.
Error while running event LogisticTrainNetwork::on_load()
Error when running interface function PickerDollies.add_blacklist_name: __PickerDollies__/control.lua:33: attempt to index field 'blacklist_names' (a nil value)
stack traceback:
__PickerDollies__/control.lua:33: in function <__PickerDollies__/control.lua:32>
stack traceback:
__LogisticTrainNetwork__/script/init.lua:238: in function 'registerEvents'
__LogisticTrainNetwork__/script/init.lua:255: in function <__LogisticTrainNetwork__/script/init.lua:246>
stack traceback:
[C]: in function 'call'
__LogisticTrainNetwork__/script/init.lua:238: in function 'registerEvents'
__LogisticTrainNetwork__/script/init.lua:255: in function <__LogisticTrainNetwork__/script/init.lua:246>
A rail signal or station can't be moved if there's no rail at the target location. This is moderately sensible. However, if there's no rail at the current location either then I think the user should be able to move it around freely. This should perhaps apply to any entities that have some placement validity check other than collision. On second thought, if an entity is already violating collision then I think it should be allowed to be moved to a new collision violating location, so this request applies to basically any reason an entity couldn't be moved to its current and new locations.
So this is more of a query / feature request. I would love to be able to press undo and it revert the entity I just moved to it's former position. That doesn't happen. It just gets ignored completely and so I end up undoing the previous thing(s) without realising and that is problematic for me.
Having undo actually undo entity movement!
Thanks :)
Sophie x
Picker currently allows moving entities that where never intended to be moved like LTN's IO entities.
While I could hock into dolly_moved_entity_id and teleport them back, I'd rather register their names into the blacklist so they are not movable in the first place.
Installing just Picker Dollies and Logistic Train Networks and their dependencies causes a non-recoverable crash when starting a new game. This did not happen with the previous version, 1.1.7.
The error from the game is:
The mod LTN - Logistic Train Network (1.16.7) caused a non-recoverable error.
Please report this error to the mod author.
Xiomax
1 year, 5 months ago
Is there a way to hold the arrow keys to move the entity automatically as long as those are pressed?
Currently I need to spam the arrow keys and with long distances it's almost not doable.
Or, holding shift to attempt to move 5 spaces at once would be a great alternative.
Thanks!
Nexela
1 year, 5 months ago
Edit
The first option is not possible as the event is only fired once per click. I will take the second under advisement but I don't hold high hopes for it being done.
Xiomax
1 year, 5 months ago
Great!
Steps to repro:
Load save
Move Yellow Signal (second from left, hidden behind station) up 1 tile.
Crash.
262.548 Popped blueprint record (player-index: 0, ID: 964) from book (player-index: 0, ID: 828)
262.658 Deleting surface _BPEX_Temp_Surface index 2.
Factorio crashed. Generating symbolized stacktrace, please wait ...
Raw stacktrace: 0xaf152b, 0xcae9cd, 0x9aa238, 0x9c69cf, 0xc315cb, 0xc31aea, 0xed56aa, 0xed5c7f, 0xed6292, 0xed63ec, 0xed7630, 0xb3bd95, 0xb3c02e, 0xb3c138, 0x12eff2a, 0x150ebfb, 0x152012c, 0x150edf8, 0x150ee49, 0x150eea9, 0x15096a6, 0x6f4ccc, 0xdf6dc2, 0x134a3ff, 0xd15fdc, 0xc7820c, 0x7fb36c, 0xa9e37c, 0xf53363, 0xf538e2, 0xb0a0d1, 0x1857fbf, 0x9182, 0
6914.198 Warning Logger.cpp:510: Symbols.size() == 48, usedSize == 33
#0 0x0000000000cae9cd in std::__uniq_ptr_impl<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::_M_ptr() const at /usr/include/c++/8/bits/unique_ptr.h:150
#1 0x00000000009aa238 in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::get() const at /usr/include/c++/8/bits/unique_ptr.h:343
#2 0x00000000009c69cf in std::unique_ptr<LoggerFileWriteStream, std::default_delete<LoggerFileWriteStream> >::operator->() const at /usr/include/c++/8/bits/unique_ptr.h:337
#3 0x0000000000c315cb in Logger::flush() at /tmp/factorio-build-qhU3be/src/Util/Logger.cpp:548
#4 0x0000000000c31aea in Logger::logStacktrace(StackTraceInfo*) at /tmp/factorio-build-qhU3be/src/Util/Logger.cpp:534
#5 0x0000000000ed56aa in Logging::flush() at /tmp/factorio-build-qhU3be/src/Util/Logging.cpp:66
#6 0x0000000000ed5c7f in Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, std::string const&) at /tmp/factorio-build-qhU3be/src/Util/Logging.cpp:97
#7 0x0000000000ed6292 in Logging::logAndAbortOrThrow(char const*, unsigned int, LogLevel, char const*, ...) at /tmp/factorio-build-qhU3be/src/Util/Logging.cpp:90
#8 0x0000000000ed63ec in TrainSignalLogic::cancelReservations(Train*, std::set<RailSignalBase*, std::less<RailSignalBase*>, std::allocator<RailSignalBase*> >*) at /tmp/factorio-build-qhU3be/src/Rail/RailBlock.cpp:172
#9 0x0000000000ed7630 in std::_Deque_iterator<RailSignalData, RailSignalData&, RailSignalData*>::_Deque_iterator(std::_Deque_iterator<RailSignalData, RailSignalData&, RailSignalData*> const&) at /usr/include/c++/8/bits/stl_deque.h:154
#10 0x0000000000b3bd95 in std::deque<RailSignalData, std::allocator<RailSignalData> >::begin() at /usr/include/c++/8/bits/stl_deque.h:1177
#11 0x0000000000b3c02e in std::deque<RailSignalData, std::allocator<RailSignalData> >::clear() at /usr/include/c++/8/bits/stl_deque.h:1851
#12 0x0000000000b3c138 in TrainSignalLogic::clear(Train*, std::set<RailSignalBase*, std::less<RailSignalBase*>, std::allocator<RailSignalBase*> >*) at /tmp/factorio-build-qhU3be/src/Rail/TrainSignalLogic.cpp:104
#13 0x00000000012eff2a in Train::deletePath(std::set<RailSignalBase*, std::less<RailSignalBase*>, std::allocator<RailSignalBase*> >*) at /tmp/factorio-build-qhU3be/src/Rail/Train.cpp:323
#14 0x000000000150ebfb in Train::recalculatePath(Train::AllowDirectionChange, bool, Rail const*) at /tmp/factorio-build-qhU3be/src/Rail/Train.cpp:1995
#15 0x000000000152012c in TrainManager::recalculatePaths() at /tmp/factorio-build-qhU3be/src/Rail/TrainManager.cpp:925 (discriminator 2)
#16 0x000000000150edf8 in TrainManager::onSignalDestroyed(RailSignalBase*, bool) at /tmp/factorio-build-qhU3be/src/Rail/TrainManager.cpp:766
#17 0x000000000150ee49 in std::vector<RailSignalConnection, std::allocator<RailSignalConnection> >::clear() at /usr/include/c++/8/bits/stl_vector.h:1386
#18 0x000000000150eea9 in RailSignalBase::disconnect() at /tmp/factorio-build-qhU3be/src/Entity/RailSignalBase.cpp:726
#19 0x00000000015096a6 in RailSignalBase::onChangePosition(MapPosition const&) at /tmp/factorio-build-qhU3be/src/Entity/RailSignalBase.cpp:705
#20 0x00000000006f4ccc in Entity::teleport(MapPosition) at /tmp/factorio-build-qhU3be/src/Entity/Entity.cpp:818
#21 0x0000000000df6dc2 in ControlAdapter::teleport(MapPosition const&, Surface*) at /tmp/factorio-build-qhU3be/src/Script/LuaControl.cpp:256
#22 0x000000000134a3ff in LuaControl::luaTeleport(lua_State*) at /tmp/factorio-build-qhU3be/src/Script/LuaControl.cpp:884
#23 0x0000000000d15fdc in LuaBinder<LuaEntity>::callWrapper(lua_State*) at /tmp/factorio-build-qhU3be/src/Script/LuaBinder.hpp:327 (discriminator 4)
#24 0x0000000000c7820c in luaD_precall(lua_State*, lua_TValue*, int) at /tmp/factorio-build-qhU3be/libraries/Lua/ldo.c:350
#25 0x00000000007fb36c in luaV_execute(lua_State*) at /tmp/factorio-build-qhU3be/libraries/Lua/lvm.c:710 (discriminator 3)
#26 0x0000000000a9e37c in luaD_call(lua_State*, lua_TValue*, int, int) at /tmp/factorio-build-qhU3be/libraries/Lua/ldo.c:424
#27 0x0000000000f53363 in luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) at /tmp/factorio-build-qhU3be/libraries/Lua/ldo.c:165
#28 0x0000000000f538e2 in luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) at /tmp/factorio-build-qhU3be/libraries/Lua/ldo.c:623
#29 0x0000000000b0a0d1 in lua_pcallk at /tmp/factorio-build-qhU3be/libraries/Lua/lapi.c:1071
#30 0x0000000001857fbf in LuaHelper::pCallWithStackTrace(lua_State*, int, int) at /tmp/factorio-build-qhU3be/src/Util/LuaHelper.cpp:3331
#31 0x0000000000009182 in LuaGameScript::signallingPCall(lua_State*, int, int) at /tmp/factorio-build-qhU3be/src/Script/LuaGameScript.cpp:5882
#32 (nil) in LuaGameScript::runEventHandler(unsigned int, int) at /tmp/factorio-build-qhU3be/src/Script/LuaGameScript.cpp:895
#33 (nil) in TimeUtil::CpuTimer::elapsed() const at /tmp/factorio-build-qhU3be/src/Util/TimeUtil.hpp:44
#34 0x0000000000000001 in void LuaEventDispatcher::run<GameAction>(unsigned int, unsigned int, bool (LuaGameScript::*)(GameAction const&), GameAction const&) at /tmp/factorio-build-qhU3be/src/Script/LuaEventDispatcher.cpp:540
#35 0x00000000022d2f6c in GameActionDispatcher::sendToListeners(GameAction const&) at /tmp/factorio-build-qhU3be/src/GameActionDispatcher.cpp:14
#36 0x0000000000653878 in GameActionHandler::customInput(InputAction const&, Player*) at /tmp/factorio-build-qhU3be/src/GameActionHandler.cpp:3083
#37 0x408c258d3813719f in GameActionHandler::actionPerformed(InputAction const&) at /tmp/factorio-build-qhU3be/src/GameActionHandler.cpp:325 (discriminator 4)
#38 0x3ff0000000000000 in InputHandler::flushToListeners(InputAction const&, bool) at /tmp/factorio-build-qhU3be/src/Input/InputHandler.cpp:72
#39 0x408c0e40701a053f in InputHandler::flushActions(bool, unsigned int) at /tmp/factorio-build-qhU3be/src/Input/InputHandler.cpp:64
#40 0x408c01cc1d61dee4 in GameActionHandler::update() at /tmp/factorio-build-qhU3be/src/GameActionHandler.cpp:366
#41 0x412e848000000000 in MainLoop::gameUpdateStep(MultiplayerManagerBase*, Scenario*, AppManager*, MainLoop::HeavyMode) at /tmp/factorio-build-qhU3be/src/MainLoop.cpp:1149
#42 0x4137c13e664ce842 in MainLoop::gameUpdateLoop(MainLoop::HeavyMode) at /tmp/factorio-build-qhU3be/src/MainLoop.cpp:1022
#43 0x416fca0555555555 in std::function<void ()>::operator=(decltype(nullptr)) at /usr/include/c++/8/bits/std_function.h:495
#44 0x3fd3ed5126a3c4cd in WorkerThread::loop() at /tmp/factorio-build-qhU3be/src/Util/WorkerThread.cpp:42
#45 0x40c3500ee5f6fc77 in execute_native_thread_routine at blake2s.c:?
#46 0x40c511807d20f345 in ?? at ??:0
#47 0x416fca0555555555 in ?? at ??:0
Stack trace logging done
6919.801 Warning Logger.cpp:510: Symbols.size() == 43, usedSize == 32
6919.801 Error RailBlock.cpp:172: *this->reservedFor == train was not true
Logger::writeStacktrace skipped.
6919.801 Error CrashHandler.cpp:181: Map tick at moment of crash: 36515693```
Some saved games do not have valid data in the global.players table and pdata returns nil for the player id. The fix in 1.2.4 was insufficient for my saved game and other players.
other players with the same issue
https://mods.factorio.com/mod/PickerDollies/discussion/63704036f40a0a5fafbdaa6a
https://mods.factorio.com/mod/PickerDollies/discussion/636ec9bdf558ab0a5469d099
https://mods.factorio.com/mod/PickerDollies/discussion/636e67b718fd17146dc43c2b
https://mods.factorio.com/mod/PickerDollies/discussion/635a80ff06ab422e31c326df
I'm preparing a related pull request that resolves this. I'll have implementation notes in the PR and commit.
Allow moving onto a ghost to remove the ghost and update with the ghost properties. user setting to enable/disable
Assignees: @Nexela
Labels: Enhancment
I can move everything else in all four directions. Train stops either move or produce the expected errors when going south or east. Attempting to move them north or west produces no effect at all.
The mod Picker Dollies (1.2.5) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event PickerDollies::on_player_removed (ID 75)
stdlib/stdlib/event/event.lua:368: stdlib/stdlib/event/player.lua:79: attempt to index field 'players' (a nil value)
stack traceback:
[C]: in function 'error'
stdlib/stdlib/event/event.lua:368: in function 'dispatch_event'
stdlib/stdlib/event/event.lua:438: in function <stdlib/stdlib/event/event.lua:396>
When using picker dollies to move a rocket silo mid-launch, the rocket doesn't move with it, leading a rendering glitch.
Steps to reproduce the behavior:
Move the associated rocket entity when moving a rocket silo
Looks like during some code cleanup, the following line was removed from controls.lua
:
local interface = require('interface')
This causes issues with the Bottleneck mod since it is not receiving the entity moved event, so the indicator stays in its original place.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.