Suppression notes obsoletes
This commit is contained in:
		
							
								
								
									
										61
									
								
								dev-notes.md
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								dev-notes.md
									
									
									
									
									
								
							@@ -1,61 +0,0 @@
 | 
			
		||||
# Actor notes
 | 
			
		||||
 | 
			
		||||
> The Actor#getData default implementation gives you the following for use in sheet rendering:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
  actor -> the Actor instance
 | 
			
		||||
  data -> a cloned copy of Actor#data
 | 
			
		||||
  items -> a cloned copy of Actor#data#items
 | 
			
		||||
  effects -> a cloned copy of Actor#data#effects
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
> if all you need is a safe copy of `Actor#data`, you'll be much better off by simply defining your own function and avoiding all the wasted work that the parent class does which will slow down your sheet
 | 
			
		||||
```js
 | 
			
		||||
getData(options) {
 | 
			
		||||
  return {
 | 
			
		||||
    data: foundry.utils.deepClone(this.object.data)
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
who knows, maybe you don't even need to copy your actor data, skip the copy and it's even faster:
 | 
			
		||||
```js
 | 
			
		||||
getData(options) {
 | 
			
		||||
  return {
 | 
			
		||||
    data: this.object.data
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Atropos19/02/2021
 | 
			
		||||
There are two recommended ways to create owned items in 0.8.0:
 | 
			
		||||
```js
 | 
			
		||||
await Item.create(itemData, {parent: actor});
 | 
			
		||||
await actor.createEmbeddedDocuments("Item", itemDataArray);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
You can update an embedded item in one of two ways:
 | 
			
		||||
```js
 | 
			
		||||
//Method 1:
 | 
			
		||||
 | 
			
		||||
const item = actor.items.get(itemId);
 | 
			
		||||
item.update(data);
 | 
			
		||||
 | 
			
		||||
//Method 2:
 | 
			
		||||
actor.updateEmbeddedDocuments("Item", [{_id: itemId, ...}]);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
I noticed adding an ActiveEffect to an actor in code using
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
this.createEmbeddedDocuments('ActiveEffect', [effet], options);
 | 
			
		||||
this.applyActiveEffects();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Atropos — Aujourd’hui à 14:42
 | 
			
		||||
Two notes on this:
 | 
			
		||||
1. You don't actually need to call this.applyActiveEffects() because this will happen automatically whenever an effect is created/updated/deleted
 | 
			
		||||
2. If you want to suppress the automatic display of the sheet for the newly created document, you can pass options.renderSheet = false as part of your options object
 | 
			
		||||
		Reference in New Issue
	
	Block a user