Uh oh!
There was an error while loading. Please reload this page.
Improve plants/plant plugin - #4632
Conversation
* Update regrass.cpp * Update regrass.lua * Update regrass.rst * Rename plants.cpp to plant.cpp * Rename plants.rst to plant.rst * Update plugins/CMakeLists.txt * Update plant.cpp * Create plant.lua * Update plant.rst
myk002
commented
May 24, 2024
don't mind the compilation failures. they'll clear up once #4631 is merged |
myk002
left a comment
There was a problem hiding this comment.
needs a section in Removed.rst so that old links still work
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
myk002
commented
May 24, 2024
ok, now the build errors are real |
ab9rf
commented
May 24, 2024
this PR depends on #4591 for the use of |
* Add option to force plant create on no_grow; allow more valid tiles * Update plant.cpp: remove extra includes, use if/else for plant vectors * Update regrass.cpp: don't remove mud * Update changelog.txt * Update Removed.rst * Update regrass.rst * Update plant.rst
Should |
myk002
commented
May 26, 2024
yes, that sounds reasonable |
* Add "plant list" and "regrass --list" to replace clunky commands * Update Tags.rst: Add grass to "plants" tag description
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
myk002
left a comment
There was a problem hiding this comment.
comparing with other tools, the parameter is usually named dry-run instead of dryrun. Could you add a dash?
* Update regrass.rst * Update plant.rst * Update plant.lua * Update plant.cpp * Update changelog.txt
U.S. English built different. |
myk002
commented
May 28, 2024
I'm going by https://www.thepunctuationguide.com/parentheses.html (but of course only because that's the way I already write..) |
ab9rf
commented
May 28, 2024
Not according to my legal writing instructor (at a US-based law school). |
ab9rf
commented
Jun 6, 2024
i am working on an PR that adds identity support for |
I'll merge in the following diff to adjust to structure changes: diff --git a/plugins/plants.cpp b/plugins/plants.cpp
index 2325c01e3..8de7ccc6f 100644
--- a/plugins/plants.cpp+++ b/plugins/plants.cpp@@ -69,7 +69,8 @@ command_result df_grow (color_ostream &out, vector <string> & parameters)
{
df::plant *p = world->plants.all[i];
df::tiletype ttype = map.tiletypeAt(df::coord(p->pos.x,p->pos.y,p->pos.z));
- if(!p->flags.bits.is_shrub && tileShape(ttype) == tiletype_shape::SAPLING && tileSpecial(ttype) != tiletype_special::DEAD)+ bool is_shrub = plant->type == df::plant_type::DRY_PLANT || plant->type == df::plant_type::WET_PLANT;+ if(!is_shrub && tileShape(ttype) == tiletype_shape::SAPLING && tileSpecial(ttype) != tiletype_special::DEAD)
{
p->grow_counter = sapling_to_tree_threshold;
grown++;
@@ -148,12 +149,12 @@ command_result df_createplant (color_ostream &out, vector <string> & parameters)
else
{
plant->hitpoints = 100000;
- plant->flags.bits.is_shrub = 1;+ plant->type = df::plant_type::DRY_PLANT;
}
- // for now, always set "watery" for WET-permitted plants, even if they're spawned away from water+ // for now, assume wet for WET-permitted plants, even if they're spawned away from water
// the proper method would be to actually look for nearby water features, but it's not clear exactly how that works
- if (plant_raw->flags.is_set(plant_raw_flags::WET))- plant->type = df::plant_type::WET_TREE;+ if (plant_raw->flags.is_set(plant_raw_flags::WET)) {+ if (plant_raw->flags.is_set(plant_raw_flags::TREE))+ plant->type = df::plant_type::WET_TREE;+ else+ plant->type = df::plant_type::WET_PLANT;+ }
plant->material = plant_id;
plant->pos.x = x;
plant->pos.y = y;
@@ -169,7 +170,7 @@ command_result df_createplant (color_ostream &out, vector <string> & parameters)
case 3: world->plants.shrub_wet.push_back(plant); break;
}
col->plants.push_back(plant);
- if (plant->flags.bits.is_shrub)+ if (plant->type == df::plant_type::DRY_PLANT || plant->type == df::plant_type::WET_PLANT)
map->tiletype[tx][ty] = tiletype::Shrub;
else
map->tiletype[tx][ty] = tiletype::Sapling; |
Rename the
plantsplugin toplantto match the command, making it easier to find docs.Add command
plant removeto remove plants. (Doesn't work on mature trees yet. Will need to reverse-engineer proper tile removal at a later date.) Addplant listto list shrub and sapling raw IDs, avoiding use of lengthydevel/querycommand and excluding grasses.Adds a bunch of options to existing
plant createandplant grow. See:docs/plugins/plant.rst. Use proper logic for determining plantwateryflag, adding to wet/dry vector.Minor improvement to
regrassto accept numerical raw ID for grass type.regrass --listreplacesregrass --plant "". Don't remove mud on regrass (since DF doesn't.)plantsdoc tag now encompasses tools that affect grass, to includeregrassplugin.DataIdentityfor container types #4591) to pass vector ref to Luaplantuses its owncuboidstruct. This can be replaced by a more global one: Cuboid struct/class for df::coord bounds #4595