Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 [2] 3 4

Author Topic: More Ways to Enjoy Corpses  (Read 10219 times)

Isngrim

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #15 on: August 25, 2015, 04:11:57 pm »

you should still have corpse to statue reaction,it'd just be necro-modern art.

and blood was also used in makeing clay bricks  (in rome i think).
Logged
08:43 PM The wild animals and insects sang a merry tune and the trees performed a dance. I know you're trying to cheer me up, Vishnu, but that was actually a bit creepy.-Rhons

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #16 on: August 25, 2015, 06:47:06 pm »

you should still have corpse to statue reaction,it'd just be necro-modern art.

Will experiment around with some options to try and make that happen.

and blood was also used in makeing clay bricks  (in rome i think).

Source plz~
Logged
The silver is responsible for this How?

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #17 on: August 25, 2015, 06:49:43 pm »

Quote
I'll have to make a specific MEPH_CORPSE reaction~
Is that a threat?

No, just an homage. But, if you'd rather~
Logged
The silver is responsible for this How?

Isngrim

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #18 on: August 25, 2015, 07:10:52 pm »


and blood was also used in makeing clay bricks  (in rome i think).

Source plz~
cant seem to find where i read it,but i know it was in an episode of Ancient Impossibles on H2
« Last Edit: August 25, 2015, 07:13:25 pm by Isngrim »
Logged
08:43 PM The wild animals and insects sang a merry tune and the trees performed a dance. I know you're trying to cheer me up, Vishnu, but that was actually a bit creepy.-Rhons

Isngrim

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #19 on: August 25, 2015, 07:11:21 pm »

Sorry, double post
« Last Edit: August 25, 2015, 07:13:12 pm by Isngrim »
Logged
08:43 PM The wild animals and insects sang a merry tune and the trees performed a dance. I know you're trying to cheer me up, Vishnu, but that was actually a bit creepy.-Rhons

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #20 on: August 25, 2015, 07:21:52 pm »

cant seem to find where i read it,but i know it was in an episode of Ancient Impossibles on H2

Episode transcript here.

Seems like it wasn't a necessary ingredient at all, so it's less awesome, but I can make a blood and bone mortar reaction. Actually, I'll just replace the removed water component for the bone blocks (reaction wasn't working for me while it required buckets full of water) with some blood.

The bigger thing there was the volcanic ash sand, which I wasn't sure how to implement correctly. Thinking about it now, I could use obsidian boulders, or create a soil layer for it of a special sand.
Logged
The silver is responsible for this How?

crazyabe

  • Bay Watcher
  • I didn't start the fire...Just added the gasoline!
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #21 on: August 26, 2015, 11:51:11 pm »

PeTaW
Logged
Quote from: MonkeyMarkMario, 2023
“Don’t quote me.”
nothing here.

Atomic Chicken

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #22 on: August 28, 2015, 05:53:28 pm »

By the way, people have been bugging for taxodermy in the suggestions thread.  You could add a simple corpse statue reaction to make those.  Maybe a little something to turn totems into statues too.
i was looking into that, its very hard to write, because the statues dont resemble the animal used.

Oh right, it would only be made of corpse, but they would still make them into whatever shapes they want.  Bummer.
I just figured dfhack would be the more reasonable solution, maybe someone writes a script that forces statue design.

BEHOLD! YOUR SCRIPT HAS ARRIVED!

Presenting taxidermy.lua

This script is designed for use with a reaction that takes a corpse and produces a statue. It should be combined with reaction-product-trigger, as exemplified below, so that it activates when your reaction occurs. The script then obtains the item id of both the corpse and statue, and processes both such that the final statue description and image correlate to the race and caste of the input corpse. If the -record_name argument is included and the corpse came from a named historical figure, it will instead modify the statue to display it as being of that specific historical figure.

Spoiler: How to use (click to show/hide)

Code: [Select]
-- taxidermy.lua
-- by Atomic Chicken

local utils = require 'utils'

validArgs = validArgs or utils.invert({
 'corpse_id',
 'statue_id',
 'record_name',
 'multiple_reagents',
 'multiple_products',
 'help'
})
local args = utils.processArgs({...}, validArgs)

