СПРАВОЧНИККОМПОНЕНТЫ
UCFGlassUnitsComponent
Стекло одного кузова Crushform: каждый UCFGlassComponent владельца — это элемент с двумя уровнями (треснувший, разбитый), пронумерованный по имени, чтобы все инстансы совпадали. Трещины реплицируются наряду с уровнями; инстанс, который рисует, записывает их в Custom Primitive Data каждой панели, показывает разбитую панель, скрывая её, и проигрывает отклик на трещины и разрушение.
Функции
Рисует ли этот инстанс стекло: трещины, осколки и звук. На выделенном сервере False.
BeginPlay для InDeform: нумерует панели владельца по имени, сопоставляет последователей и детали дверей, читает их боксы и записывает их данные.
Есть ли у владельца хотя бы одна панель.
На любом инстансе: новое поколение Crushform возвращает каждую панель целой и убирает все трещины старого.
Авторити: поднимает панель по вердикту и записывает её трещину. True, если уровень или трещины панели изменились.
Источник удара: сразу показывает вердикт и ждёт авторити; Seq — это отчёт, который его несёт. True, если что-либо изменилось.
Эти отчёты отклонены на авторити: каждая панель, которую они предсказывали, сразу откатывается назад.
Авторити, после того как удар был применён к решётке (Hit null: сдавливание без точки контакта, оценивается только рама). ReachedChunks: бит c для каждого чанка, до которого дошёл удар (CFGlass::ToChunkMask). SourceSeq: отчёт, который оценивается сейчас, 0 для собственного удара авторити. bLatticeChanged: удар сдвинул решётку; рама оценивается только тогда, поэтому старая вмятина никогда не оценивается повторно.
Источник удара: по декодированному отчёту и решётке, какой она отрисована вместе с ним. True, если меняется любая панель: отчёт нужно отбросить.
Компонент панелей элемента; null для индекса без панели.
- Категория
- Crushform|Glass
Панель, которой является Primitive, или панель, последователем которой он является; иначе INDEX_NONE.
Где лежит панель, для оценки удара; null для индекса без панели.
Индекс шарнира детали, под которой висит панель; INDEX_NONE, если панель на теле.
Может ли Crushform оценивать панель: у неё есть определение и корректная форма, и её деталь не отключена (UCFDeformComponent::IsPartOffOrReportedOff).
Где панель сейчас: по позе тела, которую оно читает, или по позе её детали (UCFHingeComponent::GetPartReadPose).
Трещины, которые этот инстанс рисует на панели: трещины авторити этого поколения, каждая заменена собственным предсказанием в пределах 1 см от этой трещины (предсказанный рост, никогда не меньше трещины авторити), затем остальные предсказания этого инстанса; не более MaxCracksPerPane.
Осколки, которые бросает разбитая панель, в том виде, в каком их берёт система осколков: плитки из фрагментов определения, уложенные на плоскость панели, ближайшую к удару, каждый фрагмент в своём положении на плитке и брошенный так, как его бросает пул обломков, от панели в том виде, как она нарисована. Scale — доля сохраняемых осколков, от 0 до 1, берущихся с первых. Возвращает false, без осколков в OutSpawn, когда бросать нечего.
Проигрывает удар системы осколков по этой панели по данным частиц, которые экспортирует система: скорость самого быстрого осколка задаёт силу, а панель звучит не чаще раза за UCFBreakableSettings::DebrisImpactCooldownSeconds. Неразбитая панель ничего не проигрывает.
Унаследовано от UCFBreakableUnitsComponent
Функции
- Find
Units Компонент элементов, для элемента которого стоит Primitive, и индекс этого элемента: через ICFBreakableUnitPart на примитиве, иначе через первого родителя прикрепления, который знает примитив. nullptr, если ни один не знает.For Primitive - Apply
Hit Авторити: применяет внешний удар по примитиву к элементу, которому он принадлежит.Result On Authority - Predict
Hit Любой инстанс: предсказательный аналог ApplyHitResultOnAuthority.Result - Apply
Hit Авторити: поднимает элемент до уровня, который его определение задаёт для этого удара (HitResponses), реплицирует его и проигрывает.On Authority - Predict
Hit Любой инстанс: сразу показывает уровень удара и ждёт авторити; отменяется через PredictionConfirmTimeoutSeconds. - Get
Unit Сколько элементов разложил владелец.Count - Get
Max Наивысший уровень, которого может достичь элемент, как задано в InitUnits; элемент цел на уровне 0.Level - Get
Unit Уровень, который показывает этот инстанс: уровень на авторити или предсказание, опережающее этот уровень.Level - Get
Confirmed Уровень, подтверждённый на авторити в текущем поколении.Unit Level - Is
Unit true для корректного индекса, показанный уровень которого равен 0; false для некорректного индекса.Intact - Predict
Unit Сразу показывает уровень StoredImpact, опережая авторити, вместе с элементами, которые добавляет GatherUnitsRaisedWith.Level - Raise
Unit Авторити: подтверждает Level для элемента и для элементов, которые добавляет GatherUnitsRaisedWith, реплицирует его, проигрывает здесь и сообщает OnUnitsRaisedOnAuthority.Level On Authority - Cancel
Prediction Откатывает предсказание элемента к подтверждённому уровню, а вместе с ним предсказания элементов, которые добавляет GatherUnitsRaisedWith. - Apply
Generation Любой инстанс: первое поколение, которое узнаёт этот компонент (отсюда или из реплицированных уровней), принимается, каким бы оно ни было; после этого более новое поколение сразу возвращает все элементы здесь к целому состоянию, а равное или более старое игнорируется. - Find
Unit Элемент, для которого стоит примитив (и его экземпляр, ItemIndex), или INDEX_NONE.For Primitive
События
- On
Unit Оба срабатывают на каждом инстансе, когда меняется показанный уровень элемента.Level Changed Native - On
Unit Level Changed