FPECYSD5K4I23LPBSJW2AOILTFLJE55HQ34FMK6CKTBUOFBUL6XAC AF2QOVSSTCKR26APL4PQSNUGZPPJY3IIUUHN4LJ5URL5THW2NSDQC GWNDFRV3SSE3VUV7AUE6KI7AXCEYYJDNRGRTJD2RNMSYG5OFPKIQC WO2ALETBVNH7N3NXJ6JKWCQ2YIZN6LBO7WEXPHAT3EQQJEUCJITQC WPC667PRTGRE7BNP6E7ZCQIKXYMIHJT3LUTTQT7VX2HQVRBXNIKAC 3UFL673QX2JG7KHTAM7DFH4BBYVHDNMXBS2RW45G3JBNFZFLSRRQC MFKZYXV3EZAQCPNCFKCK5DM3O66CEGWYEUM6HZ2I2PMGVE73EYZAC GZRMSSTEWT3T2JERC7WCVT727X237UA6MXWVT6OSV5D5BRD4UOGQC Y7TNTUXM44MRLGA6FEG7J6BR77I7N3AIPZYVPXULOQZQ6PNOWJ7QC CZPLX4O4R7K3TF3NSAL5PT7NO3CUOLDY3OR332GBIYYNKMZTW24AC HPOKB2TCHK3MTYYKXL3DE476BF3JXVSX6MSGI5NF4PSLALTS3PHQC 4CQWVYQVUFXWUZBVLT7X7YW6TVIUHAGABPLXZTC66WNQQP5BOREAC DDJJXZKSQLXUXIMLKMKHY75JKC2IRA2A7SEVSUNL5FSCFH77T4IAC PZNEDCRDS5IBR7QDPHTW5HZRMQAZFIF7VB3IKWPZDC7IALHZKHWAC 2OZGXOFLTXALS34QEIQ2F6VT7AUWYK7FVXUUDX66GZT5I7FUNPVAC CWCOGTXQXEQPK6O4TQFCIPDVMZD7WHOBGMIG2DTSO6BEBFEADZIQC L72HFM6IYLNHEFEIFOQQQUAGMY2RN4POCV3Q3SMQERSQBMEZ5J3QC 3J7UJFGYFKBWC3IBUP32XODZND5ZLHZQJGXSYXMAW4DCREUOEOQAC DHO4JCJIELKX4R42XXAMAHVQTTE6OWULLP2QF4BXO3UWC5UTMSMAC PEQNQJYNX7QOEM67QH2UF7VZ43AXHUBO76DN77L43MEFRHVDBO5QC P55M772YOYQKCH3NKZWRGVFNULQA6K5L3SWC6M52R32QBC4VON5QC X7IQA5I46B6EHXPBIWTPCMZR4RZQ7PSJN5IMSEHA7H6F2NWQSNSQC PWXZFCENNLWYEKNPRXSV3FC7VSARURBC6JECKGJCCZC6YP3PN2DQC ZDAABIZI6MPCP5DPGUN24XLSWIKQQ6LYMKIH67ORLUSFUVS5AJ5AC for (let [pointNodeCoord, pointNodeGen] of props.chunkGen.pointNodes.entries()) {const pointNodeRef = new PointNodeRef({z: props.selfChunkRef.z,chunkCoord: props.selfChunkRef.chunkCoord,pointNodeCoord: pointNodeCoord,pointNodeId: pointNodeGen.id})let childProps = {delta: props.delta,args: {pointNodeTexture: props.args.pointNodeTexture,},selfPointNodeRef: pointNodeRef,updaters: props.updaters,pointNodeGen,position: pointNodeRef.pointNodeCoord.multiply(RenderedChunkConstants.SPACING_PX),isSelected: props.selectedPointNode?.pointNodeId === pointNodeRef.pointNodeId,isAllocated: props.allocatedPointNodeSubset.contains(pointNodeRef),};let childComponent = new PointNodeComponent(childProps);this.children.put(pointNodeRef, childComponent);this.container.addChild(childComponent.container);}
this.upsertChildren(props);
/** callback passed to child - since child is not a pure component, it needs to inform us of updates if otherwise we wouldnt update */markForceUpdate = (childInstance: any) => {this.staleProps.args.markForceUpdate(this); // mark us for update in OUR parentif ((this._children as any[]).indexOf(childInstance) === -1) {throw new Error(`Error, child ${childInstance} not found in ${this}`);} else {this.forceUpdates.push(this._children[(this._children as any[]).indexOf(childInstance)])}}
public update(props: Props) {// let staleState = { ...this.state };this.updateSelf(props)if (!this.shouldUpdate(this.staleProps, props)) { return; }
upsertChildren(props: Props) {let childrenToDelete = this.children.clone(); // track which children need to be destroyed according to new props
this.tooltippableArea = new TooltippableAreaComponent({hitArea});
this.tooltippableAreaPropsFactory = (p: Props, s: State) => {return {hitArea: this.hitArea}}this.tooltippableArea = new TooltippableAreaComponent(this.tooltippableAreaPropsFactory(props, this.state));
/** callback passed to child - since child is not a pure component, it needs to inform us of updates if otherwise we wouldnt update */markForceUpdate = (childInstance: any) => {this.staleProps.args.markForceUpdate(this); // mark us for update in OUR parentif ((this._children as any[]).indexOf(childInstance) === -1) {throw new Error(`Error, child ${childInstance} not found in ${this}`);} else {this.forceUpdates.push(this._children[(this._children as any[]).indexOf(childInstance)])}}
if (!this.shouldUpdate(this.staleProps, props)) { return; }
if (!this.shouldUpdate(this.staleProps, props)) {// update the chidlren that asked us to forcefully update them even though props didnt changelet forceUpdates = [...this.forceUpdates];this.forceUpdates = [];for (let { instance, propsFactory } of forceUpdates) {instance._update(propsFactory(props, this.state)); // why are we even calling props factory here?? theres no point... we should just tell the child to use their own stale props, like this:// instance._forceUpdate();}// no need to do anything else -- stale props has not changedreturn;}
const childProps = {delta: 0,args: {pointNodeTexture: this.state.pointNodeTexture.get(),},z: this.state.playerCurrentZ,updaters: props.updaters,position: props.appSize.multiply(0.5),zLevelGen: props.gameState.worldGen.zLevels[this.state.playerCurrentZ],selectedPointNode: props.gameState.playerUI.selectedPointNode,allocatedPointNodeSubset: props.gameState.playerSave.allocatedPointNodeSet,};
this.zLevelPropsFactory = (p: Props, s: State) => {return {delta: p.delta,args: {pointNodeTexture: this.state.pointNodeTexture.get(),markForceUpdate: this.markForceUpdate,},z: this.state.playerCurrentZ,updaters: props.updaters,position: props.appSize.multiply(0.5),zLevelGen: props.gameState.worldGen.zLevels[this.state.playerCurrentZ],selectedPointNode: props.gameState.playerUI.selectedPointNode,allocatedPointNodeSubset: props.gameState.playerSave.allocatedPointNodeSet,};}
}/** callback passed to child - since child is not a pure component, it needs to inform us of updates if otherwise we wouldnt update */markForceUpdate = (childInstance: any) => {this.staleProps.args.markForceUpdate(this); // mark us for update in OUR parentif ((this._children as any[]).indexOf(childInstance) === -1) {throw new Error(`Error, child ${childInstance} not found in ${this}`);} else {this.forceUpdates.push(this._children[(this._children as any[]).indexOf(childInstance)])}
const childProps = {delta: 0,args: {pointNodeTexture: this.state.pointNodeTexture.get(),},z: this.state.playerCurrentZ,updaters: props.updaters,position: props.appSize.multiply(0.5),zLevelGen: props.gameState.worldGen.zLevels[this.state.playerCurrentZ],selectedPointNode: props.gameState.playerUI.selectedPointNode,allocatedPointNodeSubset: props.gameState.playerSave.allocatedPointNodeSet,};
}/** callback passed to child - since child is not a pure component, it needs to inform us of updates if otherwise we wouldnt update */markForceUpdate = (childInstance: any) => {this.staleProps.args.markForceUpdate(this); // mark us for update in OUR parentif ((this._children as any[]).indexOf(childInstance) === -1) {throw new Error(`Error, child ${childInstance} not found in ${this}`);} else {this.forceUpdates.push(this._children[(this._children as any[]).indexOf(childInstance)])}
export type { Props as ZLevelComponentProps };