1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00
Files
MetrostroiAddon/lua/entities/gmod_subway_tatra_t3/init.lua
g_brzhezinskiy 1d05caf866 init
2021-01-02 12:51:45 +03:00

94 lines
2.1 KiB
Lua

AddCSLuaFile("cl_init.lua")
AddCSLuaFile("shared.lua")
include("shared.lua")
---------------------------------------------------
-- Defined train information
-- Types of wagon(for wagon limit system):
-- 0 = Head or intherim
-- 1 = Only head
-- 2 = Only intherim
---------------------------------------------------
ENT.SubwayTrain = {
Type = "Tatra",
Name = "Tatra T3",
WagType = 0,
Manufacturer = "ChKD",
}
function ENT:Initialize()
-- Set model and initialize
self:SetModel("models/metrostroi/tatra_t3/tatra_t3.mdl")
self.BaseClass.Initialize(self)
self:SetPos(self:GetPos() + Vector(0,0,140))
-- Create seat entities
self.DriverSeat = self:CreateSeat("driver",Vector(305,10,-12))
--self.InstructorsSeat = self:CreateSeat("instructor",Vector(395,35,-30))
-- Create bogeys
self.FrontBogey = self:CreateBogey(Vector( 160,0,-60),Angle(0,180,0),true,"tatra")
self.RearBogey = self:CreateBogey(Vector(-150,0,-60),Angle(0,0,0),false,"tatra")
-- Create joins
self.FrontJoin = self:CreateJoin(Vector(350,0,-50),false)
self.RearJoin = self:CreateJoin(Vector(-350,0,-50),true)
-- Initialize key mapping
self.KeyMap = {
[KEY_W] = "Drive",
[KEY_S] = "Brake",
[KEY_R] = "Reverse",
}
end
function ENT:CreateJoin(pos,rev)
local ang = Angle(0,0,0)
if rev then ang = Angle(0,180,0) end
local join = ents.Create("prop_physics")
join:SetModel("models/metrostroi/tatra_t3/tatra_join.mdl")
join:SetPos(self:LocalToWorld(pos))
join:SetAngles(self:GetAngles() + ang)
join:Spawn()
join:SetOwner(self:GetOwner())
-- Constraint join to the train
--[[constraint.Axis(join,self,0,0,
Vector(0,0,0),Vector(0,0,0),
0,0,0,1,Vector(0,0,1),false)]]--
local xmin = -5
local xmax = 2
if rev then
xmin = -2
xmax = 5
end
constraint.AdvBallsocket(
join,
self,
0, --bone
0, --bone
Vector(-40,0,10),
pos,
0, --forcelimit
0, --torquelimit
xmin, --xmin
0, --ymin
-30, --zmin
xmax, --xmax
0, --ymax
30, --zmax
0, --xfric
0, --yfric
0, --zfric
0, --rotonly
1 --nocollide
)
-- Add to cleanup list
table.insert(self.TrainEntities,join)
return join
end