Git Product home page Git Product logo

pickerdollies's People

Contributors

calibretto22 avatar heinwessels avatar jarg-compilatron avatar madelineritchie avatar nexela avatar sparr avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pickerdollies's Issues

__PickerDollies__/control.lue:93 attempt to index local 'pdata' (a nil value) 2022-11-26

Describe the Bug

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 mods to register their entity names for dollies blacklist

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.

Train stops won't move north or west

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.

Request: allow moving to invalid location if current location is invalid

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.

Let moved entities be undone

Is your feature request related to a problem? Please describe.

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.

Describe the solution you'd like

Having undo actually undo entity movement!
Thanks :)
Sophie x

global.blacklist_names unassigned in existing saves

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>

Unrecoverable error starting a Editor Extensions/Testing game using Raiguards editor extensions mod

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>

Moving onto matching ghosts.

Allow moving onto a ghost to remove the ghost and update with the ghost properties. user setting to enable/disable

Assignees: @Nexela
Labels: Enhancment

Moving rocket silo doesn't move launching rocket, causes graphics glitch

Describe the Bug

When using picker dollies to move a rocket silo mid-launch, the rocket doesn't move with it, leading a rendering glitch.

To Reproduce

Steps to reproduce the behavior:

  1. launch a rocket
  2. while mid-launch, use picker dollies to move the silo one tile to the right

Suggested fix

Move the associated rocket entity when moving a rocket silo

Suggestion: Bulk Select Entities

Is your feature request related to a problem? Please describe.

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.

Describe the solution you'd like

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!

Crash when moving yellow train signal

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```

Option to move further

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!

Remote interfaces not being registered

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.

Error thrown when attempting to move a ghost tile.

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>

New update breaks compatibility with Logistic Train Networks

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.

Error while running event LogisticTrainNetwork::on_init()
Error when running interface function PickerDollies.add_blacklist_name: PickerDollies/interface.lua:68: attempt to index field 'blacklist_names' (a nil value)
stack traceback:
PickerDollies/interface.lua:68: in function <PickerDollies/interface.lua:65>
stack traceback:
[C]: in function 'call'
LogisticTrainNetwork/script/init.lua:286: in function 'registerEvents'
LogisticTrainNetwork/script/init.lua:308: in function <LogisticTrainNetwork/script/init.lua:298>

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.