Giter Club home page Giter Club logo

evlightning's Issues

Modification Requests

  • Please do not use game.Workspace, as Workspace can be renamed. Instead use game:GetService("Workspace") or workspace
  • Instead of instantiating a part with inline default values, please create a global partTemplate and Clone() it and change its properties as appropriate. Also, please do not mix string enums with enums (style issue). Also, please set the parent last, as it is much faster to do so. This should also be encouraged by the use of Clone():
local partTemplate = Instance.new("Part")
partTemplate.Anchored = true
partTemplate.CanCollide = false
partTemplate.BrickColor = BrickColor.new("White")
partTemplate.Material = Enum.Material.Neon
partTemplate.TopSurface = Enum.SurfaceType.Smooth
partTemplate.FormFactor = Enum.FormFactor.Custom
partTemplate.BottomSurface = Enum.SurfaceType.Smooth

-- within function LightningBolt:Draw(parent)
local part = partTemplate:Clone()

if self.options.color then
	part.BrickColor = self.options.color
end

if self.options.material then
	part.Material = self.options.material
end

part.Size = Vector3.new(1-line.depth*2*0.1, 1-line.depth*2*0.1, (line.origin-line.goal).magnitude+0.5)
part.CFrame = CFrame.new((line.goal+line.origin)/2, line.goal)
part.Transparency = line.transparency
part.Parent = model
  • Please do not iterate through arrays using pairs. This will make the ghost of simple for loops come for you.
for i = 1, #t do
	print(t[i])
end
  • When constructing a new array, especially when it's a copy, repeatedly doing #t for every write operation is going to make my head spin. For a non-copy, a count variable is preferable. A copy can easily be written as so:
local runLines = {}
for i = 1, #self.lines do
	runLines[i] = self.lines[i]
end
  • If you want a method function to be strictly internal, you might consider to do the following:
function LightningBolt:generateBolt() -- What you have
local function generateBolt(self) -- A way to truly hide API you don't want exposed
  • Please be consistent on your spacing around binary operators. "3 + 5" or "3+5", but pick one and stick with it.
  • This information is already contained within the comments of the module. Why would it ever be necessary to have this?
LightningBolt._version = 1
  • It is STRONGLY preferable to not recursively generate objects within objects (#L134). If possible, please avoid unnecessary abstraction for internal syntactic sugar. Only do it if you absolutely have to.
  • Color is preferable to BrickColor (API change request)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.