jonasjurczok / factorio-todo-list Goto Github PK
View Code? Open in Web Editor NEWA distributed todo list mod for Factorio
License: MIT License
A distributed todo list mod for Factorio
License: MIT License
Problem
Sometimes you create a task like "Build green Circuit outpost".
But to complete this you need a copper plate outpost.
The copper plate outpost in itself is a task with subtasks (walls, defences, train stations, ...).
This connection is not visible in the tasks
Describe the solution you'd like
It would be nice if you could add a "depends on" connection to other tasks.
The main list could be sorted by dependencies (you cannot sort a dependent task before the task it depends on).
Additionally you could show dependencies with some form of colour coding?
Additional context
Sorting can become complex.
Needs to analyse possible circles in the dependency graph.
What if we depend on multiple tasks or multiple tasks depend on us?
Could be visualised as extra task list in the detail screen. Above the subtasks, below the description.
What about exporting and importing?
New task textbox should automatically grow with the content.
Now that Faketorio is usable we should actually have way more tests :)
The Readme should contain a usable documentation that teaches the basic steps.
Also it should be written in a way that it can be copied into the Factorio.com mod description.
Describe the bug
In the latest release (16.7.0) if you add some tasks, minimize the list, then click the UI button to open it again, the newly added tasks will appear to have disappeared.
They will re-appear if you click the 'show completed tasks' button.
This bug does not happen if you use the keystroke instead of the UI button to make the list appear.
I'm not filling out the rest of the report, since I think my description is detailed enough to reproduce the bug.
When clicking the Todo List
button at top left:
Key "column_count" not found in property tree at ROOT
stack traceback:
__Todo-List__/UI.lua:52: in function 'create_task_table'
__Todo-List__/UI.lua:22: in function 'create_maximized_frame'
__Todo-List__/todo.lua:45: in function 'maximize'
__Todo-List__/todo.lua:187: in function 'on_gui_click'
__Todo-List__/control.lua:18: in function <__Todo-List__/control.lua:17>```
It is not possible anymore to minimize the UI by clicking on the main button. This worked before.
https://forums.factorio.com/viewtopic.php?t=59906
With 0.17 there will be native json encode/decode in Factorio.
We can remove our own json encoder/decoder then
Right now, tasks support multi-line, and this might be helpful for particularly complicated things. Unfortunately, they take of a lot of space in the UI.
If we had separate 'title' and an optional 'details' field, we could force the title to be one line (maybe even a length limit), and allow users to elaborate all they want in the multi-line details field.
This would make the UI a lot easier to develop, since every task in the list will take up the same amount of space.
Hello, please add Russian translation
`[todo]
todo_list=Задачи
title_done=Готово
title_task=Задача
title_assignee=Куратор
title_edit=Редактировать
minimize=Выход
add=Добавить
add_title=Добавить новую задачу
add_task=Задача
add_assignee=Куратор
persist=Сохранить
cancel=Отменить
update=Обновить
unassigned=Неназначенный
assign_self=Взять
show_done=Показывать завершенные задачи
hide_done=Скрыть завершенные задачи
todo_maximize_button_caption=1: 2
nothing_todo=Нет задач.
[controls]
todolist-toggle-ui=Закрыть/Открыть Задачи
[mod-setting-name]
todolist-show-button=Показать"Задачи" кнопку.
todolist-show-log=Показать сообщения журнала отладки в окне чата.
todolist-window-height=Окно списока задач высота
todolist-auto-assign=Автоматическое назначение задач
[mod-setting-description]
todolist-show-button=Если включен всегда появится кнопка "Задачи" в левом верхнем углу.\nЕсли отключить "Задачи" можно добраться только горячими клавишами (Shift-T по умолчанию).
todolist-show-log=Если включена, то мод будет выводить отладочные сообщения в окно чата.\nВнимание: есть много из них :)
todolist-window-height=Высота окна списока задач. По умолчанию-600.
todolist-auto-assign=Если есть только один игрок в игре, автоматически назначать задачи для игрока.`
If a player joins or leaves the list of possible assignees should be updated to reflect the current list of players.
Assigned players should not be changed.
It should be possible to change the font size.
It should be possible to change existing tasks.
To better indicate that you should pick something new add a green tick to the minimized button if the task is completed.
This is a bigger idea for down the road.
Allow users to turn on a 'current task' UI that shows them their top open assigned task at all times, separately from the list UI. Since it'll only show a single task, it can be small. All it needs is to display the task's text and possibly have a 'complete' button.
I'm not sure how useful this really is, since you can get the same result from opening the full list, but I think I'd like it, so suggestion :)
Reproduce error:
Create new task.
Hit edit/add new
Hit edit/add new again
What is needed is to make sure the 'todo_add_frame' is open only once per player
I may try to fix it myself, but don't know the factorio api.
Error while running event Todo-List::on_gui_click (ID 1)
Gui element with name todo_add_frame already present in the parent element.
stack traceback:
__Todo-List__/UI.lua:86: in function 'create_add_edit_frame'
__Todo-List__/todo.lua:84: in function 'edit_task'
__Todo-List__/todo.lua:186: in function 'on_gui_click'
__Todo-List__/control.lua:16: in function <__Todo-List__/control.lua:15>
Error while running event Todo-List::on_gui_click (ID 1)
Gui element with name todo_add_frame already present in the parent element.
stack traceback:
__Todo-List__/UI.lua:86: in function 'create_add_edit_frame'
__Todo-List__/todo.lua:175: in function 'on_gui_click'
__Todo-List__/control.lua:16: in function <__Todo-List__/control.lua:15>
Something in the means like this
function todo.create_add_edit_frame(player)
local gui = player.gui.center
**if 'gui contains element with name 'todo_add_frame' return**
local frame = gui.add({
type = "frame",
name = "todo_add_frame",
caption = {"todo.add_title"},
direction = "vertical"
})
It should be possible to enable debug logging on a per player basis.
This way all the debug statements could be kept in the code.
I think this would be something interesting. I'm a solo player and each time I have to select myself in the dropdown or use the take button to assign the task to me (and I like to see that the task is assigned to me).
I think that if there is only one player we could have an option so the tasks are directly assigned to this single player.
you can review an implementation of this in my feature/auto-assign branch.
If you are adding a task and actually realize you don't want to you should be able to abort adding it.
It should be possible to remove completed tasks
I think we should be able to import a preset list of tasks.
If I'm beggining a new game I always start the same, and I still forgot to correctly size the first furnace for iron or oversize the copper smelting area. So I'd like to have a nice preset list of what to do and what size I want them to be.
As server admin
I would like to limit task interaction to certain users
So that not every troll can flood the system with BS tasks.
Acceptance Criteria:
Original request here
assigning completed tasks to yourself is not working.
It should be possible to create subtasks.
With vanilla it is possible to share blueprints between games.
It would be cool if we could do the same.
Currently all tasks are counted in.
The wording says "tasks available".
To stick with the wording only tasks without an assignee should be counted.
Currently the minimzed button shows the full task text and not just the first line.
This makes it impractical with tasks that span multiple lines.
It should be possible to add new items to the list.
Enter a text.
A new entry in the list appears and is unassigned.
Either by a number or with drag and drop
It should be possible to configure task templates.
Thus you could create a task "from template X". This would speed up creating more complex tasks (like setting up new bases).
When closing an item it should be moved to the done list.
It should also be removed from all uis.
By now there are a lot of infos attached to tasks. It would be cool to have a clickable Icon besides the task that opens an extra dialog with all the infos of that task (map location, subtasks?).
It should be possible to switch the mod to a quest log and calling tasks quests.
Add task, "complete" it, show completed task, try to edit completed task, crash.
Error while running event Todo-List::on_gui_click (ID 1)
__Todo-List__/todo.lua:90: attempt to index local 'task' (a nil value)
The button shows the first line of an assigned task.
Currently it is unclear how the button behaves if the task starts with an empty line.
Add a test to cover this edge case.
Expected behaviour: The first non empty line should be shown
Using the todo list today I had to save and quit then load my game quite a lot of times. Sitting back at the computer I can't remember what to do then add to open the UI to check the first task. Maybe add a way to get a view on the first task assigned to me.
What do you think?
The UI still needs some work.
Minimize button
Add new entry button
Auto delete tasks
Currently completed tasks build up in a huge list.
Usually you never look at them again.
Describe the solution you'd like
We could add an option to automatically delete tasks instead of marking them as complete.
Then the completed list would not be that long.
Additional context
Or a modifier? shift + complete click deletes?
Editing a completed task crashes the game.
If there are too many tasks you cannot see them all -> enable scrolling
It's just empty text that takes up space. It can be removed (or hidden behind an option),
I'm often finding that I'm adding tasks to my to-do list that are very low or very high priority, so it'd be nice to be able to send tasks to the top or bottom of the list at will.
A checkbox on the creation dialog would also work, just for creating the item at the top instead of the bottom.
(Also, Is there any way to resize the text? It's a little too big, so the list takes up a lot of my screen.)
This was an idea I had while playing the other day - it'd be nice to be able to just click on the task's text to open the edit dialog. It could mean eliminating the need for the edit
button entirely, but that would need some styling to make it look clickable (if that's even possible), or made into a button.
It should be possible to duplicate tasks.
For main tasks it should just create a copy with all subtasks.
For subtasks it should duplicate them in the same main task.
Crazy idea:
If you are somewhere outside and think about your factory there is no way to put that into your todo list.
How about a mail address (personalized) where you can send random mails to. When you log into the game next time they are fetched from the mailbox and added to your todo list.
I have no idea if this is techically possible.. and if someone would actually use it :D
Alternative: have a small mobile app that creates todo list export strings. Then you can create the task on the fly, mail it to yourself and then import it manually.
I'd like to have a spare field to set a target something. My main idea is to set target timers for tasks, such as : get my steel research done by 30 minutes or something like that.
When loading an existing save the mod does not get initialized. Neither the data not the player hi.
It seems as (at least in single player) the onplayercreated is not fired when loading an existing save for the first time with the mod.
It would be nice to see who created/last modified an issue.
It would be cool to have a location for tasks.
In the edit dialog you should be able to add a map location.
Selecting a location should ask for a name and then create a marker on the global map.
If an existing marker is selected it should be connected to the task.
If the marker is updated the old version should be deleted.
The map location should be shown in the edit dialog.
Too many buttons in the main frame
By now there are six columns of buttons in the main frame. Not all of them are relevant at all times.
Describe the solution you'd like
It would be cool to be able to minimize the button columns.
Maybe just sorting, maybe all?
Pro sorting only:
Contra sorting only:
Pro all collapsable:
Contra all collapsable:
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.