Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @name EGP Drawing
- @inputs [EGP EGP2]:wirelink Key E:entity
- @outputs Status SetSize SetPos SetColor SetAngle
- @persist [Pos_default Size_default]:vector2 A String:string
- @persist [Size Pos Pos2]:vector2 [Color Color_default]:vector4
- @persist [A_array Size_array Pos_array Color_array]:array
- @persist FileName:string
- # Expression 2 Chip by Magus / Lodkagan
- if(first()) {
- # =====================================
- # config start
- # =====================================
- #
- FileName = "EGP" + ".txt"
- #
- Pos_default = vec2(256,256)
- Size_default = vec2(256,256)
- Color_default = vec4(255,255,255,255)
- # =====================================
- # config end
- # =====================================
- EGP:egpClear()
- EGP2:egpClear()
- # =====================================
- EGP2:egpTextLayout(1," -- Create Stuff --
- 1 - Create Box
- 2 - Create Circle
- 3 - Create Wedge
- 4 - Create TextString
- Q - Create Rounded Box
- W - Create Circle Outline
- E - Create Wedge Outline
- ",vec2(25,75),vec2(270,290))
- EGP2:egpTextLayout(2," -- Menu --
- BACKSPACE - Delete
- ENTER - Print to chat and
- write file ( "+FileName+" )
- Y - Size mode
- X - Position mode
- C - Color mode
- V - Angle Mode
- ",vec2(280,75),vec2(512,290))
- EGP2:egpTextLayout(3," -- Presets --
- D - Set Default Values
- S - Set to 512 (fullscreen)
- ",vec2(25,300),vec2(275,510))
- EGP2:egpTextLayout(4," -- Preset Colors (Numpad) --
- 1 - Red
- 2 - Green
- 3 - Blue
- 4 - Yellow
- 5 - Pink
- 6 - Light Blue
- 7 - Gray
- 8 - White
- 9 - Black
- ",vec2(275,300),vec2(512,510))
- # =====================================
- EGP2:egpText(5,"Filename: " +FileName,vec2(10,10))
- EGP2:egpText(6,"Drawing: ",vec2(220,50))
- A = 1
- String = ""
- function createBox() {
- A_array[A,string] = ":egpBox(" + A + ","
- EGP:egpBox(A,Pos_default,Size_default)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createRoundedBox() {
- A_array[A,string] = ":egpRoundedBox(" + A + ","
- EGP:egpRoundedBox(A,Pos_default,Size_default)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createCircle() {
- A_array[A,string] = ":egpCircle(" + A + ","
- EGP:egpCircle(A,Pos_default,Size_default/2)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createCircleOutline() {
- A_array[A,string] = ":egpCircleOutline(" + A + ","
- EGP:egpCircleOutline(A,Pos_default,Size_default/2)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createWedge() {
- A_array[A,string] = ":egpWedge(" + A + ","
- EGP:egpWedge(A,Pos_default,Size_default/2)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createWedgeOutline() {
- A_array[A,string] = ":egpWedgeOutline(" + A + ","
- EGP:egpWedgeOutline(A,Pos_default,Size_default/2)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function createText() {
- A_array[A,string] = ":egpText(" + A + ","
- EGP:egpText(A,"This is a String!",Pos_default)
- EGP:egpColor(A,Color_default)
- A++
- exit()
- }
- function delete() {
- A_array[A,string] = ""
- EGP:egpRemove(A-1)
- A--
- if(A < 1) {A = 1}
- exit()
- }
- function setBackground() {
- EGP:egpPos(A-1,vec2(256,256))
- EGP:egpSize(A-1,vec2(512,512))
- exit()
- }
- function setDefault() {
- EGP:egpPos(A-1,Pos_default)
- EGP:egpSize(A-1,Size_default)
- EGP:egpColor(A-1,Color_default)
- exit()
- }
- function outputEGP() {
- I = 1
- while(I < EGP:egpNumObjects()+1) {
- Pos_array[I,vector2] = EGP:egpPos(I)
- Size_array[I,vector2] = EGP:egpSize(I)
- Color_array[I,vector4] = EGP:egpColor4(I)
- # Remove comment if you want to write everything to your chat
- #print(A_array[I,string]+"vec2("+EGP:egpPos(I):x()+"," + EGP:egpPos(I):y()+"),vec2("+EGP:egpSize(I):x()+"," + EGP:egpSize(I):y()+")")
- #print(":egpColor("+I+",vec4("+EGP:egpColor4(I):x()+","+EGP:egpColor4(I):y()+","+EGP:egpColor4(I):z()+","+EGP:egpColor4(I):w()+")")
- #print(":egpAngle("+I+","+EGP:egpAngle(I)+")")
- #print("")
- String += A_array[I,string]+"vec2("+EGP:egpPos(I):x()+"," + EGP:egpPos(I):y()+"),vec2("+EGP:egpSize(I):x()+"," + EGP:egpSize(I):y()+")\n"
- String += ":egpColor("+I+",vec4("+EGP:egpColor4(I):x()+","+EGP:egpColor4(I):y()+","+EGP:egpColor4(I):z()+","+EGP:egpColor4(I):w()+")\n"
- String += ":egpAngle("+I+","+EGP:egpAngle(I)+")\n\n"
- I++
- }
- if(fileCanWrite()) {
- fileWrite(FileName,String)
- String = ""
- print("data/e2files/"+FileName+" written")
- exit()
- } else {
- print("ERROR: Can't write to file: " + FileName)
- exit()
- }
- }
- function setColor(Col1:number, Col2:number, Col3:number, Col4:number) {
- EGP:egpColor(A-1,vec4(Col1,Col2,Col3,Col4))
- }
- } # first() end
- if(E) {
- if(SetPos) {
- Pos = EGP:egpCursor(E)
- EGP:egpPos(A-1,round(Pos,1))
- EGP:egpText(99,"Position Mode",vec2(400,490))
- } elseif(SetColor) {
- EGP:egpText(99,"Color Mode",vec2(420,490))
- } elseif(SetSize) {
- if(A_array[A-1,string]:sub(1,9) != ":egpWedge" &
- A_array[A-1,string]:sub(1,9) != ":egpCircle") {
- EGP:egpSize(A-1,round(EGP:egpCursor(E),1))
- } else {
- EGP:egpSize(A-1,round((Pos2:x()+Pos2:y())-(EGP:egpCursor(E):x()+EGP:egpCursor(E):y()),1))
- }
- EGP:egpText(99,"Size Mode",vec2(430,490))
- } elseif(SetAngle) {
- EGP:egpAngle(A-1,round(EGP:egpCursor(E):x()/1.3))
- EGP:egpText(99,"Angle Mode",vec2(420,490))
- } else {
- EGP:egpRemove(99)
- }
- interval(150)
- } else {
- SetPos = 0
- SetColor = 0
- SetSize = 0
- }
- if(~Key & Key) {
- if(Key == 49) {
- createBox()
- } elseif(Key == 113) {
- createRoundedBox()
- } elseif(Key == 50) {
- createCircle()
- } elseif(Key == 119) {
- createCircleOutline()
- } elseif(Key == 51) {
- createWedge()
- } elseif(Key == 52) {
- createText()
- } elseif(Key == 101) {
- createWedgeOutline()
- } elseif(Key == 127) {
- delete()
- } elseif(Key == 13) {
- outputEGP()
- } elseif(Key == 120) {
- SetPos = (SetPos ? 0 : 1)
- SetColor = 0
- SetSize = 0
- SetAngle = 0
- } elseif(Key == 99) {
- SetColor = (SetColor ? 0 : 1)
- Pos2 = EGP:egpCursor(E)
- SetPos = 0
- SetSize = 0
- SetAngle = 0
- } elseif(Key == 121) {
- SetSize = (SetSize ? 0 : 1)
- SetColor = 0
- SetPos = 0
- SetAngle = 0
- } elseif(Key == 118) {
- SetAngle = (SetAngle ? 0 : 1)
- SetColor = 0
- SetPos = 0
- SetSize = 0
- } elseif(Key == 100) {
- setDefault()
- } elseif(Key == 115) {
- setBackground()
- } elseif(Key == 129) {
- setColor(255,0,0,255)
- } elseif(Key == 130) {
- setColor(0,255,0,255)
- } elseif(Key == 131) {
- setColor(0,0,255,255)
- } elseif(Key == 132) {
- setColor(255,255,0,255)
- } elseif(Key == 133) {
- setColor(255,0,255,255)
- } elseif(Key == 134) {
- setColor(0,255,255,255)
- } elseif(Key == 135) {
- setColor(125,125,125,255)
- } elseif(Key == 136) {
- setColor(255,255,255,255)
- } elseif(Key == 137) {
- setColor(0,0,0,255)
- }
- }
- EGP2:egpSetText(6,"Drawings: "+(A-1))
Advertisement
Add Comment
Please, Sign In to add comment