if args.help then
 print([[ taxidermy.lua
 
 This script is designed to work with a reaction that takes a corpse (or vermin remains) and produces one statue (or figurine) of any material.

 arguments:
 
 -corpse_id
The item id of the corpse you wish to "stuff".
If used in conjunction with reaction-product-trigger, this takes \\INPUT_ITEMS

 -statue_id
The item id of the statue produced in the reaction.
If used in conjunction with reaction-product-trigger, this takes \\OUTPUT_ITEMS

 -record_name
If this optional argument is included, the script will check whether the corpse was from a named historical figure,
and if so describes the statues as being "of [creature's name]" rather than "of [creature's race]".

 -multiple_reagents
You must add this argument if your reaction contains other reagents besides the corpse.
To ensure proper functioning, the corpse MUST be the LAST reagent defined in the reaction.
If this argument is used, you must also change \\INPUT_ITEMS to [ \\INPUT_ITEMS ] (with the square brackets) in onLoad.init
example: -corpse_id [ \\INPUT_ITEMS ] -multiple_reagents

 -multiple_products
You must add this argument if your reaction contains other products besides the statue.
To ensure proper functioning, the statue MUST be the LAST product defined in the reaction.
If this argument is used, you must also change \\OUTPUT_ITEMS to [ \\OUTPUT_ITEMS ] (with the square brackets) in onLoad.init
example: -statue_id [ \\OUTPUT_ITEMS ] -multiple_products

 To use:
 
 Create a file called "onLoad.init" in Dwarf Fortress/raw if one does not already exist.
 
 Enter the following:
 modtools/reaction-product-trigger -reactionName YOUR_REACTION -command [ taxidermy -corpse_id \\INPUT_ITEMS -statue_id \\OUTPUT_ITEMS -record_name ]
 
 Replace "YOUR_REACTION" with whatever your reaction is called.
 ]])
 return
end

if not args.corpse_id then
print('Enter "taxidermy -help" if you need assistance.')
error 'ERROR: Corpse id not specified.'
end

if not args.statue_id then
print('Enter "taxidermy -help" if you need assistance.')
error 'ERROR: Statue id not specified.'
end

if args.multiple_reagents then
corpse = df.item.find(tonumber(args.corpse_id[1])) --Multiple reagents are supported, but the corpse MUST be the LAST reagent defined in the reaction.
else
corpse = df.item.find(tonumber(args.corpse_id))
end

if args.multiple_products then
statue = df.item.find(tonumber(args.statue_id[1])) --The same applies to products; if you are going to have multiple products, ensure that the statue is the last on the list.
else
statue = df.item.find(tonumber(args.statue_id))
end

if corpse ~= nil and statue ~= nil then

if args.record_name
and corpse:getType() ~= df.item_type.REMAINS
and corpse.hist_figure_id ~= -1 then
unit_id = corpse.unit_id
unit = df.unit.find(unit_id)
if unit.name.has_name == true then
target_desc_name = dfhack.TranslateName(dfhack.units.getVisibleName(unit))

