XYZ = {}; function XYZ.prerequisitesPresent(specializations) return SpecializationUtil.hasSpecialization(Motorized, specializations); end; function XYZ:load(xmlFile) end; function XYZ:delete() end; function XYZ:mouseEvent(posX, posY, isDown, isUp, button) end; function XYZ:keyEvent(unicode, sym, modifier, isDown) end; function XYZ:update(dt) if self:getIsActive() then Cylindered.updateMovingPart(self, self.movingParts[1]); end; end; function XYZ:updateTick(dt) if self:getIsActive() then for _, part in pairs(self.movingParts) do part.isDirty = true; end; end; end; function XYZ:draw() end; function XYZ:onLeave() end; function XYZ:onEnter() end;