<commit_before>--- Handles IK rigging for a humanoid
-- @classmod IKRigClient

local require = require(game:GetService("ReplicatedStorage"):WaitForChild("Nevermore"))

local Players = game:GetService("Players")

local ArmIK = require("ArmIK")
local IKRigBase = require("IKRigBase")
local IKConstants = require("IKConstants")
local IKRigAimerLocalPlayer = require("IKRigAimerLocalPlayer")
local Promise = require("Promise")
local promiseChild = require("promiseChild")
local PromiseUtils = require("PromiseUtils")
local Signal = require("Signal")

local IKRigClient = setmetatable({}, IKRigBase)
IKRigClient.ClassName = "IKRigClient"
IKRigClient.__index = IKRigClient

require("PromiseRemoteEventMixin"):Add(IKRigClient, IKConstants.REMOTE_EVENT_NAME)

function IKRigClient.new(humanoid)
	local self = setmetatable(IKRigBase.new(humanoid), IKRigClient)

	self.Updated = Signal.new()
	self._maid:GiveTask(self.Updated)

	self:PromiseRemoteEvent():Then(function(remoteEvent)
		self._remoteEvent = remoteEvent or error("No remoteEvent")
		self._maid:GiveTask(self._remoteEvent.OnClientEvent:Connect(function(...)
			self:_handleRemoteEventClient(...)
		end))

		if self:GetPlayer() == Players.LocalPlayer then
			self:_setupLocalPlayer(self._remoteEvent)
		end
	end)

	return self
end

function IKRigClient:GetPositionOrNil()
	local rootPart = self._obj.RootPart
	if not rootPart then<commit_msg>Signal is in base<commit_after>--- Handles IK rigging for a humanoid
-- @classmod IKRigClient

local require = require(game:GetService("ReplicatedStorage"):WaitForChild("Nevermore"))

local Players = game:GetService("Players")

local ArmIK = require("ArmIK")
local IKRigBase = require("IKRigBase")
local IKConstants = require("IKConstants")
local IKRigAimerLocalPlayer = require("IKRigAimerLocalPlayer")
local Promise = require("Promise")
local promiseChild = require("promiseChild")
local PromiseUtils = require("PromiseUtils")

local IKRigClient = setmetatable({}, IKRigBase)
IKRigClient.ClassName = "IKRigClient"
IKRigClient.__index = IKRigClient

require("PromiseRemoteEventMixin"):Add(IKRigClient, IKConstants.REMOTE_EVENT_NAME)

function IKRigClient.new(humanoid)
	local self = setmetatable(IKRigBase.new(humanoid), IKRigClient)

	self:PromiseRemoteEvent():Then(function(remoteEvent)
		self._remoteEvent = remoteEvent or error("No remoteEvent")
		self._maid:GiveTask(self._remoteEvent.OnClientEvent:Connect(function(...)
			self:_handleRemoteEventClient(...)
		end))

		if self:GetPlayer() == Players.LocalPlayer then
			self:_setupLocalPlayer(self._remoteEvent)
		end
	end)

	return self
end

function IKRigClient:GetPositionOrNil()
	local rootPart = self._obj.RootPart
	if not rootPart then
{'fraction_non_alphanumeric': 0.11263940520446096, 'fraction_numerical': 0.0, 'mean_word_length': 7.3312693498452015, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5774890', 'n_tokens_mistral': 906, 'n_tokens_neox': 832, 'n_words': 168}