Entry-Level Task Suggestions
Raycoms opened this issue ยท 6 comments
Hi, this is a suggestion board for people wanting to contribute to MineColonies.
If you pick one of these, please create a new issue and assign it to yourself.
If you have other ideas about additions or questions regarding one of the issues, please contact us on our discord.
- Create Boar entity that spawns randomly around colonies, searches for fields to damage them (can dig out dirt).
- Create Goat entity that spawns randomly around colonies, searches for fields to damage them (can jump over fences).
- Create Hunter AI that has some dogs following him around that will hunt the entities above.
- Extend the current Permission system to allow people to add additional ranks.
- Diverse mod compatibility requests: https://github.com/ldtteam/minecolonies-features/issues
- Other features from the link above (ask first to make sure it's actually planned)
- Adjust the research system to use datapacks instead of statically registering it.
- Fix research GUI to display arrows correctly
- Adjust sifter drops to datapacks instead of defining it in the config.
- Fix up hut block textures to use Minecraft base textures instead of our hardcoded ones.
- Allow builder to build things that are placed with the shape tool
- Add special armor drops to Vikings
- Add a special spear item Amazon raiders use and drop
- Add a special medieval armor that only the blacksmith can create
Another question .. Guard towers have the option "recruit from Combat Academy/Archer" which is on by default.. however, when manually recruiting workers those within the Combat Academy/Archer are never shown as available.. you have to fire the from the academy/archer before you can recruit them to the guard tower.. is this just missing functionality or intent?
We should have a registry for the research effects. So that addons can add additional effects. (Or other mods can add their own effects to unlock things of their mods).
That includes conversion of existing recipes to json from their static assignments, as well as loading from user-defined per-world datapacks.
Lots of work to be done on this topic still before it's ready for a pull request, but put together a testbed of the core functionality. I'd be grateful if people could sanity-check the json format, in particular -- it'll be a lot easier to add extra functionality now than a while down the road.
(especially since I was lazy and put together the initial export of existing researches in an ungodly mess of Java->csv->C#->bash script.)
New json tags aren't too rough to handle, but in particular:
- Code right now assumes that research ids, unlockBuildingIds, and unlockAbility Ids, will remain unique. There's ways to work around that if you want the ability to support Combat/Keen and Civilian/Keen, but if that's gonna happen better to know now before editting the buildings and abilities to support it.
- As a result, datapack modders won't need to exactly overwrite files to replace specific behaviors. Writing out the exact overwrite priorities will probably be more complicated, but at least it's not css. Probably will need to force lowercase for a few fields to avoid potential problems down the road, however.
- I've set the folder and name structure up to match what people will see in-game, but that's for sanity of finding stuff, rather than required or enforced by the json loader: as long as it's in minecolonies.researches and doesn't break with Mojang's rules, the loader will read it. Enforcing that structure is possible, but probably worth baking in sooner than later.
- I've put a field for requiredUniversityLevel, as was present in the ResearchInitializer code. These are possible if ugly to back-calculate if we assume whatever research doesn't have a parent is tier one and go up from there, but I'm not sure if you want to be able to support research subbranches that only start at higher tiers.
- UniversityHut already supports arbitrary branches, and that works. If we need it to not work, not too hard to turn off.
- IResearchRequirements (in json "requiredBuildings"), and IResearchEffects (in json "effects") are set up as array objects. I'm just pulling the first one right now where present, but unless you all prefer only allowing one requirement/effect per research, my plan was to start setting the various helpers to iterate through lists.
- ParentResearch is not, and still a single string. I'm not sure what allowing multiple precursors for a given research will do to the current UI drawing system, and I didn't want to get too far afield of the core project.
- Similarly, did not set tags for per-research time requirements. That seems more a config option thing.
Placement obviously isn't Right; a lot of the code for ResearchRecipe.java 'belongs' in GlobalResearch, rather than parsing the data into instances of a class that get thrown away a few minutes later. Had been swapping between the two systems enough that having them run parallel was useful.
Error-handling or input sanitization basically isn't right now -- bad coder, no biscuit -- and that's going to be a lot of the remaining work. Most invalid results won't break things and just don't behave as expected or report well enough, like making things that can't logically connect (parents override universityLevels for now).
Others... the system will properly render T7 university research. But I know attaching a research to a parent on a different branch will cause crashes, and there's code to block that, and I'd be surprised if it's the only such case. It's a fairly techie part of the system, but I don't want to make work or bad bug reports down the road. Haven't tested what happens if the server and client disagree about available research yet, either.
Not sure if these are entry level or not but 2 suggestions..
- allow the rally banner to be placed on a shoreline like a flag so that they don't dismiss when you are off to die remove pirate spawners from the ship
- all structure boxes (the ones where you choose to build/repair/upgrade) be visible with the builders wand. It would make finding them to activate a command less.. precarious
New suggestions should go here: https://github.com/ldtteam/minecolonies-features/issues