Fandom

SketchyPhysicsWiki

Snippets

103pages on
this wiki
Add New Page
Talk0 Share

Are a part of LazyScript Plugin

ToggleEdit

toggle(name,control)

name - represents a name for your toggle, wich allows multiple toggles

control - ment for key controls, it needs a numeric input of 0 or 1

Examples:

toggle("piston1", key("space") )
toggle("piston1") #with no control input it will only return the "piston1" toggle value

toggle("silodoor", key("up") )

JumpEdit

Combine it with thrusters for easy jump mechanics.

jump(name,control,delay,frame)

name - represents a name for your jump, wich allows multiple seperate jumping controls

control - ment for key controls, it needs a numeric input of 0 or 1

delay - delay before next jump, number of frames

frame - just the SP standard frame variable

Examples:

jump("sheep", key("up"), 100, frame)
jump("sheep") #if you specify only the name it will just return "sheep" jump value

jump("cat", key("a"), 200, frame)


EmitEdit

It does the same thing SP standard emiter does, only allows more control.

emit(position,push_force,lifetime,object)

potision - a 3D point where you want the emited object to popup

push_force - with howmuch power you want to push the emited object

lifetime - howlong you want the emited object to stay

object - the entity you want to emit

- and it returns the handle to the entity it created

Examples:

position=[0,0,0]
object=Sketchup.active_model.entities[1] #an entity in model
emit(position, 100, 500, object) #this will emit our entity to position [0,0,0] with a force of 100 and it will be active for 500 frames

emit([10,0,0], 100, 500) #with no object specified it will just take the current one
emit([1,1,1]) #and no force or lifetime are needed either

new_o=emit([1,1,10]) #we get the handle for the new object
new_o.material="red" #and not that we have the handle we can manipulate it(change its color to red)


KickEdit

This allows to push/kick any object in the model without setting up thrusters

kick(push_force, object)

push_force - with howmuch power you want to push the object

object - the entity you want to push

object=Sketchup.active_model.entities[1] #an entity in model
kick(100, object)
kick(100) #when no object is specified it will push the current one


MoveEdit

WARNING! Does NOT move objects physics!

Uses Sketchup's built in translation and makes it a little simpler to use.

move(position, object)

position - a 3D point to where you want to move the object

object - the entity you want to move

Examples:

object=Sketchup.active_model.entities[1] #an entity in model
move([0,0,0],object)

move([0,100,0]) #with no object specified it will move the current object


ScaleEdit

WARNING! Does NOT scale objects physics!

Uses Sketchup's built in scaling and makes it simpler to use.

scale(s, object)

s - determins by what muliplyer you want the object to grow, 2x makes it 2 times bigger

object - the entity you want to scale

Examples:

object=Sketchup.active_model.entities[1] #an entity in model
scale(2,object) #2x bigger
scale(1,object) #stays the same

scale(10) #with no object specified it will scale the current object


RotateEdit

WARNING! Does NOT rotate objects physics!

Uses Sketchup's built in rotation and makes it simpler to use.

rotate(angle, axis, center_point, object)

angle - determines the angle of rotation, an integer input will be asumed as degrees and a decimal input will be taken as radians

axis - the axis on wich you want to make the rotation, the input can be "R","G","B"(for red, green, and blue axis) or you can input a vector as [0,0,1]

center_point - center point of rotation, you may want to rotate the object on its own axis or around another object

object - the entity you want to move

Examples:

object=Sketchup.active_model.entities[1] #an entity in model
rotate(45, "B", [0,0,0], object) #will rotate object by 45 degrees, on the blue axis, around the model center point [0,0,0]
rotate(45) #with only angle input it will rotate the current object on the blue axis, around its own center point
rotate(45, "B", [0,0,0])
rotate(45, "B", nil, object) #if you don't specify center_point it will be taken from the object

rotate(1.57, "R") #in this case we used redians for angle, and red axis for rotation
rotate(1.57)
rotate(1.57, [0,0,1]) #axis input as vector


EntityByNameEdit

Will search entities(groups and components) by name, and return the handle for them.

entityByName(entity_name, entity)

entity_name - name of group/component you are looking for, input can be a single string or and array of strings(and it will return a single entity or an array of entities)

entity - by default the function will search the entire model for entities, but you can also search within specific entities determined by this variable

Examples:

object=Sketchup.active_model.entities[1] #an entity in model
result=entityByName("target") #will find first entity named target and return it as the result
result=entityByName(["tar1","tar2","tar3"]) #will find all these entities, and return them as an array
result=entityByName(["target"]) #and this will find all entities named "target", and also return them as an array

result=entityByName("box", object) #before we were searching in the model, now we search in the object


DeepRayEdit

Uses Sketchup's built in raytest, and uses it for penetrating raytesting, and returns an array of results.

deepRay(point, vector, depth)

point - the starting 3D point of raytest

vector - the vector/direction of raytest

depth - how deep the ray should go(number of objects)

return: it will return an array of arrays, each sub-array for the coresponding object

Examples:

point=[0,0,0]
vector=[0,0,1]

result=deepRay(point,vector,0) #at depth 0 it will just return an empty list/array
result=deepRay(point,vector,2) #it will penetrate the first object to find another, and return an array

#result structure: [[first_object],[second_object],[third_object],...]
#first_object: [hit_point, entity, raytest_result]
first_object=result[0] #result for the first target it hit
second_object=result[1]

hit_point=first_object[0] #3D point where the object was hit
entity=first_object[1] #entity handle of the object
raytest_result=first_object[2] #the actual result of raytest


RandVectorEdit

Will offset the input vector randomly by a small degree determined by accuracy. Intended for gun inaccuracy simulation.

randVector(vector, accuracy)

vector - input vector to be offset

accuracy - range from 0 to 100, percentage of accuracy(0 worst, 100 best)

Examples:

vector=[1,0,0]
new_vector=randVector(vector, 50) #will return a new vector with random offset
new_vector=randVector(vector, 100)
new_vector=randVector(vector, 0)

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.