Описание начальной системы растений

© КАП

10 мая 2004 года

Растения.

Дополнительные свойства объектов для реализации растений:

* - обозначены динамические св-ва, которые будут изменяться со временем, и недоступные при проектировании

plant - boolean - Означает, что это растение, и следующие св-ва доступны;
plant_on - boolean - означает, что на этом объекте может что-то расти; (если true, то доступны след. 9 свойств); (если false, то предполагается, что объект растет сам - один)
plant_obj - object list - список объектов-прототипов, такие объекты будут расти на этом предмете; (часто один объект, а не список)
plant_dest - integer - где будут появляться выросшие объекты: 1 - В локации; 2 - ЗАКОПАН В локации; 4 - НА предмете (поверхность); 8 - В предмете (контейнер); 16 - ПОД предметом (подповерхность); 32 - В(НА, ПОД) каким-либо другим объектом; (суммой задаются несколько мест роста); (хотя этот объект может являться контейнером\(под)поверхностью, но в\на\под него нельзя будут ничего положить, а можно только взять (пока спорно) ); (если задано больше одного места, то случайно с равной вероятностью)
plant_dest_obj - object - указывает в(на, под) каком объекте будут появляться выросшие объекты; (если plant_dest >= 32)
plant_drop - float - вероятность опадания предметов после созревания ПОД объект (В ЧАС); (фактически перемещение из поверхности\контейнера в подповерхность, если подповерхности у объекта нет, то перемешение в локацию, РЯДОМ с объектом)
plant_time - integer - время созревания одного объекта;
plant_max - integer - максимальное количество вырастающих объектов;
plant_count_can - integer - возможное количество одновременно растущих объектов;
*plant_array - array of float - растущие объекты; (каждый элемент от 0 до 1 задает степень созревания объекта)
plant_new - float (от 0 и больше) - вероятность В ЧАС зарождения нового объекта; (если больше 1, то в час может зародиться до plant_new объектов)
plant_water_min - float -минимальное количество необходимой для вырастания воды за период созревания;
(пока не продумано)//plant_water_max - float -максимальное количество необходимой для вырастания воды за период созревания; (при недостатке или переливе объект не вырастает); (если 0, то этот параметр не критичен)
*plant_water - float - количество залитой в объект воды (при поливе переносится из "контейнер_жидкость"); (этот параметр тратится так - среднее значение от plant_water_max и plant_water_min делится на время созревания и умножается на количество одновременно растущих объектов plant_count - получаем количество воды, расходуемое за единицу времени); (если plant_on=false, то есть рстет сам объект, то вместо времени созревания считается промежуток 1 год, и параметры plant_water_min и plant_water_max означают количество воды за год); (фактически такое растение не может ничего производить и нужно только для того, чтобы о нем заботиться :) )
plant_die - integer - время, которое растение может непрерывно прожить без воды;
*plant_water_without - integer - время, которое растение живет без воды;

Пример: объект "грядка моркови"

plant - true
plant_on - true
plant_obj - object "Морковка"
plant_dest - 4
plant_drop - 0
plant_time - NNN (три месяца)
plant_max - 20
plant_count_can - 20
plant_water_min - 10 литров //может отсутствовать
plant_water_max - 30 литров //может отсутствовать
plant_die - MMM (одна неделя) //может отсутствовать

Пример: объект "земля в лесу" (скрытый)

plant - true
plant_on - true
plant_obj - object "Сосна" "Ель" (эти объекты можно будет рубить)
plant_dest - 1
plant_drop - 0
plant_time - NNN (2 года)
plant_max - 20
plant_count_can - 20

Пример: объект "кактус"

plant - true
plant_on - false
plant_water_min - 10 литров
plant_water_max - 100 литров
plant_die - MMM (2 месяца)

Пример: объект "куст смородины"

plant - true
plant_on - true
plant_obj - object "Ягода смородины"
plant_dest - 4
plant_drop - 0.01
plant_time - NNN (2 месяца)
plant_max - 200
plant_count_can - 200