dfhack.timeout(1,'ticks',function()
statue.description = ''..target_desc_name..''

for _,artchunk in ipairs(df.global.world.art_image_chunks) do
if artchunk.id == statue.image.id then

statue_image = artchunk.images[statue.image.subid]
end
end

while #statue_image.elements > 0 do
statue_image.elements:erase(#statue_image.elements-1)
end

while #statue_image.properties > 0 do
statue_image.properties:erase(#statue_image.properties-1)
end

newart=df.art_image_element_creaturest:new()
statue_image.elements:insert("#",newart)

statue_image.elements[0].histfig = corpse.hist_figure_id

statue_image.mat_type = -1
statue_image.mat_index = -1
end)
end

else

raceindex = corpse.race
casteindex = corpse.caste
target_desc = df.global.world.raws.creatures.all[raceindex].caste[casteindex].caste_name[0]

dfhack.timeout(1,'ticks',function()
statue.description = 'a '..target_desc..''

for _,artchunk in ipairs(df.global.world.art_image_chunks) do
if artchunk.id == statue.image.id then
statue_image = artchunk.images[statue.image.subid]
end
end

while #statue_image.elements > 0 do
statue_image.elements:erase(#statue_image.elements-1)
end

while #statue_image.properties > 0 do
statue_image.properties:erase(#statue_image.properties-1)
end

newart=df.art_image_element_creaturest:new()
statue_image.elements:insert("#",newart)

statue_image.elements[0].race = raceindex
statue_image.elements[0].caste = casteindex
statue_image.elements[0].count = 1

statue_image.mat_type = -1
statue_image.mat_index = -1

end)
end
end
« Last Edit: September 03, 2015, 08:25:33 am by Atomic Chicken »
Logged
As mentioned in the previous turn, the most exciting field of battle this year will be in the Arstotzkan capitol, with plenty of close-quarter fighting and siege warfare.  Arstotzka, accordingly, spent their design phase developing a high-altitude tactical bomber. 

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #23 on: August 28, 2015, 09:47:05 pm »

I bloody love this community.
Logged
The silver is responsible for this How?

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: More Ways to Enjoy Corpses
« Reply #24 on: August 29, 2015, 12:25:02 pm »

This is amazing!

I will absolutely add it to masterwork df; did you test it a lot? I wonder if you get 5 statues if you chop a corpse into upper body, arm, arm, leg, leg, and use the bodyparts to run the reaction.

If no one objects, I'd volunteer to write the workshop and reactions for this. :)

EdIt:
Quote
from a named historical figure, it will instead modify the statue to display it as being of that specific historical figure.
Would this mean that we can custom-make statues or other items that correlate with specific historical figures? I'm not thinking about taxidermy now, but a special craftsdwarf shop that makes specific engravings/decorations that the player can select, instead of always getting random ones.
« Last Edit: August 29, 2015, 12:28:12 pm by Meph »
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #25 on: August 29, 2015, 03:12:41 pm »

This is amazing!

I will absolutely add it to masterwork df; did you test it a lot? I wonder if you get 5 statues if you chop a corpse into upper body, arm, arm, leg, leg, and use the bodyparts to run the reaction.

If no one objects, I'd volunteer to write the workshop and reactions for this. :)

You want to do the MW DF / pre-40 version, I'll do the standalone 40.24 version?


EdIt:
Quote
from a named historical figure, it will instead modify the statue to display it as being of that specific historical figure.
Would this mean that we can custom-make statues or other items that correlate with specific historical figures? I'm not thinking about taxidermy now, but a special craftsdwarf shop that makes specific engravings/decorations that the player can select, instead of always getting random ones.

That's a great idea; would love to see something implemented with it. There's already some precedent for it in the ability to engrave memorials for specific creatures on your map, ne?
Logged
The silver is responsible for this How?

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: More Ways to Enjoy Corpses
« Reply #26 on: August 29, 2015, 03:21:46 pm »

Easiest would be just a single reaction for the craftsdwarf, using corpse and thread. ;)
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Atomic Chicken

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #27 on: August 30, 2015, 07:12:07 am »

This is amazing!
Thanks!

I will absolutely add it to masterwork df; did you test it a lot? I wonder if you get 5 statues if you chop a corpse into upper body, arm, arm, leg, leg, and use the bodyparts to run the reaction.
Well, I tested the script just enough to ensure basic functionality; I thought I'd leave the extensive playtesting to the community. The way the script is currently written means that using body parts will also produce the modified statues, as body parts also contain the necessary references to the creature they came from. My raw modding is a little rusty, but couldn't you simply specify in the reaction that the reagent must be a CORPSE rather than a CORPSEPIECE to ensure proper functioning? I guess that you'd also want to use the [UNROTTEN] token unless you want skeletons being turned into statues.

If no one objects, I'd volunteer to write the workshop and reactions for this. :)
Considering that I wrote this script motivated by your request, I see no reason why anybody should object to this. :)

Would this mean that we can custom-make statues or other items that correlate with specific historical figures? I'm not thinking about taxidermy now, but a special craftsdwarf shop that makes specific engravings/decorations that the player can select, instead of always getting random ones.
Yes! To my knowledge, such a thing is entirely possible, and has actually been for quite a while now. I've been thinking about it, and might attempt one sometime (although such a task would be better left to the more experienced script-writers; I'm just a novice who learns stuff by reverse-engineering other scripts). A gui like that used in Putnam's "hack-wish" script could be used to select the desired shape, plant, tree, item, creature or even historical figure depicted in the image. A gui for selecting basic item improvements like spikes would be even easier to make. The only issue, of course, is the script's complexity. However, using something like reaction-product-trigger would mean that the actual decoration selection would occur only after the product was created, as the item needs to actually exist before being modified. (taxidermy.lua works by letting the game create the statue normally, and then edits the image and decoration data using information obtained from the corpse - you can actually see the original statue if you pause the game less than a tick after the reaction ends).

Easiest would be just a single reaction for the craftsdwarf, using corpse and thread. ;)
I've just realised that I forgot to add support for multiple reagents! I'll try to fix that eventually; right now you'll have to make do with using the corpse as your sole reagent.

Meanwhile, I've edited the script to fix an error regarding images.
Logged
As mentioned in the previous turn, the most exciting field of battle this year will be in the Arstotzkan capitol, with plenty of close-quarter fighting and siege warfare.  Arstotzka, accordingly, spent their design phase developing a high-altitude tactical bomber. 

Meph

  • Bay Watcher
    • View Profile
    • worldbicyclist
Re: More Ways to Enjoy Corpses
« Reply #28 on: August 30, 2015, 08:04:02 am »

Ok, I'll do a few tests with the fixed version and post the results. And please share the script in the dfhack topic; that way you can reach more people.
Logged
::: ☼Meph Tileset☼☼Map Tileset☼- 32x graphic sets with TWBT :::
::: ☼MASTERWORK DF☼ - A comprehensive mod pack now on Patreon - 250.000+ downloads and counting :::
::: WorldBicyclist.com - Follow my bike tours around the world - 148 countries visited :::

Jazzeraint

  • Bay Watcher
    • View Profile
Re: More Ways to Enjoy Corpses
« Reply #29 on: August 30, 2015, 04:18:09 pm »

And please share the script in the dfhack topic; that way you can reach more people.

Seconded, and thanks monsieur chicken. :D
Logged
The silver is responsible for this How?
Pages: 1 [2] 3 4