; 40 / Salvage transfer line. Run in Extended mode. ; Original bespoke Blender assets; see assets/README.txt. Include "common.bb" BeginShowcase "uv-flow","40 / Salvage transfer line","A scrolling conveyor carries recovered parts below a curved energy feed and a cooling cascade." Ground 29,39,47 Model "arch",0,0,11,1.7 ; The belt retains Standard: automatic UV movement needs no flow shader. Block 0,.55,3.1,4.6,.25,1.25,45,57,65 belt=FloorMesh(9,2.3):PositionEntity belt,0,.82,3.1 beltBrush=CreateStandardBrush(255,255,255):BrushPBR beltBrush,.25,.65 flowBelt=StudyTexture("flow_conveyor"):BrushBaseColorMap beltBrush,flowBelt PaintEntity belt,beltBrush:FreeBrush beltBrush ScaleTexture flowBelt,.25,1:TextureScroll flowBelt,flowBeltSpeed,0 For side=-1 To 1 Step 2 Block 0,.94,3.1+side*1.27,4.7,.07,.065,202,145,47 For support=-1 To 1 Step 2 Block support*3.8,.3,3.1+side*.94,.12,.5,.12,44,55,62 Next Next For part=0 To 3 Select part Case 0:salvage=Model("valve",0,.85,3.1,.38,-25) Case 1:salvage=Model("amphora",0,.85,3.1,.32,10) Case 2:salvage=Model("lantern",0,.85,3.1,.42,25) Case 3:salvage=Model("courier",0,1.15,3.1,.19,90) End Select item.FlowProp=New FlowProp:item\entity=salvage:item\offset=part*2.1 Next ; This tube uses planar UVs: the authored RG field turns through the bend. casing=FlowBend(2.5,.34,-12,192):PositionEntity casing,0,2.2,7.7 Pbr casing,57,79,93,.8,.3 feed=FlowBend(2.5,.25,-12,192):PositionEntity feed,0,2.2,7.35 EntityFX feed,16:Affected feed ShaderTexture shader,"BaseTexture",StudyTexture("flow_energy") ShaderTexture shader,"FlowMap",StudyTexture("flow_bend_map",1+8+16+32) ShaderFloat shader,"Emission",1.5:ShaderFloat shader,"Roughness",.3 For side=-1 To 1 Step 2 Block side*2.5,1.15,7.5,.42,1.1,.48,53,72,83 Model "valve",side*2.5,.15,7.5,.63,90 Next ; A separate shader instance and map give the cascade its own direction. Block 4.6,.25,7.4,1.2,.25,1,48,67,75 Block 4.6,3.9,8.2,1.15,.18,.5,57,76,86 cascade=CreateMesh():surf=CreateSurface(cascade) AddVertex surf,3.6,3.72,7.75,0,0:AddVertex surf,5.6,3.72,7.75,1,0 AddVertex surf,5.6,.5,7.25,1,1:AddVertex surf,3.6,.5,7.25,0,1 AddTriangle surf,0,1,2:AddTriangle surf,0,2,3:UpdateNormals cascade:EntityFX cascade,16 flowCascadeShader=CopyShader(shader):EntityShader cascade,flowCascadeShader ShaderTexture flowCascadeShader,"BaseTexture",StudyTexture("flow_water") ShaderTexture flowCascadeShader,"FlowMap",StudyTexture("flow_water_map") ShaderFloat flowCascadeShader,"Emission",.15:ShaderFloat flowCascadeShader,"FlowSpeed",.65 Model "sentinel",-5.5,0,5,.85,40:Lamp -4.7,0,7,.9,255,163,66,2 ViewFrom 9,6.1,-10,0,2.05,5.4:CameraZoom camera,1.65 Control "FlowStrength",0.24,0,0.6,0.04,False RunShowcase()