DayZ 1.30
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ SimplifiedCollisionInfoCheck()

bool ActionConstructionPartInfoContinuous::SimplifiedCollisionInfoCheck ( PlayerBase player,
ActionTarget target,
ItemBase item )
inlineprotected

'ComplexBuildCollideCheckClient' not suitable for this, due to missing context (looks into wrong varinats array); returns 'true' if collision does not block action

См. определение в файле ActionPartInfo.c строка 153

154 {
155 EntityAI ent = EntityAI.Cast(target.GetObject());
156 ConstructionActionData constructionActionData = player.GetConstructionActionData();
157 constructionActionData.SetTarget(ent);
158 ConstructionPart part = constructionActionData.GetBuildPartInfoAtIndex(m_VariantID);
159 ConstructionBase construction = ConstructionBase.Cast(ent.GetConstructionBasic());
160
161 if (!part)
162 {
163 ErrorEx("no part available!");
164 constructionActionData.GetBuildPartInfoAtIndex(m_VariantID);
165 }
166 else
167 {
168 BaseBuildingBase baseBuilding = BaseBuildingBase.Cast(ent);
169 if (baseBuilding && baseBuilding.MustBeBuiltFromOutside() && baseBuilding.IsPlayerInsideEx(player, part.GetMainPartName()))
170 return false;
171
172 if (!construction.ConstructionDirectionCheck(player, part, EConstructionDirCheckType.INDOORS))
173 return false;
174 if (!construction.ConstructionInsiderBoxCheck(player, part))
175 return false;
176 if (player.GetInputController().CameraIsFreeLook())
177 return false;
178
179 if (baseBuilding)
180 {
181 bool boo;
182 if (baseBuilding.PerformRoofCheckForBase(part.GetPartName(),player,boo) && boo)
183 return false;
184 }
185
186 if (player.IsPlacingLocal() || player.IsPlacingServer())
187 return false;
188
189 CollisionCheckData checkData = new CollisionCheckData();
190 checkData.m_PartName = part.GetPartName();
191
192 return !construction.IsCollidingEx(checkData);
193 }
194
195 return false;
196 }
class LogManager EntityAI
int m_VariantID
Определения ActionBase.c:67
void BaseBuildingBase()
Определения BaseBuildingBase.c:1326
void ConstructionBase(EntityAI parent)
Определения ConstructionBase.c:58
void CollisionCheckData()
Определения ConstructionBase.c:1923
void ConstructionPart(string name, string part_name, string main_part_name, int id, bool is_built, bool is_base, bool is_gate, array< string > required_parts)
Определения ConstructionPart.c:531
override bool PerformRoofCheckForBase(string partName, PlayerBase player, out bool result)
Определения Watchtower.c:138
override bool MustBeBuiltFromOutside()
Определения ShelterSite.c:80
ConstructionPart GetBuildPartInfoAtIndex(int idx)
Определения ConstructionActionData.c:373
void SetTarget(Object target)
Определения ConstructionActionData.c:111
string GetPartName()
Определения ConstructionPart.c:198
string GetMainPartName()
Определения ConstructionPart.c:203
enum ShapeType ErrorEx

Перекрестные ссылки ActionTarget(), CollisionCheckData(), ConstructionBase(), ErrorEx, ConstructionActionData::GetBuildPartInfoAtIndex(), ConstructionPart::GetMainPartName(), ConstructionPart::GetPartName(), m_VariantID, BaseBuildingBase::MustBeBuiltFromOutside(), BaseBuildingBase::PerformRoofCheckForBase() и ConstructionActionData::SetTarget().

Используется в ActionCondition().