Compare commits

...

2 Commits

Author SHA1 Message Date
be551707b8 WIP 2022-08-27 23:27:39 -05:00
b6fb5f8173 Add Friction Volume script 2022-08-27 23:06:44 -05:00
4 changed files with 32 additions and 0 deletions

View File

@@ -87,6 +87,7 @@ set(DSCRIPT_SOURCES "ActivityManager.cpp"
"FlameJetServer.cpp" "FlameJetServer.cpp"
"ForceVolumeServer.cpp" "ForceVolumeServer.cpp"
"FountainOfImagination.cpp" "FountainOfImagination.cpp"
"FrictionVolume.cpp"
"FvBounceOverWall.cpp" "FvBounceOverWall.cpp"
"FvBrickPuzzleServer.cpp" "FvBrickPuzzleServer.cpp"
"FvCandle.cpp" "FvCandle.cpp"

View File

@@ -170,6 +170,7 @@
#include "MailBoxServer.h" #include "MailBoxServer.h"
#include "ActMine.h" #include "ActMine.h"
#include "FireFirstSkillonStartup.h" #include "FireFirstSkillonStartup.h"
#include "FrictionVolume.h"
// Racing Scripts // Racing Scripts
#include "RaceImagineCrateServer.h" #include "RaceImagineCrateServer.h"
@@ -627,6 +628,8 @@ CppScripts::Script* CppScripts::GetScript(Entity* parent, const std::string& scr
script = new FvRaceSmashEggImagineServer(); script = new FvRaceSmashEggImagineServer();
else if (scriptName == "scripts\\ai\\RACING\\OBJECTS\\RACE_SMASH_SERVER.lua") else if (scriptName == "scripts\\ai\\RACING\\OBJECTS\\RACE_SMASH_SERVER.lua")
script = new RaceSmashServer(); script = new RaceSmashServer();
else if (scriptName == "scripts\\02_server\\Map\\General\\L_FRICTION_VOLUME_SERVER.lua")
script = new FrictionVolume();
//NT: //NT:
else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_SENTINELWALKWAY_SERVER.lua") else if (scriptName == "scripts\\02_server\\Map\\NT\\L_NT_SENTINELWALKWAY_SERVER.lua")

View File

@@ -0,0 +1,17 @@
#include "FrictionVolume.h"
#include "PhantomPhysicsComponent.h"
#include "Entity.h"
#include "dLogger.h"
void FrictionVolume::OnStartup(Entity* self) {
Game::logger->Log("FrictionVolume", "LOT %i", self->GetLOT());
auto frictionAmount = self->GetVarAs<float>(m_FrictionVariable);
Game::logger->Log("FrictionVolume", "Lvl friction %f", frictionAmount);
if (!frictionAmount) frictionAmount = m_DefaultFriction;
auto* phantomPhysicsComponent = self->GetComponent<PhantomPhysicsComponent>();
if (!phantomPhysicsComponent) return;
phantomPhysicsComponent->SetPhysicsEffectActive(true);
phantomPhysicsComponent->SetEffectType(4); // this should be noted in a enum somewhere
phantomPhysicsComponent->SetDirectionalMultiplier(frictionAmount);
}

11
dScripts/FrictionVolume.h Normal file
View File

@@ -0,0 +1,11 @@
#pragma once
#include "CppScripts.h"
class FrictionVolume : public CppScripts::Script
{
public:
void OnStartup(Entity* self) override;
private:
const float m_DefaultFriction = 1.5;
const std::u16string m_FrictionVariable = u"FrictionAmt";
};