@Bri_G Here’s an updated version. The changes are
- I create the cube only once.
- When all six new images are received, I update the cubes material.map with the new images.
viewer.mode=STANDARD
function setup()
wTab={}
assert(OrbitViewer, "Please include Cameras as a dependency")
scene = craft.scene()
scene.ambientColor=color(255)
v=scene.camera:add(OrbitViewer, vec3(0,0,0), 40, 0, 200)
v.rx,v.ry=30,30
createCube()
parameter.boolean("New_images",new)
new()
end
function draw()
update(DeltaTime)
scene:draw()
end
function update(dt)
scene:update(dt)
end
function new()
New_images=false
getImages()
end
function createCube()
createWall(vec3(-5,0,0),vec3(.1,10,10))
createWall(vec3(5,0,0),vec3(.1,10,10))
createWall(vec3(0,-5,0),vec3(10,.1,10))
createWall(vec3(0,0,5),vec3(10,10,.1))
createWall(vec3(0,0,-5),vec3(10,10,.1))
createWall(vec3(0,5,0),vec3(10,.1,10))
end
function createWall(pos,mod)
local temp=scene:entity()
temp.position=pos
temp.model = craft.model.cube(mod)
temp.material = craft.material(asset.builtin.Materials.Standard)
temp.material.map = readImage(asset.builtin.SpaceCute.Health_Heart)
table.insert(wTab,temp)
end
function getImages()
images={}
for i=1,6 do
http.request( 'https://picsum.photos/200/200',addImageToTable)
end
end
function addImageToTable( theImage, status, head )
table.insert(images,theImage)
if #images==6 then
for z=1,6 do
wTab[z].material.map=images[z]
end
end
end